From 19b02bf2673e891888cdbf00fc5f7a3776e50505 Mon Sep 17 00:00:00 2001 From: Jason Gorman Date: Wed, 28 Feb 2018 13:22:53 -0800 Subject: [PATCH 001/578] Merge of e6v2 stuff as well as my personal keymaps (#2434) * Checkin of tada keymap and initial commit for e6v2. * checking in other remaining changes before trying to merge * Reverting pin change. This was done based on the json orginally provided by exclusive, but it was later determined my map was the correct one based on user testing * fix extra key for ansi keymap. Didn't include fn as standard ansi shift is not split but still had it in keymap * Fix default help file and add reset to default --- keyboards/e6v2/config.h | 65 ++++++++++ keyboards/e6v2/e6v2.c | 53 ++++++++ keyboards/e6v2/e6v2.h | 66 ++++++++++ keyboards/e6v2/keymaps/amnesia0287/config.h | 1 + keyboards/e6v2/keymaps/amnesia0287/keymap.c | 79 ++++++++++++ keyboards/e6v2/keymaps/amnesia0287/readme.md | 8 ++ keyboards/e6v2/keymaps/amnesia0287/rules.mk | 0 keyboards/e6v2/keymaps/default/config.h | 1 + keyboards/e6v2/keymaps/default/keymap.c | 18 +++ keyboards/e6v2/keymaps/default/readme.md | 8 ++ keyboards/e6v2/keymaps/default/rules.mk | 0 keyboards/e6v2/readme.md | 18 +++ keyboards/e6v2/rules.mk | 68 +++++++++++ keyboards/s60_x/keymaps/amnesia0287/keymap.c | 81 +++++++++++++ keyboards/s60_x/keymaps/amnesia0287/readme.md | 27 +++++ keyboards/tada68/keymaps/amnesia0287/keymap.c | 113 ++++++++++++++++++ .../tada68/keymaps/amnesia0287/readme.md | 3 + 17 files changed, 609 insertions(+) create mode 100644 keyboards/e6v2/config.h create mode 100644 keyboards/e6v2/e6v2.c create mode 100644 keyboards/e6v2/e6v2.h create mode 100644 keyboards/e6v2/keymaps/amnesia0287/config.h create mode 100644 keyboards/e6v2/keymaps/amnesia0287/keymap.c create mode 100644 keyboards/e6v2/keymaps/amnesia0287/readme.md create mode 100644 keyboards/e6v2/keymaps/amnesia0287/rules.mk create mode 100644 keyboards/e6v2/keymaps/default/config.h create mode 100644 keyboards/e6v2/keymaps/default/keymap.c create mode 100644 keyboards/e6v2/keymaps/default/readme.md create mode 100644 keyboards/e6v2/keymaps/default/rules.mk create mode 100644 keyboards/e6v2/readme.md create mode 100644 keyboards/e6v2/rules.mk create mode 100644 keyboards/s60_x/keymaps/amnesia0287/keymap.c create mode 100644 keyboards/s60_x/keymaps/amnesia0287/readme.md create mode 100644 keyboards/tada68/keymaps/amnesia0287/keymap.c create mode 100644 keyboards/tada68/keymaps/amnesia0287/readme.md diff --git a/keyboards/e6v2/config.h b/keyboards/e6v2/config.h new file mode 100644 index 000000000000..b80afcb51ae8 --- /dev/null +++ b/keyboards/e6v2/config.h @@ -0,0 +1,65 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0002 +#define MANUFACTURER Exclusive / E-Team +#define PRODUCT E6-V2 +#define DESCRIPTION E6-V2 QMK PCB (Mid-Port) + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* QMK E6-V2 PCB default pin-out */ +#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 } +#define MATRIX_COL_PINS { C7, C6, B5, B4, D7, D6, D4, F6, F7, F5, F4, F1, F0, B0, B1 } +#define UNUSED_PINS { E6, B2, B3, B7 } + +#define RGB_DI_PIN E2 +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 8 +#define RGBLIGHT_HUE_STEP 12 +#define RGBLIGHT_SAT_STEP 12 +#define RGBLIGHT_VAL_STEP 12 +#endif + +#define BACKLIGHT_PIN B6 +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 5 +#define BACKLIGHT_BREAHTING +#define BREATHING_PERIOD 3 +#endif + +#define DIODE_DIRECTION COL2ROW +#define DEBOUNCING_DELAY 5 + +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ + ) + + + +#endif diff --git a/keyboards/e6v2/e6v2.c b/keyboards/e6v2/e6v2.c new file mode 100644 index 000000000000..917f3e07b60d --- /dev/null +++ b/keyboards/e6v2/e6v2.c @@ -0,0 +1,53 @@ +#include "e6v2.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + DDRB |= (1<<6); + if (usb_led & (1<event.pressed) + { + layer_on(_HLa); + update_tri_layer(_HLa, _HLb, _HL); + } + else + { + layer_off(_HLa); + update_tri_layer(_HLa, _HLb, _HL); + } + return false; + break; + case FN_HLb: + if (record->event.pressed) + { + layer_on(_HLb); + update_tri_layer(_HLa, _HLb, _HL); + } + else + { + layer_off(_HLb); + update_tri_layer(_HLa, _HLb, _HL); + } + return false; + break; + } + return true; +} \ No newline at end of file diff --git a/keyboards/e6v2/keymaps/amnesia0287/readme.md b/keyboards/e6v2/keymaps/amnesia0287/readme.md new file mode 100644 index 000000000000..834604ce23cd --- /dev/null +++ b/keyboards/e6v2/keymaps/amnesia0287/readme.md @@ -0,0 +1,8 @@ +amnesia0287's Keymap +=== + +Keymap Maintainer: [Jason Gorman](https://github.com/amnesia0287) + +Difference from base layout: Primarily the HHKB-ness + +Intended usage: Daily driver for programming diff --git a/keyboards/e6v2/keymaps/amnesia0287/rules.mk b/keyboards/e6v2/keymaps/amnesia0287/rules.mk new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/e6v2/keymaps/default/config.h b/keyboards/e6v2/keymaps/default/config.h new file mode 100644 index 000000000000..a5568e400def --- /dev/null +++ b/keyboards/e6v2/keymaps/default/config.h @@ -0,0 +1 @@ +#include "../../config.h" diff --git a/keyboards/e6v2/keymaps/default/keymap.c b/keyboards/e6v2/keymaps/default/keymap.c new file mode 100644 index 000000000000..ae63df8c0025 --- /dev/null +++ b/keyboards/e6v2/keymaps/default/keymap.c @@ -0,0 +1,18 @@ +#include "e6v2.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = KEYMAP_ANSI( + 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_BSPC, + 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_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, MO(1), KC_MENU, KC_RCTL + ), + [1] = KEYMAP_ANSI( + KC_GRV, 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_DEL, + RESET, 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, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/e6v2/keymaps/default/readme.md b/keyboards/e6v2/keymaps/default/readme.md new file mode 100644 index 000000000000..02153cb0d38f --- /dev/null +++ b/keyboards/e6v2/keymaps/default/readme.md @@ -0,0 +1,8 @@ +Default Keymap +=== + +Super simple default keymap with only a base layer. + +Keymap Maintainer: [Jason Gorman](https://github.com/amnesia0287) + +Intended usage: This is mostly provided for testing before you build your own keymap and as a reference to a stock(ish) configuration diff --git a/keyboards/e6v2/keymaps/default/rules.mk b/keyboards/e6v2/keymaps/default/rules.mk new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/e6v2/readme.md b/keyboards/e6v2/readme.md new file mode 100644 index 000000000000..725c264cabdf --- /dev/null +++ b/keyboards/e6v2/readme.md @@ -0,0 +1,18 @@ +E6-V2 +=== + +These docs are for the QMK version of the PCB. [More info on qmk.fm](http://qmk.fm/) + +Keyboard Maintainer: [Jason Gorman](https://github.com/amnesia0287) +Hardware Supported: E6-V2 Mid Port rev.qmk +Hardware Availability: [geekhack.org/index.php?topic=90787.0](https://geekhack.org/index.php?topic=90787.0) + +Make example for this keyboard (after setting up your build environment): + + make e6v2:default + +Or to make and flash: + + make e6v2:default:dfu + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/e6v2/rules.mk b/keyboards/e6v2/rules.mk new file mode 100644 index 000000000000..c2c02b6147a2 --- /dev/null +++ b/keyboards/e6v2/rules.mk @@ -0,0 +1,68 @@ +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default +RGBLIGHT_ENABLE = yes +MIDI_ENABLE = no # MIDI controls +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 diff --git a/keyboards/s60_x/keymaps/amnesia0287/keymap.c b/keyboards/s60_x/keymaps/amnesia0287/keymap.c new file mode 100644 index 000000000000..f9ca3f15ab80 --- /dev/null +++ b/keyboards/s60_x/keymaps/amnesia0287/keymap.c @@ -0,0 +1,81 @@ +#include "rgb.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _HLa 1 +#define _HLb 2 +#define _HL 3 +#define _XL 4 + +enum hype_keycodes { + FN_HLa = SAFE_RANGE, + FN_HLb +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: ANSI qwerty */ + [_BL] = KEYMAP( + 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_NO, KC_BSPC, \ + 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_BSLS, \ + 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 , \ + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, FN_HLb, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_RALT, FN_HLa, KC_RCTL + ), + [_HLa] = KEYMAP( + KC_GRV, 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_TRNS, KC_DEL, + 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, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [_HLb] = KEYMAP( + KC_GRV, 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_TRNS, KC_DEL, + 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, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [_HL] = KEYMAP( + RGB_TOG, RGB_M_P, RGB_RMOD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, BL_BRTG, BL_OFF, BL_STEP, BL_ON, BL_DEC, BL_INC, KC_TRNS, LALT(KC_F4), + RESET, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case FN_HLa: + if (record->event.pressed) + { + layer_on(_HLa); + update_tri_layer(_HLa, _HLb, _HL); + } + else + { + layer_off(_HLa); + update_tri_layer(_HLa, _HLb, _HL); + } + return false; + break; + case FN_HLb: + if (record->event.pressed) + { + layer_on(_HLb); + update_tri_layer(_HLa, _HLb, _HL); + } + else + { + layer_off(_HLb); + update_tri_layer(_HLa, _HLb, _HL); + } + return false; + break; + } + return true; +} \ No newline at end of file diff --git a/keyboards/s60_x/keymaps/amnesia0287/readme.md b/keyboards/s60_x/keymaps/amnesia0287/readme.md new file mode 100644 index 000000000000..69cede566a9e --- /dev/null +++ b/keyboards/s60_x/keymaps/amnesia0287/readme.md @@ -0,0 +1,27 @@ +### 1 Standard - ANSI +This is a variation of the default keymap with added RGB underglow and in-switch LED controls. + +#### 1.0 Default layer + ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│█████│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│▒▒▒▒▒│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │LCTRL│L_GUI│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │ APP │RCTRL│█████│ + └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ +#### 1.1 Fn layer + ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + │GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │ │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│ │█████│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │Left │Down │Right│ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │ │UGTOG│UGMOD│UGHUI│UGHUD│UGSAI│UGSAD│ │BLDEC│BLTOG│BLINC│▒▒▒▒▒│ │▒▒▒▒▒│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│ + └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ \ No newline at end of file diff --git a/keyboards/tada68/keymaps/amnesia0287/keymap.c b/keyboards/tada68/keymaps/amnesia0287/keymap.c new file mode 100644 index 000000000000..8562a745a288 --- /dev/null +++ b/keyboards/tada68/keymaps/amnesia0287/keymap.c @@ -0,0 +1,113 @@ +#include "tada68.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _HLa 1 +#define _HLb 2 +#define _HL 3 +#define _XL 4 + +#define _______ KC_TRNS + +enum hype_keycodes { + FN_HLa = SAFE_RANGE, + FN_HLb +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,----------------------------------------------------------------. + * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |~ ` | + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |Del | + * |----------------------------------------------------------------| + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |PgUp| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|PgDn| + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ +[_BL] = KEYMAP_ANSI( + 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_BSPC,KC_HOME, \ + 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_BSLS,KC_PGUP, \ + 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_ENT,KC_PGDN, \ + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSPC,KC_UP,LT(_HLa, KC_END), \ + KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,FN_HLa,FN_HLb, KC_LEFT,KC_DOWN,KC_RGHT), + + /* Keymap _HL: Hype Fn Layer + * ,----------------------------------------------------------------. + * | | F1|F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Del |Ins | + * |----------------------------------------------------------------| + * | | |Up | | | | | | | | | | | |Hme | + * |----------------------------------------------------------------| + * | |<- |Dn | ->| | | | | | | | | |End | + * |----------------------------------------------------------------| + * | | | |Bl-|BL |BL+| |VU-|VU+|MUT| | McL|MsU|McR | + * |----------------------------------------------------------------| + * | | | | | | | |MsL|MsD|MsR | + * `----------------------------------------------------------------' + */ +[_HLa] = KEYMAP_ANSI( + KC_GRV, 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_DEL,KC_INS, \ + KC_CAPS,_______, KC_UP,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK,KC_PAUS, KC_UP,_______, _______,_______, \ + _______,KC_LEFT,KC_DOWN,KC_RGHT,_______,_______,_______,_______,KC_HOME,KC_PGUP,KC_LEFT,KC_RGHT, _______,_______, \ + _______,_______,_______,_______,_______,_______,_______,_______, KC_END,KC_PGDN,KC_DOWN, _______,KC_PGUP,_______, \ + _______, _______, _______, _______, _______,_______,_______,KC_HOME,KC_PGDN, KC_END), + +[_HLb] = KEYMAP_ANSI( + KC_GRV, 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_DEL,KC_INS, \ + KC_CAPS,_______, KC_UP,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK,KC_PAUS, KC_UP,_______, _______,_______, \ + _______,KC_LEFT,KC_DOWN,KC_RGHT,_______,_______,_______,_______,KC_HOME,KC_PGUP,KC_LEFT,KC_RGHT, _______,_______, \ + _______,_______,_______,_______,_______,_______,_______,_______, KC_END,KC_PGDN,KC_DOWN, _______,KC_PGUP,_______, \ + _______, _______, _______, _______, _______,_______,_______,KC_HOME,KC_PGDN, KC_END), + +[_HL] = KEYMAP_ANSI( + BL_TOGG, BL_DEC, BL_INC,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,LALT(KC_F4),MAGIC_UNSWAP_BACKSLASH_BACKSPACE, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,MAGIC_SWAP_BACKSLASH_BACKSPACE, \ + _______,KC_VOLD,KC_VOLU,KC_MUTE,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,KC_MNXT,_______, \ + KC_MPRV, KC_MPLY, KC_MNXT, KC_MPLY, _______,_______,_______,KC_MRWD,KC_MPRV,KC_MFFD), + +[_XL] = KEYMAP_ANSI( + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \ + _______, _______, _______, _______, _______,_______,_______,_______,_______,_______), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case FN_HLa: + if (record->event.pressed) + { + layer_on(_HLa); + update_tri_layer(_HLa, _HLb, _HL); + } + else + { + layer_off(_HLa); + update_tri_layer(_HLa, _HLb, _HL); + } + return false; + break; + case FN_HLb: + if (record->event.pressed) + { + layer_on(_HLb); + update_tri_layer(_HLa, _HLb, _HL); + } + else + { + layer_off(_HLb); + update_tri_layer(_HLa, _HLb, _HL); + } + return false; + break; + } + return true; +} diff --git a/keyboards/tada68/keymaps/amnesia0287/readme.md b/keyboards/tada68/keymaps/amnesia0287/readme.md new file mode 100644 index 000000000000..53412d7c2556 --- /dev/null +++ b/keyboards/tada68/keymaps/amnesia0287/readme.md @@ -0,0 +1,3 @@ +# default TADA68 layout + +This layout replicates the default factory layout of the TADA68. From 524053e3c0eceab0eadf04cde6c2c0f1a77520fe Mon Sep 17 00:00:00 2001 From: Danny Date: Wed, 28 Feb 2018 16:40:43 -0500 Subject: [PATCH 002/578] Remap msys2 usb, fix USB port detection (#2301) * Add AVRDUDE to MSYS2 setup * Remap detected USB port in MSYS2 to COM port --- tmk_core/avr.mk | 4 ++++ util/msys2_install.sh | 1 + 2 files changed, 5 insertions(+) diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk index 106b771507a2..853b8f02f208 100644 --- a/tmk_core/avr.mk +++ b/tmk_core/avr.mk @@ -183,6 +183,10 @@ avrdude: $(BUILD_DIR)/$(TARGET).hex check-size done; \ echo ""; \ echo "Detected controller on USB port at $$USB"; \ + if grep -q -s 'MINGW\|MSYS' /proc/version; then \ + USB=`echo "$$USB" | perl -pne 's/\/dev\/ttyS(\d+)/COM.($$1+1)/e'`; \ + echo "Remapped MSYS2 USB port to $$USB"; \ + fi; \ sleep 1; \ avrdude -p $(MCU) -c avr109 -P $$USB -U flash:w:$(BUILD_DIR)/$(TARGET).hex; \ fi diff --git a/util/msys2_install.sh b/util/msys2_install.sh index 282053fe4c53..c64685754132 100644 --- a/util/msys2_install.sh +++ b/util/msys2_install.sh @@ -16,6 +16,7 @@ function install_avr { wget "http://ww1.microchip.com/downloads/en/DeviceDoc/avr8-gnu-toolchain-installer-3.5.4.91-win32.any.x86.exe" 7z x avr8-gnu-toolchain-installer-3.5.4.91-win32.any.x86.exe rm avr8-gnu-toolchain-installer-3.5.4.91-win32.any.x86.exe + pacman --needed -S mingw-w64-x86_64-avrdude } function install_arm { From 8e99fbc884d8599a18327f1bae82433fe11e9b7a Mon Sep 17 00:00:00 2001 From: Brian Choromanski Date: Wed, 28 Feb 2018 16:43:15 -0500 Subject: [PATCH 003/578] Fixed typo of 'confid.h' to 'config.h' (#2448) * Fixed typo of 'confid.h' to 'config.h' * Fixed broken links in docs --- docs/eclipse.md | 6 ++++-- docs/feature_audio.md | 2 +- docs/feature_mouse_keys.md | 8 ++++---- docs/keycodes.md | 2 +- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/docs/eclipse.md b/docs/eclipse.md index c51df522df82..2cb90647a680 100644 --- a/docs/eclipse.md +++ b/docs/eclipse.md @@ -1,6 +1,6 @@ # Setting up Eclipse for QMK Development -[Eclipse](https://en.wikipedia.org/wiki/Eclipse_(software)) is an open-source [Integrated Development Environment](https://en.wikipedia.org/wiki/Integrated_development_environment) (IDE) widely used for Java development, but with an extensible plugin system that allows to customize it for other languages and usages. +[Eclipse][1] is an open-source [Integrated Development Environment](https://en.wikipedia.org/wiki/Integrated_development_environment) (IDE) widely used for Java development, but with an extensible plugin system that allows to customize it for other languages and usages. Using an IDE such as Eclipse provides many advantages over a plain text editor, such as: * intelligent code completion @@ -17,7 +17,7 @@ Note that this set-up has been tested on Ubuntu 16.04 only for the moment. # Prerequisites ## Build Environment -Before starting, you must have followed the [Getting Started](home.md#getting-started) section corresponding to your system. In particular, you must have been able to build the firmware with [the `make` command](../#the-make-command). +Before starting, you must have followed the [Getting Started](README.md#getting-started) section corresponding to your system. In particular, you must have been able to build the firmware with [the `make` command](../#the-make-command). ## Java Eclipse is a Java application, so you will need to install Java 8 or more recent to be able to run it. You may choose between the JRE or the JDK, the latter being useful if you intend to do Java development. @@ -84,3 +84,5 @@ We will now configure a make target that cleans the project and builds the keyma 7. (Optional) Toggle the Hide Empty Folders icon button above the targets tree to only show your build target. 8. Double-click the build target you created to trigger a build. 9. Select the Console view at the bottom to view the running build. + + [1]: https://en.wikipedia.org/wiki/Eclipse_(software) \ No newline at end of file diff --git a/docs/feature_audio.md b/docs/feature_audio.md index c7133b295d2e..5b11aa3abacf 100644 --- a/docs/feature_audio.md +++ b/docs/feature_audio.md @@ -82,7 +82,7 @@ The pitch standard (`PITCH_STANDARD_A`) is 440.0f by default - to change this, a #define PITCH_STANDARD_A 432.0f -You can completely disable Music Mode as well. This is useful, if you're pressed for space on your controller. To disable it, add this to your `confid.h`: +You can completely disable Music Mode as well. This is useful, if you're pressed for space on your controller. To disable it, add this to your `config.h`: #define NO_MUSIC_MODE diff --git a/docs/feature_mouse_keys.md b/docs/feature_mouse_keys.md index c4239b4da987..9e7df929edfe 100644 --- a/docs/feature_mouse_keys.md +++ b/docs/feature_mouse_keys.md @@ -5,17 +5,17 @@ Mousekeys is a feature that allows you to emulate a mouse using your keyboard. Y ## Adding Mousekeys to a Keymap -There are two steps to adding Mousekeys support to your keyboard. You must enable support in the Makefile and you must map mouse actions to keys on your keyboard. +There are two steps to adding Mousekeys support to your keyboard. You must enable support in the `rules.mk` file and you must map mouse actions to keys on your keyboard. -### Adding Mousekeys Support in the `Makefile` +### Adding Mousekeys Support in the `rules.mk` -To add support for Mousekeys you simply need to add a single line to your keymap's `Makefile`: +To add support for Mousekeys you simply need to add a single line to your keymap's `rules.mk`: ``` MOUSEKEY_ENABLE = yes ``` -You can see an example here: https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/keymaps/mouse_keys/Makefile +You can see an example here: https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/66/keymaps/mouse_keys/rules.mk ### Mapping Mouse Actions to Keyboard Keys diff --git a/docs/keycodes.md b/docs/keycodes.md index fa02512dea55..030b23827a0c 100644 --- a/docs/keycodes.md +++ b/docs/keycodes.md @@ -366,7 +366,7 @@ This is a reference only. Each group of keys links to the page documenting their |`KC_RIGHT_ANGLE_BRACKET`|`KC_GT`/`KC_RABK` |`>` | |`KC_QUESTION` |`KC_QUES` |`?` | -## [Switching and Toggling Layers](feature_common_shortcuts.md#switching-and-toggling-layers) +## [Switching and Toggling Layers](feature_advanced_keycodes.md#switching-and-toggling-layers) |Key |Description | |---------------|----------------------------------------------------------------------------------| From 2b8a82fb9defa95ca679672322e7f43052fdc44f Mon Sep 17 00:00:00 2001 From: Gam3cat <31171909+Gam3cat@users.noreply.github.com> Date: Wed, 28 Feb 2018 13:44:27 -0800 Subject: [PATCH 004/578] M10-A, M65-A, GonNerd keymaps (#2418) * adding my keymap * update keymap * adding gamecat keymap for jc65 keyboard * updating jc65-gamecat keymap * updating jc65-gamecat keymap * updating jc65-gamecat keymap * updating jc65-gamecat keymap * M10a keymap and M65a updates * keymap updates * keymap updates * M10a/M65a keymap updates * M10a/M65a keymap updates * Delete test.txt * M65 keymap update * M65 keymap update * M65 keymap update * M65/M10 keymap updates * M65 keymap update * M65 keymap update * M65 keymap update * M65 keymap update * M65 keymap update * M65/M10 keymap update * M65 keymap update * M65 keymap update * M65 keymap update * M65 keymap update * M65 keymap update * Set theme jekyll-theme-cayman * Set theme jekyll-theme-slate * M65 keymap update * M10a/M65a keymap updates * M10a keymap update * M65a keymap update * M65a keymap update * M65a keymap update * M65a readme update * M65a/M10a updates * M65a readme updates * M65a/M10a updates * M65A update * M65A update * M65A update * M65A update * M65A/M10A keymap update * M10A keymap update * Set theme jekyll-theme-tactile * M10A keymap update * M65A keymap.c update * M65 keymap added LED backlight toggle, inc/dec to adjust layer. * M65 keymap/readme updates. * M65 keymap fix * M65 keymap update * remove theme * fix comments/readme * update keymap * LED backlight update, guess based on reading atmega32u4 documentation for DDRB/PORTB regs, believe DDRB should only be written to once not every time CAPS is hit, but really not too sure. * LED backlight update, guess based on reading atmega32u4 documentation for DDRB/PORTB regs, believe DDRB should only be written to once not every time CAPS is hit, but really not too sure. * M65 keymap update * Updated M65, M10, and gonNerd keymaps. * update * del * keymap updates M65, M10, gonnerd * update keymaps * adding back readme that somehow got removed. --- keyboards/gonnerd/keymaps/gam3cat/config.h | 7 + keyboards/gonnerd/keymaps/gam3cat/keymap.c | 288 ++++++++++++++++++ keyboards/gonnerd/keymaps/gam3cat/readme.md | 120 ++++++++ keyboards/gonnerd/keymaps/gam3cat/rules.mk | 21 ++ keyboards/jc65/v32u4/keymaps/gam3cat/config.h | 7 + keyboards/jc65/v32u4/keymaps/gam3cat/keymap.c | 279 +++++++++++++++++ .../jc65/v32u4/keymaps/gam3cat/readme.md | 109 +++++++ keyboards/jc65/v32u4/keymaps/gam3cat/rules.mk | 6 + keyboards/m10a/keymaps/gam3cat/config.h | 2 + keyboards/m10a/keymaps/gam3cat/keymap.c | 161 ++++++++++ keyboards/m10a/keymaps/gam3cat/readme.md | 21 ++ keyboards/m10a/keymaps/gam3cat/rules.mk | 3 + 12 files changed, 1024 insertions(+) create mode 100644 keyboards/gonnerd/keymaps/gam3cat/config.h create mode 100644 keyboards/gonnerd/keymaps/gam3cat/keymap.c create mode 100644 keyboards/gonnerd/keymaps/gam3cat/readme.md create mode 100644 keyboards/gonnerd/keymaps/gam3cat/rules.mk create mode 100644 keyboards/jc65/v32u4/keymaps/gam3cat/config.h create mode 100644 keyboards/jc65/v32u4/keymaps/gam3cat/keymap.c create mode 100644 keyboards/jc65/v32u4/keymaps/gam3cat/readme.md create mode 100644 keyboards/jc65/v32u4/keymaps/gam3cat/rules.mk create mode 100644 keyboards/m10a/keymaps/gam3cat/config.h create mode 100644 keyboards/m10a/keymaps/gam3cat/keymap.c create mode 100644 keyboards/m10a/keymaps/gam3cat/readme.md create mode 100644 keyboards/m10a/keymaps/gam3cat/rules.mk diff --git a/keyboards/gonnerd/keymaps/gam3cat/config.h b/keyboards/gonnerd/keymaps/gam3cat/config.h new file mode 100644 index 000000000000..a3819d3a59a9 --- /dev/null +++ b/keyboards/gonnerd/keymaps/gam3cat/config.h @@ -0,0 +1,7 @@ +#include "../../config.h" +//GRAVE_ESC override for CTRL+SHIFT+ESC Windows task manager shortcut. +#define GRAVE_ESC_CTRL_OVERRIDE +#define PREVENT_STUCK_MODIFIERS + +//Delay matrix scan for tap dance, reduce to activate modifier keys faster. +//#define TAPPING_TERM 200 diff --git a/keyboards/gonnerd/keymaps/gam3cat/keymap.c b/keyboards/gonnerd/keymaps/gam3cat/keymap.c new file mode 100644 index 000000000000..f853cd0538cf --- /dev/null +++ b/keyboards/gonnerd/keymaps/gam3cat/keymap.c @@ -0,0 +1,288 @@ +#include "gonnerd.h" +#include "version.h" + +enum layers { + _BL = 0, // Base Layer + _WL, // Workman Layer + _NL, // Norman Layer + _DL, // Dvorak Layer + _CL, // Base Layer + _FL, // Function Layer + _AL, // Adjust Layer +}; + +enum gonnerd_keycodes { + DYNAMIC_MACRO_RANGE = SAFE_RANGE, +}; + +#include "dynamic_macro.h" +#define _______ KC_TRNS +#define XXXXXXX KC_NO +#define FN_CAPS LT(_FL, KC_CAPS) +#define KC_DMR1 DYN_REC_START1 +#define KC_DMR2 DYN_REC_START2 +#define KC_DMP1 DYN_MACRO_PLAY1 +#define KC_DMP2 DYN_MACRO_PLAY2 +#define KC_DMRS DYN_REC_STOP + +static uint8_t current_layer; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* _BL: Base Layer, mostly standard TKL QWERTY layout. + * .-----------------------------------------------------------------------. + * |Esc||||| F1| F2| F3| F4||| F5| F6| F7| F8||| F9|F10|F11|F12|PSc|SLk|Pau| + * |-----------------------------------------------------------|-----------| + * | ~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Ins|Hom|PgU| + * |-----------------------------------------------------------|-----------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|Del|End|PgD| + * |-----------------------------------------------------------|-----------| + * |FnCaps| A| S| D| F| G| H| J| K| L| ;| '|Return | | + * |-----------------------------------------------------------|-----------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | Up| | + * |-----------------------------------------------------------|-----------| + * |Ctrl |||||Win | Space |RAlt |||||Ctrl |Lft|Dwn|Rgt| + * *-----------------------------------------------------------------------* + */ + [_BL] = KEYMAP_TKL( \ + KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS, \ + KC_GRV, 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_BSPC, KC_INS, KC_HOME, KC_PGUP, \ + 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_BSLS, KC_DEL, KC_END, KC_PGDN, \ + FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, XXXXXXX, KC_ENT, \ + KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FL), KC_UP, \ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + ), + + /* _WL: Workman Layer. + * .-----------------------------------------------------------------------. + * | ||||| | | | ||| | | | ||| | | | | | | | + * .-----------------------------------------------------------|-----------| + * | | | | | | | | | | | | -| =| | | | | + * |-----------------------------------------------------------|-----------| + * | | Q| D| R| W| B| J| F| U| P| ;| [| ]| \| | | | + * |-----------------------------------------------------------|-----------| + * | | A| S| H| T| G| Y| N| E| O| I| '| | | + * |-----------------------------------------------------------|-----------| + * | | Z| X| M| C| V| K| L| ,| .| /| | | | | | + * |-----------------------------------------------------------|-----------| + * | ||||| | | ||||| | | | | + * *-----------------------------------------------------------------------* + */ + [_WL] = KEYMAP_TKL( \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, KC_Q , KC_D , KC_R , KC_W , KC_B , KC_J , KC_F , KC_U , KC_P , KC_SCLN, _______, _______, _______, _______, _______, _______, \ + _______, KC_A , KC_S , KC_H , KC_T , KC_G , KC_Y , KC_N , KC_E , KC_O , KC_I , _______, _______, _______, \ + _______, _______, KC_Z , KC_X , KC_M , KC_C , KC_V , KC_K , KC_L , KC_COMM, KC_DOT , KC_SLSH, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ), + + /* _NL: Norman Layer. + * .-----------------------------------------------------------------------. + * | ||||| | | | ||| | | | ||| | | | | | | | + * .-----------------------------------------------------------|-----------| + * | | | | | | | | | | | | -| =| | | | | + * |-----------------------------------------------------------|-----------| + * | | Q| W| D| F| K| J| U| R| L| ;| [| ]| \| | | | + * |-----------------------------------------------------------|-----------| + * | | A| S| E| T| G| Y| N| I| O| H| '| | | + * |-----------------------------------------------------------|-----------| + * | | Z| X| C| V| B| P| M| ,| .| /| | | | | | + * |-----------------------------------------------------------|-----------| + * | ||||| | | ||||| | | | | + * *-----------------------------------------------------------------------* + */ + [_NL] = KEYMAP_TKL( \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, KC_Q , KC_W , KC_D , KC_F , KC_K , KC_J , KC_U , KC_R , KC_L , KC_SCLN, _______, _______, _______, _______, _______, _______, \ + _______, KC_A , KC_S , KC_E , KC_T , KC_G , KC_Y , KC_N , KC_I , KC_O , KC_H , _______, _______, _______, \ + _______, _______, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_P , KC_M , KC_COMM, KC_DOT , KC_SLSH, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ), + + /* _DL: Dvorak Layer. + * .-----------------------------------------------------------------------. + * | ||||| | | | ||| | | | ||| | | | | | | | + * .-----------------------------------------------------------|-----------| + * | | | | | | | | | | | | [| ]| | | | | + * |-----------------------------------------------------------|-----------| + * | | '| ,| .| P| Y| F| G| C| R| L| /| =| \| | | | + * |-----------------------------------------------------------|-----------| + * | | A| O| E| U| I| D| H| T| N| S| -| | | + * |-----------------------------------------------------------|-----------| + * | | ;| Q| J| K| X| B| M| W| V| Z| | | | | | + * |-----------------------------------------------------------|-----------| + * | ||||| | | ||||| | | | | + * *-----------------------------------------------------------------------* + */ + [_DL] = KEYMAP_TKL( \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, _______, _______, \ + _______, KC_QUOT, KC_COMM, KC_DOT , KC_P , KC_Y , KC_F , KC_G , KC_C , KC_R , KC_L , KC_SLSH, KC_EQL , _______, _______, _______, _______, \ + _______, KC_A , KC_O , KC_E , KC_U , KC_I , KC_D , KC_H , KC_T , KC_N , KC_S , KC_MINS, _______, _______, \ + _______, _______, KC_SCLN, KC_Q , KC_J , KC_K , KC_X , KC_B , KC_M , KC_W , KC_V , KC_Z , _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ), + + /* _CL: Colmak Layer. + * .-----------------------------------------------------------------------. + * | ||||| | | | ||| | | | ||| | | | | | | | + * .-----------------------------------------------------------|-----------| + * | | | | | | | | | | | | -| =| | | | | + * |-----------------------------------------------------------|-----------| + * | | Q| W| F| P| G| J| L| U| Y| ;| [| ]| \| | | | + * |-----------------------------------------------------------|-----------| + * | | A| R| S| T| D| H| N| E| I| O| '| | | + * |-----------------------------------------------------------|-----------| + * | | Z| X| C| V| B| K| M| ,| .| /| | | | | | + * |-----------------------------------------------------------|-----------| + * | ||||| | | ||||| | | | | + * *-----------------------------------------------------------------------* + */ + [_CL] = KEYMAP_TKL( \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , KC_SCLN, _______, _______, _______, _______, _______, _______, \ + _______, KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E , KC_I , KC_O , _______, _______, _______, \ + _______, _______, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMM, KC_DOT , KC_SLSH, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ), + + /* _FL: Function Layer. + * M0 opens Chrome + * .-----------------------------------------------------------------------. + * | ||||| | | | ||| | | | ||| |VlM|VlD|VlU| | | | + * .-----------------------------------------------------------|-----------| + * | M0| | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------|-----------| + * |Fn_AL| | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------|-----------| + * |FnCaps| | | | | | |Lft|Dwn|Up |Rgt| | | | + * |-----------------------------------------------------------|-----------| + * | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------|-----------| + * | ||||| | | ||||| |WBk| |WFw| + * *-----------------------------------------------------------------------* + */ + [_FL] = KEYMAP_TKL( \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, \ + M(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + MO(_AL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, \ + XXXXXXX, XXXXXXX, KC_MENU, M(1), XXXXXXX, _______, XXXXXXX, XXXXXXX, KC_WBAK, XXXXXXX, KC_WFWD \ + ), + + /* _AL: Adjust Layer. + * Default keymap, RGB Underglow, LED backlight, and Dynamic Macro settings. + * .-----------------------------------------------------------------------. + * |Rst||||| | | | ||| | | | ||| | | | | | | | + * .-----------------------------------------------------------|-----------| + * |Ver|Tog|Mod|H- |H+ |S- |S+ |V- |V+ | |BLT|BL-|BL+| | |MR1|MP1| + * |-----------------------------------------------------------|-----------| + * |Fn_AL|_BL|_WL| | | | | | | | | | | | MS|MR2|MP2| + * |-----------------------------------------------------------|-----------| + * |FnCaps| | |_DL| | | | | | | | | | | + * |-----------------------------------------------------------|-----------| + * | | | |_CL| |_BL|_NL| | | | | | | | | | + * |-----------------------------------------------------------|-----------| + * | ||||| | | ||||| | | | | + * *-----------------------------------------------------------------------* + */ + [_AL] = KEYMAP_TKL( \ + RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + F(0), RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, XXXXXXX, BL_TOGG, BL_DEC, BL_INC, XXXXXXX, XXXXXXX, KC_DMR1, KC_DMP1, \ + _______, DF(_BL), DF(_WL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DMRS, KC_DMR2, KC_DMP2, \ + _______, XXXXXXX, XXXXXXX, DF(_DL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF(_CL), XXXXXXX, DF(_BL), DF(_NL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, \ + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ + ), +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch(id) { + case 0: + if (record->event.pressed) { + return MACRO(I(0), D(LGUI), T(R), U(LGUI), END); + } + else { + SEND_STRING("chrome.exe\n"); + return false; + } + break; + case 1: + if (record->event.pressed) { + return MACRO(I(0), T(SPC), T(SPC), T(SPC), T(SPC), END); + } + else { + return false; + } + break; + } + return MACRO_NONE; +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(0), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch (id) { + case 0: + if (record->event.pressed) { + SEND_STRING ("[QMK:" QMK_KEYBOARD ":" QMK_KEYMAP ":" QMK_VERSION "]"); + } + break; + } +} + +void matrix_init_user(void) { + #ifdef BACKLIGHT_ENABLE + backlight_level(0); + #endif +} + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + if (current_layer == layer) { + } + else { + current_layer = layer; + switch (layer) { + case 0: + backlight_level(0); + break; + case 1: + backlight_level(1); + break; + case 2: + backlight_level(1); + break; + case 3: + backlight_level(1); + break; + case 4: + backlight_level(1); + break; + case 5: + backlight_level(2); + break; + case 6: + backlight_level(3); + break; + default: + backlight_level(0); + break; + } + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // Enable Dynamic Macros. + if (!process_record_dynamic_macro(keycode, record)) { + return false; + } + return true; +} diff --git a/keyboards/gonnerd/keymaps/gam3cat/readme.md b/keyboards/gonnerd/keymaps/gam3cat/readme.md new file mode 100644 index 000000000000..181369790a59 --- /dev/null +++ b/keyboards/gonnerd/keymaps/gam3cat/readme.md @@ -0,0 +1,120 @@ +# Keymap Maintainer: Gam3cat +make gonnerd:gam3cat +## Layout Config: +2u backspace, 2.25u left shift/enter, 1.75u right shift. +2x1.5u, 1x7.0u, 2x1.5u, 3x1u bottom row. + + FN_CAPS = MO(_FL) when held, CAPS when tapped. + GRAVE_ESC + GUI = ` + GRAVE_ESC + SHIFT = ~ + +## Base Layer Selection: +(Caps+TAB+( )): (Q)WERTY, (W)orkman, (N)orman, (D)vorak, (C)olmak + +### Base Layer Options: + _BL: Base Layer, mostly standard TKL QWERTY layout. + .-----------------------------------------------------------------------. + |Esc||||| F1| F2| F3| F4||| F5| F6| F7| F8||| F9|F10|F11|F12|PSc|SLk|Pau| + |-----------------------------------------------------------|-----------| + | ~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Ins|Hom|PgU| + |-----------------------------------------------------------|-----------| + |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|Del|End|PgD| + |-----------------------------------------------------------|-----------| + |FnCaps| A| S| D| F| G| H| J| K| L| ;| '|Return | | + |-----------------------------------------------------------|-----------| + |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | Up| | + |-----------------------------------------------------------|-----------| + |Ctrl |||||Win | Space |RAlt |||||Ctrl |Lft|Dwn|Rgt| + *-----------------------------------------------------------------------* + + _WL: Workman Layer. + .-----------------------------------------------------------------------. + | ||||| | | | ||| | | | ||| | | | | | | | + .-----------------------------------------------------------|-----------| + | | | | | | | | | | | | -| =| | | | | + |-----------------------------------------------------------|-----------| + | | Q| D| R| W| B| J| F| U| P| ;| [| ]| \| | | | + |-----------------------------------------------------------|-----------| + | | A| S| H| T| G| Y| N| E| O| I| '| | | + |-----------------------------------------------------------|-----------| + | | Z| X| M| C| V| K| L| ,| .| /| | | | | | + |-----------------------------------------------------------|-----------| + | ||||| | | ||||| | | | | + *-----------------------------------------------------------------------* + + _NL: Norman Layer. + .-----------------------------------------------------------------------. + | ||||| | | | ||| | | | ||| | | | | | | | + .-----------------------------------------------------------|-----------| + | | | | | | | | | | | | -| =| | | | | + |-----------------------------------------------------------|-----------| + | | Q| W| D| F| K| J| U| R| L| ;| [| ]| \| | | | + |-----------------------------------------------------------|-----------| + | | A| S| E| T| G| Y| N| I| O| H| '| | | + |-----------------------------------------------------------|-----------| + | | Z| X| C| V| B| P| M| ,| .| /| | | | | | + |-----------------------------------------------------------|-----------| + | ||||| | | ||||| | | | | + *-----------------------------------------------------------------------* + + _DL: Dvorak Layer. + .-----------------------------------------------------------------------. + | ||||| | | | ||| | | | ||| | | | | | | | + .-----------------------------------------------------------|-----------| + | | | | | | | | | | | | [| ]| | | | | + |-----------------------------------------------------------|-----------| + | | '| ,| .| P| Y| F| G| C| R| L| /| =| \| | | | + |-----------------------------------------------------------|-----------| + | | A| O| E| U| I| D| H| T| N| S| -| | | + |-----------------------------------------------------------|-----------| + | | ;| Q| J| K| X| B| M| W| V| Z| | | | | | + |-----------------------------------------------------------|-----------| + | ||||| | | ||||| | | | | + *-----------------------------------------------------------------------* + + _CL: Colmak Layer. + .-----------------------------------------------------------------------. + | ||||| | | | ||| | | | ||| | | | | | | | + .-----------------------------------------------------------|-----------| + | | | | | | | | | | | | -| =| | | | | + |-----------------------------------------------------------|-----------| + | | Q| W| F| P| G| J| L| U| Y| ;| [| ]| \| | | | + |-----------------------------------------------------------|-----------| + | | A| R| S| T| D| H| N| E| I| O| '| | | + |-----------------------------------------------------------|-----------| + | | Z| X| C| V| B| K| M| ,| .| /| | | | | | + |-----------------------------------------------------------|-----------| + | ||||| | | ||||| | | | | + *-----------------------------------------------------------------------* + + _FL: Function Layer. + M0 opens Chrome + .-----------------------------------------------------------------------. + | ||||| | | | ||| | | | ||| |VlM|VlD|VlU| | | | + .-----------------------------------------------------------|-----------| + | M0| | | | | | | | | | | | | | | | | + |-----------------------------------------------------------|-----------| + | | | | | | | | | | | | | | | | | | + |-----------------------------------------------------------|-----------| + | | | | | | | |Lft|Dwn|Up |Rgt| | | | + |-----------------------------------------------------------|-----------| + | | | | | | | | | | | | | | | | | + |-----------------------------------------------------------|-----------| + | ||||| | | ||||| |WBk| |WFw| + *-----------------------------------------------------------------------* + + _AL: Adjust Layer. + Default keymap, RGB Underglow, LED backlight, and Dynamic Macro settings. + .-----------------------------------------------------------------------. + |Rst||||| | | | ||| | | | ||| | | | | | | | + .-----------------------------------------------------------|-----------| + |Ver|Tog|Mod|H- |H+ |S- |S+ |V- |V+ | |BLT|BL-|BL+| | |MR1|MP1| + |-----------------------------------------------------------|-----------| + |Fn_AL|_BL|_WL| | | | | | | | | | | | MS|MR2|MP2| + |-----------------------------------------------------------|-----------| + |FnCaps| | |_DL| | | | | | | | | | | + |-----------------------------------------------------------|-----------| + | | | |_CL| |_BL|_NL| | | | | | | | | | + |-----------------------------------------------------------|-----------| + | ||||| | | ||||| | | | | + *-----------------------------------------------------------------------* diff --git a/keyboards/gonnerd/keymaps/gam3cat/rules.mk b/keyboards/gonnerd/keymaps/gam3cat/rules.mk new file mode 100644 index 000000000000..a32d22e41eff --- /dev/null +++ b/keyboards/gonnerd/keymaps/gam3cat/rules.mk @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/jc65/v32u4/keymaps/gam3cat/config.h b/keyboards/jc65/v32u4/keymaps/gam3cat/config.h new file mode 100644 index 000000000000..a3819d3a59a9 --- /dev/null +++ b/keyboards/jc65/v32u4/keymaps/gam3cat/config.h @@ -0,0 +1,7 @@ +#include "../../config.h" +//GRAVE_ESC override for CTRL+SHIFT+ESC Windows task manager shortcut. +#define GRAVE_ESC_CTRL_OVERRIDE +#define PREVENT_STUCK_MODIFIERS + +//Delay matrix scan for tap dance, reduce to activate modifier keys faster. +//#define TAPPING_TERM 200 diff --git a/keyboards/jc65/v32u4/keymaps/gam3cat/keymap.c b/keyboards/jc65/v32u4/keymaps/gam3cat/keymap.c new file mode 100644 index 000000000000..57225393f6e2 --- /dev/null +++ b/keyboards/jc65/v32u4/keymaps/gam3cat/keymap.c @@ -0,0 +1,279 @@ +#include "jc65.h" +#include "version.h" + +enum layers { + _BL = 0, // Base Layer + _WL, // Workman Layer + _NL, // Norman Layer + _DL, // Dvorak Layer + _CL, // Base Layer + _FL, // Function Layer + _AL, // Adjust Layer +}; + +enum jc65_keycodes { + DYNAMIC_MACRO_RANGE = SAFE_RANGE, +}; + +#include "dynamic_macro.h" +#define _______ KC_TRNS +#define XXXXXXX KC_NO +#define FN_CAPS LT(_FL, KC_CAPS) +#define KC_DMR1 DYN_REC_START1 +#define KC_DMR2 DYN_REC_START2 +#define KC_DMP1 DYN_MACRO_PLAY1 +#define KC_DMP2 DYN_MACRO_PLAY2 +#define KC_DMRS DYN_REC_STOP + +static uint8_t current_layer; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* _BL: Base Layer, mostly standard 65% QWERTY layout. + * .---------------------------------------------------------------. + * |GrE| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Ins| + * |---------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|Del| + * |---------------------------------------------------------------| + * |FnCaps| A| S| D| F| G| H| J| K| L| ;| '|Return |PgU| + * |---------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD| + * |---------------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |RAlt |Ctrl |Lft|Dwn|Rgt| + * *---------------------------------------------------------------* + */ + [_BL] = KEYMAP( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, XXXXXXX, KC_BSPC, KC_INS, + 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_BSLS, KC_DEL, + FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* _WL: Workman Layer. + * .---------------------------------------------------------------. + * | | | | | | | | | | | | -| =| | | + * |---------------------------------------------------------------| + * | | Q| D| R| W| B| J| F| U| P| ;| [| ]| \| | + * |---------------------------------------------------------------| + * | | A| S| H| T| G| Y| N| E| O| I| '| | | + * |---------------------------------------------------------------| + * | | Z| X| M| C| V| K| L| ,| .| /| | | | + * |---------------------------------------------------------------| + * | | | | | | | | | | + * *---------------------------------------------------------------* + */ + [_WL] = KEYMAP( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_Q , KC_D , KC_R , KC_W , KC_B , KC_J , KC_F , KC_U , KC_P , KC_SCLN, _______, _______, _______, _______, + _______, KC_A , KC_S , KC_H , KC_T , KC_G , KC_Y , KC_N , KC_E , KC_O , KC_I , _______, _______, _______, + _______, _______, KC_Z , KC_X , KC_M , KC_C , KC_V , KC_K , KC_L , KC_COMM, KC_DOT , KC_SLSH, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* _NL: Norman Layer. + * .---------------------------------------------------------------. + * | | | | | | | | | | | | -| =| | | + * |---------------------------------------------------------------| + * | | Q| W| D| F| K| J| U| R| L| ;| [| ]| \| | + * |---------------------------------------------------------------| + * | | A| S| E| T| G| Y| N| I| O| H| '| | | + * |---------------------------------------------------------------| + * | | Z| X| C| V| B| P| M| ,| .| /| | | | + * |---------------------------------------------------------------| + * | | | | | | | | | | + * *---------------------------------------------------------------* + */ + [_NL] = KEYMAP( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_Q , KC_W , KC_D , KC_F , KC_K , KC_J , KC_U , KC_R , KC_L , KC_SCLN, _______, _______, _______, _______, + _______, KC_A , KC_S , KC_E , KC_T , KC_G , KC_Y , KC_N , KC_I , KC_O , KC_H , _______, _______, _______, + _______, _______, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_P , KC_M , KC_COMM, KC_DOT , KC_SLSH, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* _DL: Dvorak Layer. + * .---------------------------------------------------------------. + * | | | | | | | | | | | | [| ]| | | + * |---------------------------------------------------------------| + * | | '| ,| .| P| Y| F| G| C| R| L| /| =| \| | + * |---------------------------------------------------------------| + * | | A| O| E| U| I| D| H| T| N| S| -| | | + * |---------------------------------------------------------------| + * | | ;| Q| J| K| X| B| M| W| V| Z| | | | + * |---------------------------------------------------------------| + * | | | | | | | | | | + * *---------------------------------------------------------------* + */ + [_DL] = KEYMAP( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, _______, + _______, KC_QUOT, KC_COMM, KC_DOT , KC_P , KC_Y , KC_F , KC_G , KC_C , KC_R , KC_L , KC_SLSH, KC_EQL , _______, _______, + _______, KC_A , KC_O , KC_E , KC_U , KC_I , KC_D , KC_H , KC_T , KC_N , KC_S , KC_MINS, _______, _______, + _______, _______, KC_SCLN, KC_Q , KC_J , KC_K , KC_X , KC_B , KC_M , KC_W , KC_V , KC_Z , _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* _CL: Colmak Layer. + * .---------------------------------------------------------------. + * | | | | | | | | | | | | -| =| | | + * |---------------------------------------------------------------| + * | | Q| W| F| P| G| J| L| U| Y| ;| [| ]| \| | + * |---------------------------------------------------------------| + * | | A| R| S| T| D| H| N| E| I| O| '| | | + * |---------------------------------------------------------------| + * | | Z| X| C| V| B| K| M| ,| .| /| | | | + * |---------------------------------------------------------------| + * | | | | | | | | | | + * *---------------------------------------------------------------* + */ + [_CL] = KEYMAP( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , KC_SCLN, _______, _______, _______, _______, + _______, KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E , KC_I , KC_O , _______, _______, _______, + _______, _______, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMM, KC_DOT , KC_SLSH, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* _FL: Function Layer. + * M0 opens Chrome + * .---------------------------------------------------------------. + * |M0 | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|SLock |PSc| + * |---------------------------------------------------------------| + * |Fn_AL| | | | | | | | | | | | | |Pau| + * |---------------------------------------------------------------| + * |FnCaps| | | | | |Lft|Dwn|Up |Rgt| | | |Hme| + * |---------------------------------------------------------------| + * | | | | | | | | | | | |VlMute|VlU|End| + * |---------------------------------------------------------------| + * | | |Menu| | | |WBk|VlD|WFw| + * *---------------------------------------------------------------* + */ + [_FL] = KEYMAP( + M(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, KC_SLCK, KC_PSCR, + MO(_AL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PAUS, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE, KC_VOLU, KC_END, + XXXXXXX, XXXXXXX, KC_MENU, M(1), M(1), M(1), XXXXXXX, XXXXXXX, XXXXXXX, KC_WBAK, KC_VOLD, KC_WFWD + ), + + /* _AL: Adjust Layer. + * Default keymap, RGB Underglow, LED backlight, and Dynamic Macro settings. + * .---------------------------------------------------------------. + * |Ver|Tog|Mod|H- |H+ |S- |S+ |V- |V+ | |BLT|BL-|BL+| |MP1| + * |---------------------------------------------------------------| + * |Fn_AL|_BL|_WL| | | | | | | | | | | |MR1| + * |---------------------------------------------------------------| + * |FnCaps| | |_DL| | | | | | | | | |MS | + * |---------------------------------------------------------------| + * | | | |_CL| |_BL|_NL| | | | | | |MR2| + * |---------------------------------------------------------------| + * |Rst | | | | | | | |MP2| + * *---------------------------------------------------------------* + */ + [_AL] = KEYMAP( + F(0), RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, XXXXXXX, BL_TOGG, BL_DEC, BL_INC, XXXXXXX, XXXXXXX, KC_DMP1, + _______, DF(_BL), DF(_WL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DMR1, + _______, XXXXXXX, XXXXXXX, DF(_DL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DMRS, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF(_CL), XXXXXXX, DF(_BL), DF(_NL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DMR2, + RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DMP2 + ), +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch(id) { + case 0: + if (record->event.pressed) { + return MACRO(I(0), D(LGUI), T(R), U(LGUI), END); + } + else { + SEND_STRING("chrome.exe https://geekhack.org/index.php?topic=86756.new;topicseen#new\n"); + return false; + } + break; + case 1: + if (record->event.pressed) { + return MACRO(I(0), T(SPC), T(SPC), T(SPC), T(SPC), END); + } + else { + return false; + } + break; + } + return MACRO_NONE; +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(0), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch (id) { + case 0: + if (record->event.pressed) { + SEND_STRING ("[QMK:" QMK_KEYBOARD ":" QMK_KEYMAP ":" QMK_VERSION "]"); + } + break; + } +} + +void matrix_init_user(void) { + #ifdef BACKLIGHT_ENABLE + backlight_level(0); + #endif + #ifdef RGBLIGHT_ENABLE + rgblight_mode(1); + rgblight_sethsv(180,100,100); + #endif +} + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + if (current_layer == layer) { + } + else { + current_layer = layer; + switch (layer) { + case 0: + backlight_level(0); + rgblight_sethsv(180,100,255); + break; + case 1: + backlight_level(1); + rgblight_sethsv(180,95,240); + break; + case 2: + backlight_level(1); + rgblight_sethsv(180,90,225); + break; + case 3: + backlight_level(1); + rgblight_sethsv(180,85,210); + break; + case 4: + backlight_level(1); + rgblight_sethsv(180,80,195); + break; + case 5: + backlight_level(2); + rgblight_sethsv(230,255,255); + break; + case 6: + backlight_level(3); + rgblight_sethsv(350,255,255); + break; + default: + backlight_level(0); + rgblight_sethsv(180,100,100); + break; + } + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // Enable Dynamic Macros. + if (!process_record_dynamic_macro(keycode, record)) { + return false; + } + return true; +} diff --git a/keyboards/jc65/v32u4/keymaps/gam3cat/readme.md b/keyboards/jc65/v32u4/keymaps/gam3cat/readme.md new file mode 100644 index 000000000000..88b65dbbb7bd --- /dev/null +++ b/keyboards/jc65/v32u4/keymaps/gam3cat/readme.md @@ -0,0 +1,109 @@ +# Keymap Maintainer: Gam3cat +make jc65/v32u4:gam3cat +## Layout Config: +2u backspace, 2.25u left shift/enter, 1.75u right shift. +(2x1.5u, 1x7.0u, 2x1.5u, 3x1u), (3x1.25u, 1x6.25u, 2x1.5u, 3x1u), or +(3x1.25u, 1x6.25u, 6x1u) bottom row. + + FN_CAPS = MO(_FL) when held, CAPS when tapped. + GRAVE_ESC + GUI = ` + GRAVE_ESC + SHIFT = ~ + +## Base Layer Selection: +(Caps+TAB+( )): (Q)WERTY, (W)orkman, (N)orman, (D)vorak, (C)olmak + +### Base Layer Options: +#### _BL: Base Layer, mostly standard 65% QWERTY layout. + .---------------------------------------------------------------. + |GrE| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Ins| + |---------------------------------------------------------------| + |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|Del| + |---------------------------------------------------------------| + |FnCaps| A| S| D| F| G| H| J| K| L| ;| '|Return |PgU| + |---------------------------------------------------------------| + |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD| + |---------------------------------------------------------------| + |Ctrl|Gui |Alt | Space |RAlt |Ctrl |Lft|Dwn|Rgt| + *---------------------------------------------------------------* + +#### _WL: Workman Layer. + .---------------------------------------------------------------. + | | | | | | | | | | | | -| =| | | + |---------------------------------------------------------------| + | | Q| D| R| W| B| J| F| U| P| ;| [| ]| \| | + |---------------------------------------------------------------| + | | A| S| H| T| G| Y| N| E| O| I| '| | | + |---------------------------------------------------------------| + | | Z| X| M| C| V| K| L| ,| .| /| | | | + |---------------------------------------------------------------| + | | | | | | | | | | + *---------------------------------------------------------------* + +#### _NL: Norman Layer. + .---------------------------------------------------------------. + | | | | | | | | | | | | -| =| | | + |---------------------------------------------------------------| + | | Q| W| D| F| K| J| U| R| L| ;| [| ]| \| | + |---------------------------------------------------------------| + | | A| S| E| T| G| Y| N| I| O| H| '| | | + |---------------------------------------------------------------| + | | Z| X| C| V| B| P| M| ,| .| /| | | | + |---------------------------------------------------------------| + | | | | | | | | | | + *---------------------------------------------------------------* + +#### _DL: Dvorak Layer. + .---------------------------------------------------------------. + | | | | | | | | | | | | [| ]| | | + |---------------------------------------------------------------| + | | '| ,| .| P| Y| F| G| C| R| L| /| =| \| | + |---------------------------------------------------------------| + | | A| O| E| U| I| D| H| T| N| S| -| | | + |---------------------------------------------------------------| + | | ;| Q| J| K| X| B| M| W| V| Z| | | | + |---------------------------------------------------------------| + | | | | | | | | | | + *---------------------------------------------------------------* + +#### _CL: Colmak Layer. + .---------------------------------------------------------------. + | | | | | | | | | | | | -| =| | | + |---------------------------------------------------------------| + | | Q| W| F| P| G| J| L| U| Y| ;| [| ]| \| | + |---------------------------------------------------------------| + | | A| R| S| T| D| H| N| E| I| O| '| | | + |---------------------------------------------------------------| + | | Z| X| C| V| B| K| M| ,| .| /| | | | + |---------------------------------------------------------------| + | | | | | | | | | | + *---------------------------------------------------------------* + +### Function Layer: (hold Caps to access) + M0 opens Chrome +#### _FL: Function Layer. + .---------------------------------------------------------------. + |M0 | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|SLock |PSc| + |---------------------------------------------------------------| + |Fn_AL| | | | | | | | | | | | | |Pau| + |---------------------------------------------------------------| + |FnCaps| | | | | |Lft|Dwn|Up |Rgt| | | |Hme| + |---------------------------------------------------------------| + | | | | | | | | | | | |VlMute|VlU|End| + |---------------------------------------------------------------| + | | |Menu| | | |WBk|VlD|WFw| + *---------------------------------------------------------------* + +### Adjust Layer: (hold Caps+TAB to access) + Default keymap, RGB Underglow, LED backlight, and Dynamic Macro settings. +#### _AL: Adjust Layer. + .---------------------------------------------------------------. + |Ver|Tog|Mod|H- |H+ |S- |S+ |V- |V+ | |BLT|BL-|BL+| |MP1| + |---------------------------------------------------------------| + |Fn_AL|_BL|_WL| | | | | | | | | | | |MR1| + |---------------------------------------------------------------| + |FnCaps| | |_DL| | | | | | | | | |MS | + |---------------------------------------------------------------| + | | | |_CL| |_BL|_NL| | | | | | |MR2| + |---------------------------------------------------------------| + |Rst | | | | | | | |MP2| + *---------------------------------------------------------------* diff --git a/keyboards/jc65/v32u4/keymaps/gam3cat/rules.mk b/keyboards/jc65/v32u4/keymaps/gam3cat/rules.mk new file mode 100644 index 000000000000..c0a3ac69c3aa --- /dev/null +++ b/keyboards/jc65/v32u4/keymaps/gam3cat/rules.mk @@ -0,0 +1,6 @@ +ifndef QUANTUM_DIR + include ../../../../Makefile +endif + +BACKLIGHT_ENABLE=yes +//TAP_DANCE_ENABLE=yes diff --git a/keyboards/m10a/keymaps/gam3cat/config.h b/keyboards/m10a/keymaps/gam3cat/config.h new file mode 100644 index 000000000000..73bc50bc2dd5 --- /dev/null +++ b/keyboards/m10a/keymaps/gam3cat/config.h @@ -0,0 +1,2 @@ +#include "../../config.h" +#define PREVENT_STUCK_MODIFIERS diff --git a/keyboards/m10a/keymaps/gam3cat/keymap.c b/keyboards/m10a/keymaps/gam3cat/keymap.c new file mode 100644 index 000000000000..8f4c878da5e0 --- /dev/null +++ b/keyboards/m10a/keymaps/gam3cat/keymap.c @@ -0,0 +1,161 @@ +#include "m10a.h" +#include "action_layer.h" +#include "eeconfig.h" +#include "version.h" + +extern keymap_config_t keymap_config; + +enum layers { + _L0 = 0, + _L1, + _L2, + _L3, + _L4, + _L5, + _L6, + _L7, + _L8, + _L9 +}; + +enum m10a_keycodes { + DYNAMIC_MACRO_RANGE = SAFE_RANGE, +}; + +#include "dynamic_macro.h" +#define _______ KC_TRNS +#define XXXXXXX KC_NO +#define FN_ZERO LT(_L9, KC_0) +#define KC_DMR1 DYN_REC_START1 +#define KC_DMR2 DYN_REC_START2 +#define KC_DMP1 DYN_MACRO_PLAY1 +#define KC_DMP2 DYN_MACRO_PLAY2 +#define KC_DMRS DYN_REC_STOP + +static uint8_t current_layer; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* .-----------. .-----------. .-----------. .-----------. .-----------. + * | 7| 8| 9| | +| -| *| | ^| &| !| |VLU|Ver|WFD| |VLU|NXT|FFD| + * |-----------| |-----------| |-----------| |-----------| |-----------| + * | 4| 5| 6| | /| %| ,| | D| E| F| |MUT|C-W|CHR| |MUT|STP|PLY| + * |-----------| |-----------| |-----------| |-----------| |-----------| + * | 1| 2| 3| | .| =|Ent| | A| B| C| |VLD|CMP|WBK| |VLD|PRV|RWD| + * |-----------| |-----------| |-----------| |-----------| |-----------| + * |L0 | _L9/0| |L1 | _L9 | |L2 | _L9 | |L3 | _L9 | |L4 | _L9 | + * *-----------* *-----------* *-----------* *-----------* *-----------* + * .-----------. .-----------. .-----------. .-----------. .-----------. + * | | | | | | | | |MP1| |MP2| | | |RST| |_L6|_L7|_L8| + * |-----------| |-----------| |-----------| |-----------| |-----------| + * | | | | | | | | | |MRS| | | | | | |_L3|_L4|_L5| + * |-----------| |-----------| |-----------| |-----------| |-----------| + * | | | | | | | | |MR1| |MR2| | | | | |_L0|_L1|_L2| + * |-----------| |-----------| |-----------| |-----------| |-----------| + * |L5 | _L9 | |L6 | _L9 | |L7 | _L9 | |L8 | _L9 | |L9 | | + * *-----------* *-----------* *-----------* *-----------* *-----------* + */ + [_L0] = {{KC_7, KC_8, KC_9 }, {KC_4, KC_5, KC_6 }, {KC_1, KC_2, KC_3 }, {XXXXXXX, XXXXXXX, FN_ZERO}}, + [_L1] = {{KC_PPLS, KC_PMNS, KC_PAST}, {KC_PSLS, KC_PERC, KC_COMM}, {KC_PDOT, KC_EQL, KC_PENT}, {XXXXXXX, XXXXXXX, MO(_L9)}}, + [_L2] = {{KC_CIRC, KC_AMPR, KC_EXLM}, {S(KC_D), S(KC_E), S(KC_F)}, {S(KC_A), S(KC_B), S(KC_C)}, {XXXXXXX, XXXXXXX, MO(_L9)}}, + [_L3] = {{KC_VOLU, F(0), KC_WFWD}, {KC_MUTE, M(1), M(0) }, {KC_VOLD, KC_MYCM, KC_WBAK}, {XXXXXXX, XXXXXXX, MO(_L9)}}, + [_L4] = {{KC_VOLU, KC_MNXT, KC_MFFD}, {KC_MUTE, KC_MSTP, KC_MPLY}, {KC_VOLD, KC_MPRV, KC_MRWD}, {XXXXXXX, XXXXXXX, MO(_L9)}}, + [_L5] = {{_______, _______, _______}, {_______, _______, _______}, {_______, _______, _______}, {XXXXXXX, XXXXXXX, MO(_L9)}}, + [_L6] = {{_______, _______, _______}, {_______, _______, _______}, {_______, _______, _______}, {XXXXXXX, XXXXXXX, MO(_L9)}}, + [_L7] = {{KC_DMP1, _______, KC_DMP2}, {_______, KC_DMRS, _______}, {KC_DMR1, _______, KC_DMR2}, {XXXXXXX, XXXXXXX, MO(_L9)}}, + [_L8] = {{_______, _______, RESET }, {_______, _______, _______}, {_______, _______, _______}, {XXXXXXX, XXXXXXX, MO(_L9)}}, + [_L9] = {{DF(_L6), DF(_L7), DF(_L8)}, {DF(_L3), DF(_L4), DF(_L5)}, {DF(_L0), DF(_L1), DF(_L2)}, {XXXXXXX, XXXXXXX, _______}}, +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch(id) { + case 0: + if (record->event.pressed) { + return MACRO(I(10), D(LGUI), T(R), U(LGUI), END); + } + else { + SEND_STRING("chrome.exe\n"); + return false; + } + break; + case 1: + if (record->event.pressed) { + return MACRO(I(10), D(LCTL), T(W), U(LCTL), END); + } + break; + } + return MACRO_NONE; +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(0), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch (id) { + case 0: + if (record->event.pressed) { + SEND_STRING ("[Keyboard: " QMK_KEYBOARD "] -- [QMK Version: " QMK_VERSION "] -- [Keymap: " QMK_KEYMAP "]"); + } + break; + } +} + +void matrix_init_user(void) { + #ifdef BACKLIGHT_ENABLE + backlight_level(0); + #endif +} + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + if (current_layer == layer) { + } + else { + current_layer = layer; + switch (layer) { + case 0: + backlight_level(0); + break; + case 1: + backlight_level(1); + break; + case 2: + backlight_level(2); + break; + case 3: + backlight_level(3); + break; + case 4: + backlight_level(4); + break; + case 5: + backlight_level(5); + break; + case 6: + backlight_level(6); + break; + case 7: + backlight_level(6); + break; + case 8: + backlight_level(6); + break; + case 9: + backlight_level(0); + break; + default: + backlight_level(0); + break; + } + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // Enable Dynamic Macros. + if (!process_record_dynamic_macro(keycode, record)) { + return false; + } + return true; +} diff --git a/keyboards/m10a/keymaps/gam3cat/readme.md b/keyboards/m10a/keymaps/gam3cat/readme.md new file mode 100644 index 000000000000..879a6c5a3771 --- /dev/null +++ b/keyboards/m10a/keymaps/gam3cat/readme.md @@ -0,0 +1,21 @@ +# Keymap Maintainer: Gam3cat +make m10a:gam3cat +## Layout Config: + .-----------. .-----------. .-----------. .-----------. .-----------. + | 7| 8| 9| | +| -| *| | ^| &| !| |VLU|Ver|WFD| |VLU|NXT|FFD| + |-----------| |-----------| |-----------| |-----------| |-----------| + | 4| 5| 6| | /| %| ,| | D| E| F| |MUT|C-W|CHR| |MUT|STP|PLY| + |-----------| |-----------| |-----------| |-----------| |-----------| + | 1| 2| 3| | .| =|Ent| | A| B| C| |VLD|CMP|WBK| |VLD|PRV|RWD| + |-----------| |-----------| |-----------| |-----------| |-----------| + |L0 | _L9/0| |L1 | _L9 | |L2 | _L9 | |L3 | _L9 | |L4 | _L9 | + *-----------* *-----------* *-----------* *-----------* *-----------* + .-----------. .-----------. .-----------. .-----------. .-----------. + | | | | | | | | |MP1| |MP2| | | |RST| |_L6|_L7|_L8| + |-----------| |-----------| |-----------| |-----------| |-----------| + | | | | | | | | | |MRS| | | | | | |_L3|_L4|_L5| + |-----------| |-----------| |-----------| |-----------| |-----------| + | | | | | | | | |MR1| |MR2| | | | | |_L0|_L1|_L2| + |-----------| |-----------| |-----------| |-----------| |-----------| + |L5 | _L9 | |L6 | _L9 | |L7 | _L9 | |L8 | _L9 | |L9 | | + *-----------* *-----------* *-----------* *-----------* *-----------* diff --git a/keyboards/m10a/keymaps/gam3cat/rules.mk b/keyboards/m10a/keymaps/gam3cat/rules.mk new file mode 100644 index 000000000000..457a3d01d4a4 --- /dev/null +++ b/keyboards/m10a/keymaps/gam3cat/rules.mk @@ -0,0 +1,3 @@ +ifndef QUANTUM_DIR + include ../../../../Makefile +endif From 7f7f763598b7be7b2081a73be2124f40349d8032 Mon Sep 17 00:00:00 2001 From: Brian Choromanski Date: Thu, 1 Mar 2018 10:45:47 -0500 Subject: [PATCH 005/578] Fixed dead links (#2451) * Fixed typo of 'confid.h' to 'config.h' * Fixed broken links in docs * Fixed a lot of dead links --- docs/feature_mouse_keys.md | 2 +- docs/glossary.md | 2 +- docs/understanding_qmk.md | 6 +++--- keyboards/crawlpad/readme.md | 2 +- keyboards/ergodox_ez/keymaps/bepo_tm_style/readme.md | 2 +- keyboards/fc980c/README.md | 2 +- keyboards/handwired/CMD60/README.md | 2 +- keyboards/handwired/fivethirteen/README.md | 2 +- keyboards/handwired/gamenum/README.md | 2 +- keyboards/handwired/minorca/readme.md | 2 +- keyboards/handwired/reddot/readme.md | 2 +- keyboards/handwired/traveller/readme.md | 2 +- keyboards/jd40/readme.md | 2 +- keyboards/kinesis/alvicstep/readme.md | 2 +- keyboards/kinesis/stapelberg/readme.md | 10 +++------- keyboards/kmac/readme.md | 2 +- keyboards/lets_split/readme.md | 2 +- keyboards/lfkeyboards/lfkpad/readme.md | 2 +- keyboards/mitosis/readme.md | 2 +- keyboards/nyquist/keymaps/333fred/README.md | 2 +- keyboards/planck/keymaps/grahampheath/readme.md | 2 +- keyboards/readme.md | 2 +- keyboards/roadkit/readme.md | 2 +- keyboards/s60_x/keymaps/custom/readme.md | 2 +- keyboards/s60_x/keymaps/hasu/readme.md | 2 +- keyboards/s60_x/keymaps/hhkb/readme.md | 2 +- keyboards/s60_x/keymaps/plain/readme.md | 2 +- keyboards/s60_x/keymaps/poker/readme.md | 4 ++-- keyboards/s60_x/keymaps/poker_bit/readme.md | 4 ++-- keyboards/s60_x/keymaps/poker_set/readme.md | 4 ++-- keyboards/s60_x/keymaps/spacefn/readme.md | 2 +- keyboards/tada68/readme.md | 2 +- keyboards/tv44/readme.md | 2 +- layouts/community/ergodox/ab/readme.md | 2 +- layouts/community/ergodox/belak/README.md | 4 ++-- layouts/community/ergodox/familiar/README.md | 4 ++-- layouts/community/ergodox/ordinary/readme.md | 2 +- layouts/community/ergodox/supercoder/readme.md | 3 +-- layouts/community/ergodox/tm2030/readme.md | 2 +- layouts/community/ergodox/townk_osx/readme.md | 2 +- .../protocol/usb_hid/USB_Host_Shield_2.0/README.md | 10 +++++----- .../examples/testusbhostFAT/README.md | 2 +- tmk_core/readme.md | 4 ++-- 43 files changed, 57 insertions(+), 62 deletions(-) diff --git a/docs/feature_mouse_keys.md b/docs/feature_mouse_keys.md index 9e7df929edfe..673eafaef5e0 100644 --- a/docs/feature_mouse_keys.md +++ b/docs/feature_mouse_keys.md @@ -40,7 +40,7 @@ You can use these keycodes within your keymap to map button presses to mouse act |`KC_MS_ACCEL1` |`KC_ACL1`|Set mouse acceleration to 1| |`KC_MS_ACCEL2` |`KC_ACL2`|Set mouse acceleration to 2| -You can see an example in the `_ML` here: https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/keymaps/mouse_keys/keymap.c#L46 +You can see an example in the `_ML` here: https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/66/keymaps/mouse_keys/keymap.c#L46 ## Configuring the Behavior of Mousekeys diff --git a/docs/glossary.md b/docs/glossary.md index c8c54d6dedab..754c1469e333 100644 --- a/docs/glossary.md +++ b/docs/glossary.md @@ -4,7 +4,7 @@ A line of 32-bit MCU's produced by a number of companies, such as Atmel, Cypress, Kinetis, NXP, ST, and TI. ## AVR -A line of 8-bit MCU's produced by [Atmel](http://atmel.com). AVR was the original platform that TMK supported. +A line of 8-bit MCU's produced by [Atmel](http://www.microchip.com/). AVR was the original platform that TMK supported. ## AZERTY The standard Français (French) keyboard layout. Named for the first 6 keys on the keyboard. diff --git a/docs/understanding_qmk.md b/docs/understanding_qmk.md index 13b6e2ef63f9..4544cb260299 100644 --- a/docs/understanding_qmk.md +++ b/docs/understanding_qmk.md @@ -77,7 +77,7 @@ At the keyboard level we define a C macro (typically named `KEYMAP()`) which map Notice how the second block of our `KEYMAP()` macro matches the Matrix Scanning array above? This macro is what will map the matrix scanning array to keycodes. However, if you look at a 17 key numpad you'll notice that it has 3 places where the matrix could have a switch but doesn't, due to larger keys. We have populated those spaces with `KC_NO` so that our keymap definition doesn't have to. -You can also use this macro to handle unusual matrix layouts, for example the [Clueboard rev 2](https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/rev2/rev2.h). Explaining that is outside the scope of this document. +You can also use this macro to handle unusual matrix layouts, for example the [Clueboard rev 2](https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/66/rev2/rev2.h). Explaining that is outside the scope of this document. ##### Keycode Assignment @@ -135,8 +135,8 @@ The `process_record()` function itself is deceptively simple, but hidden within * [`void process_record(keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/action.c#L128) * [`bool process_record_quantum(keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/master/quantum/quantum.c#L140) * [Map this record to a keycode](https://github.com/qmk/qmk_firmware/blob/master/quantum/quantum.c#L143) - * [`bool process_record_kb(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/master/keyboards/cluecard/cluecard.c#L20) - * [`bool process_record_user(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/master/keyboards/cluecard/keymaps/default/keymap.c#L58) + * [`bool process_record_kb(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/card/card.c#L20) + * [`bool process_record_user(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/card/keymaps/default/keymap.c#L58) * [`bool process_midi(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/master/quantum/process_keycode/process_midi.c#L102) * [`bool process_audio(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/master/quantum/process_keycode/process_audio.c#L10) * [`bool process_music(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/master/quantum/process_keycode/process_music.c#L69) diff --git a/keyboards/crawlpad/readme.md b/keyboards/crawlpad/readme.md index 98d04bfada62..0bdc0f172240 100644 --- a/keyboards/crawlpad/readme.md +++ b/keyboards/crawlpad/readme.md @@ -14,4 +14,4 @@ Make example for this keyboard (after setting up your build environment): See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. -For those that prefer a GUI tool, the crawlpad.json file in this repo can be used on [kbfirmware.com](http://kbfirmware.com]. \ No newline at end of file +For those that prefer a GUI tool, the crawlpad.json file in this repo can be used on [kbfirmware.com](http://kbfirmware.com). \ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/bepo_tm_style/readme.md b/keyboards/ergodox_ez/keymaps/bepo_tm_style/readme.md index d24e66c864f4..5571f120cc42 100755 --- a/keyboards/ergodox_ez/keymaps/bepo_tm_style/readme.md +++ b/keyboards/ergodox_ez/keymaps/bepo_tm_style/readme.md @@ -19,4 +19,4 @@ make ergodox_ez:bepo_tm_style:all ## Debug See https://github.com/tmk/tmk_keyboard#magic-commands for command that can help -debug, together with the hid_listen tool (https://docs.qmk.fm/faq_debug.html). \ No newline at end of file +debug, together with the [hid_listen tool](https://docs.qmk.fm/faq_debug.html). \ No newline at end of file diff --git a/keyboards/fc980c/README.md b/keyboards/fc980c/README.md index 10d84a096184..16ad9021cde1 100644 --- a/keyboards/fc980c/README.md +++ b/keyboards/fc980c/README.md @@ -155,8 +155,8 @@ Datasheets - AD5258: http://www.analog.com/media/en/technical-documentation/data-sheets/AD5258.pdf - JST S5B-PH-SM4: http://www.jst-mfg.com/product/pdf/eng/ePH.pdf - Hirose UX60SC-MB-5S8: https://www.hirose.com/product/en/products/UX/UX60SC-MB-5S8%2880%29/ -- TYU TU1252WNR-05S: http://php2.twinner.com.tw/files/tyu/TU1252series.pdf - Tr(E42) for LED?: http://cj-elec.com/txUpfile/2013614923661845.pdf +- TYU TU1252WNR-05S: http://php2.twinner.com.tw/files/goodjob/TY1252series.pdf 3.3V power supply diff --git a/keyboards/handwired/CMD60/README.md b/keyboards/handwired/CMD60/README.md index 83e371543ec7..8b0dd109f654 100644 --- a/keyboards/handwired/CMD60/README.md +++ b/keyboards/handwired/CMD60/README.md @@ -10,7 +10,7 @@ achieve a higher level of productivity if you take the time to learn its functio ## Quantum MK Firmware -For the full Quantum feature list, see [the parent readme.md](/doc/readme.md). +For the full Quantum feature list, see [the parent readme.md](/docs/README.md). ## Building diff --git a/keyboards/handwired/fivethirteen/README.md b/keyboards/handwired/fivethirteen/README.md index b2e13cd6dc8c..a965650fc6b7 100644 --- a/keyboards/handwired/fivethirteen/README.md +++ b/keyboards/handwired/fivethirteen/README.md @@ -3,7 +3,7 @@ fivethirteen keyboard firmware ## Quantum MK Firmware -For the full Quantum feature list, see [the parent readme.md](/doc/readme.md). +For the full Quantum feature list, see [the parent readme.md](/doc/README.md). ## Building diff --git a/keyboards/handwired/gamenum/README.md b/keyboards/handwired/gamenum/README.md index 5b53004efd43..bf8045be191a 100644 --- a/keyboards/handwired/gamenum/README.md +++ b/keyboards/handwired/gamenum/README.md @@ -76,7 +76,7 @@ This is the code for the KC_FN1 button. Notice how we check against what key is ## Quantum MK Firmware -For the full Quantum feature list, see [the parent readme.md](/doc/readme.md). +For the full Quantum feature list, see [the parent readme.md](/docs/README.md). ## Building diff --git a/keyboards/handwired/minorca/readme.md b/keyboards/handwired/minorca/readme.md index 93c767954ddd..0253506e09a6 100644 --- a/keyboards/handwired/minorca/readme.md +++ b/keyboards/handwired/minorca/readme.md @@ -30,4 +30,4 @@ Keymaps follow the format **__\.c__** and are stored in the `keymaps` fol - [Shane's Fork](https://github.com/shanecelis/tmk_keyboard/tree/master/keyboard/planck) - [Pierre's Fork](https://github.com/pcarrier/tmk_keyboard/blob/pcarrier/planck/keyboard/gh60/keymap_planck.c) - [Nathan's Fork](https://github.com/nathanrosspowell/tmk_keyboard/tree/planck-jack/keyboard/planck) -- [Matthew's Fork](https://github.com/pepers/tmk_keyboard/tree/master/keyboard/planck_grid) +- [Matthew's Fork](https://github.com/pepers/tmk_keyboard/tree/master/keyboard/planck) diff --git a/keyboards/handwired/reddot/readme.md b/keyboards/handwired/reddot/readme.md index 11bcba54ad37..8cdbb47d6631 100755 --- a/keyboards/handwired/reddot/readme.md +++ b/keyboards/handwired/reddot/readme.md @@ -3,7 +3,7 @@ ## Quantum MK Firmware -For the full Quantum feature list, see [the parent README.md](/README.md). +For the full Quantum feature list, see [the parent README.md](/readme.md). ## Building diff --git a/keyboards/handwired/traveller/readme.md b/keyboards/handwired/traveller/readme.md index 646844b1d7da..0be53a9628c5 100644 --- a/keyboards/handwired/traveller/readme.md +++ b/keyboards/handwired/traveller/readme.md @@ -14,7 +14,7 @@ You can make your own traveller keyboard by using the openscad tools from the a ## Quantum MK Firmware -For the full Quantum feature list, see [the parent README.md](/README.md). +For the full Quantum feature list, see [the parent README.md](/readme.md). ## Building diff --git a/keyboards/jd40/readme.md b/keyboards/jd40/readme.md index 6934e54d41e4..c5ab42ed052c 100644 --- a/keyboards/jd40/readme.md +++ b/keyboards/jd40/readme.md @@ -5,7 +5,7 @@ A compact 40% keyboard. Keyboard Maintainer: QMK Community Hardware Supported: JD40 PCB -Hardware Availability: [1up](https://1upkeyboards.com/jd40-mkii-1up-keyboards-logo-pcb.html) [mechanicalkeyboards.com](https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=2452) [originative](https://originative.co/products/jd40-pcb) +Hardware Availability: [1up](https://1upkeyboards.com/jd40-mkii-1up-keyboards-logo-pcb.html) [mechanicalkeyboards.com](https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=2452) [originative](https://www.originativeco.com/products/jd40-pcb) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/kinesis/alvicstep/readme.md b/keyboards/kinesis/alvicstep/readme.md index 974e42e50681..810a7aba16ab 100644 --- a/keyboards/kinesis/alvicstep/readme.md +++ b/keyboards/kinesis/alvicstep/readme.md @@ -23,7 +23,7 @@ Not yet implemented: ## Quantum MK Firmware -For the full Quantum feature list, see [the parent readme.md](/doc/readme.md). +For the full Quantum feature list, see [the parent readme.md](/docs/README.md). ## Building diff --git a/keyboards/kinesis/stapelberg/readme.md b/keyboards/kinesis/stapelberg/readme.md index 1a408a15f8b8..0dcb7c283f35 100644 --- a/keyboards/kinesis/stapelberg/readme.md +++ b/keyboards/kinesis/stapelberg/readme.md @@ -26,18 +26,18 @@ If you want to perform this customization, these parts may be helpful. | Reset cables | 2 | Sparkfun | PRT-09140 | The board and connections are shown here -![](images/controller_board.jpg) +![controller board](https://i.imgur.com/2ZPMwvZ.jpg) The Teensy mounting detail can be seen here. I used a socket for prototyping. -![](images/teensy_detail.jpg) +![teensy detail](https://i.imgur.com/HrkGUjc.jpg) Since the proper mounting of the Teensy board places the reset button in a tight space, I added a 2-pin header to the reset and ground pins on the edge of the board. Shorting these two pins together will reset the board. I also put female to male header jumper cables on these so they could be accessed outside the enclosure. The exterior cables can be seen here. -![](images/exterior_reset.jpg) +![exterior reset](https://i.imgur.com/JNoxI40.jpg) ## Keymaps @@ -52,7 +52,3 @@ To build with the default keymap, run `make default` while in the This keymap contains a dvorak implementation as well as media and symbol layers. Run `make dvorak` while in the `kinesis_stapelberg` working directory. - -![controller board](https://i.imgur.com/2ZPMwvZ.jpg) -![exterior reset](https://i.imgur.com/JNoxI40.jpg) -![teensy detail](https://i.imgur.com/HrkGUjc.jpg) \ No newline at end of file diff --git a/keyboards/kmac/readme.md b/keyboards/kmac/readme.md index e7d97778f680..fccf902cab0e 100644 --- a/keyboards/kmac/readme.md +++ b/keyboards/kmac/readme.md @@ -33,7 +33,7 @@ A [keymap](keymaps/winkeyless) for the winkeyless version of the PCB are also pr ### Custom keymaps -To define your own keymap, copy one of the [existing keymap](keymaps) folders and give it the name of your keymap. Then check the [keymap documentation](https://docs.qmk.fm/Keymap.html) for details on how to modify the keymap. +To define your own keymap, copy one of the [existing keymap](keymaps) folders and give it the name of your keymap. Then check the [keymap documentation](https://docs.qmk.fm/faq_keymap.html) for details on how to modify the keymap. To make it easy to define keymaps for the different versions of the PCB two macros are provided. diff --git a/keyboards/lets_split/readme.md b/keyboards/lets_split/readme.md index 155f69f15628..80fe08b93c90 100644 --- a/keyboards/lets_split/readme.md +++ b/keyboards/lets_split/readme.md @@ -44,7 +44,7 @@ If everything worked correctly you will see a file: lets_split_rev2_YOUR_KEYMAP_NAME.hex ``` -For more information on customizing keymaps, take a look at the primary documentation for [Customizing Your Keymap](/readme.md##customizing-your-keymap) in the main readme.md. +For more information on customizing keymaps, take a look at the primary documentation for [Customizing Your Keymap](/docs/faq_keymap.md) in the main readme.md. ### Let's split 1.0 If you have a first generation Let's Split you will need to use the revision 1 code. To do so, use `rev1` in all your commands instead. diff --git a/keyboards/lfkeyboards/lfkpad/readme.md b/keyboards/lfkeyboards/lfkpad/readme.md index 5f23d988a0ae..7dd8337e8ae6 100644 --- a/keyboards/lfkeyboards/lfkpad/readme.md +++ b/keyboards/lfkeyboards/lfkpad/readme.md @@ -3,7 +3,7 @@ bluepad keyboard firmware ## Quantum MK Firmware -For the full Quantum feature list, see [the parent readme.md](/doc/readme.md). +For the full Quantum feature list, see [the parent readme.md](/docs/README.md). ## Building diff --git a/keyboards/mitosis/readme.md b/keyboards/mitosis/readme.md index 3cbdbae61a1b..0d5a74a1dc67 100644 --- a/keyboards/mitosis/readme.md +++ b/keyboards/mitosis/readme.md @@ -3,7 +3,7 @@ Mitosis A wireless split compact keyboard. -Keyboard Maintainer: [@reversebias](https://github.com/reversebias] +Keyboard Maintainer: [@reversebias](https://github.com/reversebias) Hardware Supported: Mitosis PCB Hardware Availability: https://www.reddit.com/r/MechanicalKeyboards/comments/66588f/wireless_split_qmk_mitosis/ diff --git a/keyboards/nyquist/keymaps/333fred/README.md b/keyboards/nyquist/keymaps/333fred/README.md index aa783af07f5f..fa354bb4d3d3 100644 --- a/keyboards/nyquist/keymaps/333fred/README.md +++ b/keyboards/nyquist/keymaps/333fred/README.md @@ -1,6 +1,6 @@ # 333fred's Nyquist Layout -This nyquist layout is based on my Ergodox Infinity Layout, which is [here](../../../ergodox/keymaps/333fred/README.md). It doesn't have all of my VS extensions, as I have my nyquist at home, not at work. +This nyquist layout is based on my Ergodox Infinity Layout, which is [here](../../../../layouts/community/ergodox/333fred/README.md). It doesn't have all of my VS extensions, as I have my nyquist at home, not at work. ## Layers diff --git a/keyboards/planck/keymaps/grahampheath/readme.md b/keyboards/planck/keymaps/grahampheath/readme.md index ec8020f18c43..507120c6f107 100644 --- a/keyboards/planck/keymaps/grahampheath/readme.md +++ b/keyboards/planck/keymaps/grahampheath/readme.md @@ -1,4 +1,4 @@ # Graham's Planck ## Sounds -I've added a [8ohm 0.5W speaker](http://a.co/6MIKZSy), its a bit large, but it fits in approximately the same space as the ProMicro. I soldered to the pcb hole labeled PC6 on my Rev 3 Planck PCB, and GND on the near by chip. [Pic of an identical mod][https://i1.sndcdn.com/artworks-000128070066-myh0ls-t500x500.jpg] (not mine). +I've added a [8ohm 0.5W speaker](http://a.co/6MIKZSy), its a bit large, but it fits in approximately the same space as the ProMicro. I soldered to the pcb hole labeled PC6 on my Rev 3 Planck PCB, and GND on the near by chip. [Pic of an identical mod](https://i1.sndcdn.com/artworks-000128070066-myh0ls-t500x500.jpg) (not mine). diff --git a/keyboards/readme.md b/keyboards/readme.md index 35900f611f5b..5ba98c6c452d 100644 --- a/keyboards/readme.md +++ b/keyboards/readme.md @@ -53,7 +53,7 @@ These keyboards are part of the QMK repository, but their manufacturers are not * [Lets Split](/keyboards/lets_split) - Split ortholinear 40% keyboard. * [Phantom](/keyboards/phantom) — A tenkeyless kit by Teel, also from Geekhack. * [Retro Refit](/keyboards/retro_refit) — Another creation by IBNobody. -* [S60-x](/keyboards/s60-x) — DIY compact keyboard designed by VinnyCordeiro for Sentraq. +* [S60-x](/keyboards/s60_x) — DIY compact keyboard designed by VinnyCordeiro for Sentraq. * [Satan](/keyboards/satan) — A GH60 variant. * [SixKeyBoard](/keyboards/sixkeyboard) — A 6-key keyboard made by TechKeys. * [TheVan 44](/keyboards/tv44) — A 44-key staggered keybard by Evangs. diff --git a/keyboards/roadkit/readme.md b/keyboards/roadkit/readme.md index fbc40a50fde2..245d5242aebe 100644 --- a/keyboards/roadkit/readme.md +++ b/keyboards/roadkit/readme.md @@ -5,7 +5,7 @@ A programmable macro pad. Keyboard Maintainer: QMK Community Hardware Supported: Roadkit PCB -Hardware Availability: https://thevankeyboards.com/products/roadkit-r2?variant=37353813966 +Hardware Availability: https://thevankeyboards.com/collections/catalog/products/road-kit-diy?variant=603645345806 Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/s60_x/keymaps/custom/readme.md b/keyboards/s60_x/keymaps/custom/readme.md index cf87bd915f49..fd79d5360719 100644 --- a/keyboards/s60_x/keymaps/custom/readme.md +++ b/keyboards/s60_x/keymaps/custom/readme.md @@ -1,5 +1,5 @@ ### 8 Custom -The custom keymap - [keymap_custom.c](keymap_custom.c) - is where I tested all the switches, not being concerned with a specific layout or layers. It's a plain layout option with the extra keys used on ISO & HHKB layouts being assigned some other keys. +The custom keymap - [keymap.c](keymap.c) - is where I tested all the switches, not being concerned with a specific layout or layers. It's a plain layout option with the extra keys used on ISO & HHKB layouts being assigned some other keys. #### 8.0 Default layer ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ diff --git a/keyboards/s60_x/keymaps/hasu/readme.md b/keyboards/s60_x/keymaps/hasu/readme.md index 64969b616d35..b79d0e97a599 100644 --- a/keyboards/s60_x/keymaps/hasu/readme.md +++ b/keyboards/s60_x/keymaps/hasu/readme.md @@ -1,4 +1,4 @@ ### 5. Hasu -This is Hasu's favorite keymap with HHKB Fn, Vi cursor and Mousekey layer. See [keymap_hasu.c](keymap_hasu.c) for detail. +This is Hasu's favorite keymap with HHKB Fn, Vi cursor and Mousekey layer. See [keymap.c](keymap.c) for detail. (Hasu is the initial creator of the TMK firmware, in case you weren't aware.) \ No newline at end of file diff --git a/keyboards/s60_x/keymaps/hhkb/readme.md b/keyboards/s60_x/keymaps/hhkb/readme.md index 2bceb26dd565..c7dcec899f59 100644 --- a/keyboards/s60_x/keymaps/hhkb/readme.md +++ b/keyboards/s60_x/keymaps/hhkb/readme.md @@ -1,5 +1,5 @@ ### 7. HHKB -[keymap_hhkb.c](keymap_hhkb.c) emulates original HHKB layers. +[keymap.c](keymap.c) emulates original HHKB layers. #### 7.0: Default layer ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ │ Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │ diff --git a/keyboards/s60_x/keymaps/plain/readme.md b/keyboards/s60_x/keymaps/plain/readme.md index ab13323e3b16..02f524495eba 100644 --- a/keyboards/s60_x/keymaps/plain/readme.md +++ b/keyboards/s60_x/keymaps/plain/readme.md @@ -1,6 +1,6 @@ ### 4. Plain Without any Fn layer this will be useful if you want to use key remapping tool like AHK on host. -See [keymap_plain.c](keymap_plain.c) for detail. +See [keymap.c](keymap.c) for detail. #### 4.0 Plain Default layer ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ diff --git a/keyboards/s60_x/keymaps/poker/readme.md b/keyboards/s60_x/keymaps/poker/readme.md index 0d8be9d0f8b2..04d2b78bef35 100644 --- a/keyboards/s60_x/keymaps/poker/readme.md +++ b/keyboards/s60_x/keymaps/poker/readme.md @@ -1,6 +1,6 @@ ### 3 Poker -[keymap_poker.c](keymap_poker.c) emulates original Poker layers -while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](keymap_poker_set.c) implements same layout in different way and they fix a minor issue of original Poker and enhance arrow keys. +[keymap_poker](../poker/readme.md) emulates original Poker layers +while both [keymap_poker_bit](../poker_bit/readme.md) and [keymap_poker_set](../poker_set/readme.md) implements same layout in different way and they fix a minor issue of original Poker and enhance arrow keys. Fn + Esc = ` Fn + {left, down, up, right} = {home, pgdown, pgup, end} diff --git a/keyboards/s60_x/keymaps/poker_bit/readme.md b/keyboards/s60_x/keymaps/poker_bit/readme.md index 0d8be9d0f8b2..04d2b78bef35 100644 --- a/keyboards/s60_x/keymaps/poker_bit/readme.md +++ b/keyboards/s60_x/keymaps/poker_bit/readme.md @@ -1,6 +1,6 @@ ### 3 Poker -[keymap_poker.c](keymap_poker.c) emulates original Poker layers -while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](keymap_poker_set.c) implements same layout in different way and they fix a minor issue of original Poker and enhance arrow keys. +[keymap_poker](../poker/readme.md) emulates original Poker layers +while both [keymap_poker_bit](../poker_bit/readme.md) and [keymap_poker_set](../poker_set/readme.md) implements same layout in different way and they fix a minor issue of original Poker and enhance arrow keys. Fn + Esc = ` Fn + {left, down, up, right} = {home, pgdown, pgup, end} diff --git a/keyboards/s60_x/keymaps/poker_set/readme.md b/keyboards/s60_x/keymaps/poker_set/readme.md index 0d8be9d0f8b2..04d2b78bef35 100644 --- a/keyboards/s60_x/keymaps/poker_set/readme.md +++ b/keyboards/s60_x/keymaps/poker_set/readme.md @@ -1,6 +1,6 @@ ### 3 Poker -[keymap_poker.c](keymap_poker.c) emulates original Poker layers -while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](keymap_poker_set.c) implements same layout in different way and they fix a minor issue of original Poker and enhance arrow keys. +[keymap_poker](../poker/readme.md) emulates original Poker layers +while both [keymap_poker_bit](../poker_bit/readme.md) and [keymap_poker_set](../poker_set/readme.md) implements same layout in different way and they fix a minor issue of original Poker and enhance arrow keys. Fn + Esc = ` Fn + {left, down, up, right} = {home, pgdown, pgup, end} diff --git a/keyboards/s60_x/keymaps/spacefn/readme.md b/keyboards/s60_x/keymaps/spacefn/readme.md index d04bd9486597..fd657f6526c2 100644 --- a/keyboards/s60_x/keymaps/spacefn/readme.md +++ b/keyboards/s60_x/keymaps/spacefn/readme.md @@ -1,5 +1,5 @@ ### 6. SpaceFN -This layout proposed by spiceBar uses space bar to change layer with using Dual role key technique. See [keymap_spacefn.c](keymap_spacefn.c) and [SpaceFN discussion](http://geekhack.org/index.php?topic=51069.0). +This layout proposed by spiceBar uses space bar to change layer with using Dual role key technique. See [keymap.c](keymap.c) and [SpaceFN discussion](http://geekhack.org/index.php?topic=51069.0). #### 6.0 Default layer ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ diff --git a/keyboards/tada68/readme.md b/keyboards/tada68/readme.md index a18758ac9449..d1c72cfa955d 100755 --- a/keyboards/tada68/readme.md +++ b/keyboards/tada68/readme.md @@ -5,7 +5,7 @@ A compact 65% keyboard. Keyboard Maintainer: QMK Community Hardware Supported: TADA68 PCB -Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/products/tada68-mechanical-keyboard-gateron-swtich-65-layout-dye-sub-keycaps-cherry-profils?variant=34710238797) [kbdist](http://www.kbdist.com/shop/saber-68) +Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/products/tada68-mechanical-keyboard-gateron-swtich-65-layout-dye-sub-keycaps-cherry-profils?variant=34710238797) [kbdist](http://www.kbdist.com/) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/tv44/readme.md b/keyboards/tv44/readme.md index c2394c0313a0..f23ca0da523b 100644 --- a/keyboards/tv44/readme.md +++ b/keyboards/tv44/readme.md @@ -5,7 +5,7 @@ A compact 44% keyboard. Keyboard Maintainer: QMK Community Hardware Supported: The Van PCB -Hardware Availability: https://thevankeyboards.com/products/minivan-r4-keyboard-kit?variant=37353952718 +Hardware Availability: https://thevankeyboards.com/collections/catalog/products/minivan-diy?variant=609138376718 Make example for this keyboard (after setting up your build environment): diff --git a/layouts/community/ergodox/ab/readme.md b/layouts/community/ergodox/ab/readme.md index fde1c1726a14..22a7922d9733 100644 --- a/layouts/community/ergodox/ab/readme.md +++ b/layouts/community/ergodox/ab/readme.md @@ -8,7 +8,7 @@ Beginner's keymap emulates standard QWERTY keyboard for beginners. Once you get * Easy on beginners. It has everything you need for your day to day usage. #### Cons -* Keys are not ergonomically placed to take full advantage of Ergodox-EZ. Take a look at this [Default Keymap](https://github.com/qmk/qmk_firmware/blob/master/keyboards/ergodox/keymaps/default/readme.md) +* Keys are not ergonomically placed to take full advantage of Ergodox-EZ. Take a look at this [Default Keymap](https://github.com/qmk/qmk_firmware/blob/master/layouts/default/ergodox/default_ergodox/keymap.c) * While multiple layers are possible, beginner's keymap only uses one additional layer for mouse, function and volume keys. #### Notes diff --git a/layouts/community/ergodox/belak/README.md b/layouts/community/ergodox/belak/README.md index 30484e6e205e..e251dc099afe 100644 --- a/layouts/community/ergodox/belak/README.md +++ b/layouts/community/ergodox/belak/README.md @@ -1,8 +1,8 @@ # Belak's Ergodox Layout -This has been based off of [emacs\_osx\_dk](https://github.com/jackhumbert/qmk_firmware/tree/master/keyboards/ergodox/keymaps/emacs_osx_dk) +This has been based off of [emacs\_osx\_dk](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/ergodox/emacs_osx_dk) from the main qmk repo. However, I've taken some of the ideas for the thumbs -from [dvorak\_emacs](https://github.com/jackhumbert/qmk_firmware/tree/master/keyboards/ergodox/keymaps/dvorak_emacs) +from [dvorak\_emacs](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/ergodox/dvorak_emacs) and tweaked it a bit based on the keycaps I have. This keyboard is intended for use in emacs (one of the main reasons for easy diff --git a/layouts/community/ergodox/familiar/README.md b/layouts/community/ergodox/familiar/README.md index 536179337f52..8d68af21a308 100644 --- a/layouts/community/ergodox/familiar/README.md +++ b/layouts/community/ergodox/familiar/README.md @@ -1,7 +1,7 @@ # ErgoDox Familiar Layout Familiar layout for those who regularly switch back and forth from ErgoDox to "normal" QWERTY. -[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](../../../../license_GPLv3.md../../../../license_GPLv3.md) [![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg)](https://github.com/RichardLitt/standard-readme) +[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](../../../../license_GPLv3.md) [![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg)](https://github.com/RichardLitt/standard-readme) ## Table of Contents @@ -66,4 +66,4 @@ I'm terrible at this; I have no background in human-computer interaction, kinesi 1. `MENU` and `LEAD` are useless, at the moment. ## License -QMK is licensed ([mostly](https://github.com/qmk/qmk_firmware/issues/1038)) under the [GPLv2](blob/master/license_GPLv2.md). Accordingly, to whatever extent applicable, this keymap is licensed under the [GPLv3](../../../../license_GPLv3.md). +QMK is licensed ([mostly](https://github.com/qmk/qmk_firmware/issues/1038)) under the [GPLv2](../../../../license_GPLv2.md). Accordingly, to whatever extent applicable, this keymap is licensed under the [GPLv3](../../../../license_GPLv3.md). diff --git a/layouts/community/ergodox/ordinary/readme.md b/layouts/community/ergodox/ordinary/readme.md index 2e8d86960f88..53cba0450edd 100644 --- a/layouts/community/ergodox/ordinary/readme.md +++ b/layouts/community/ergodox/ordinary/readme.md @@ -98,4 +98,4 @@ No rights reserved. This software is in the public domain. Credit me if you are Keyboard layout images were created with http://www.keyboard-layout-editor.com/ by Ian Prest my thanks to that free service Details: readme.md - https://github.com/nrrkeene/qmk_firmware/tree/master/keyboards/ergodox/keymaps/ordinary + https://github.com/nrrkeene/qmk_firmware/tree/master/layouts/community/ergodox/ordinary diff --git a/layouts/community/ergodox/supercoder/readme.md b/layouts/community/ergodox/supercoder/readme.md index 7f2c9ef6955a..e82ec59709ce 100644 --- a/layouts/community/ergodox/supercoder/readme.md +++ b/layouts/community/ergodox/supercoder/readme.md @@ -15,8 +15,7 @@ Behold the Ultimate SuperCoder 2000 layout! ### To use it... -To use this piece of top quality engineering, you can either -[download the hex file][hex] we have prepared for you, or you can compile it on +To use this piece of top quality engineering, you must compile it on your own: [hex]: https://raw.githubusercontent.com/algernon/ergodox-supercoder/master/supercoder.hex diff --git a/layouts/community/ergodox/tm2030/readme.md b/layouts/community/ergodox/tm2030/readme.md index 6cd794726d4b..23746ddb76ee 100644 --- a/layouts/community/ergodox/tm2030/readme.md +++ b/layouts/community/ergodox/tm2030/readme.md @@ -9,7 +9,7 @@ Most of the TM2030 features are supported except * show desktop key (at the right of the space key) * 102/106 modes -Dvorak mode is even supported by pressing [`Magic`](/TMK_readme.md#magic-commands)+`1` (`Magic` is by default `LShift`+`RShift`) +Dvorak mode is even supported by pressing [`Magic`](/docs/feature_bootmagic.md)+`1` (`Magic` is by default `LShift`+`RShift`) Some keys had to be moved around to fit into the ErgoDox, especially the `F1`-`F12` keys and the arrow keys. diff --git a/layouts/community/ergodox/townk_osx/readme.md b/layouts/community/ergodox/townk_osx/readme.md index a2dcd35fa421..e10e44782957 100644 --- a/layouts/community/ergodox/townk_osx/readme.md +++ b/layouts/community/ergodox/townk_osx/readme.md @@ -1,7 +1,7 @@ # Townk's Keymap Trying to take care of an enjury on my arm I borrow an ergonomic keyboard from -a frient ([Kinesis Advantage](http://www.kinesis-ergo.com/shop/advantage-pro-for-pc-mac/)). +a frient ([Kinesis Advantage](https://www.kinesis-ergo.com/shop/advantage2/)). I really enjoyed my time with it but there were some anoyancies: diff --git a/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/README.md b/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/README.md index 49cd83e0afb9..1eecb78ef2a5 100644 --- a/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/README.md +++ b/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/README.md @@ -10,7 +10,7 @@ Project main web site is: . Some information can also be found at: . -The shield can be purchased at the main site: or from [TKJ Electronics](http://tkjelectronics.com/): . +The shield can be purchased at the main site: or from [TKJ Electronics](http://tkjelectronics.com/): . ![USB Host Shield](http://shop.tkjelectronics.dk/images/USB_Host_Shield1.jpg) @@ -196,7 +196,7 @@ Also take a look at the blog posts: A special thanks go to the following people: -1. _Richard Ibbotson_ who made this excellent guide: +1. _Richard Ibbotson_ who made this excellent guide: 2. _Tomoyuki Tanaka_ for releasing his code for the Arduino USB Host shield connected to the wiimote: Also a big thanks all the people behind these sites about the Motion controller: @@ -216,10 +216,10 @@ The [XBOXOLD](XBOXOLD.cpp) class implements support for the original Xbox contro All the information are from the following sites: -* +* * * -* +* #### Xbox 360 Library @@ -241,7 +241,7 @@ All the information regarding the Xbox 360 controller protocol are form these si * * -* +* #### Xbox ONE Library diff --git a/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/testusbhostFAT/README.md b/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/testusbhostFAT/README.md index d8b4296b1ac9..0f2a734a65fa 100644 --- a/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/testusbhostFAT/README.md +++ b/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/testusbhostFAT/README.md @@ -10,7 +10,7 @@ To compile this example you will need the following libraries as well: * [generic_storage FATfs](https://github.com/xxxajk/generic_storage) * [RTClib](https://github.com/xxxajk/RTClib) -The following shield is recommended for larger projects: . +The following shield is recommended for larger projects: . You may use the bundled [Makefile](Makefile) to compile the code instead of the Arduino IDE if you have problems or want a smaller binary. The master makefile is bundled as a submodule, but can also be downloaded manually at the following link: . diff --git a/tmk_core/readme.md b/tmk_core/readme.md index 5f135617c42f..a3783fe37b8a 100644 --- a/tmk_core/readme.md +++ b/tmk_core/readme.md @@ -2,7 +2,7 @@ TMK Keyboard Firmware Core Library ================================== This is a keyboard firmware library with some useful features for Atmel AVR and Cortex-M. -Source code is available here: +Source code is available here: Updates @@ -54,7 +54,7 @@ LUFA, PJRC and V-USB stack have their own license respectively. Build Firmware and Program Controller ------------------------------------- -See [doc/build.md](doc/build.md). +See [doc/build.md](https://github.com/tmk/tmk_keyboard/blob/master/tmk_core/doc/build.md). From 452d23da5267899933ca336ae91e7b297d5dfb0b Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Thu, 1 Mar 2018 07:46:57 -0800 Subject: [PATCH 006/578] Update to drashna keymaps and userspace (#2450) * Add OSL keycodes and macro handling * Re-add AVRDUDE target * Userspace document cleanup and commenting * Fix Orthodox keymap layout (cosmetic) * Add caveat for KEYMAP Macros * Minor tweaks * Enable Bootmagic in Ergodox EZ * Minor tweaks --- keyboards/ergodox_ez/keymaps/drashna/keymap.c | 58 +-- keyboards/ergodox_ez/keymaps/drashna/rules.mk | 3 +- keyboards/orthodox/keymaps/drashna/keymap.c | 11 +- users/drashna/drashna.c | 350 ++++++++---------- users/drashna/drashna.h | 38 +- 5 files changed, 237 insertions(+), 223 deletions(-) diff --git a/keyboards/ergodox_ez/keymaps/drashna/keymap.c b/keyboards/ergodox_ez/keymaps/drashna/keymap.c index e8e092ad1bb0..aeadbb1fc44c 100644 --- a/keyboards/ergodox_ez/keymaps/drashna/keymap.c +++ b/keyboards/ergodox_ez/keymaps/drashna/keymap.c @@ -19,6 +19,10 @@ along with this program. If not, see . +//enum more_custom_keycodes { +// KC_P00 = NEW_SAFE_RANGE +//}; + //define layer change stuff for underglow indicator bool skip_leds = false; @@ -49,20 +53,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `---------------------' `---------------------' */ [_QWERTY] = LAYOUT_ergodox_wrapper( - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TT(_MOUS), + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), KC_TAB, _________________QWERTY_L1_________________, TG(_DIABLO), KC_BSPC, _________________QWERTY_L2_________________, - KC_LSFT, _________________QWERTY_L3_________________, TG(_GAMEPAD), + KC_MLSF, _________________QWERTY_L3_________________, TG(_GAMEPAD), LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ALT_T(KC_APP), KC_LGUI, KC_HOME, KC_SPACE,KC_BSPC, KC_END, - TT(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TG(_DIABLO), _________________QWERTY_R1_________________, KC_BSLS, _________________QWERTY_R2_________________, GUI_T(KC_QUOT), - TG(_GAMEPAD), _________________QWERTY_R3_________________, KC_RSFT, + TG(_GAMEPAD), _________________QWERTY_R3_________________, KC_MRSF, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), KC_RGUI, CTL_T(KC_ESCAPE), KC_PGUP, @@ -93,19 +97,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Otherwise, it needs KC_* [_COLEMAK] = LAYOUT_ergodox_wrapper( // left hand - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TT(_MOUS), + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), KC_TAB, _________________COLEMAK_L1________________, TG(_DIABLO), KC_BSPC, _________________COLEMAK_L2________________, - KC_LSFT, _________________COLEMAK_L3________________, TG(_GAMEPAD), + KC_MLSF, _________________COLEMAK_L3________________, TG(_GAMEPAD), LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ALT_T(KC_APP), KC_LGUI, KC_HOME, KC_SPACE,KC_BSPC, KC_END, // right hand - TT(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TG(_DIABLO), _________________COLEMAK_R1________________, KC_BSLS, _________________COLEMAK_R2________________, GUI_T(KC_QUOT), - TG(_GAMEPAD), _________________COLEMAK_R3________________, KC_RSFT, + TG(_GAMEPAD), _________________COLEMAK_R3________________, KC_MRSF, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), KC_RGUI, CTL_T(KC_ESCAPE), KC_PGUP, @@ -136,19 +140,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Otherwise, it needs KC_* [_DVORAK] = LAYOUT_ergodox_wrapper( // left hand - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TT(_MOUS), + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), KC_TAB, _________________DVORAK_L1_________________, TG(_DIABLO), KC_BSPC, _________________DVORAK_L2_________________, - KC_LSFT, _________________DVORAK_L3_________________, TG(_GAMEPAD), + KC_MLSF, _________________DVORAK_L3_________________, TG(_GAMEPAD), LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ALT_T(KC_APP), KC_LGUI, KC_HOME, KC_SPACE,KC_BSPC, KC_END, // right hand - TT(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, TG(_DIABLO), _________________DVORAK_R1_________________, KC_SLSH, _________________DVORAK_R2_________________, GUI_T(KC_MINS), - TG(_GAMEPAD), _________________DVORAK_R3_________________, KC_RSFT, + TG(_GAMEPAD), _________________DVORAK_R3_________________, KC_MRSF, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), KC_RGUI, CTL_T(KC_ESCAPE), KC_PGUP, @@ -179,19 +183,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Otherwise, it needs KC_* [_WORKMAN] = LAYOUT_ergodox_wrapper( // left hand - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TT(_MOUS), + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), KC_TAB, _________________WORKMAN_L1________________, TG(_DIABLO), KC_BSPC, _________________WORKMAN_L2________________, - KC_LSFT, _________________WORKMAN_L3________________, TG(_GAMEPAD), + KC_MLSF, _________________WORKMAN_L3________________, TG(_GAMEPAD), LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ALT_T(KC_APP), KC_LGUI, KC_HOME, KC_SPACE,KC_BSPC, KC_END, // right hand - TT(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TG(_DIABLO), _________________WORKMAN_R1________________, KC_BSLS, _________________WORKMAN_R2________________, GUI_T(KC_QUOT), - TG(_GAMEPAD), _________________WORKMAN_R3________________, KC_RSFT, + TG(_GAMEPAD), _________________WORKMAN_R3________________, KC_MRSF, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), KC_RGUI, CTL_T(KC_ESCAPE), KC_PGUP, @@ -202,7 +206,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - OSM(MOD_LSFT),KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LSFT,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -211,7 +215,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, OSM(MOD_RSFT), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -241,9 +245,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_SYMB] = LAYOUT_ergodox( EPRM, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, TG(_MODS), - VRSN, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_WORKMAN, + KC_RESET, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_WORKMAN, KC_MAKE, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRAVE, - KC_RESET, KC_PERC, KC_CIRC, KC_LBRACKET,KC_RBRACKET,KC_TILD, KC_COLEMAK, + VRSN, KC_PERC, KC_CIRC, KC_LBRACKET,KC_RBRACKET,KC_TILD, KC_COLEMAK, KC_TRNS, KC_AMPR, KC_ASTR, KC_COLN, KC_SCOLON, RGB_SMOD, KC_RGB_T, RGB_HUI, @@ -387,12 +391,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; - bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + + //switch (keycode) { + // case KC_P00: + // if (!record->event.pressed) { + // register_code(KC_KP_0); + // unregister_code(KC_KP_0); + // register_code(KC_KP_0); + // unregister_code(KC_KP_0); + // } + // return false; + // break; + //} return true; } + void matrix_init_keymap(void) { // Runs boot tasks for keyboard }; diff --git a/keyboards/ergodox_ez/keymaps/drashna/rules.mk b/keyboards/ergodox_ez/keymaps/drashna/rules.mk index 6f30c5491d05..12f100d665ee 100644 --- a/keyboards/ergodox_ez/keymaps/drashna/rules.mk +++ b/keyboards/ergodox_ez/keymaps/drashna/rules.mk @@ -1,6 +1,7 @@ TAP_DANCE_ENABLE = yes SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -COMMAND_ENABLE = no # Commands for debug and configuration +COMMAND_ENABLE = yes # Commands for debug and configuration RGBLIGHT_ENABLE = yes CONSOLE_ENABLE = no +BOOTMAGIC_ENABLE = yes diff --git a/keyboards/orthodox/keymaps/drashna/keymap.c b/keyboards/orthodox/keymaps/drashna/keymap.c index cb76a20bd123..c0a348689142 100644 --- a/keyboards/orthodox/keymaps/drashna/keymap.c +++ b/keyboards/orthodox/keymaps/drashna/keymap.c @@ -31,36 +31,35 @@ along with this program. If not, see . // Fillers to make layering more clear #define _______ KC_TRNS #define XXXXXXX KC_NO -#define KC_MSHF OSM(MOD_LSFT) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = KEYMAP_wrapper(\ KC_ESC, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC, \ KC_TAB, _________________QWERTY_L2_________________, KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, _________________QWERTY_R2_________________, KC_QUOT, \ - KC_LSFT, _________________QWERTY_L3_________________, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, _________________QWERTY_R3_________________, KC_LGUI \ + KC_MLSF, _________________QWERTY_L3_________________, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, _________________QWERTY_R3_________________, KC_LGUI \ ), [_COLEMAK] = KEYMAP_wrapper(\ KC_ESC, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, KC_BSPC, \ KC_TAB, _________________COLEMAK_L2________________, KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, _________________COLEMAK_R2________________, KC_QUOT, \ - KC_LSFT, _________________COLEMAK_L3________________, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, _________________COLEMAK_R3________________, KC_LGUI \ + KC_MLSF, _________________COLEMAK_L3________________, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, _________________COLEMAK_R3________________, KC_LGUI \ ), [_DVORAK] = KEYMAP_wrapper(\ KC_ESC, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, KC_BSPC, \ KC_TAB, _________________DVORAK_L2_________________, KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, _________________DVORAK_R2_________________, KC_MINS, \ - KC_LSFT, _________________DVORAK_L3_________________, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, _________________DVORAK_R3_________________, KC_LGUI \ + KC_MLSF, _________________DVORAK_L3_________________, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, _________________DVORAK_R3_________________, KC_LGUI \ ), [_WORKMAN] = KEYMAP_wrapper(\ KC_ESC, _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, KC_BSPC, \ KC_TAB, _________________WORKMAN_L2________________, KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, _________________WORKMAN_R2________________, KC_MINS, \ - KC_LSFT, _________________WORKMAN_L3________________, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, _________________WORKMAN_R3________________, KC_LGUI \ + KC_MLSF, _________________WORKMAN_L3________________, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, _________________WORKMAN_R3________________, KC_LGUI \ ), [_MODS] = KEYMAP(\ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - OSM(MOD_LSFT), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ ), [_LOWER] = KEYMAP(\ diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c index 0bf83cb9f349..678570958b6e 100644 --- a/users/drashna/drashna.c +++ b/users/drashna/drashna.c @@ -32,14 +32,27 @@ PROGMEM const char secret[][64] = { }; #endif +#ifdef AUDIO_ENABLE +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_workman[][2] = SONG(PLOVER_SOUND); +float tone_hackstartup[][2] = SONG(ONE_UP_SOUND); +#endif + #ifdef FAUXCLICKY_ENABLE float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_A6, 2); // (_D4, 0.25); float fauxclicky_released_note[2] = MUSICAL_NOTE(_A6, 2); // (_C4, 0.125); #else float fauxclicky_pressed[][2] = SONG(E__NOTE(_A6)); // change to your tastes float fauxclicky_released[][2] = SONG(E__NOTE(_A6)); // change to your tastes -#endif -bool faux_click_enabled = true; +#endif + +bool faux_click_enabled = false; +bool is_overwatch = false; +#ifdef RGBLIGHT_ENABLE +bool rgb_layer_change = true; +#endif #ifdef TAP_DANCE_ENABLE //define diablo macro timer variables @@ -47,15 +60,11 @@ static uint16_t diablo_timer[4]; static uint8_t diablo_times[] = { 0, 1, 3, 5, 10, 30 }; static uint8_t diablo_key_time[4]; - bool check_dtimer(uint8_t dtimer) { // has the correct number of seconds elapsed (as defined by diablo_times) return (timer_elapsed(diablo_timer[dtimer]) < (diablo_key_time[dtimer] * 1000)) ? false : true; }; - - - // Cycle through the times for the macro, starting at 0, for disabled. // Max of six values, so don't exceed void diablo_tapdance_master(qk_tap_dance_state_t *state, void *user_data, uint8_t diablo_key) { @@ -68,26 +77,20 @@ void diablo_tapdance_master(qk_tap_dance_state_t *state, void *user_data, uint8_ } } - // Would rather have one function for all of this, but no idea how to do that... void diablo_tapdance1(qk_tap_dance_state_t *state, void *user_data) { diablo_tapdance_master(state, user_data, 0); } - void diablo_tapdance2(qk_tap_dance_state_t *state, void *user_data) { diablo_tapdance_master(state, user_data, 1); } - void diablo_tapdance3(qk_tap_dance_state_t *state, void *user_data) { diablo_tapdance_master(state, user_data, 2); } - void diablo_tapdance4(qk_tap_dance_state_t *state, void *user_data) { diablo_tapdance_master(state, user_data, 3); } - - //Tap Dance Definitions qk_tap_dance_action_t tap_dance_actions[] = { // tap once to disable, and more to enable timed micros @@ -97,14 +100,40 @@ qk_tap_dance_action_t tap_dance_actions[] = { [TD_D3_4] = ACTION_TAP_DANCE_FN(diablo_tapdance4), }; -#endif -#ifdef AUDIO_ENABLE -float tone_qwerty[][2] = SONG(QWERTY_SOUND); -float tone_dvorak[][2] = SONG(DVORAK_SOUND); -float tone_colemak[][2] = SONG(COLEMAK_SOUND); -float tone_workman[][2] = SONG(PLOVER_SOUND); -float tone_hackstartup[][2] = SONG(ONE_UP_SOUND); +// Sends the key press to system, but only if on the Diablo layer +void send_diablo_keystroke(uint8_t diablo_key) { + if (biton32(layer_state) == _DIABLO) { + switch (diablo_key) { + case 0: + SEND_STRING("1"); + break; + case 1: + SEND_STRING("2"); + break; + case 2: + SEND_STRING("3"); + break; + case 3: + SEND_STRING("4"); + break; + } + } +} + +// Checks each of the 4 timers/keys to see if enough time has elapsed +// Runs the "send string" command if enough time has passed, and resets the timer. +void run_diablo_macro_check(void) { + uint8_t dtime; + + for (dtime = 0; dtime < 4; dtime++) { + if (check_dtimer(dtime) && diablo_key_time[dtime]) { + diablo_timer[dtime] = timer_read(); + send_diablo_keystroke(dtime); + } + } +} + #endif @@ -131,13 +160,6 @@ uint32_t layer_state_set_keymap (uint32_t state) { __attribute__ ((weak)) void led_set_keymap(uint8_t usb_led) {} -bool is_overwatch = false; -#ifdef RGBLIGHT_ENABLE -bool rgb_layer_change = true; -#endif - - - // Call user matrix init, set default RGB colors and then // call the keymap's init function @@ -166,50 +188,9 @@ void matrix_init_user(void) { rgblight_set_red; rgblight_mode(5); } -#endif -#ifdef AUDIO_ENABLE -// wait_ms(21); // gets rid of tick -// stop_all_notes(); -// PLAY_SONG(tone_hackstartup); #endif matrix_init_keymap(); } -#ifdef TAP_DANCE_ENABLE - -// Sends the key press to system, but only if on the Diablo layer -void send_diablo_keystroke(uint8_t diablo_key) { - if (biton32(layer_state) == _DIABLO) { - switch (diablo_key) { - case 0: - SEND_STRING("1"); - break; - case 1: - SEND_STRING("2"); - break; - case 2: - SEND_STRING("3"); - break; - case 3: - SEND_STRING("4"); - break; - } - } -} - -// Checks each of the 4 timers/keys to see if enough time has elapsed -// Runs the "send string" command if enough time has passed, and resets the timer. -void run_diablo_macro_check(void) { - uint8_t dtime; - - for (dtime = 0; dtime < 4; dtime++) { - if (check_dtimer(dtime) && diablo_key_time[dtime]) { - diablo_timer[dtime] = timer_read(); - send_diablo_keystroke(dtime); - } - } - -} -#endif // No global matrix scan code, so just run keymap's matix // scan function void matrix_scan_user(void) { @@ -219,11 +200,10 @@ void matrix_scan_user(void) { matrix_scan_keymap(); } -void led_set_user(uint8_t usb_led) { - led_set_keymap(usb_led); -} - +// This block is for all of the gaming macros, as they were all doing +// the same thing, but with differring text sent. void send_game_macro(const char *str) { + clear_keyboard(); register_code(is_overwatch ? KC_BSPC : KC_ENTER); unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); wait_ms(50); @@ -232,21 +212,26 @@ void send_game_macro(const char *str) { unregister_code(KC_ENTER); } + +// Sent the default layer void persistent_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); } + // Defines actions tor my global custom keycodes. Defined in drashna.h file // Then runs the _keymap's recod handier if not processed here bool process_record_user(uint16_t keycode, keyrecord_t *record) { +// If console is enabled, it will print the matrix position and status of each key pressed #ifdef CONSOLE_ENABLE xprintf("KL: row: %u, column: %u, pressed: %u\n", record->event.key.col, record->event.key.row, record->event.pressed); -#endif +#endif //CONSOLE_ENABLE -#ifdef AUDIO_ENABLE - if (faux_click_enabled) { +// Run custom faux click code, but only if faux clicky is enabled +#ifdef AUDIO_ENABLE + if ( (faux_click_enabled && keycode != KC_FXCL) || (!faux_click_enabled && keycode == KC_FXCL) ) { if (record->event.pressed) { PLAY_SONG(fauxclicky_pressed); } else { @@ -254,14 +239,15 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { PLAY_SONG(fauxclicky_released); } } -#endif +#endif //AUDIO_ENABLE + switch (keycode) { case KC_QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_SONG(tone_qwerty); -#endif +#endif //AUDIO_ENABLE persistent_default_layer_set(1UL << _QWERTY); } return false; @@ -270,7 +256,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_SONG(tone_colemak); -#endif +#endif //AUDIO_ENABLE persistent_default_layer_set(1UL << _COLEMAK); } return false; @@ -279,7 +265,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_SONG(tone_dvorak); -#endif +#endif //AUDIO_ENABLE persistent_default_layer_set(1UL << _DVORAK); } return false; @@ -288,11 +274,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_SONG(tone_workman); -#endif +#endif //AUDIO_ENABLE persistent_default_layer_set(1UL << _WORKMAN); } return false; break; + + case LOWER: if (record->event.pressed) { layer_on(_LOWER); @@ -324,85 +312,108 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; -#if !(defined(KEYBOARD_orthodox_rev1) || defined(KEYBOARD_orthodox_rev3) || defined(KEYBOARD_ergodox_ez)) - case KC_OVERWATCH: - if (record->event.pressed) { - is_overwatch = !is_overwatch; - } -#ifdef RGBLIGHT_ENABLE - is_overwatch ? rgblight_mode(17) : rgblight_mode(18); -#endif - return false; - break; - case KC_SALT: + + + case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader if (!record->event.pressed) { - send_game_macro("Salt, salt, salt..."); + SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP +#if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU)) + ":dfu" +#elif defined(BOOTLOADER_HALFKAY) + ":teensy" +#elif defined(BOOTLOADER_CATERINA) + ":avrdude" +#endif + SS_TAP(X_ENTER)); } return false; break; - case KC_MORESALT: + case KC_RESET: // Custom RESET code that setr RGBLights to RED if (!record->event.pressed) { - send_game_macro("Please sir, can I have some more salt?!"); +#ifdef RGBLIGHT_ENABLE + rgblight_enable(); + rgblight_mode(1); + rgblight_setrgb(0xff, 0x00, 0x00); +#endif + reset_keyboard(); } return false; break; - case KC_SALTHARD: - if (!record->event.pressed) { - send_game_macro("Your salt only makes me harder, and even more aggressive!"); + case EPRM: // Resets EEPROM + if (record->event.pressed) { + eeconfig_init(); } return false; break; - case KC_GOODGAME: - if (!record->event.pressed) { - send_game_macro("Good game, everyone!"); + case VRSN: // Prints firmware version + if (record->event.pressed) { + SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); } return false; break; - case KC_GLHF: + case KC_SECRET_1 ... KC_SECRET_5: // Custom if (!record->event.pressed) { - send_game_macro("Good luck, have fun!!!"); + clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED); + send_string_P(secret[keycode - KC_SECRET_1]); } return false; break; - case KC_SYMM: - if (!record->event.pressed) { - send_game_macro("Left click to win!"); - } + + +// These are a serious of gaming macros. +// Only enables for the viterbi, basically, +// to save on firmware space, since it's limited. +#if !(defined(KEYBOARD_orthodox_rev1) || defined(KEYBOARD_orthodox_rev3) || defined(KEYBOARD_ergodox_ez)) + + + case KC_OVERWATCH: // Toggle's if we hit "ENTER" or "BACKSPACE" to input macros + if (record->event.pressed) { is_overwatch = !is_overwatch; } +#ifdef RGBLIGHT_ENABLE + is_overwatch ? rgblight_mode(17) : rgblight_mode(18); +#endif //RGBLIGHT_ENABLE return false; break; + + case KC_SALT: + if (!record->event.pressed) { send_game_macro("Salt, salt, salt..."); } + return false; break; + case KC_MORESALT: + if (!record->event.pressed) { send_game_macro("Please sir, can I have some more salt?!"); } + return false; break; + case KC_SALTHARD: + if (!record->event.pressed) { send_game_macro("Your salt only makes me harder, and even more aggressive!"); } + return false; break; + case KC_GOODGAME: + if (!record->event.pressed) { send_game_macro("Good game, everyone!"); } + return false; break; + case KC_GLHF: + if (!record->event.pressed) { send_game_macro("Good luck, have fun!!!"); } + return false; break; + case KC_SYMM: + if (!record->event.pressed) { send_game_macro("Left click to win!"); } + return false; break; case KC_JUSTGAME: - if (!record->event.pressed) { - send_game_macro("It may be a game, but if you don't want to actually try, please go play AI, so that people that actually want to take the game seriously and \"get good\" have a place to do so without trolls like you throwing games."); - } - return false; - break; + if (!record->event.pressed) { send_game_macro("It may be a game, but if you don't want to actually try, please go play AI, so that people that actually want to take the game seriously and \"get good\" have a place to do so without trolls like you throwing games."); } + return false; break; case KC_TORB: - if (!record->event.pressed) { - send_game_macro("That was positively riveting!"); - } - return false; - break; + if (!record->event.pressed) { send_game_macro("That was positively riveting!"); } + return false; break; case KC_AIM: if (!record->event.pressed) { send_game_macro("That aim is absolutely amazing. It's almost like you're a machine!"); wait_ms(3000); send_game_macro("Wait! That aim is TOO good! You're clearly using an aim hack! CHEATER!"); } - return false; - break; + return false; break; case KC_C9: - if (!record->event.pressed) { - send_game_macro("OMG!!! C9!!!"); - } - return false; - break; + if (!record->event.pressed) { send_game_macro("OMG!!! C9!!!"); } + return false; break; case KC_GGEZ: - if (!record->event.pressed) { - send_game_macro("That was a fantastic game, though it was a bit easy. Try harder next time!"); - } - return false; - break; -#endif + if (!record->event.pressed) { send_game_macro("That was a fantastic game, though it was a bit easy. Try harder next time!"); } + return false; break; +#endif // !(defined(KEYBOARD_orthodox_rev1) || defined(KEYBOARD_orthodox_rev3) || defined(KEYBOARD_ergodox_ez)) + + #ifdef TAP_DANCE_ENABLE case KC_DIABLO_CLEAR: // reset all Diable timers, disabling them if (record->event.pressed) { @@ -412,78 +423,37 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { diablo_key_time[dtime] = diablo_times[0]; } } - return false; - break; -#endif - case KC_MAKE: - if (!record->event.pressed) { - SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP -#if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU)) - ":dfu" -#elif defined(BOOTLOADER_HALFKAY) - ":teensy" -//#elif defined(BOOTLOADER_CATERINA) -// ":avrdude" -#endif - SS_TAP(X_ENTER)); - } - return false; - break; - case KC_RESET: - if (!record->event.pressed) { -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); - rgblight_mode(1); - rgblight_setrgb(0xff, 0x00, 0x00); -#endif - reset_keyboard(); - } - return false; - break; - case EPRM: - if (record->event.pressed) { - eeconfig_init(); - } - return false; - break; - case VRSN: - if (record->event.pressed) { - SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); - } - return false; - break; - case KC_SECRET_1 ... KC_SECRET_5: - if (!record->event.pressed) { - send_string_P(secret[keycode - KC_SECRET_1]); - } - return false; - break; + return false; break; +#endif // TAP_DANCE_ENABLE + + case KC_FXCL: - if (!record->event.pressed) { + if (!record->event.pressed) { // Toggles the custom faux click code faux_click_enabled = !faux_click_enabled; } - return false; - break; - case KC_RGB_T: // Because I want the option to go back to normal RGB mode rather than always layer indication + return false; break; + case KC_RGB_T: // This allows me to use underglow as layer indication, or as normal #ifdef RGBLIGHT_ENABLE if (record->event.pressed) { rgb_layer_change = !rgb_layer_change; + if (rgb_layer_change) { + layer_state_set(layer_state); // This is needed to immediately set the layer color (looks beetter) + } } -#endif - return false; - break; +#endif // RGBLIGHT_ENABLE + return false; break; #ifdef RGBLIGHT_ENABLE case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions if (record->event.pressed) { //This disrables layer indication, as it's assumed that if you're changing this ... you want that disabled rgb_layer_change = false; } - return true; - break; -#endif + return true; break; +#endif // RGBLIGHT_ENABLE } return process_record_keymap(keycode, record); } + // Runs state check and changes underglow color and animation // on layer change, no matter where the change was initiated // Then runs keymap's layer change check @@ -536,7 +506,7 @@ uint32_t layer_state_set_user(uint32_t state) { rgblight_set_green; rgblight_mode(2); break; - default: + default: // for any other layers, or the default layer if (default_layer & (1UL << _COLEMAK)) { rgblight_set_magenta; } @@ -549,9 +519,9 @@ uint32_t layer_state_set_user(uint32_t state) { else { rgblight_set_teal; } - if (biton32(state) == _MODS) { + if (biton32(state) == _MODS) { // If the non-OSM layer is enabled, then breathe rgblight_mode(2); - } else { + } else { // otherwise, stay solid rgblight_mode(1); } break; @@ -562,3 +532,9 @@ uint32_t layer_state_set_user(uint32_t state) { } +// Any custom LED code goes here. +// So far, I only have keyboard specific code, +// So nothing goes here. +void led_set_user(uint8_t usb_led) { + led_set_keymap(usb_led); +} diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h index f50bd3106e36..8d32a5f9892f 100644 --- a/users/drashna/drashna.h +++ b/users/drashna/drashna.h @@ -125,38 +125,55 @@ enum { TD_D3_3, TD_D3_4 }; -#endif +#endif // TAP_DANCE_ENABLE + +// Custom Keycodes for Diablo 3 layer +// But since TD() doesn't work when tapdance is disabled +// We use custom codes here, so we can substituet the right stuff #ifdef TAP_DANCE_ENABLE #define KC_D3_1 TD(TD_D3_1) #define KC_D3_2 TD(TD_D3_2) #define KC_D3_3 TD(TD_D3_3) #define KC_D3_4 TD(TD_D3_4) -#else +#else // TAP_DANCE_ENABLE #define KC_D3_1 KC_1 #define KC_D3_2 KC_2 #define KC_D3_3 KC_3 #define KC_D3_4 KC_4 -#endif +#endif // TAP_DANCE_ENABLE + +// OSM keycodes, to keep things clean and easy to change +#define KC_MLSF OSM(MOD_LSFT) +#define KC_MRSF OSM(MOD_RSFT) +#define ONESHOT_TIMEOUT 3000 #define QMK_KEYS_PER_SCAN 8 #ifdef RGBLIGHT_ENABLE #define RGBLIGHT_SLEEP -#endif +#endif // RGBLIGHT_ENABLE -#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.) +// this makes it possible to do rolling combos (zx) with keys that +// convert to other keys on hold (z becomes ctrl when you hold it, +// and when this option isn't enabled, z rapidly followed by x +// actually sends Ctrl-x. That's bad.) +#define IGNORE_MOD_TAP_INTERRUPT +// Disable action_get_macro and fn_actions, since we don't use these +// and it saves on space in the firmware. #define NO_ACTION_MACRO #define NO_ACTION_FUNCTION +// If we're still using the official Faux Clicky feature, substituet codes +// so that we don't have any unused/blank keys. #ifdef FAUXCLICKY_ENABLE #define AUD_ON FC_ON #define AUD_OFF FC_OFF -#else +#else // FAUXCLICKY_ENABLE #define AUD_ON AU_ON #define AUD_OFF AU_OFF -#endif +#endif // FAUXCLICKY_ENABLE @@ -166,12 +183,17 @@ enum { #define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__) #define KEYMAP_wrapper(...) KEYMAP(__VA_ARGS__) + // Blocks for each of the four major keyboard layouts // Organized so we can quickly adapt and modify all of them // at once, rather than for each keyboard, one at a time. // And this allows wor much cleaner blocks in the keymaps. // For instance Tap/Hold for Control on all of the layouts +// NOTE: These are all the same length. If you do a search/replace +// then you need to add/remove underscores to keep the +// lengths consistent. + #define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T #define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G #define _________________QWERTY_L3_________________ CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B @@ -213,7 +235,7 @@ enum { // this allows us to quickly modify the bottom row for all of the layouts // so we don't have to alter it 4 times and hope that we haven't missed // anything -#define ___________ERGODOX_BOTTOM_LEFT_____________ KC_QUOT, KC_LGUI, KC_LBRC, KC_RBRC +#define ___________ERGODOX_BOTTOM_LEFT_____________ KC_QUOT, KC_MEH, KC_LBRC, KC_RBRC #define ___________ERGODOX_BOTTOM_RIGHT____________ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT From d7f46f346685dc772ff3f13890d70865d65d748c Mon Sep 17 00:00:00 2001 From: Louis Orleans Date: Thu, 1 Mar 2018 07:48:15 -0800 Subject: [PATCH 007/578] layout(preonic): dudeofawesome's layout (#2449) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 🎉 duplicate default Preonic keymap * ✨ add Workman layout * 🚚 swap backspace and delete * ✨ enable hold enter for shift * 🚚 swap media play and next * 💄 use Planck startup sound * 💄 add Workman layer sound * ✨ add numpad layer * 💄 add new workman sound * 📝 add README * 🎨 fix layout formatting * 📝 add image of numpad layer * 📦 changing chibios submodule version to match upstream/master's version * ✨ add caps lock key on adjust layer * ✨ reworking numpad layer to match a real numpad * ✨ add double tap to activate numpad * 📝 fix layout comments * 📝 update numpad layer render * ✨ adding operator keys to left hand on numpad * 🎨 shorten numpad keycodes --- .../preonic/keymaps/dudeofawesome/config.h | 53 ++++ .../preonic/keymaps/dudeofawesome/keymap.c | 275 ++++++++++++++++++ .../preonic/keymaps/dudeofawesome/readme.md | 22 ++ .../preonic/keymaps/dudeofawesome/rules.mk | 0 4 files changed, 350 insertions(+) create mode 100644 keyboards/preonic/keymaps/dudeofawesome/config.h create mode 100644 keyboards/preonic/keymaps/dudeofawesome/keymap.c create mode 100644 keyboards/preonic/keymaps/dudeofawesome/readme.md create mode 100644 keyboards/preonic/keymaps/dudeofawesome/rules.mk diff --git a/keyboards/preonic/keymaps/dudeofawesome/config.h b/keyboards/preonic/keymaps/dudeofawesome/config.h new file mode 100644 index 000000000000..566fac3ed352 --- /dev/null +++ b/keyboards/preonic/keymaps/dudeofawesome/config.h @@ -0,0 +1,53 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +#define TAPPING_TOGGLE 2 + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PLANCK_SOUND) + // #define STARTUP_SONG SONG(NO_SOUND) + + #define WORKMAN_SOUND \ + E__NOTE(_GS7), \ + ED_NOTE(_E7), \ + S__NOTE(_REST), \ + E__NOTE(_A6), \ + S__NOTE(_REST), \ + ED_NOTE(_GS6), + + #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(WORKMAN_SOUND), \ + SONG(COLEMAK_SOUND), \ + SONG(DVORAK_SOUND) \ + } +#endif + +#define MUSIC_MASK (keycode != KC_NO) + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ + +#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 2 + +#endif diff --git a/keyboards/preonic/keymaps/dudeofawesome/keymap.c b/keyboards/preonic/keymaps/dudeofawesome/keymap.c new file mode 100644 index 000000000000..e8faf670be49 --- /dev/null +++ b/keyboards/preonic/keymaps/dudeofawesome/keymap.c @@ -0,0 +1,275 @@ +/* Copyright 2015-2017 Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "preonic.h" +#include "action_layer.h" + +enum preonic_layers { + _QWERTY, + _WORKMAN, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _ADJUST, + _NUMPAD +}; + +enum preonic_keycodes { + QWERTY = SAFE_RANGE, + WORKMAN, + COLEMAK, + DVORAK, + LOWER, + RAISE, + BACKLIT +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | ' | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Num | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT)}, + {TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Workman + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | R | W | B | J | F | U | P | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | H | T | G | Y | N | E | O | I | ' | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | M | C | V | K | L | , | . | / | Enter| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Num | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_WORKMAN] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, + {KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT)}, + {TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | ' | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Num | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT)}, + {TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | ' | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Num | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, RSFT_T(KC_ENT)}, + {TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Play | Vol- | Vol+ | Next | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______}, + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MNXT} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Play | Vol- | Vol+ | Next | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______}, + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MNXT} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * |CPSLCK| | |Aud on|AudOff|AGnorm|AGswap|Qwerty|Workmn|Dvorak|Colemk| | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {_______, RESET, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL}, + {KC_CAPS, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, WORKMAN, DVORAK, COLEMAK, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +}, + +/* Numpad + * ,-----------------------------------------------------------------------------------. + * | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | / | * | - | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | ✗ | Home | Up | End | PgUp | ✗ | 7 | 8 | 9 | + | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | ✗ | Left | Down | Right| PgDn | ✗ | 4 | 5 | 6 | + | ✗ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | / | * | - | + | Enter| ✗ | 1 | 2 | 3 | Enter| Enter| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | ✗ | | 0 | 0 | . | Enter| = | + * `-----------------------------------------------------------------------------------' + */ +[_NUMPAD] = { + {_______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSLS, KC_PAST, KC_PMNS, _______}, + {_______, KC_NO, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_P7, KC_P8, KC_P9, KC_PPLS, _______}, + {_______, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_NO}, + {_______, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_PENT, KC_NO, KC_P1, KC_P2, KC_P3, KC_PENT, KC_PENT}, + {_______, _______, _______, _______, KC_NO, _______, _______, KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_PEQL} +} + + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case WORKMAN: + if (record->event.pressed) { + set_single_persistent_default_layer(_WORKMAN); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + PORTE &= ~(1<<6); + } else { + unregister_code(KC_RSFT); + PORTE |= (1<<6); + } + return false; + break; + } + return true; +}; diff --git a/keyboards/preonic/keymaps/dudeofawesome/readme.md b/keyboards/preonic/keymaps/dudeofawesome/readme.md new file mode 100644 index 000000000000..244442494d2a --- /dev/null +++ b/keyboards/preonic/keymaps/dudeofawesome/readme.md @@ -0,0 +1,22 @@ +# DudeOfAwesome's Preonic layout + +![Preonic Layout](https://i.imgur.com/EC42Pnw.png) + +## Features + +- Base Layers + - QWERTY + - Workman + - Dvorak + - Colemak +- Numpad layer + ![numpad layer](https://i.imgur.com/V5iGHZg.png) +- Audio + +## Building and flashing + +1. Put your board in DFU mode with either the button on the bottom, or with a software key in your current firmware +1. Flash: + ```bash + $ make preonic/rev2:dudeofawesome:dfu + ``` diff --git a/keyboards/preonic/keymaps/dudeofawesome/rules.mk b/keyboards/preonic/keymaps/dudeofawesome/rules.mk new file mode 100644 index 000000000000..e69de29bb2d1 From b713feb6f2031a3d7493791b2f549636c026de9e Mon Sep 17 00:00:00 2001 From: fauxpark Date: Fri, 2 Mar 2018 02:49:50 +1100 Subject: [PATCH 008/578] Add a little aside explaining that shifted keys with mod-tap doesn't work (#2446) --- docs/feature_advanced_keycodes.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/feature_advanced_keycodes.md b/docs/feature_advanced_keycodes.md index 0e22154f624a..ceee7fad1836 100644 --- a/docs/feature_advanced_keycodes.md +++ b/docs/feature_advanced_keycodes.md @@ -116,7 +116,7 @@ These are the values you can use for the `mod` in `MT()` and `OSM()`: * MOD_HYPR * MOD_MEH -These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LSFT, KC_ESC)` which would activate Control and Shift when held, and send Escape when tapped. Note however, that you cannot mix right and left side modifiers. +These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LSFT, KC_ESC)` which would activate Control and Shift when held, and send Escape when tapped. We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact: @@ -129,6 +129,12 @@ We've added shortcuts to make common modifier/tap (mod-tap) mappings more compac * `LCAG_T(kc)` - is CtrlAltGui when held and *kc* when tapped * `MEH_T(kc)` - is like Hyper, but not as cool -- does not include the Cmd/Win key, so just sends Alt+Ctrl+Shift. +{% hint style='info' %} +Due to the way that keycodes are structured, any modifiers specified as part of `kc`, such as `LCTL()` or `KC_LPRN`, will only activate when held instead of tapped. + +Additionally, if there is at least one right modifier, any other modifiers will turn into their right equivalents, so it is not possible to "mix and match" the two. +{% endhint %} + # One Shot Keys One shot keys are keys that remain active until the next key is pressed, and then are released. This allows you to type keyboard combinations without pressing more than one key at a time. These keys are usually called "Sticky keys" or "Dead keys". From 381f4e6404f1aeb39851d950f747048dd13e828a Mon Sep 17 00:00:00 2001 From: Maarten Dekkers Date: Thu, 1 Mar 2018 16:51:11 +0100 Subject: [PATCH 009/578] Updated and added maartenwut's layouts (#2444) --- keyboards/kbd66/keymaps/maartenwut/config.h | 24 + keyboards/kbd66/keymaps/maartenwut/keymap.c | 69 +++ keyboards/kbd66/keymaps/maartenwut/readme.md | 3 + keyboards/tada68/keymaps/maartenwut/config.h | 2 - keyboards/tada68/keymaps/maartenwut/keymap.c | 428 ++---------------- keyboards/tada68/keymaps/maartenwut/readme.md | 2 +- keyboards/tada68/keymaps/maartenwut/rules.mk | 22 - keyboards/tada68/keymaps/maartenwut/tada68.h | 43 -- 8 files changed, 145 insertions(+), 448 deletions(-) create mode 100755 keyboards/kbd66/keymaps/maartenwut/config.h create mode 100755 keyboards/kbd66/keymaps/maartenwut/keymap.c create mode 100755 keyboards/kbd66/keymaps/maartenwut/readme.md delete mode 100644 keyboards/tada68/keymaps/maartenwut/rules.mk delete mode 100755 keyboards/tada68/keymaps/maartenwut/tada68.h diff --git a/keyboards/kbd66/keymaps/maartenwut/config.h b/keyboards/kbd66/keymaps/maartenwut/config.h new file mode 100755 index 000000000000..c7b3d6ecc333 --- /dev/null +++ b/keyboards/kbd66/keymaps/maartenwut/config.h @@ -0,0 +1,24 @@ +/* Copyright 2018 Alex Peters + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +// place overrides here + +#endif diff --git a/keyboards/kbd66/keymaps/maartenwut/keymap.c b/keyboards/kbd66/keymaps/maartenwut/keymap.c new file mode 100755 index 000000000000..762bed221b90 --- /dev/null +++ b/keyboards/kbd66/keymaps/maartenwut/keymap.c @@ -0,0 +1,69 @@ +#include "kbd66.h" + +#define _MA 0 +#define _GA 1 +#define _FL 2 +#define _AR 3 +#define _LE 4 +#define _LO 5 +#define _UL 6 + +#define TRNS KC_TRNS +#define ______ KC_NO +#define trigger_time 400 + +#define LSHIFT OSM(MOD_LSFT) +#define SPACE LT(_AR, KC_SPC) +#define CAPS LT(_LE, KC_CAPS) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// Main Layer +[_MA] = KEYMAP_ANSI( + KC_GESC, 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_MPLY, KC_BSPC, KC_PSCR, + 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_BSLS, KC_DEL, + CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + LSHIFT, TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TRNS, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, SPACE, SPACE, KC_RALT, KC_RCTRL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), + +//Function Layer +[_FL] = KEYMAP_ANSI( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TRNS, RESET, KC_PGUP, + TRNS, KC_BTN1, KC_MS_U, KC_BTN2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_PGDN, + TRNS, KC_MS_L, KC_MS_D, KC_MS_R, TRNS, TG(_GA), TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_VOLD, KC_VOLU, KC_MUTE, TRNS, TRNS, KC_WH_U, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_WH_L, KC_WH_D, KC_WH_R), + +//Arrow keys layer (space bar) +[_AR] = KEYMAP_ANSI( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, M(0), TRNS, TRNS, TRNS), +//LED control layer (caps) +[_LE] = KEYMAP_ANSI( + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, BL_TOGG, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, BL_INC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, BL_DEC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), + +//Game layer (fn + g) +[_GA] = KEYMAP_ANSI( + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + KC_CAPS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + KC_LSFT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, KC_SPC, KC_SPC, TRNS, TRNS, MO(_FL), TRNS, TRNS, TRNS), +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch (id) { + case 0: + if (record->event.pressed) { + SEND_STRING("AdminF123!"); + } + break; + } + return MACRO_NONE; +}; \ No newline at end of file diff --git a/keyboards/kbd66/keymaps/maartenwut/readme.md b/keyboards/kbd66/keymaps/maartenwut/readme.md new file mode 100755 index 000000000000..24be72c014ca --- /dev/null +++ b/keyboards/kbd66/keymaps/maartenwut/readme.md @@ -0,0 +1,3 @@ +# Maartenwut's KBD66 layout + +This is Maartenwut's layout, which is really similar to Maartenwut's Tada68 layout. \ No newline at end of file diff --git a/keyboards/tada68/keymaps/maartenwut/config.h b/keyboards/tada68/keymaps/maartenwut/config.h index 7d81548b7f37..a5568e400def 100755 --- a/keyboards/tada68/keymaps/maartenwut/config.h +++ b/keyboards/tada68/keymaps/maartenwut/config.h @@ -1,3 +1 @@ #include "../../config.h" - -#define BACKLIGHT_BREATHING \ No newline at end of file diff --git a/keyboards/tada68/keymaps/maartenwut/keymap.c b/keyboards/tada68/keymaps/maartenwut/keymap.c index 8ddd6e30566a..c5b9d987ea44 100755 --- a/keyboards/tada68/keymaps/maartenwut/keymap.c +++ b/keyboards/tada68/keymaps/maartenwut/keymap.c @@ -1,414 +1,82 @@ #include "tada68.h" -#include "action_layer.h" -#include "timer.h" -#include "bootloader.h" -#include "command.h" #define _MA 0 #define _GA 1 #define _FL 2 #define _AR 3 -#define _LO 4 -#define _UL 5 +#define _LE 4 +#define _LO 5 +#define _UL 6 #define TRNS KC_TRNS #define trigger_time 400 -#define T1 M(1) -#define T2 M(2) -#define T3 M(3) -#define T4 M(4) -#define T5 M(5) -#define T6 M(6) -#define T7 M(7) -#define T8 M(8) -#define T9 M(9) -#define T10 M(10) -#define T11 M(11) -#define T12 M(12) -#define END_HOME M(0) #define LSHIFT OSM(MOD_LSFT) #define SPACE LT(_AR, KC_SPC) - -static uint16_t key_timer; - -enum emoticons { - LENNY = SAFE_RANGE, - DWNHRT, - SHRUG -}; +#define CAPS LT(_LE, KC_CAPS) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap _MA: Main Layer, Default - * ,----------------------------------------------------------------. - * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |P/P | - * |----------------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |Del | - * |----------------------------------------------------------------| - * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |PgUp| - * |----------------------------------------------------------------| - * |Shft|End| Z| X| C| V| B| N| M| ,| .| /|Shift | Up|PgDn| - * |----------------------------------------------------------------| - * |Ctrl|Win |Alt | Space |Alt|Ctrl| FN|Lef|Dow|Rig | - * `----------------------------------------------------------------' - */ +// Main Layer [_MA] = KEYMAP_ANSI( - KC_ESC, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, KC_BSPC, KC_MPLY, \ - 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_BSLS, KC_DEL, \ - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \ - LSHIFT, END_HOME, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \ - KC_LCTL, KC_LGUI, KC_LALT, SPACE, KC_RALT, KC_RCTRL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), - - /* Keymap _FL: Function Layer - * ,----------------------------------------------------------------. - * |~` | F1|F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Reset |Prsc| - * |----------------------------------------------------------------| - * | |MbL|MsU|MbR| | | | | | | | | | |_LO | - * |----------------------------------------------------------------| - * | |MsL|MsD|MsR| |_GA| | | | | | | |Hme | - * |----------------------------------------------------------------| - * | | | | | | | | | |VoU|VoD|Mut| |MwU|End | - * |----------------------------------------------------------------| - * | | | | | | | |MwL|MwD|MwR | - * `----------------------------------------------------------------' - */ + KC_GESC, 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_BSPC, KC_MPLY, + 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_BSLS, KC_DEL, + CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, SPACE, KC_RALT, KC_RCTRL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), + +//Function Layer [_FL] = KEYMAP_ANSI( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RESET, KC_PSCR, \ - TRNS, KC_BTN1, KC_MS_U, KC_BTN2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TO(_LO), \ - TRNS, KC_MS_L, KC_MS_D, KC_MS_R, TRNS, TG(_GA), TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_HOME, \ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_VOLD, KC_VOLU, KC_MUTE, TRNS, KC_WH_U, KC_END, \ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_WH_L, KC_WH_D, KC_WH_R), + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RESET, KC_PSCR, + TRNS, KC_BTN1, KC_MS_U, KC_BTN2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TO(_LO), + TRNS, KC_MS_L, KC_MS_D, KC_MS_R, TRNS, TG(_GA), TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_HOME, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_VOLD, KC_VOLU, KC_MUTE, TRNS, KC_WH_U, KC_END, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_WH_L, KC_WH_D, KC_WH_R), - /* Keymap _AR: Arrow layer - * ,----------------------------------------------------------------. - * |~` | F1|F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| | | - * |----------------------------------------------------------------| - * |Lenny| | | | | | | | | | | | | | | - * |----------------------------------------------------------------| - * |Dwnhrt| | | | | |Lft|Dwn| Up|Rgt| | | | | - * |----------------------------------------------------------------| - * |Shrg| | | | | | | | | | | | | | | - * |----------------------------------------------------------------| - * | | | | | | | | | | | - * `----------------------------------------------------------------' - */ +//Arrow keys layer (space bar) [_AR] = KEYMAP_ANSI( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TRNS, TRNS, \ - LENNY, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ - DWNHRT, TRNS, TRNS, TRNS, TRNS, TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TRNS, TRNS, TRNS, TRNS, \ - SHRUG, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TRNS, TRNS, TRNS, TRNS, + TRNS, TERM_ON, TERM_OFF, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, M(0), TRNS, TRNS, TRNS), +//LED control layer (caps) +[_LE] = KEYMAP_ANSI( + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, BL_TOGG, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, BL_INC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, BL_DEC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), - /* Keymap _GA: Game layer - * ,----------------------------------------------------------------. - * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |P/P | - * |----------------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |Del | - * |----------------------------------------------------------------| - * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |PgUp| - * |----------------------------------------------------------------| - * |Shft|End| Z| X| C| V| B| N| M| ,| .| /|Shift | Up|PgDn| - * |----------------------------------------------------------------| - * |Ctrl|Win |Alt | Space |Alt|Ctrl| FN|Lef|Dow|Rig | - * `----------------------------------------------------------------' - */ +//Game layer (fn + g) [_GA] = KEYMAP_ANSI( - KC_ESC, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, KC_BSPC, KC_MPLY, \ - 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_BSLS, KC_DEL, \ - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \ - KC_LSFT, END_HOME, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTRL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + KC_CAPS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + KC_LSFT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, KC_SPC, TRNS, TRNS, MO(_FL), TRNS, TRNS, TRNS), - /* Keymap _UL: Unlock layer - * ,----------------------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |----------------------------------------------------------------| - * | | | | | | | | | | | | | | |_MA | - * |----------------------------------------------------------------| - * | | | | | | | | | | | | | | | - * |----------------------------------------------------------------| - * | | | | | | | | | | | | | | | | - * |----------------------------------------------------------------| - * | | | | | | | | | | | - * `----------------------------------------------------------------' - */ [_UL] = KEYMAP_ANSI( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(_MA), \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TRNS, KC_NO, KC_NO, KC_NO), + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(_MA), + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TRNS, KC_NO, KC_NO, KC_NO), - /* Keymap _LO: Lock layer - * ,----------------------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |----------------------------------------------------------------| - * | | | | | | | | | | | | | | | | - * |----------------------------------------------------------------| - * | | | | | | | | | | | | | | | - * |----------------------------------------------------------------| - * | | | | | | | | | | | | | | | | - * |----------------------------------------------------------------| - * | | | | | | | _UL | | | | - * `----------------------------------------------------------------' - */ [_LO] = KEYMAP_ANSI( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MO(_UL), KC_NO, KC_NO, KC_NO), -}; - -void tap(uint16_t keycode){ - register_code(keycode); - unregister_code(keycode); -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case LENNY: // ( ͡° ͜ʖ ͡°) - if(record->event.pressed){ - set_unicode_input_mode(UC_WIN); - register_code(KC_LSFT); - tap(KC_9); // Head - unregister_code(KC_LSFT); - tap(KC_SPC); // Space - process_unicode((0x0361|QK_UNICODE), record); // Eyebrow - process_unicode((0x00B0|QK_UNICODE), record); // Eye - tap(KC_SPC); - process_unicode((0x035C|QK_UNICODE), record); // Mouth - process_unicode((0x0296|QK_UNICODE), record); // Nose - tap(KC_SPC); - process_unicode((0x0361|QK_UNICODE), record); // Eyebrow - process_unicode((0x00B0|QK_UNICODE), record); // Eye - register_code(KC_LSFT); - tap(KC_0); // Head - unregister_code(KC_LSFT); - } - return false; - break; - case DWNHRT: // (´・ω・`) - if(record->event.pressed){ - set_unicode_input_mode(UC_WIN); - register_code(KC_LSFT); - tap(KC_9); // Head - unregister_code(KC_LSFT); - process_unicode((0x00B4|QK_UNICODE), record); // Eyebrow - process_unicode((0x30FB|QK_UNICODE), record); // Eye - process_unicode((0x03C9|QK_UNICODE), record); // Mouth - process_unicode((0x30FB|QK_UNICODE), record); // Eye - process_unicode((0x0060|QK_UNICODE), record); // Eyebrow - register_code(KC_LSFT); - tap(KC_0); // Head - unregister_code(KC_LSFT); - } - return false; - break; - case SHRUG: // ¯\_(ツ)_/¯ - if(record->event.pressed){ - set_unicode_input_mode(UC_WIN); - process_unicode((0x00AF|QK_UNICODE), record); // Hand - tap(KC_BSLS); // Arm - register_code(KC_LSFT); - tap(KC_UNDS); // Arm - tap(KC_LPRN); // Head - unregister_code(KC_LSFT); - process_unicode((0x30C4|QK_UNICODE), record); // Face - register_code(KC_LSFT); - tap(KC_RPRN); // Head - tap(KC_UNDS); // Arm - unregister_code(KC_LSFT); - tap(KC_SLSH); // Arm - process_unicode((0x00AF|QK_UNICODE), record); // Hand - } - return false; - break; - } - return true; + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MO(_UL), KC_NO, KC_NO, KC_NO), }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch (id) { case 0: if (record->event.pressed) { - key_timer = timer_read(); - } - else { - if (timer_elapsed(key_timer) > trigger_time) { - return MACRO( T(END), END ); - } - else { - return MACRO( T(HOME), END ); - } - } - break; - case 1: - if (record->event.pressed) { - key_timer = timer_read(); - } - else { - if (timer_elapsed(key_timer) > trigger_time) { - return MACRO( T(F1), END ); - } - else { - return MACRO( T(1), END ); - } - } - break; - case 2: - if (record->event.pressed) { - key_timer = timer_read(); - } - else { - if (timer_elapsed(key_timer) > trigger_time) { - return MACRO( T(F2), END ); - } - else { - return MACRO( T(2), END ); - } - } - break; - case 3: - if (record->event.pressed) { - key_timer = timer_read(); - } - else { - if (timer_elapsed(key_timer) > trigger_time) { - return MACRO( T(F3), END ); - } - else { - return MACRO( T(3), END ); - } - } - break; - case 4: - if (record->event.pressed) { - key_timer = timer_read(); - } - else { - if (timer_elapsed(key_timer) > trigger_time) { - return MACRO( T(F4), END ); - } - else { - return MACRO( T(4), END ); - } - } - break; - case 5: - if (record->event.pressed) { - key_timer = timer_read(); - } - else { - if (timer_elapsed(key_timer) > trigger_time) { - return MACRO( T(F5), END ); - } - else { - return MACRO( T(5), END ); - } - } - break; - case 6: - if (record->event.pressed) { - key_timer = timer_read(); - } - else { - if (timer_elapsed(key_timer) > trigger_time) { - return MACRO( T(F6), END ); - } - else { - return MACRO( T(6), END ); - } - } - break; - case 7: - if (record->event.pressed) { - key_timer = timer_read(); - } - else { - if (timer_elapsed(key_timer) > trigger_time) { - return MACRO( T(F7), END ); - } - else { - return MACRO( T(7), END ); - } - } - break; - case 8: - if (record->event.pressed) { - key_timer = timer_read(); - } - else { - if (timer_elapsed(key_timer) > trigger_time) { - return MACRO( T(F8), END ); - } - else { - return MACRO( T(8), END ); - } - } - break; - case 9: - if (record->event.pressed) { - key_timer = timer_read(); - } - else { - if (timer_elapsed(key_timer) > trigger_time) { - return MACRO( T(F9), END ); - } - else { - return MACRO( T(9), END ); - } - } - break; - case 10: - if (record->event.pressed) { - key_timer = timer_read(); - } - else { - if (timer_elapsed(key_timer) > trigger_time) { - return MACRO( T(F10), END ); - } - else { - return MACRO( T(0), END ); - } - } - break; - case 11: - if (record->event.pressed) { - key_timer = timer_read(); - } - else { - if (timer_elapsed(key_timer) > trigger_time) { - return MACRO( T(F11), END ); - } - else { - return MACRO( T(MINS), END ); - } - } - break; - case 12: - if (record->event.pressed) { - key_timer = timer_read(); - } - else { - if (timer_elapsed(key_timer) > trigger_time) { - return MACRO( T(F12), END ); - } - else { - return MACRO( T(EQL), END ); - } + SEND_STRING("Password"); } break; } return MACRO_NONE; -}; - -void led_set_user(uint8_t usb_led) { - if (usb_led & (1< Date: Thu, 1 Mar 2018 10:51:57 -0500 Subject: [PATCH 010/578] adding my keymap (#2443) --- keyboards/planck/keymaps/navi/config.h | 30 +++ keyboards/planck/keymaps/navi/keymap.c | 298 ++++++++++++++++++++++++ keyboards/planck/keymaps/navi/readme.md | 6 + keyboards/planck/keymaps/navi/rules.mk | 1 + 4 files changed, 335 insertions(+) create mode 100644 keyboards/planck/keymaps/navi/config.h create mode 100644 keyboards/planck/keymaps/navi/keymap.c create mode 100644 keyboards/planck/keymaps/navi/readme.md create mode 100644 keyboards/planck/keymaps/navi/rules.mk diff --git a/keyboards/planck/keymaps/navi/config.h b/keyboards/planck/keymaps/navi/config.h new file mode 100644 index 000000000000..694053c6a480 --- /dev/null +++ b/keyboards/planck/keymaps/navi/config.h @@ -0,0 +1,30 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ + +#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 2 + +#endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/navi/keymap.c b/keyboards/planck/keymaps/navi/keymap.c new file mode 100644 index 000000000000..56d52d983b78 --- /dev/null +++ b/keyboards/planck/keymaps/navi/keymap.c @@ -0,0 +1,298 @@ +/* Copyright 2015-2017 Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * cd /c/qmk_firmware + * make planck/rev4:navi + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "planck.h" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" + #include "song_list.h" +#endif + +extern keymap_config_t keymap_config; + +enum planck_layers { + _QWERTY, + _COLEMAK, + _PLOVER, + _LOWER, + _RAISE, + _ADJUST, + _FUNCTION +}; + +enum planck_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + PLOVER, + LOWER, + RAISE, + EXT_PLV, + FUNCTION +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | CtlE | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | FN |CtlSE | GUI | Alt | Lower| Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + * CtlSE = Control+shift+esc/ + * CtlE = Control when held, esc when tapped + */ +[_QWERTY] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {LCTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {FUNCTION, C_S_T(KC_ESC), KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | CtlE | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | FN |CtlSE | GUI | Alt |Lower | Space | Raise| Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {LCTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {FUNCTION, C_S_T(KC_ESC), KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_PLOVER] = { + {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, + {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, + {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} +}, + + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ | ISO | End | Home | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | |Pg DN | Pg UP| | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_LSHIFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_END, KC_HOME, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN , KC_PGUP, _______} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |Shift | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | End | Home | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | |Pg DN |Pg UP | | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_LSHIFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_END, KC_HOME, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN , KC_PGUP, _______} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | |MU_MOD|Aud on|Audoff| | |Qwerty|Colemk|Plover| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |Caps |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | Caps | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {_______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL }, + {_______, _______, MU_MOD, AU_ON, AU_OFF, _______, _______, QWERTY, COLEMAK, PLOVER,_______, _______}, + {KC_CAPS, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, KC_CAPS}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +}, + +/* Function + * ,-----------------------------------------------------------------------------------. + * | Esc | | Prev | Play | Next | | | | 7 | 8 | 9 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | Vol- | Mute | Vol+ | | | + | 4 | 5 | 6 | - | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | CALC | | | | | | | $ | 1 | 2 | 3 | Enter| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | |Prntsc| | | | * | 0 | . |Numlck| / | + * `-----------------------------------------------------------------------------------' + */ + +[_FUNCTION] = { + {KC_ESC , _______, KC_MPRV, KC_MPLY, KC_MNXT, _______,_______,_______, KC_KP_7, KC_KP_8, KC_KP_9,KC_BSPC}, + {_______, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, _______, KC_PPLS, KC_KP_4, KC_KP_5, KC_KP_6, KC_PMNS}, + {KC_CALC, _______, _______, _______, _______, _______, _______, KC_DLR, KC_KP_1, KC_KP_2, KC_KP_3, KC_ENT}, + {_______, _______, KC_PSCR, _______, _______ , _______, _______, KC_PAST, KC_KP_0, KC_KP_DOT,KC_NUMLOCK, KC_PSLS} +} + +}; + +#ifdef AUDIO_ENABLE +float tone_startup[][2] = SONG(ZELDA_PUZZLE); +float tone_qwerty[][2] = SONG(ZELDA_TREASURE); +float plover_song[][2] = SONG(PLOVER_SOUND); +float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); +float tone_colemak[][2] = SONG(VIOLIN_SOUND); +float tone_music_on[][2] = SONG(ONE_UP_SOUND); +float tone_music_off[][2] = SONG(ROCK_A_BYE_BABY); +#endif /* AUDIO_ENABLE */ + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_qwerty); + #endif + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_colemak); + #endif + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case FUNCTION: + if (record->event.pressed) { + layer_on(_FUNCTION); + } else { + layer_off(_FUNCTION); + } + return false; + break; + case PLOVER: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_SONG(plover_song); + #endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + break; + case EXT_PLV: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(plover_gb_song); + #endif + layer_off(_PLOVER); + } + return false; + break; + } + return true; +} + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + startup_user(); + #endif +} + +#ifdef AUDIO_ENABLE + +void startup_user() +{ + _delay_ms(20); // gets rid of tick + PLAY_SONG(tone_startup); +} + +void music_on_user(void) +{ + PLAY_SONG(tone_music_on); +} + +void music_off_user(void) +{ + PLAY_SONG(tone_music_off); +} +#endif + + diff --git a/keyboards/planck/keymaps/navi/readme.md b/keyboards/planck/keymaps/navi/readme.md new file mode 100644 index 000000000000..2103b1ab1df8 --- /dev/null +++ b/keyboards/planck/keymaps/navi/readme.md @@ -0,0 +1,6 @@ +# Navi (Navigatorade)'s personal key layout. +# Primarily focused on qwerty & colemak +# Added a numberpad layer, mainly for accounting + + + diff --git a/keyboards/planck/keymaps/navi/rules.mk b/keyboards/planck/keymaps/navi/rules.mk new file mode 100644 index 000000000000..628167ff668c --- /dev/null +++ b/keyboards/planck/keymaps/navi/rules.mk @@ -0,0 +1 @@ +AUDIO_ENABLE = yes \ No newline at end of file From 31cae1f1bd3f014893f0284f6e9bc80165130fcd Mon Sep 17 00:00:00 2001 From: Mitchell van Manen Date: Thu, 1 Mar 2018 17:05:15 +0100 Subject: [PATCH 011/578] Update feature_macros.md (#2387) break statements are never reached due to the return statement, so unnecessary --- docs/feature_macros.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/feature_macros.md b/docs/feature_macros.md index dff692bd8f0c..e77d7afea30d 100644 --- a/docs/feature_macros.md +++ b/docs/feature_macros.md @@ -22,7 +22,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch(keycode) { case MY_CUSTOM_MACRO: SEND_STRING("QMK is the best thing ever!"); // this is our macro! - return false; break; + return false; } } return true; @@ -56,10 +56,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch(keycode) { case MY_CUSTOM_MACRO: SEND_STRING("QMK is the best thing ever!"); - return false; break; + return false; case MY_OTHER_MACRO: SEND_STRING(SS_LCTRL("ac")); // selects all and copies - return false; break; + return false; } } return true; From e3f67e6e7f726802b978a1e53eda3e2a40122565 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 1 Mar 2018 08:13:10 -0800 Subject: [PATCH 012/578] Add `SGUI()` and `SGUI_T()` for consistency with `KC_GUI` (#2442) * Add `SGUI()` as an alias of `SCMD()` for consistency with `KC_GUI` * Add `SGUI_T()` as an alias of `SCMD_T()` for consistency with `KC_GUI` * Make SGUI the primary name --- quantum/quantum_keycodes.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h index 1b9a7534c4e4..2d9603064255 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h @@ -454,7 +454,8 @@ enum quantum_keycodes { #define MEH(kc) (kc | QK_LCTL | QK_LSFT | QK_LALT) #define LCAG(kc) (kc | QK_LCTL | QK_LALT | QK_LGUI) #define ALTG(kc) (kc | QK_RCTL | QK_RALT) -#define SCMD(kc) (kc | QK_LGUI | QK_LSFT) +#define SGUI(kc) (kc | QK_LGUI | QK_LSFT) +#define SCMD(kc) SCMD(kc) #define SWIN(kc) SCMD(kc) #define LCA(kc) (kc | QK_LCTL | QK_LALT) @@ -619,7 +620,8 @@ enum quantum_keycodes { #define LCAG_T(kc) MT((MOD_LCTL | MOD_LALT | MOD_LGUI), kc) // Left control alt and gui #define RCAG_T(kc) MT((MOD_RCTL | MOD_RALT | MOD_RGUI), kc) // Right control alt and gui #define ALL_T(kc) MT((MOD_LCTL | MOD_LSFT | MOD_LALT | MOD_LGUI), kc) // see http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/ -#define SCMD_T(kc) MT((MOD_LGUI | MOD_LSFT), kc) +#define SGUI_T(kc) MT((MOD_LGUI | MOD_LSFT), kc) +#define SCMD_T(kc) SCMD_T(kc) #define SWIN_T(kc) SCMD_T(kc) #define LCA_T(kc) MT((MOD_LCTL | MOD_LALT), kc) // Left control and left alt From e5c331e7be2ebb062d861876b17d14683c0c3fda Mon Sep 17 00:00:00 2001 From: skullY Date: Thu, 1 Mar 2018 16:15:38 -0800 Subject: [PATCH 013/578] Fix the SGUI aliases --- quantum/quantum_keycodes.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h index 2d9603064255..a4ee4d6bb92e 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h @@ -455,8 +455,8 @@ enum quantum_keycodes { #define LCAG(kc) (kc | QK_LCTL | QK_LALT | QK_LGUI) #define ALTG(kc) (kc | QK_RCTL | QK_RALT) #define SGUI(kc) (kc | QK_LGUI | QK_LSFT) -#define SCMD(kc) SCMD(kc) -#define SWIN(kc) SCMD(kc) +#define SCMD(kc) SGUI(kc) +#define SWIN(kc) SGUI(kc) #define LCA(kc) (kc | QK_LCTL | QK_LALT) #define MOD_HYPR 0xf @@ -621,8 +621,8 @@ enum quantum_keycodes { #define RCAG_T(kc) MT((MOD_RCTL | MOD_RALT | MOD_RGUI), kc) // Right control alt and gui #define ALL_T(kc) MT((MOD_LCTL | MOD_LSFT | MOD_LALT | MOD_LGUI), kc) // see http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/ #define SGUI_T(kc) MT((MOD_LGUI | MOD_LSFT), kc) -#define SCMD_T(kc) SCMD_T(kc) -#define SWIN_T(kc) SCMD_T(kc) +#define SCMD_T(kc) SGUI_T(kc) +#define SWIN_T(kc) SGUI_T(kc) #define LCA_T(kc) MT((MOD_LCTL | MOD_LALT), kc) // Left control and left alt // Dedicated keycode versions for Hyper and Meh, if you want to use them as standalone keys rather than mod-tap From e87c39d3024908d646e2e0d80d0b63e68ac52f87 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 2 Mar 2018 09:21:03 -0800 Subject: [PATCH 014/578] More thoroughly document Bootmagic and Command (#2455) --- docs/_summary.md | 1 + docs/faq_keymap.md | 33 ++++--- docs/feature_bootmagic.md | 125 ++++++++++++++++----------- docs/feature_command.md | 52 +++++++++++ docs/hardware_keyboard_guidelines.md | 16 ++++ 5 files changed, 165 insertions(+), 62 deletions(-) create mode 100644 docs/feature_command.md diff --git a/docs/_summary.md b/docs/_summary.md index 0192db0d7e01..47dcbb1e24cf 100644 --- a/docs/_summary.md +++ b/docs/_summary.md @@ -25,6 +25,7 @@ * [Auto Shift](feature_auto_shift.md) * [Backlight](feature_backlight.md) * [Bootmagic](feature_bootmagic.md) + * [Command](feature_command.md) * [Dynamic Macros](feature_dynamic_macros.md) * [Grave Escape](feature_grave_esc.md) * [Key Lock](feature_key_lock.md) diff --git a/docs/faq_keymap.md b/docs/faq_keymap.md index 0fed0445f2c8..674d207aa95c 100644 --- a/docs/faq_keymap.md +++ b/docs/faq_keymap.md @@ -14,6 +14,15 @@ There are 3 standard keyboard layouts in use around the world- ANSI, ISO, and JI ![Keyboard Layout Image](https://i.imgur.com/45m4mRf.png) +## Some Of My Keys Are Swapped Or Not Working + +QMK has two features, Bootmagic and Command, which allow you to change the behavior of your keyboard on the fly. This includes, but is not limited to, swapping Ctrl/Caps, disabling Gui, swapping Alt/Gui, swapping Backspace/Backslash, disabling all keys, and other behavioral modifications. + +As a quick fix try holding down `Space`+`Backspace` while you plug in your keyboard. This will reset the stored settings on your keyboard, returning those keys to normal operation. If that doesn't work look here: + +* [Bootmagic](feature_bootmagic.md) +* [Command](feature_command.md) + ## The Menu Key Isn't Working The key found on most modern keyboards that is located between `KC_RGUI` and `KC_RCTL` is actually called `KC_APP`. This is because when that key was invented there was already a key named `MENU` in the relevant standards, so MS chose to call that the `APP` key. @@ -22,13 +31,13 @@ The key found on most modern keyboards that is located between `KC_RGUI` and `KC Use keycode for Print Screen(`KC_PSCREEN` or `KC_PSCR`) instead of `KC_SYSREQ`. Key combination of 'Alt + Print Screen' is recognized as 'System request'. See [issue #168](https://github.com/tmk/tmk_keyboard/issues/168) and -- http://en.wikipedia.org/wiki/Magic_SysRq_key -- http://en.wikipedia.org/wiki/System_request +* http://en.wikipedia.org/wiki/Magic_SysRq_key +* http://en.wikipedia.org/wiki/System_request ## Power Key Doesn't Work Use `KC_PWR` instead of `KC_POWER` or vice versa. -- `KC_PWR` works with Windows and Linux, not with OSX. -- `KC_POWER` works with OSX and Linux, not with Windows. +* `KC_PWR` works with Windows and Linux, not with OSX. +* `KC_POWER` works with OSX and Linux, not with Windows. More info: http://geekhack.org/index.php?topic=14290.msg1327264#msg1327264 @@ -40,9 +49,9 @@ https://github.com/tmk/tmk_keyboard/issues/67 Modifier keys or layers can be stuck unless layer switching is configured properly. For Modifier keys and layer actions you have to place `KC_TRANS` on same position of destination layer to unregister the modifier key or return to previous layer on release event. -- https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#31-momentary-switching -- http://geekhack.org/index.php?topic=57008.msg1492604#msg1492604 -- https://github.com/tmk/tmk_keyboard/issues/248 +* https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#31-momentary-switching +* http://geekhack.org/index.php?topic=57008.msg1492604#msg1492604 +* https://github.com/tmk/tmk_keyboard/issues/248 ## Mechanical Lock Switch Support @@ -66,17 +75,17 @@ See this post for example **MACRO** code. http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-120.html#p195620 On **Windows** you can use `AltGr` key or **Alt code**. -- http://en.wikipedia.org/wiki/AltGr_key -- http://en.wikipedia.org/wiki/Alt_code +* http://en.wikipedia.org/wiki/AltGr_key +* http://en.wikipedia.org/wiki/Alt_code On **Mac** OS defines `Option` key combinations. -- http://en.wikipedia.org/wiki/Option_key#Alternative_keyboard_input +* http://en.wikipedia.org/wiki/Option_key#Alternative_keyboard_input On **Xorg** you can use `compose` key, instead. -- http://en.wikipedia.org/wiki/Compose_key +* http://en.wikipedia.org/wiki/Compose_key And see this for **Unicode** input. -- http://en.wikipedia.org/wiki/Unicode_input +* http://en.wikipedia.org/wiki/Unicode_input ## Apple/Mac Keyboard `Fn` diff --git a/docs/feature_bootmagic.md b/docs/feature_bootmagic.md index 080a8cb27b61..e09630328746 100644 --- a/docs/feature_bootmagic.md +++ b/docs/feature_bootmagic.md @@ -1,64 +1,89 @@ -# Bootmagic +# Bootmagic and Magic Keycodes - +There are 3 separate but related features that allow you to change the behavior of your keyboard without reflashing. While each of them have similar functionality you access that functionality in different ways depending on how your keyboard is configured. -## Bootmagic Keycodes +Bootmagic is a system for configuring your keyboard while it initializes. To trigger a Bootmagic command you hold down the bootmagic key (`KC_SPACE` on most keyboards) and one or more command keys. -Shortcuts for bootmagic options. You can use these even when bootmagic is off. +Bootmagic Keycodes allow you to access the Bootmagic functionality after your keyboard has initialized. To use Bootmagic Keycodes you assign keycodes starting with `MAGIC_`, much in the same way you define any other key. -|Key |Aliases |Description | -|----------------------------------|---------|------------------------------------| -|`MAGIC_SWAP_CONTROL_CAPSLOCK` | |Swap Left Control and Caps Lock | -|`MAGIC_CAPSLOCK_TO_CONTROL` | |Treat Caps Lock as Control | -|`MAGIC_SWAP_LALT_LGUI` | |Swap Left Alt and GUI | -|`MAGIC_SWAP_RALT_RGUI` | |Swap Right Alt and GUI | -|`MAGIC_NO_GUI` | |Disable the GUI key | -|`MAGIC_SWAP_GRAVE_ESC` | |Swap ` and Escape | -|`MAGIC_SWAP_BACKSLASH_BACKSPACE` | |Swap Backslash and Backspace | -|`MAGIC_HOST_NKRO` | |Force NKRO on | -|`MAGIC_SWAP_ALT_GUI` |`AG_SWAP`|Swap Alt and GUI on both sides | -|`MAGIC_UNSWAP_CONTROL_CAPSLOCK` | |Unswap Left Control and Caps Lock | -|`MAGIC_UNCAPSLOCK_TO_CONTROL` | |Stop treating CapsLock as Control | -|`MAGIC_UNSWAP_LALT_LGUI` | |Unswap Left Alt and GUI | -|`MAGIC_UNSWAP_RALT_RGUI` | |Unswap Right Alt and GUI | -|`MAGIC_UNNO_GUI` | |Enable the GUI key | -|`MAGIC_UNSWAP_GRAVE_ESC` | |Unswap ` and Escape| -|`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`| |Unswap Backslash and Backspace | -|`MAGIC_UNHOST_NKRO` | |Force NKRO off | -|`MAGIC_UNSWAP_ALT_GUI` |`AG_NORM`|Unswap Left Alt and GUI | -|`MAGIC_TOGGLE_NKRO` | |Turn NKRO on or off | +Command is a feature that allows you to control different aspects of your keyboard. Command used to be called Magic. Command is typically accessed by holding Left and Right Shift at the same time, although that can be customized. While it shares some functionality with Bootmagic it also allows you to access functionality that Bootmagic does not. For more information see the (Command)[feature_command.md) documentation page. +## Enabling Bootmagic -## Bootmagc Hotkeys +Bootmagic is disabled by default. To use Bootmagic you need to enable it in your `rules.mk` file: -Use this by holding the SPACEBAR and the documented key while -plugging in the USB connection. e.g. to get into bootloader mode -hold `SPACE` and `B` while plugging in USB. + BOOTMAGIC_ENABLE = yes +## Bootmagic Hotkeys and Keycodes -|Key |Description | -|-----------|------------------------------------------------------------------------| -|`ESC` | Skip bootmagic and saved eeprom configuration | -|`B` | Enter bootloader instead of firmware | -|`BACKSPACE`| Clear the saved settings from flash | -|`LCTRL` | Swap `Control` and `Capslock` and save into flash | -|`CAPSLOCK` | Swap `Capslock` and `Control` and save into flash | -|`LALT` | Swap Left `Alt` and `GUI` and save into flash, e.g. for OSX Opt and Cmd| -|`RALT` | Swap Right `Alt` and `GUI` and save into flash | -|`LGUI` | Disable GUI key - e.g. disable Windows key during gaming | -|`GRAVE` | Swap ' and `ESC` and save into flash | -|`BACKSLASH`| Swap Blackslash and Backspace and save into flash | -|`N` | Enable NKRO (N Key Roll Over) | -|`0` | Make Layer 0 the default layer at bootup, e.g. switch to dvorak | -|`1` | Make Layer 1 the default layer at bootup | -|`2` | Make Layer 2 the default layer at bootup | -|`3` | Make Layer 3 the default layer at bootup | -|`4` | Make Layer 4 the default layer at bootup | -|`5` | Make Layer 5 the default layer at bootup | -|`6` | Make Layer 6 the default layer at bootup | -|`7` | Make Layer 7 the default layer at bootup | +This table describes the default Hotkeys for Bootmagic and the Keycodes for Magic. These may be overriden at the Keyboard or Keymap level. Some functionality is not available in both methods. +To use the Hotkey hold down `BOOTMAGIC_KEY_SALT` (`KC_SPACE` by default) and the Hotkey while plugging in your keyboard. To use the Keycode assign that keycode to a layer. For example, if you hold down Space+B while plugging in most keyboards, you will enter bootloader mode. +|Hotkey |Keycode |Description | +|-----------|----------------------------------|--------------------------------------------------------| +|`ESC` | |Skip bootmagic and saved eeprom configuration | +|`B` |`RESET` |Enter bootloader instead of firmware | +|`D` |`DEBUG` |Enable debugging (writes messages to serial) | +|`X` | |Enable matrix debugging | +|`K` | |Enable keyboard debugging | +|`M` | |Enable mouse debugging | +|`BACKSPACE`| |Clear the saved settings from flash | +|`CAPSLOCK` |`MAGIC_CAPSLOCK_TO_CONTROL` |Treat `Capslock` as `Control` | +| |`MAGIC_UNCAPSLOCK_TO_CONTROL` |Stop treating CapsLock as Control | +|`LCTRL` |`MAGIC_SWAP_CONTROL_CAPSLOCK` |Swap `Control` and `Capslock` | +| |`MAGIC_UNSWAP_CONTROL_CAPSLOCK` |Unswap Left Control and Caps Lock | +| |`MAGIC_SWAP_ALT_GUI` |Swap Alt and GUI on both sides | +| |`MAGIC_UNSWAP_ALT_GUI` |Unswap Left Alt and GUI | +|`LALT` |`MAGIC_SWAP_LALT_LGUI` |Swap Left `Alt` and `GUI`, e.g. for OSX Opt and Cmd | +| |`MAGIC_UNSWAP_LALT_LGUI` |Unswap Left Alt and GUI | +|`RALT` |`MAGIC_SWAP_RALT_RGUI` |Swap Right `Alt` and `GUI` | +| |`MAGIC_UNSWAP_RALT_RGUI` |Unswap Right Alt and GUI | +|`LGUI` |`MAGIC_NO_GUI` |Disable GUI key - e.g. disable Windows key during gaming| +| |`MAGIC_UNNO_GUI` |Enable the GUI key | +|`GRAVE` |`MAGIC_SWAP_GRAVE_ESC` |Swap `\`~` and `ESC` | +| |`MAGIC_UNSWAP_GRAVE_ESC` |Unswap `\`~` and Escape | +|`BACKSLASH`|`MAGIC_SWAP_BACKSLASH_BACKSPACE` |Swap Blackslash and Backspace | +| |`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`|Unswap Backslash and Backspace | +|`N` |`MAGIC_HOST_NKRO` |Force N-Key Rollover (NKRO) on | +| |`MAGIC_UNHOST_NKRO` |Force NKRO off | +| |`MAGIC_TOGGLE_NKRO` |Toggle NKRO on or off | +|`0` |`DF(0)` |Make Layer 0 the default layer at bootup | +|`1` |`DF(1)` |Make Layer 1 the default layer at bootup | +|`2` |`DF(2)` |Make Layer 2 the default layer at bootup | +|`3` |`DF(3)` |Make Layer 3 the default layer at bootup | +|`4` |`DF(4)` |Make Layer 4 the default layer at bootup | +|`5` |`DF(5)` |Make Layer 5 the default layer at bootup | +|`6` |`DF(6)` |Make Layer 6 the default layer at bootup | +|`7` |`DF(7)` |Make Layer 7 the default layer at bootup | +## Bootmagic Configuration +When setting up your keyboard and/or keymap there are a number of `#define`s that control the behavior of Bootmagic. To use these put them in your `config.h`, either at the keyboard or keymap level. +|Define |Default|Description | +|-------|-------|------------| +|`BOOTMAGIC_KEY_SALT`|`KC_SPACE`|The key to hold down to trigger Bootmagic during initialization.| +|`BOOTMAGIC_KEY_SKIP`|`KC_ESC`|The Hotkey to ignore saved eeprom configuration.| +|`BOOTMAGIC_KEY_EEPROM_CLEAR`|`KC_BSPACE`|The hotkey to clear the saved eeprom configuration.| +|`BOOTMAGIC_KEY_BOOTLOADER`|`KC_B`|The hotkey to enter the bootloader.| +|`BOOTMAGIC_KEY_DEBUG_ENABLE`|`KC_D`|The hotkey to enable debug mode.| +|`BOOTMAGIC_KEY_DEBUG_MATRIX`|`KC_X`|The hotkey to enable matrix debugging mode.| +|`BOOTMAGIC_KEY_DEBUG_KEYBOARD`|`KC_K`|The hotkey to enable keyboard debugging mode.| +|`BOOTMAGIC_KEY_DEBUG_MOUSE`|`KC_M`|The hotkey to enable mouse debugging mode.| +|`BOOTMAGIC_KEY_SWAP_CONTROL_CAPSLOCK`|`KC_LCTRL`|| +|`BOOTMAGIC_KEY_CAPSLOCK_TO_CONTROL`|`KC_CAPSLOCK`|| +|`BOOTMAGIC_KEY_SWAP_LALT_LGUI`|`KC_LALT`|| +|`BOOTMAGIC_KEY_SWAP_RALT_RGUI`|`KC_RALT`|| +|`BOOTMAGIC_KEY_NO_GUI`|`KC_LGUI`|| +|`BOOTMAGIC_KEY_SWAP_GRAVE_ESC`|`KC_GRAVE`|| +|`BOOTMAGIC_KEY_SWAP_BACKSLASH_BACKSPACE`|`KC_BSLASH`|| +|`BOOTMAGIC_HOST_NKRO`|`KC_N`|| +|`BOOTMAGIC_KEY_DEFAULT_LAYER_0`|`KC_0`|Hotkey to set Layer 0 as the default layer| +|`BOOTMAGIC_KEY_DEFAULT_LAYER_1`|`KC_1`|Hotkey to set Layer 1 as the default layer| +|`BOOTMAGIC_KEY_DEFAULT_LAYER_2`|`KC_2`|Hotkey to set Layer 2 as the default layer| +|`BOOTMAGIC_KEY_DEFAULT_LAYER_3`|`KC_3`|Hotkey to set Layer 3 as the default layer| +|`BOOTMAGIC_KEY_DEFAULT_LAYER_4`|`KC_4`|Hotkey to set Layer 4 as the default layer| +|`BOOTMAGIC_KEY_DEFAULT_LAYER_5`|`KC_5`|Hotkey to set Layer 5 as the default layer| +|`BOOTMAGIC_KEY_DEFAULT_LAYER_6`|`KC_6`|Hotkey to set Layer 6 as the default layer| +|`BOOTMAGIC_KEY_DEFAULT_LAYER_7`|`KC_7`|Hotkey to set Layer 7 as the default layer| diff --git a/docs/feature_command.md b/docs/feature_command.md new file mode 100644 index 000000000000..ad987aaf6034 --- /dev/null +++ b/docs/feature_command.md @@ -0,0 +1,52 @@ +# Command (Formerly known as Magic) + +Command is a way to change your keyboard's behavior without having to flash or unplug it to use [Bootmagic](feature_bootmagic.md). There is a lot of overlap between this functionality and the [Bootmagic Keycodes](feature_bootmagic.md). Whenever possible we encourage you to use that functionality instead of Command. + +## Enabling Command + +By default Command is disabled. You can enable it in your `rules.mk` file: + + COMMAND_ENABLE = yes + +## Usage + +To use Command you hold down the key combination defined by `IS_COMMAND`. By default that combination is both shift keys. While holding the key combination press the key corresponding to the command you want. + +For example, to write the current QMK version to the QMK Toolbox console, you can press `Left Shift`+`Right Shift`+`V`. + +## Configuration + +The following values can be defined in `config.h` to control the behavior of Command. + +|Define |Default | Description | +|-------|--------|-------------| +|`IS_COMMAND()` |`(keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))`|Key combination to activate Command| +|`MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS` |`true` |Do layer switching with Function row| +|`MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS` |`true` |Do layer switching with number keys.| +|`MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM`|`false` |Do layer switching with custom keys (`MAGIC_KEY_LAYER0..9` below.)| +|`MAGIC_KEY_HELP1` |`H` |Show help.| +|`MAGIC_KEY_HELP2` |`SLASH` |Show help.| +|`MAGIC_KEY_DEBUG` |`D` |Turn on debug mode.| +|`MAGIC_KEY_DEBUG_MATRIX` |`X` |Turn on matrix debugging.| +|`MAGIC_KEY_DEBUG_KBD` |`K` |Turn on keyboard debugging.| +|`MAGIC_KEY_DEBUG_MOUSE` |`M` |Turn on mouse debugging.| +|`MAGIC_KEY_VERSION` |`V` |Write the QMK version to the console| +|`MAGIC_KEY_STATUS` |`S` |Show the current keyboard status| +|`MAGIC_KEY_CONSOLE` |`C` |Enable the Command Console| +|`MAGIC_KEY_LAYER0_ALT1` |`ESC` |Alternate access to layer 0| +|`MAGIC_KEY_LAYER0_ALT2` |`GRAVE` |Alternate access to layer 0| +|`MAGIC_KEY_LAYER0` |`0` |Change default layer to 0| +|`MAGIC_KEY_LAYER1` |`1` |Change default layer to 1| +|`MAGIC_KEY_LAYER2` |`2` |Change default layer to 2| +|`MAGIC_KEY_LAYER3` |`3` |Change default layer to 3| +|`MAGIC_KEY_LAYER4` |`4` |Change default layer to 4| +|`MAGIC_KEY_LAYER5` |`5` |Change default layer to 5| +|`MAGIC_KEY_LAYER6` |`6` |Change default layer to 6| +|`MAGIC_KEY_LAYER7` |`7` |Change default layer to 7| +|`MAGIC_KEY_LAYER8` |`8` |Change default layer to 8| +|`MAGIC_KEY_LAYER9` |`9` |Change default layer to 9| +|`MAGIC_KEY_BOOTLOADER` |`PAUSE` |Exit keyboard and enter bootloader| +|`MAGIC_KEY_LOCK` |`CAPS` |Lock the keyboard so nothing can be typed| +|`MAGIC_KEY_EEPROM` |`E` |Erase EEPROM settings| +|`MAGIC_KEY_NKRO` |`N` |Toggle NKRO on/off| +|`MAGIC_KEY_SLEEP_LED` |`Z` |Toggle LED when computer is sleeping on/off| diff --git a/docs/hardware_keyboard_guidelines.md b/docs/hardware_keyboard_guidelines.md index 0a4e2d11b873..656f4c08cb53 100644 --- a/docs/hardware_keyboard_guidelines.md +++ b/docs/hardware_keyboard_guidelines.md @@ -16,6 +16,22 @@ In an effort to keep the repo size down, we're no longer accepting images of any Any sort of hardware file (plate, case, pcb) can't be stored in qmk_firmware, but we have the [qmk.fm repo](https://github.com/qmk/qmk.fm) where such files (as well as in-depth info) can be stored and viewed on [qmk.fm](http://qmk.fm). Downloadable files are stored in `//` (name follows the same format as above) which are served at `http://qmk.fm//`, and pages are generated from `/_pages//` which are served at the same location (.md files are generated into .html files through Jekyll). Check out the `lets_split` directory for an example. +## Keyboard Defaults + +Given the amount of functionality that QMK exposes it's very easy to confuse new users. When putting together the default firmware for your keyboard we recommend limiting your enabled features and options to the minimal set needed to support your hardware. Recommendations for specific features follow. + +### Bootmagic and Command + +(Bootmagic)[feature_bootmagic.md) and (Command)[feature_command.md) are two related features that allow a user to control their keyboard in non-obvious ways. We recommend you think long and hard about if you're going to enable either feature, and how you will expose this functionality. Keep in mind that users who want this functionality can enable it in their personal keymaps without affecting all the novice users who may be using your keyboard as their first programmable board. + +By far the most common problem new users encounter is accidentally triggering Bootmagic while they're plugging in their keyboard. They're holding the keyboard by the bottom, unknowingly pressing in alt and spacebar, and then they find that these keys have been swapped on them. We recommend leaving this feature disabled by default, but if you do turn it on consider setting `BOOTMAGIC_KEY_SALT` to a key that is hard to press while plugging your keyboard in. + +If your keyboard does not have 2 shift keys you should provide a working default for `IS_COMMAND`, even when you have set `COMMAND_ENABLE = no`. This will give your users a default to conform to if they do enable Command. + +## Custom Keyboard Programming + +As documented on (Customizing Functionality)[custom_quantum_functions.md] you can define custom functions for your keyboard. Please keep in mind that your users may want to customize that behavior as well, and make it possible for them to do that. If you are providing a custom function, for example `process_record_kb()`, make sure that your function calls the `_user()` version of the call too. You should also take into account the return value of the `_user()` version, and only run your custom code if the user returns `true`. + ## Keyboard Metadata As QMK grows so does the ecosystem surrounding QMK. To make it easier for projects in that ecosystem to tie into QMK as we make changes we are developing a metadata system to expose information about keyboards in QMK. From b36b4382d0a1da12492c14a8b7f25ca036e0af6d Mon Sep 17 00:00:00 2001 From: Graham P Heath Date: Sat, 3 Mar 2018 11:52:09 -0600 Subject: [PATCH 015/578] Mention invalid names in the readme. (#2458) --- docs/hardware_keyboard_guidelines.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hardware_keyboard_guidelines.md b/docs/hardware_keyboard_guidelines.md index 656f4c08cb53..0892f85cb640 100644 --- a/docs/hardware_keyboard_guidelines.md +++ b/docs/hardware_keyboard_guidelines.md @@ -4,7 +4,7 @@ We welcome all keyboard projects into QMK, but ask that you try to stick to a co ## Naming Your Keyboard/Project -All names should be lowercase alphanumeric, and separated by an underscore (`_`), but not begin with one. Your directory and your `.h` and `.c` files should have exactly the same name. All folders should follow the same format. +All names should be lowercase alphanumeric, and separated by an underscore (`_`), but not begin with one. Your directory and your `.h` and `.c` files should have exactly the same name. All folders should follow the same format. `test`, `keyboard`, and `all` are reserved by make and are not a valid name for a keyboard. ## `readme.md` From 12c8ee956dc0230b571bc51f785ae417073d5c67 Mon Sep 17 00:00:00 2001 From: Pawnerd Date: Mon, 5 Mar 2018 03:29:38 +0100 Subject: [PATCH 016/578] Add knops configurator support (#2474) * Committed initial version of the knops configurator. * Added support for the Knops v1.1 --- keyboards/knops/mini/keymaps/default/keymap.c | 17 +++++++++-- keyboards/knops/mini/keymaps/knops/keymap.c | 30 +++++++++++++------ 2 files changed, 36 insertions(+), 11 deletions(-) diff --git a/keyboards/knops/mini/keymaps/default/keymap.c b/keyboards/knops/mini/keymaps/default/keymap.c index e7773c0c0d09..40714c8a5118 100644 --- a/keyboards/knops/mini/keymaps/default/keymap.c +++ b/keyboards/knops/mini/keymaps/default/keymap.c @@ -107,7 +107,11 @@ void set_switch_led(int ledId, bool state) { PORTD |= (1<<7); break; case 2: - PORTC |= (1<<6); + if((PINB & (1 << 7)) != 0) { + PORTC |= (1<<6); + } else { + PORTC |= (1<<7); + } break; case 3: PORTD |= (1<<4); @@ -128,7 +132,11 @@ void set_switch_led(int ledId, bool state) { PORTD &= ~(1<<7); break; case 2: - PORTC &= ~(1<<6); + if((PINB & (1 << 7)) != 0) { + PORTC &= ~(1<<6); + } else { + PORTC &= ~(1<<7); + } break; case 3: PORTD &= ~(1<<4); @@ -167,9 +175,12 @@ void set_layer_led(int layerId) { void matrix_init_user(void) { led_init_ports(); + PORTB |= (1 << 7); + DDRB &= ~(1<<7); PORTD |= (1<<7); PORTC |= (1<<6); + PORTC |= (1<<7); PORTD |= (1<<4); PORTE |= (1<<6); PORTB |= (1<<4); @@ -188,7 +199,9 @@ void led_init_ports() { // led voor switch #2 DDRC |= (1<<6); + DDRC |= (1<<7); PORTC &= ~(1<<6); + PORTC &= ~(1<<7); // led voor switch #3 DDRD |= (1<<4); diff --git a/keyboards/knops/mini/keymaps/knops/keymap.c b/keyboards/knops/mini/keymaps/knops/keymap.c index 4e50c29f5e2e..34e560600921 100644 --- a/keyboards/knops/mini/keymaps/knops/keymap.c +++ b/keyboards/knops/mini/keymaps/knops/keymap.c @@ -16,7 +16,11 @@ void set_led_state(int ledId, bool state) { PORTD |= (1<<7); break; case 1: - PORTC |= (1<<6); + if((PINB & (1 << 7)) != 0) { + PORTC |= (1<<6); + } else { + PORTC |= (1<<7); + } break; case 2: PORTD |= (1<<4); @@ -47,7 +51,11 @@ void set_led_state(int ledId, bool state) { PORTD &= ~(1<<7); break; case 1: - PORTC &= ~(1<<6); + if((PINB & (1 << 7)) != 0) { + PORTC &= ~(1<<6); + } else { + PORTC &= ~(1<<7); + } break; case 2: PORTD &= ~(1<<4); @@ -75,8 +83,12 @@ void set_led_state(int ledId, bool state) { } void led_init_ports() { + PORTB |= (1 << 7); + DDRB &= ~(1<<7); + DDRD |= (1<<7); DDRC |= (1<<6); + DDRC |= (1<<7); DDRD |= (1<<4); DDRE |= (1<<6); DDRB |= (1<<4); @@ -87,10 +99,16 @@ void led_init_ports() { DDRB |= (1<<0); } +void led_set_layer(int layer) { + + /*KNOPS_SIMPLELED_STATES*/ + +} + void matrix_init_user(void) { led_init_ports(); - led_set_layer(0); + led_set_layer(1); /*KNOPS_INIT*/ } @@ -112,12 +130,6 @@ void led_set_user(uint8_t usb_led) { } -void led_set_layer(int layer) { - - /*KNOPS_SIMPLELED_STATES*/ - -} - bool process_record_user (uint16_t keycode, keyrecord_t *record) { /*KNOPS_PROCESS_STATE*/ From 08e48eb6f534c7eeb692e8e63b81f41110dcb5e3 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Tue, 6 Mar 2018 14:37:48 -0800 Subject: [PATCH 017/578] Add a newbie guide for people completely new to QMK (#2480) --- docs/_summary.md | 9 +++- docs/getting_started_getting_help.md | 21 ++++++++ docs/newbs.md | 21 ++++++++ docs/newbs_building_firmware.md | 49 +++++++++++++++++ docs/newbs_flashing.md | 79 ++++++++++++++++++++++++++++ docs/newbs_getting_started.md | 77 +++++++++++++++++++++++++++ docs/newbs_testing_debugging.md | 33 ++++++++++++ docs/redirects.json | 4 ++ util/linux_install.sh | 17 ++++++ util/macos_install.sh | 25 +++++++++ util/qmk_install.sh | 16 ++++++ 11 files changed, 350 insertions(+), 1 deletion(-) create mode 100644 docs/getting_started_getting_help.md create mode 100644 docs/newbs.md create mode 100644 docs/newbs_building_firmware.md create mode 100644 docs/newbs_flashing.md create mode 100644 docs/newbs_getting_started.md create mode 100644 docs/newbs_testing_debugging.md create mode 100644 util/linux_install.sh create mode 100755 util/macos_install.sh create mode 100755 util/qmk_install.sh diff --git a/docs/_summary.md b/docs/_summary.md index 47dcbb1e24cf..4b007059f089 100644 --- a/docs/_summary.md +++ b/docs/_summary.md @@ -3,9 +3,16 @@ * [Install Build Tools](getting_started_build_tools.md) * Alternative: [Vagrant Guide](getting_started_vagrant.md) * [Build/Compile Instructions](getting_started_make_guide.md) - * [Flashing Instructions](flashing.md) + * [Flashing Firmware](flashing.md) * [Contributing to QMK](contributing.md) * [How to Use Github](getting_started_github.md) + * [Getting Help](getting_started_getting_help.md) + +* [Complete Newbs Guide](newbs.md) + * [Getting Started](newbs_getting_started.md) + * [Building Your First Firmware](newbs_building_firmware.md) + * [Flashing Firmware](newbs_flashing.md) + * [Testing and Debugging](newbs_testing_debugging.md) * [FAQ](faq.md) * [General FAQ](faq_general.md) diff --git a/docs/getting_started_getting_help.md b/docs/getting_started_getting_help.md new file mode 100644 index 000000000000..7fb3b49e9bef --- /dev/null +++ b/docs/getting_started_getting_help.md @@ -0,0 +1,21 @@ +# Getting Help + +There are a lot of resources for getting help with QMK. + +## Realtime Chat + +You can find QMK developers and users on our main [gitter chat room](https://gitter.im/qmk/qmk_firmware). We also have other rooms for more specific discussion: + +* [Main Firmware Chat](https://gitter.im/qmk/qmk_firmware) +* [QMK Toolbox](https://gitter.im/qmk/qmk_toolbox) +* [Hardware Design Discussion](https://gitter.im/qmk/qmk_hardware) +* [Web Configurator](https://gitter.im/qmk/qmk_configurator) +* [Compiler API](https://gitter.im/qmk/qmk_compiler_api) + +## OLKB Subreddit + +The official QMK forum is [/r/olkb](https://reddit.com/r/olkb) on [reddit.com](https://reddit.com). + +## Github Issues + +You can open an [issue on GitHub](https://github.com/qmk/qmk_firmware/issues). This is especially handy when your issue will require long-term discussion or debugging. diff --git a/docs/newbs.md b/docs/newbs.md new file mode 100644 index 000000000000..0906e86515ee --- /dev/null +++ b/docs/newbs.md @@ -0,0 +1,21 @@ +# The Compelete Newbs Guide To QMK + +QMK is a powerful Open Source firmware for your mechanical keyboard. You can use QMK to customize your keyboard in ways both simple and powerful. People of all skill levels, from complete newbie to master programmer, have successfully used QMK to customize their keyboard. This guide will help you do the same, no matter your skill level. + +Not sure if your keyboard can run QMK? If it's a mechanical keyboard you built yourself chances are good it can. We support a [large number of hobbyist boards](http://qmk.fm/keyboards/), so even if your current keyboard can't run QMK you shouldn't have trouble finding one to suit your needs. + +We assume you are familiar with the basics of working in a Linux/Unix command line environment. If you are not these resources will teach you enough to work with QMK: + +* [Must Know Linux Commands](https://www.guru99.com/must-know-linux-commands.html) +* [Some Basic Unix Commands](https://www.tjhsst.edu/~dhyatt/superap/unixcmd.html) + +## Overview + +There are 4 main sections to this guide: + +* [Getting Started](newbs_getting_started.md) +* [Building Your First Firmware](newbs_building_firmware.md) +* [Flashing Firmware](newbs_flashing.md) +* [Testing and Debugging](newbs_testing_debugging.md) + +This guide is focused on helping someone who has never compiled software before. It makes choices and recommendations based on that viewpoint. There are alternative methods for many of these procedures, and we support most of those alternatives. If you have any doubt about how to accomplish a task you can [ask us for guidance](getting_started_getting_help.md). diff --git a/docs/newbs_building_firmware.md b/docs/newbs_building_firmware.md new file mode 100644 index 000000000000..ef1297556550 --- /dev/null +++ b/docs/newbs_building_firmware.md @@ -0,0 +1,49 @@ +# Building Your First Firmware + +Now that you have setup your build environment you are ready to start building custom firmware. For this section of the guide we will bounce between 3 programs- your file manager, your text editor, and your terminal window. Keep all 3 open until you are done and happy with your keyboard firmware. + +If you have closed and reopened your terminal window since following the first part of the guide, don't forget to `cd qmk_firmware` so that your terminal is in the correct directory. + +## Navigate To Your Keymaps Folder + +Start by navigating to the `keymaps` folder for your keyboard. + +{% hint style='info' %} +If you are on macOS or Windows there are commands you can use to easily open the `keymaps` folder. + +macOS: + + open keyboards//keymaps + +Windows: + + start keyboards//keymaps +{% endhint %} + +## Create a Copy Of The `default` Keymap + +Once you have the `keymaps` folder open you will want to create a copy of the `default` folder. We highly recommend you name your folder the same as your github username, but you can use any name you want as long as it contains only lower case letters, numbers, and the underscore character. + +## Open `keymap.c` In Your Favorite Text Editor + +Inside the `keymap.c` file you'll find the structure that controls how your keyboard behaves. At the top there may be some defines and enums that make the keymap easier to read. Farther down you'll find a line that looks like this: + + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +This line indicates the start of the list of Layers. Below that you'll find lines containing either `LAYOUT` or `KEYMAP`, and these lines indicate the start of a layer. Below that line is the list of keys that comprise a that particular layer. + +{% hint style='warning' %} +When editing your keymap file be careful not to add or remove any commas. If you do you will prevent your firmware from compiling and it may not be easy to figure out where the extra, or missing, comma is. +{% endhint %} + +## Customize The Layout To Your Liking + +How to complete this step is entirely up to you. Make the one change that's been bugging you, or completely rework everything. You can remove layers if you don't need all of them, or add layers up to a total of 32. Check the following documentation to find out what you can define here: + +* [Keycodes](keycodes.md) +* [Features](features.md) +* [FAQ](faq.md) + +{% hint style='info' %} +While you get a feel for how keymaps work, keep each change small. Bigger changes make it harder to debug any problems that arise. +{% endhint %} diff --git a/docs/newbs_flashing.md b/docs/newbs_flashing.md new file mode 100644 index 000000000000..c466a4e4e134 --- /dev/null +++ b/docs/newbs_flashing.md @@ -0,0 +1,79 @@ +# Flashing Your Keyboard With QMK Toolbox + +Now that you've built a custom firmware file you'll want to flash your keyboard. + +## Load The File Into QMK Toolbox + +Begin by opening the QMK Toolbox application. You'll want to locate the firmware file in Finder or Explorer. Your keyboard firmware may be in one of two formats- `.hex` or `.bin`. QMK tries to copy the appropriate one for your keyboard into the root `qmk_firmware` directory. + +{% hint style='info' %} +If you are on Windows or macOS there are commands you can use to easily open the current firmware folder in Explorer or Finder. + +Windows: + + start . + +macOS: + + open . +{% endhint %} + +The firmware file always follows this naming format: + + _.{bin,hex} + +For example, the `plank/rev5` with a `default` keymap will have this filename: + + planck_rev5_default.hex + +Once you have located your firmware file drag it into the "Local file" box in QMK Toolbox, or click "Open" and navigate to where your firmware file is stored. + +## Put Your Keyboard Into DFU (Bootloader) Mode + +In order to flash your custom firmware you have to put your keyboard into a special flashing mode. While it is in this mode you will not be able to type or otherwise use your keyboard. It is very important that you do not unplug your keyboard or otherwise interrupt the flashing process while the firmware is being written. + +Different keyboards have different ways to enter this special mode. If your PCB currently runs QMK or TMK and you have not been given specific instructions try the following, in order: + +* Hold down both shift keys and press `Pause` +* Hold down both shift keys and press `B` +* Unplug your keyboard, hold down the Spacebar and `B` at the same time, plug in your keyboard and wait a second before releasing the keys +* Press the physical `RESET` button on the bottom of the PCB +* Locate header pins on the PCB labeled `BOOT0` or `RESET`, short those together while plugging your PCB in + +When you are successful you will see a message similar to this in QMK Toolbox: + +``` +*** Clueboard - Clueboard 66% HotSwap disconnected -- 0xC1ED:0x2390 +*** DFU device connected +``` + +## Flash Your Keyboard + +Click the `Flash` button in QMK Toolbox. You will see output similar to the following: + +``` +*** Clueboard - Clueboard 66% HotSwap disconnected -- 0xC1ED:0x2390 +*** DFU device connected +*** Attempting to flash, please don't remove device +>>> dfu-programmer atmega32u4 erase --force + Erasing flash... Success + Checking memory from 0x0 to 0x6FFF... Empty. +>>> dfu-programmer atmega32u4 flash /Users/skully/qmk_firmware/clueboard_66_hotswap_gen1_skully.hex + Checking memory from 0x0 to 0x55FF... Empty. + 0% 100% Programming 0x5600 bytes... + [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success + 0% 100% Reading 0x7000 bytes... + [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success + Validating... Success + 0x5600 bytes written into 0x7000 bytes memory (76.79%). +>>> dfu-programmer atmega32u4 reset + +*** DFU device disconnected +*** Clueboard - Clueboard 66% HotSwap connected -- 0xC1ED:0x2390 +``` + +## Test It Out! + +Congrats! Your custom firmware has been programmed to your keyboard! + +Give it a try and make sure everything works the way you want it to. We've written [Testing and Debugging](newbs_testing_debugging.md) to round out this Newbie Guide, so head over there to learn about how to troubleshoot your custom functionality. diff --git a/docs/newbs_getting_started.md b/docs/newbs_getting_started.md new file mode 100644 index 000000000000..3c08a0ee98b9 --- /dev/null +++ b/docs/newbs_getting_started.md @@ -0,0 +1,77 @@ +# Introduction + +Your computer keyboard has a processor inside of it, not unlike the one inside your computer. This processor runs software that is responsible for detecting button presses and sending reports about the state of the keyboard when they are pressed or released. QMK fills the role of that software, detecting button presses and passing that information on to the host computer. When you build your custom layout you are creating the equivalent of an .exe for your keyboard. + +QMK tries to put a lot of power into your hands by making easy things easy, and hard things possible. You don't have to know how to program to create powerful layouts, you only have to follow a few simple syntax rules. + +# Getting Started + +Before you can build keymaps you need to setup your build environment. This only has to be done one time no matter how many keyboards you want to compile firmware for. + +## Download QMK Toolbox + +QMK Toolbox is a Windows and macOS program that allows you to both program and debug your custom keyboard. You will want to install it so that you can easily flash your keyboard and receive the debugging messages that your keyboard will print. + +* [Newest Release](https://github.com/qmk/qmk_toolbox/releases/latest) +* [Source Code](https://github.com/qmk/qmk_toolbox/) + +## Environment Setup + +We've tried to make QMK as easy to setup as possible. You only have to prepare your Linux or Unix environment and let QMK install the rest. + +### Windows + +You will need to install msys2 and git. + +* Follow the installation instructions on the msys2 homepage: http://www.msys2.org +* Close any open msys2 terminals, and open a new terminal +* Install git by running this command: `pacman -S git` + +### macOS + +You will need to install homebrew. Follow the instructions on the homebrew homepage: https://brew.sh + +### Linux + +You will need to install git. It's extremely likely you already have it, but if not one of the following commands should install it: + +* Debian/Ubuntu/Devuan: `apt-get install git` +* Fedora/Redhat/Centos: `yum install git` +* Arch: `pacman -S git` + +## Download QMK + +Once you have setup your Linux/Unix environment you are ready to download QMK. We will do this by using git to "clone" the QMK repository. Open a Terminal or MSYS2 Console window and leave it open for the remainder of this guide. Inside that window run these two commands: + +* `git clone https://github.com/qmk/qmk_firmware.git` +* `cd qmk_firmware` + +{% hint style='info' %} +If you already know [how to use GitHub](getting_started_github.md) we recommend you create and clone your own fork instead. If you don't know what that means you can safely ignore this message. +{% endhint %} + +## Setup QMK + +QMK comes with a script to help you setup the rest of what you'll need. You should run it now: + +* `./util/qmk_install.sh` + +## Test Your Build Environment + +Now that your QMK build environment is setup you can build a firmware for your keyboard. Start by trying to build the default layout for your keyboard. You should be able to do that with a command in this format: + +* `make :default` + +For example, to build a firmware for a Clueboard 66% use: + +* `make clueboard/66:default` + +When it is done you should have a lot of output that ends similar to this: + +``` +Linking: .build/clueboard_66_rev2_default.elf [OK] +Creating load file for flashing: .build/clueboard_66_rev2_default.hex [OK] +Copying clueboard_66_rev2_default.hex to qmk_firmware folder [OK] +Checking file size of clueboard_66_rev2_default.hex [OK] + * File size is fine - 25174/28672 +``` diff --git a/docs/newbs_testing_debugging.md b/docs/newbs_testing_debugging.md new file mode 100644 index 000000000000..1d8021dec8f1 --- /dev/null +++ b/docs/newbs_testing_debugging.md @@ -0,0 +1,33 @@ +# Testing and Debugging + +Once you've flashed your keyboard with a custom firmware you're ready to test it out. With a little bit of luck everything will work perfectly, but if not this document will help you figure out what's wrong. + +## Testing + +Testing your keyboard is usually pretty straightforward. Press every single key and make sure it sends the keys you expect. There are even programs that will help you make sure that no key is missed. + +Note: These programs are not provided by or endorsed by QMK. + +* [Switch Hitter](https://elitekeyboards.com/switchhitter.php) (Windows Only) +* [Keyboard Viewer](https://www.imore.com/how-use-keyboard-viewer-your-mac) (Mac Only) +* [Keyboard Tester](http://www.keyboardtester.com) (Web Based) +* [Keyboard Checker](http://keyboardchecker.com) (Web Based) + +## Debugging With QMK Toolbox + +[QMK Toolbox](https://github.com/qmk/qmk_toolbox) will show messages from your keyboard if you have `CONSOLE_ENABLE = yes` in your `rules.mk`. By default the output is very limited, but you can turn on debug mode to increase the amount of debug output. Use the `DEBUG` keycode in your keymap, or use the [Command](feature_command.md) feature to enable debug mode. + + + +## Sending Your Own Debug Messages + +Sometimes it's useful to print debug messages from within your [custom code](custom_quantum_functions.md). Doing so is pretty simple. Start by including `print.h` at the top of your file: + + #include + +After that you can use a few different print functions: + +* `print("string")`: Print a simple string. +* `sprintf("%s string", var)`: Print a formatted string +* `dprint("string")` Print a simple string, but only when debug mode is enabled +* `dprintf("%s string", var)`: Print a formatted string, but only when debug mode is enabled diff --git a/docs/redirects.json b/docs/redirects.json index b8480836410a..db41cb41e4ca 100644 --- a/docs/redirects.json +++ b/docs/redirects.json @@ -16,6 +16,10 @@ "from": "feature_common_shortcuts.html", "to": "feature_advanced_keycodes.html" }, + { + "from": "flashing.html", + "to": "newbs_flashing.html" + }, { "from": "key_lock.html", "to": "feature_key_lock.html" diff --git a/util/linux_install.sh b/util/linux_install.sh new file mode 100644 index 000000000000..ef9de5b19f59 --- /dev/null +++ b/util/linux_install.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +if grep ID /etc/os-release | grep -q rhel; then + # RPM based OS + sudo dnf install gcc unzip wget zip dfu-util dfu-programmer avr-gcc \ + avr-libc binutils-avr32-linux-gnu arm-none-eabi-gcc-cs \ + arm-none-eabi-binutils-cs arm-none-eabi-newlib +elif grep ID /etc/os-release | grep -q debian; then + sudo apt-get update + sudo apt-get install gcc unzip wget zip gcc-avr binutils-avr avr-libc \ + dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi \ + libnewlib-arm-none-eabi +else + echo "Sorry, we don't recognize your OS. Help us by contributing support!" + echo + echo " https://docs.qmk.fm/contributing.html" +fi diff --git a/util/macos_install.sh b/util/macos_install.sh new file mode 100755 index 000000000000..551b84b5aa3a --- /dev/null +++ b/util/macos_install.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +if brew --version 2>&1 > /dev/null; then + echo "Error! Homebrew not installed or broken!" + echo -n "Would you like to install homebrew now? [y/n] " + while read ANSWER; do + case $ANSWER in + y|Y) + /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" + break + ;; + n|N) + exit 1 + ;; + *) + echo -n "Would you like to install homebrew now? [y/n] " + ;; + esac + done +fi + +brew tap osx-cross/avr +brew tap PX4/homebrew-px4 +brew update +brew install avr-gcc gcc-arm-none-eabi dfu-programmer avrdude diff --git a/util/qmk_install.sh b/util/qmk_install.sh new file mode 100755 index 000000000000..0272f8af8c8a --- /dev/null +++ b/util/qmk_install.sh @@ -0,0 +1,16 @@ +#!/bin/sh +# Pick the correct install script based on the current OS + +util_dir=$(dirname "$0") + +case $(uname) in + Darwin) + exec "${util_dir}/macos_install.sh" + ;; + Linux) + exec "${util_dir}/linux_install.sh" + ;; + MSYS_NT*) + exec "${util_dir}/msys2_install.sh" + ;; +esac From 6a4e08938ec8128e4aa765738562bbc24f2e2c06 Mon Sep 17 00:00:00 2001 From: skullY Date: Tue, 6 Mar 2018 15:22:47 -0800 Subject: [PATCH 018/578] Flesh out the newbs guide --- docs/newbs_building_firmware.md | 32 ++++++++++++++++++++++++++++---- docs/newbs_getting_started.md | 30 ++++++++++++++++++++++-------- 2 files changed, 50 insertions(+), 12 deletions(-) diff --git a/docs/newbs_building_firmware.md b/docs/newbs_building_firmware.md index ef1297556550..181761c717b1 100644 --- a/docs/newbs_building_firmware.md +++ b/docs/newbs_building_firmware.md @@ -9,7 +9,7 @@ If you have closed and reopened your terminal window since following the first p Start by navigating to the `keymaps` folder for your keyboard. {% hint style='info' %} -If you are on macOS or Windows there are commands you can use to easily open the `keymaps` folder. +If you are on macOS or Windows there are commands you can use to easily open the keymaps folder. macOS: @@ -22,17 +22,17 @@ Windows: ## Create a Copy Of The `default` Keymap -Once you have the `keymaps` folder open you will want to create a copy of the `default` folder. We highly recommend you name your folder the same as your github username, but you can use any name you want as long as it contains only lower case letters, numbers, and the underscore character. +Once you have the `keymaps` folder open you will want to create a copy of the `default` folder. We highly recommend you name your folder the same as your GitHub username, but you can use any name you want as long as it contains only lower case letters, numbers, and the underscore character. ## Open `keymap.c` In Your Favorite Text Editor -Inside the `keymap.c` file you'll find the structure that controls how your keyboard behaves. At the top there may be some defines and enums that make the keymap easier to read. Farther down you'll find a line that looks like this: +Open up your `keymap.c`. Inside this file you'll find the structure that controls how your keyboard behaves. At the top of `keymap.c` there may be some defines and enums that make the keymap easier to read. Farther down you'll find a line that looks like this: const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { This line indicates the start of the list of Layers. Below that you'll find lines containing either `LAYOUT` or `KEYMAP`, and these lines indicate the start of a layer. Below that line is the list of keys that comprise a that particular layer. -{% hint style='warning' %} +{% hint style='warn' %} When editing your keymap file be careful not to add or remove any commas. If you do you will prevent your firmware from compiling and it may not be easy to figure out where the extra, or missing, comma is. {% endhint %} @@ -47,3 +47,27 @@ How to complete this step is entirely up to you. Make the one change that's been {% hint style='info' %} While you get a feel for how keymaps work, keep each change small. Bigger changes make it harder to debug any problems that arise. {% endhint %} + +## Build Your Firmware + +When your changes to the keymap are complete you will need to build the firmware. To do so go back to your terminal window and run the build command: + + make : + +For example, if your keymap is named "xyverz" and you're building a keymap for a rev5 planck, you'll use this command: + + make planck/rev5:xyverz + +While this compiles you will have a lot of output going to the screen informing you of what files are being compiled. It should end with output that looks similar to this: + +``` +Linking: .build/planck_rev5_xyverz.elf [OK] +Creating load file for flashing: .build/planck_rev5_xyverz.hex [OK] +Copying planck_rev5_xyverz.hex to qmk_firmware folder [OK] +Checking file size of planck_rev5_xyverz.hex [OK] + * File size is fine - 18392/28672 +``` + +## Flash Your Firmware + +Move on to [Flashing Firmware](newbs_flashing.md) to learn how to write your new firmware to your keyboard. diff --git a/docs/newbs_getting_started.md b/docs/newbs_getting_started.md index 3c08a0ee98b9..3a5e8269c9b1 100644 --- a/docs/newbs_getting_started.md +++ b/docs/newbs_getting_started.md @@ -6,9 +6,19 @@ QMK tries to put a lot of power into your hands by making easy things easy, and # Getting Started -Before you can build keymaps you need to setup your build environment. This only has to be done one time no matter how many keyboards you want to compile firmware for. +Before you can build keymaps you need to install some software and setup your build environment. This only has to be done one time no matter how many keyboards you want to compile firmware for. -## Download QMK Toolbox +## Download Software + +### Text Editor + +You'll need a program that can edit and save **plain text** files. If you are on Windows you can make due with Notepad, and on Linux you can use Gedit, both of which are simple but functional text editors. On macOS you can not use TextEdit.app, it will not save plain text files. You will need to install another program such as Sublime Text. + +{% hint style='info' %} +Not sure which text editor to use? Laurence Bradford wrote [a great introduction](https://learntocodewith.me/programming/basics/text-editors/) to the subject. +{% endhint %} + +### QMK Toolbox QMK Toolbox is a Windows and macOS program that allows you to both program and debug your custom keyboard. You will want to install it so that you can easily flash your keyboard and receive the debugging messages that your keyboard will print. @@ -43,8 +53,8 @@ You will need to install git. It's extremely likely you already have it, but if Once you have setup your Linux/Unix environment you are ready to download QMK. We will do this by using git to "clone" the QMK repository. Open a Terminal or MSYS2 Console window and leave it open for the remainder of this guide. Inside that window run these two commands: -* `git clone https://github.com/qmk/qmk_firmware.git` -* `cd qmk_firmware` + git clone https://github.com/qmk/qmk_firmware.git + cd qmk_firmware {% hint style='info' %} If you already know [how to use GitHub](getting_started_github.md) we recommend you create and clone your own fork instead. If you don't know what that means you can safely ignore this message. @@ -52,19 +62,19 @@ If you already know [how to use GitHub](getting_started_github.md) we recommend ## Setup QMK -QMK comes with a script to help you setup the rest of what you'll need. You should run it now: +QMK comes with a script to help you setup the rest of what you'll need. You should run it now by typing in this command: -* `./util/qmk_install.sh` + ./util/qmk_install.sh ## Test Your Build Environment Now that your QMK build environment is setup you can build a firmware for your keyboard. Start by trying to build the default layout for your keyboard. You should be able to do that with a command in this format: -* `make :default` + make :default For example, to build a firmware for a Clueboard 66% use: -* `make clueboard/66:default` + make clueboard/66/rev3:default When it is done you should have a lot of output that ends similar to this: @@ -75,3 +85,7 @@ Copying clueboard_66_rev2_default.hex to qmk_firmware folder Checking file size of clueboard_66_rev2_default.hex [OK] * File size is fine - 25174/28672 ``` + +## Creating Your Layout + +Now you are ready to create your own personal layout. Move on to [Building Your First Firmware](newbs_building_firmware.md) for that. From 75354f12d79b14d7a3971158e98da24cafcac53f Mon Sep 17 00:00:00 2001 From: skullY Date: Tue, 6 Mar 2018 15:39:46 -0800 Subject: [PATCH 019/578] warn->danger --- docs/newbs_building_firmware.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/newbs_building_firmware.md b/docs/newbs_building_firmware.md index 181761c717b1..ea01a1a6266a 100644 --- a/docs/newbs_building_firmware.md +++ b/docs/newbs_building_firmware.md @@ -32,7 +32,7 @@ Open up your `keymap.c`. Inside this file you'll find the structure that control This line indicates the start of the list of Layers. Below that you'll find lines containing either `LAYOUT` or `KEYMAP`, and these lines indicate the start of a layer. Below that line is the list of keys that comprise a that particular layer. -{% hint style='warn' %} +{% hint style='danger' %} When editing your keymap file be careful not to add or remove any commas. If you do you will prevent your firmware from compiling and it may not be easy to figure out where the extra, or missing, comma is. {% endhint %} From 48e11240a6c7e500d127946ea89d5628838e9666 Mon Sep 17 00:00:00 2001 From: skullY Date: Tue, 6 Mar 2018 20:51:26 -0800 Subject: [PATCH 020/578] Move the linux tutorials to an info box on newbs_getting_started --- docs/newbs.md | 5 ----- docs/newbs_getting_started.md | 7 +++++++ 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/newbs.md b/docs/newbs.md index 0906e86515ee..eea8ea0fa24e 100644 --- a/docs/newbs.md +++ b/docs/newbs.md @@ -4,11 +4,6 @@ QMK is a powerful Open Source firmware for your mechanical keyboard. You can use Not sure if your keyboard can run QMK? If it's a mechanical keyboard you built yourself chances are good it can. We support a [large number of hobbyist boards](http://qmk.fm/keyboards/), so even if your current keyboard can't run QMK you shouldn't have trouble finding one to suit your needs. -We assume you are familiar with the basics of working in a Linux/Unix command line environment. If you are not these resources will teach you enough to work with QMK: - -* [Must Know Linux Commands](https://www.guru99.com/must-know-linux-commands.html) -* [Some Basic Unix Commands](https://www.tjhsst.edu/~dhyatt/superap/unixcmd.html) - ## Overview There are 4 main sections to this guide: diff --git a/docs/newbs_getting_started.md b/docs/newbs_getting_started.md index 3a5e8269c9b1..60b94b012364 100644 --- a/docs/newbs_getting_started.md +++ b/docs/newbs_getting_started.md @@ -29,6 +29,13 @@ QMK Toolbox is a Windows and macOS program that allows you to both program and d We've tried to make QMK as easy to setup as possible. You only have to prepare your Linux or Unix environment and let QMK install the rest. +{% hint style="info" %} +If you haven't worked with the Linux/Unix command line before there are a few basic concepts and commands you should learn. These resources will teach you enough to work with QMK: + +* [Must Know Linux Commands](https://www.guru99.com/must-know-linux-commands.html) +* [Some Basic Unix Commands](https://www.tjhsst.edu/~dhyatt/superap/unixcmd.html) +{% endhint %} + ### Windows You will need to install msys2 and git. From 586aa15ceff24d507d72f4f6a0c1bde665273e7b Mon Sep 17 00:00:00 2001 From: Kenny Hung Date: Wed, 7 Mar 2018 21:56:31 +0000 Subject: [PATCH 021/578] A small tidy up (#2490) * Add extra RGUI key to make keyboard more MAC friendly * Remove enumerators for no longer used layers in layout Skewwhiffy for XD75 * Make layer numbers even better --- keyboards/xd75/keymaps/skewwhiffy/keymap.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/keyboards/xd75/keymaps/skewwhiffy/keymap.c b/keyboards/xd75/keymaps/skewwhiffy/keymap.c index d25621525c00..887fbed728a3 100644 --- a/keyboards/xd75/keymaps/skewwhiffy/keymap.c +++ b/keyboards/xd75/keymaps/skewwhiffy/keymap.c @@ -22,13 +22,11 @@ // Layer shorthand #define _CM 0 // Colemak -#define _QW 1 // Qwerty -#define _DV 2 // Dvorak -#define _NB 3 // Numbers -#define _FN 4 // Function -#define _SYL 5 // Symbols left -#define _SYR 6 // Symbols right -#define _NAV 7 // Navigation +#define _NB 1 // Numbers +#define _FN 2 // Function +#define _SYL 3 // Symbols left +#define _SYR 4 // Symbols right +#define _NAV 5 // Navigation const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -42,15 +40,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+--------------+--------------+---------------+--------------+--------------+--------+--------+--------+----------------+--------+------------------+----------------+------------------------| * | | sft or Z | nb or X | sym or C | V | nav or B | | | | nav or K | M | sym or , | nb or . | sft or / | | * |--------+--------------+--------------+---------------+--------------+--------------+--------+--------+--------+----------------+--------+------------------+----------------+------------------------| - * | LSHIFT | LCTRL | LALT | LGUI | | SPACE | LCTRL | DEL | LALT | BACKSP | | RGUI | RALT | RCTRL | RSHIFT | + * | LSHIFT | LCTRL | LALT | LGUI | CTRL ' | SPACE | LCTRL | DEL | LALT | BACKSP | RGUI | RGUI | RALT | RCTRL | RSHIFT | * '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------' - */ + */ [_CM] = { { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, { _______, KC_Q, KC_W, KC_F, KC_P, KC_G, _______, _______, _______, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, _______ }, { _______, KC_A, KC_R, KC_S, KC_T, KC_D, _______, _______, _______, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT }, { _______, SFT_T(KC_Z), LT(_NB, KC_X), LT(_SYL, KC_C), KC_V, LT(_NAV, KC_B), _______, _______, _______, LT(_NAV, KC_K), KC_M, LT(_SYR, KC_COMM), LT(_FN, KC_DOT), SFT_T(KC_SLSH), _______ }, - { KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, LCTL(KC_QUOT), KC_SPC, KC_LCTL, KC_DEL , KC_LALT, KC_BSPC, _______, KC_RGUI, KC_RALT, KC_RCTL, KC_RSFT }, + { KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, LCTL(KC_QUOT), KC_SPC, KC_LCTL, KC_DEL , KC_LALT, KC_BSPC, KC_RGUI, KC_RGUI, KC_RALT, KC_RCTL, KC_RSFT }, }, /* Numbers _NB / Functions _FN @@ -93,14 +91,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+--------+--------+---------------+--------+--------+--------+--------+--------+--------+--------+------------------+--------+--------+--------| * | | | | | | | | | | | | | | | | * '-------------------------------------------------------------------------------------------------------------------------------------------------------' - */ + */ [_SYL] = { { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, { _______, KC_EXLM, UK_PND, KC_UNDS, KC_MINS, KC_TILD, _______, _______, _______, UK_BSLS, KC_LCBR, KC_RCBR, KC_SLSH, UK_HASH, _______ }, { _______, KC_DLR, KC_PERC, KC_PLUS, KC_EQL, _______, _______, _______, _______, UK_QUOT, KC_LPRN, KC_RPRN, KC_QUOT, UK_AT, _______ }, { _______, KC_CIRC, KC_AMPR, LT(_SYL, KC_C), UK_PIPE, _______, _______, _______, _______, KC_LABK, KC_LBRC, KC_RBRC, KC_RABK, KC_GRV, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - }, + }, [_SYR] = { { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, { _______, KC_EXLM, UK_PND, KC_UNDS, KC_MINS, KC_TILD, _______, _______, _______, KC_BSLS, KC_LCBR, KC_RCBR, KC_SLSH, UK_HASH, _______ }, From 7b80aea8b203ff2135c17de317e0f7d7e6968470 Mon Sep 17 00:00:00 2001 From: Joe Wasson Date: Wed, 7 Mar 2018 00:03:51 -0800 Subject: [PATCH 022/578] Add back docs for hand-swapping feature. --- docs/_summary.md | 1 + docs/feature_swap_hands.md | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 docs/feature_swap_hands.md diff --git a/docs/_summary.md b/docs/_summary.md index 4b007059f089..4e743ac5eabc 100644 --- a/docs/_summary.md +++ b/docs/_summary.md @@ -45,6 +45,7 @@ * [RGB Lighting](feature_rgblight.md) * [Space Cadet](feature_space_cadet.md) * [Stenography](feature_stenography.md) + * [Swap Hands](feature_swap_hands.md) * [Tap Dance](feature_tap_dance.md) * [Terminal](feature_terminal.md) * [Thermal Printer](feature_thermal_printer.md) diff --git a/docs/feature_swap_hands.md b/docs/feature_swap_hands.md new file mode 100644 index 000000000000..42f9e08671f0 --- /dev/null +++ b/docs/feature_swap_hands.md @@ -0,0 +1,31 @@ +# Swap-Hands Action + +The swap-hands action allows support for one-handed typing without requiring a separate layer. Set `ONEHAND_ENABLE` in the Makefile and define a `hand_swap_config` entry in your keymap. Now whenever the `ACTION_SWAP_HANDS` command key is pressed the keyboard is mirrored. For instance, to type "Hello, World" on QWERTY you would type `^Ge^s^s^w^c W^wr^sd` + +## Configuration + +The configuration table is a simple 2-dimensional array to map from column/row to new column/row. Example `hand_swap_config` for Planck: + +```C +const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, + {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, + {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, + {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, +}; +``` + +Note that the array indices are reversed same as the matrix and the values are of type `keypos_t` which is `{col, row}` and all values are zero-based. In the example above, `hand_swap_config[2][4]` (third row, fifth column) would return `{7, 2}` (third row, eighth column). Yes, this is confusing. + +## Advanced Swap Commands + +|Macro | Description | +|------|-------------| +| `ACTION_SWAP_HANDS()` | Swaps hands when pressed, returns to normal when released (momentary). | +| `ACTION_SWAP_HANDS_TOGGLE()` | Toggles swap on and off with every key press. | +| `ACTION_SWAP_HANDS_TAP_TOGGLE()` | Toggles with a tap; momentary when held. | +| `ACTION_SWAP_HANDS_TAP_KEY(key)`| Sends `key` with a tap; momentary swap when held. | +| `ACTION_SWAP_HANDS_ON_OFF()` | Alias for `ACTION_SWAP_HANDS()` | +| `ACTION_SWAP_HANDS_OFF_ON()` | Momentarily turns off swap. | +| `ACTION_SWAP_HANDS_ON()` | Turns on swapping and leaves it on. | +| `ACTION_SWAP_HANDS_OFF()` | Turn off swapping and leaves it off. Good for returning to a known state. | \ No newline at end of file From b688c2c0b3a533cedd6c909f95d6505e667a0443 Mon Sep 17 00:00:00 2001 From: Corey T Kump Date: Tue, 6 Mar 2018 17:22:13 -0500 Subject: [PATCH 023/578] Corvec's Planck layout --- keyboards/planck/keymaps/corvec/config.h | 53 ++++++ keyboards/planck/keymaps/corvec/keymap.c | 207 +++++++++++++++++++++ keyboards/planck/keymaps/corvec/readme.md | 28 +++ keyboards/planck/keymaps/corvec/rules.mk | 5 + keyboards/planck/keymaps/corvec/tapdance.c | 156 ++++++++++++++++ 5 files changed, 449 insertions(+) create mode 100644 keyboards/planck/keymaps/corvec/config.h create mode 100644 keyboards/planck/keymaps/corvec/keymap.c create mode 100644 keyboards/planck/keymaps/corvec/readme.md create mode 100644 keyboards/planck/keymaps/corvec/rules.mk create mode 100644 keyboards/planck/keymaps/corvec/tapdance.c diff --git a/keyboards/planck/keymaps/corvec/config.h b/keyboards/planck/keymaps/corvec/config.h new file mode 100644 index 000000000000..a7f4506062fb --- /dev/null +++ b/keyboards/planck/keymaps/corvec/config.h @@ -0,0 +1,53 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PLANCK_SOUND) + // #define STARTUP_SONG SONG(NO_SOUND) + + #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(COLEMAK_SOUND), \ + SONG(DVORAK_SOUND) \ + } +#endif + +#define MUSIC_MASK (keycode != KC_NO) + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ + +#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 2 + +#define PERMISSIVE_HOLD + +// AutoShift config +#define AUTO_SHIFT_TIMEOUT 135 +#define NO_AUTO_SHIFT_SPECIAL +// #define NO_AUTO_SHIFT_NUMERIC +// #define NO_AUTO_SHIFT_ALPHA + +// TapDance config +#define TAPPING_TERM 150 + +#endif diff --git a/keyboards/planck/keymaps/corvec/keymap.c b/keyboards/planck/keymaps/corvec/keymap.c new file mode 100644 index 000000000000..ea98927c2736 --- /dev/null +++ b/keyboards/planck/keymaps/corvec/keymap.c @@ -0,0 +1,207 @@ +/* Copyright 2015-2018 Jack Humbert, Corey Kump + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "planck.h" +#include "action_layer.h" + +extern keymap_config_t keymap_config; + +enum planck_layers { + _COLEMAK, + _QWERTY, + _LOWER, + _LEANDOWN, + _RAISE, + _WOBBLE, + _PLOVER, + _ADJUST +}; + +/* This include relies on the layer constants above and so must be declared after them */ +#include "tapdance.c" + +enum planck_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + LOWER, + RAISE, + BACKLIT +}; + +#define KC_ KC_TRNS +#define KC_____ KC_TRNS +#define KC_XXXX KC_NO +#define KC_LOWR LOWER +#define KC_RASE RAISE + +/** + * Custom Corvec Bindings + * + * Previously used but currently unused bindings are commented out. + **/ + +// Activate the Wobble layer +#define KC_WOBL MO(_WOBBLE) +// Dual function with Raise +#define KC_RESC LT(_RAISE, KC_ESC) +// Dual functions with Lower +#define KC_LENT LT(_LOWER, KC_ENT) +#define KC_LQUT LT(_LEANDOWN, KC_QUOT) +// Dual functions with Shift +#define KC_SDEL MT(MOD_LSFT, KC_DEL) +#define KC_SAPP MT(MOD_LSFT, KC_APP) + +/** + * Functions taking advantage of tap dance: + **/ +// Tap once: quote. Hold: LEANDOWN layer. Tap twice: minus. +#define KC_TQTD TD(TD_QUOT_LEAN_MINS) +// Tap once: [. Hold: RALT. Tap twice: { +#define KC_TALT TD(TD_LBRC_RALT_LCBR) +// Tap once: ]. Hold: RGUI. Tap twice: } +#define KC_TGUI TD(TD_RBRC_RGUI_RCBR) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_COLEMAK] = KC_KEYMAP( + //-----+----+----+----+----+----+----+----+----+----+----+---- + TAB , Q , W , F , P , G , J , L , U , Y ,SCLN,BSPC, + //-----+----+----+----+----+----+----+----+----+----+----+---- + RESC, A , R , S , T , D , H , N , E , I , O ,TQTD, + //-----+----+----+----+----+----+----+----+----+----+----+---- + LSFT, Z , X , C , V , B , K , M ,COMM,DOT ,SLSH,RSFT, + //-----+----+----+----+----+----+----+----+----+----+----+---- + LCTL,LGUI,WOBL,LALT,LENT, SPC, SPC,RASE,SDEL,TALT,TGUI,RCTL + ), + + [_QWERTY] = KC_KEYMAP( + //-----+----+----+----+----+----+----+----+----+----+----+---- + TAB , Q , W , E , R , T , Y , U , I , O , P ,BSPC, + //-----+----+----+----+----+----+----+----+----+----+----+---- + RESC, A , S , D , F , G , H , J , K , L ,SCLN,TQTD, + //-----+----+----+----+----+----+----+----+----+----+----+---- + LSFT, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH,RSFT, + //-----+----+----+----+----+----+----+----+----+----+----+---- + LCTL,LGUI,WOBL,LALT,LENT, SPC, SPC,RASE,RALT,SAPP,RGUI,RCTL + ), + + [_LOWER] = KC_KEYMAP( + GRV ,EXLM, AT ,HASH, DLR,PERC,CIRC,AMPR,ASTR,LPRN,RPRN,____, + ____,LPRN,RPRN,LBRC,RBRC,XXXX,LEFT,DOWN, UP ,RGHT,XXXX,MINS, + ____,BSLS,TILD,PIPE,EQL ,UNDS,HOME,PGDN,PGUP,END ,BSLS,____, + ____,____,____,____,____,____,____,____,____,____,____,____ + ), + + [_LEANDOWN] = KC_KEYMAP( + GRV ,EXLM, AT ,HASH, DLR,PERC,CIRC,AMPR,ASTR,LPRN,RPRN,____, + ____,LPRN,RPRN,LBRC,RBRC,LCBR,LCBR,DLR ,PERC,CIRC,____,____, + ____,BSLS,TILD,PIPE,EQL ,UNDS,HOME,EXLM, AT ,HASH,BSLS,____, + ____,____,____,____,____,____,____,____,LEFT,DOWN, UP ,RGHT + ), + + [_RAISE] = KC_KEYMAP( + GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,____, + ____,LPRN,RPRN,LCBR,RCBR,XXXX,XXXX, 4 , 5 , 6 ,PPLS,MINS, + ____,BSLS,TILD,PIPE,EQL ,UNDS,XXXX, 1 , 2 , 3 ,PAST,____, + ____,____,____,____,____,____,____,____,____,____,____,____ + ), + + [_WOBBLE] = KC_KEYMAP( + GRV , F1 , F2 , F3 , F4 , NO ,MUTE,VOLD,VOLU, NO , NO , DEL, + , F5 , F6 , F7 , F8 , NO ,MPRV,MPLY,MSTP,MNXT, NO ,BSLS, + , F9 , F10, F11, F12, NO , NO , NO , NO , INS,PSCR, , + , , , , , , , , , , , + ), + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * |Colemk| | Debug|RGB Tg|RGB Md|RGB H+|RGB H-|RGB S+|RGB S-|RGB V+|RGB V-|Qwerty| + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk| |AS On | AS + | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf|AS Rep|AS Off| AS - | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | Reset| + * `-----------------------------------------------------------------------------------' + */ + +[_ADJUST] = { + {COLEMAK, _______, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, QWERTY }, + {_______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, _______, KC_ASON, KC_ASUP}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF,KC_ASRP, KC_ASOFF,KC_ASDN}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET } +} + + +}; + +#ifdef AUDIO_ENABLE + float plover_song[][2] = SONG(PLOVER_SOUND); + float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + PORTE &= ~(1<<6); + } else { + unregister_code(KC_RSFT); + PORTE |= (1<<6); + } + return false; + break; + } + return true; +} diff --git a/keyboards/planck/keymaps/corvec/readme.md b/keyboards/planck/keymaps/corvec/readme.md new file mode 100644 index 000000000000..05591455560b --- /dev/null +++ b/keyboards/planck/keymaps/corvec/readme.md @@ -0,0 +1,28 @@ +# Corvec's Planck Layout + +This layout is a development-focused layout with an emphasis on ergonomics. It is intended to be used in Colemak mode, +but has a full-QWERTY mode for gaming compatibility. + +It utilizes redundancy for common keys so that they are more easily accessible in every task. For example, the common +layers, Raise and Lower, both can be activated with two different keys, each pressed with either hand. Certain symbols +( \~|+_ ) are on both layers, since the keys they take up are a bit out of the way. The minus symbol is available on the +quote key in a variety of ways - both layers, as well as via tap dance. + +The right-hand Lower activation key activates a slightly different layer. The keys accessed by the opposite hand are the +same as the Lower layer, but the keys on the right hand differ. For this reason, we refer to this instead as the +Leandown layer. + +Auto-shift is enabled, but there are also three shift keys, since typing with auto-shift is by necessity slow. + +Movement is done Vim-style, on the hjkl / hnei keys, on the Lower layer so that it is easiest to activate it. +The arrow keys are mimicked by Home/PgDn/PgUp/End on the next row. + +The arrow keys and broad navigation keys are replaced by a symbol-pad on the Leandown layer. However, in order to allow +single-hand navigation, the bottom right corner cluster becomes arrow keys. + +Media keys are in the same location as the arrow keys, but are on the Wobble layer instead. + +Toggle layers are minimized so that the state of the keyboard is more predictable. Shift Toggle is in the works, but +will not be included until it can be set to deactivate automatically. + +Delete is accessible from the third Shift key. diff --git a/keyboards/planck/keymaps/corvec/rules.mk b/keyboards/planck/keymaps/corvec/rules.mk new file mode 100644 index 000000000000..c17a31a233b7 --- /dev/null +++ b/keyboards/planck/keymaps/corvec/rules.mk @@ -0,0 +1,5 @@ +AUTO_SHIFT_ENABLE = yes +TAP_DANCE_ENABLE = yes +API_SYSEX_ENABLE = no +CONSOLE_ENABLE = no +EXTRAKEY_ENABLE = no diff --git a/keyboards/planck/keymaps/corvec/tapdance.c b/keyboards/planck/keymaps/corvec/tapdance.c new file mode 100644 index 000000000000..a597fe29fa92 --- /dev/null +++ b/keyboards/planck/keymaps/corvec/tapdance.c @@ -0,0 +1,156 @@ +/** + * Tap Dance config and functions + **/ +/* Copyright 2018 Corey Kump + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +enum { + SINGLE_TAP = 1, + SINGLE_HOLD = 2, + DOUBLE_TAP = 3, + DOUBLE_SINGLE_TAP = 4, + UNKNOWN_TAPS = 5 +}; + +typedef struct { + bool is_press_action; + int state; +} tap; + +int cur_dance (qk_tap_dance_state_t *state) { + if (state->count == 1) { + if (state->interrupted || !state->pressed) { + return SINGLE_TAP; + } else { + return SINGLE_HOLD; + } + } + if (state->count == 2) { + if (state->interrupted) { + return DOUBLE_SINGLE_TAP; + } else if (!state->pressed) { + return DOUBLE_TAP; + } + } + return UNKNOWN_TAPS; +} + +/** + * quote + **/ + +static tap quote_state = { + .is_press_action = true, + .state = 0 +}; + +void quote_finished(qk_tap_dance_state_t *state, void *user_data) { + quote_state.state = cur_dance(state); + switch(quote_state.state) { + case SINGLE_TAP: register_code(KC_QUOT); break; + case SINGLE_HOLD: layer_on(_LEANDOWN); break; + case DOUBLE_TAP: register_code(KC_MINS); break; + case DOUBLE_SINGLE_TAP: register_code(KC_QUOT); unregister_code(KC_QUOT); register_code(KC_QUOT); break; + } +} +void quote_reset(qk_tap_dance_state_t *state, void *user_data) { + switch(quote_state.state) { + case SINGLE_TAP: unregister_code(KC_QUOT); break; + case SINGLE_HOLD: layer_off(_LEANDOWN); break; + case DOUBLE_TAP: unregister_code(KC_MINS); break; + case DOUBLE_SINGLE_TAP: unregister_code(KC_QUOT); break; + } + quote_state.state = 0; +} + +/** + * ralt / left bracket / left curly brace + **/ + +static tap ralt_state = { + .is_press_action = true, + .state = 0 +}; + +void ralt_finished(qk_tap_dance_state_t *state, void *user_data) { + ralt_state.state = cur_dance(state); + switch(ralt_state.state) { + case SINGLE_TAP: register_code(KC_LBRC); break; + case SINGLE_HOLD: register_code(KC_RALT); break; + case DOUBLE_TAP: register_code(KC_LSFT); register_code(KC_LBRC); break; + // fallback to alt because it's the primary purpose of this key + case DOUBLE_SINGLE_TAP: register_code(KC_RALT); break; + } +} +void ralt_reset(qk_tap_dance_state_t *state, void *user_data) { + switch(ralt_state.state) { + case SINGLE_TAP: unregister_code(KC_LBRC); break; + case SINGLE_HOLD: unregister_code(KC_RALT); break; + case DOUBLE_TAP: unregister_code(KC_LBRC); unregister_code(KC_LSFT); break; + case DOUBLE_SINGLE_TAP: unregister_code(KC_RALT); break; + } + ralt_state.state = 0; +} + +/** + * rgui / right bracket / right curly brace + **/ + +static tap rgui_state = { + .is_press_action = true, + .state = 0 +}; + +void rgui_finished(qk_tap_dance_state_t *state, void *user_data) { + rgui_state.state = cur_dance(state); + switch(rgui_state.state) { + case SINGLE_TAP: register_code(KC_RBRC); break; + case SINGLE_HOLD: register_code(KC_RGUI); break; + case DOUBLE_TAP: register_code(KC_LSFT); register_code(KC_RBRC); break; + // fallback to alt because it's the primary purpose of this key + case DOUBLE_SINGLE_TAP: register_code(KC_RGUI); break; + } +} +void rgui_reset(qk_tap_dance_state_t *state, void *user_data) { + switch(rgui_state.state) { + case SINGLE_TAP: unregister_code(KC_RBRC); break; + case SINGLE_HOLD: unregister_code(KC_RGUI); break; + case DOUBLE_TAP: unregister_code(KC_RBRC); unregister_code(KC_LSFT); break; + case DOUBLE_SINGLE_TAP: unregister_code(KC_RGUI); break; + } + rgui_state.state = 0; +} + +/** + * Define the available tap dance keys + **/ + +enum { + TD_ALT_SHIFT = 0, + TD_LQUT_MINS, + TD_QUOT_LEAN_MINS, + TD_LBRC_RALT_LCBR, + TD_RBRC_RGUI_RCBR +}; + +qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for Alt, twice for Shift + [TD_ALT_SHIFT] = ACTION_TAP_DANCE_DOUBLE(KC_RALT, KC_RSFT), + [TD_QUOT_LEAN_MINS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, quote_finished, quote_reset), + [TD_LBRC_RALT_LCBR] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ralt_finished, ralt_reset), + [TD_RBRC_RGUI_RCBR] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rgui_finished, rgui_reset) +}; + From aadb386de6e81b97f9fa1e85b62b5a925cbc28c0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 7 Mar 2018 01:54:50 +1100 Subject: [PATCH 024/578] qwerty_code_friendly: various updates - Remove action_get_macro in favor of process_record_user - Support user defined words on layer 3 (pass via flags) - Support backspace & del on left thumb cluster. (optionally override top right backspace). --- .../ergodox/qwerty_code_friendly/keymap.c | 546 +++++++++++------- .../ergodox/qwerty_code_friendly/readme.md | 147 +++-- 2 files changed, 422 insertions(+), 271 deletions(-) diff --git a/layouts/community/ergodox/qwerty_code_friendly/keymap.c b/layouts/community/ergodox/qwerty_code_friendly/keymap.c index bd3d550a5df4..788c37d6e125 100644 --- a/layouts/community/ergodox/qwerty_code_friendly/keymap.c +++ b/layouts/community/ergodox/qwerty_code_friendly/keymap.c @@ -1,3 +1,5 @@ +/* -*- Mode:C; c-basic-offset:2; tab-width:2; indent-tabs-mode:nil; evil-indent-convert-tabs:t; -*- */ + #include QMK_KEYBOARD_H #include "debug.h" #include "action_layer.h" @@ -7,51 +9,153 @@ * See `readme.md` for notes on each define. */ -// Personal preference (enable by passing EXTRAFLAGS=... to make). -// #define CFQ_USE_MOMENTARY_LAYER_KEYS -// #define CFQ_USE_EXPEREMENTAL_LAYER +/* Personal preference (enable by passing EXTRAFLAGS=... to make). */ +/* #define CFQ_USE_MOMENTARY_LAYER_KEYS */ -// keep enabled for now #define CFQ_USE_DYNAMIC_MACRO +#if !defined(CFQ_USER_KEY0) +# define CFQ_USER_KEY0 KC_BSPC +#endif #if !defined(CFQ_USER_KEY1) # define CFQ_USER_KEY1 CFQ_KC_FN1 #endif #if !defined(CFQ_USER_KEY2) -# define CFQ_USER_KEY2 KC_INS +# define CFQ_USER_KEY2 KC_LT #endif #if !defined(CFQ_USER_KEY3) -# ifdef CFQ_USE_EXPEREMENTAL_LAYER -# define CFQ_USER_KEY3 CFQ_KC_FN3 -# else -# define CFQ_USER_KEY3 KC_CAPS -# endif +# define CFQ_USER_KEY3 KC_GT #endif #if !defined(CFQ_USER_KEY4) -# define CFQ_USER_KEY4 KC_SPC +# define CFQ_USER_KEY4 KC_BSPC #endif #if !defined(CFQ_USER_KEY5) -# define CFQ_USER_KEY5 KC_ENT +# define CFQ_USER_KEY5 KC_DELT #endif #if !defined(CFQ_USER_KEY6) -# define CFQ_USER_KEY6 CFQ_KC_FN2 +# define CFQ_USER_KEY6 KC_CAPS #endif #if !defined(CFQ_USER_KEY7) -# define CFQ_USER_KEY7 CFQ_KC_FN1 +# define CFQ_USER_KEY7 CFQ_KC_FN3 #endif -#define BASE 0 // default layer -#define SYMB 1 // symbols -#define MDIA 2 // media keys -#ifdef CFQ_USE_EXPEREMENTAL_LAYER -# define EXPR 3 // experimental keys +#ifndef CFQ_WORD_A +#define CFQ_WORD_A "" +#endif +#ifndef CFQ_WORD_B +#define CFQ_WORD_B "" +#endif +#ifndef CFQ_WORD_C +#define CFQ_WORD_C "" +#endif +#ifndef CFQ_WORD_D +#define CFQ_WORD_D "" +#endif +#ifndef CFQ_WORD_E +#define CFQ_WORD_E "" +#endif +#ifndef CFQ_WORD_F +#define CFQ_WORD_F "" +#endif +#ifndef CFQ_WORD_G +#define CFQ_WORD_G "" +#endif +#ifndef CFQ_WORD_H +#define CFQ_WORD_H "" +#endif +#ifndef CFQ_WORD_I +#define CFQ_WORD_I "" +#endif +#ifndef CFQ_WORD_J +#define CFQ_WORD_J "" +#endif +#ifndef CFQ_WORD_K +#define CFQ_WORD_K "" +#endif +#ifndef CFQ_WORD_L +#define CFQ_WORD_L "" +#endif +#ifndef CFQ_WORD_M +#define CFQ_WORD_M "" +#endif +#ifndef CFQ_WORD_N +#define CFQ_WORD_N "" +#endif +#ifndef CFQ_WORD_O +#define CFQ_WORD_O "" +#endif +#ifndef CFQ_WORD_P +#define CFQ_WORD_P "" +#endif +#ifndef CFQ_WORD_Q +#define CFQ_WORD_Q "" +#endif +#ifndef CFQ_WORD_R +#define CFQ_WORD_R "" +#endif +#ifndef CFQ_WORD_S +#define CFQ_WORD_S "" +#endif +#ifndef CFQ_WORD_T +#define CFQ_WORD_T "" +#endif +#ifndef CFQ_WORD_U +#define CFQ_WORD_U "" +#endif +#ifndef CFQ_WORD_V +#define CFQ_WORD_V "" +#endif +#ifndef CFQ_WORD_W +#define CFQ_WORD_W "" +#endif +#ifndef CFQ_WORD_X +#define CFQ_WORD_X "" +#endif +#ifndef CFQ_WORD_Y +#define CFQ_WORD_Y "" +#endif +#ifndef CFQ_WORD_Z +#define CFQ_WORD_Z "" #endif +static const char *cfq_word_lut[26] = { + CFQ_WORD_A, CFQ_WORD_B, CFQ_WORD_C, CFQ_WORD_D, CFQ_WORD_E, CFQ_WORD_F, + CFQ_WORD_G, CFQ_WORD_H, CFQ_WORD_I, CFQ_WORD_J, CFQ_WORD_K, CFQ_WORD_L, + CFQ_WORD_M, CFQ_WORD_N, CFQ_WORD_O, CFQ_WORD_P, CFQ_WORD_Q, CFQ_WORD_R, + CFQ_WORD_S, CFQ_WORD_T, CFQ_WORD_U, CFQ_WORD_V, CFQ_WORD_W, CFQ_WORD_X, + CFQ_WORD_Y, CFQ_WORD_Z, +}; + +#define BASE 0 /* default layer */ +#define SYMB 1 /* symbols */ +#define MDIA 2 /* media keys */ +#define WORD 3 /* experimental keys */ + enum custom_keycodes { - PLACEHOLDER = SAFE_RANGE, // can always be here - EPRM, - VRSN, + PLACEHOLDER = SAFE_RANGE, /* can always be here */ RGB_SLD, + + M_BRACKET_IN_CBR, + M_BRACKET_IN_PRN, + M_BRACKET_IN_BRC, + M_BRACKET_IN_ANG, + M_BRACKET_OUT_CBR, + M_BRACKET_OUT_PRN, + M_BRACKET_OUT_BRC, + M_BRACKET_OUT_ANG, + M_ARROW_RMINUS, + M_ARROW_LMINUS, + M_ARROW_REQL, + M_ARROW_LEQL, + + /* allow user defined words for each character: + * use CFQ_WORD_[A-Z] defines. */ + M_WORD_A, M_WORD_B, M_WORD_C, M_WORD_D, M_WORD_E, M_WORD_F, + M_WORD_G, M_WORD_H, M_WORD_I, M_WORD_J, M_WORD_K, M_WORD_L, + M_WORD_M, M_WORD_N, M_WORD_O, M_WORD_P, M_WORD_Q, M_WORD_R, + M_WORD_S, M_WORD_T, M_WORD_U, M_WORD_V, M_WORD_W, M_WORD_X, + M_WORD_Y, M_WORD_Z, + #ifdef CFQ_USE_DYNAMIC_MACRO DYNAMIC_MACRO_RANGE, #endif @@ -61,30 +165,6 @@ enum custom_keycodes { #include "dynamic_macro.h" #endif -// macros -#ifdef CFQ_USE_EXPEREMENTAL_LAYER -#define M_SPACES_1 2 -#define M_SPACES_2 3 -#define M_SPACES_3 4 -#define M_SPACES_4 5 -#define M_SPACES_5 6 -#define M_SPACES_6 7 -#define M_SPACES_7 8 -#define M_SPACES_8 9 -#endif -#define M_BRACKET_IN_CBR 10 -#define M_BRACKET_IN_PRN 11 -#define M_BRACKET_IN_BRC 12 -#define M_BRACKET_IN_ANG 13 -#define M_BRACKET_OUT_CBR 14 -#define M_BRACKET_OUT_PRN 15 -#define M_BRACKET_OUT_BRC 16 -#define M_BRACKET_OUT_ANG 17 -#define M_ARROW_RMINUS 18 -#define M_ARROW_LMINUS 19 -#define M_ARROW_REQL 20 -#define M_ARROW_LEQL 21 - #ifdef CFQ_USE_MOMENTARY_LAYER_KEYS #define CFQ_KC_FN1 MO(1) #define CFQ_KC_FN2 MO(2) @@ -99,42 +179,49 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * ,--------------------------------------------------. ,--------------------------------------------------. * | Grave | ! | @ | # | $ | % | { | | } | ^ | & | * | - | = | BSpace | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| * | Tab | Q | W | E | R | T | ( | | ) | Y | U | I | O | P | \ | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | Esc | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | LCtl |Super | Alt | ~L1 |Space | | Left | Down | Up |Right | Del | + * | LCtl |Super | Alt | ~L1 |Space | | Left | Down | Up |Right | Ins | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. - * | Ins |CapsLk| | Home | End | - * ,------|------|------| |------+------+------. - * | | | ~L2 | | PgUp | | | - * |Space |Enter |------| |------|Enter |Space | - * | | | ~L1 | | PgDn | | | + * | < | > | | Home | End | + * ,------+------+------| |------+------+------. + * | | |CapsLk| | PgUp | | | + * |BSpace| Del |------| |------| ~L2 |Space | + * | | | ~L3 | | PgDn | | | * `--------------------' `--------------------' * * Optional overrides: see CFQ_USER_KEY# defines. * - * -------+------+------+------+------+ - * | | | | USR1 | | - * `----------------------------------' - * - * ,-------------. - * | USR2 | USR3 | - * ,------|------|------| - * | | | USR6 | - * | USR4 | USR5 |------| - * | | | USR7 | - * `--------------------' + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | USR0 | + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | USR1 | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | USR2 | USR3 | | | | + * ,------+------+------| |------+------+------. + * | | | USR6 | | | | | + * | USR4 | USR5 |------| |------| | | + * | | | USR7 | | | | | + * `--------------------' `--------------------' */ -// If it accepts an argument (i.e, is a function), it doesn't need KC_. -// Otherwise, it needs KC_* -[BASE] = LAYOUT_ergodox( // layer 0 : default - // left hand +/* If it accepts an argument (i.e, is a function), it doesn't need KC_. + * Otherwise, it needs KC_* */ +[BASE] = LAYOUT_ergodox( /* layer 0 : default */ + /* left hand */ KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_LCBR, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LPRN, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, @@ -143,48 +230,43 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { CFQ_USER_KEY2, CFQ_USER_KEY3, CFQ_USER_KEY6, CFQ_USER_KEY4, CFQ_USER_KEY5, CFQ_USER_KEY7, - // right hand - KC_RCBR, KC_CIRC, KC_AMPR, KC_ASTR,KC_MINS, KC_EQL, KC_BSPC, + /* right hand */ + KC_RCBR, KC_CIRC, KC_AMPR, KC_ASTR,KC_MINS, KC_EQL, CFQ_USER_KEY0, KC_RPRN, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_RBRC, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, - KC_LEFT, KC_DOWN,KC_UP, KC_RGHT, KC_DELT, + KC_LEFT, KC_DOWN,KC_UP, KC_RGHT, KC_INS, KC_HOME, KC_END, KC_PGUP, -#ifdef CFQ_USE_SWAP_RIGHT_SPACE_ENTER - KC_PGDN, KC_SPC, KC_ENT -#else - KC_PGDN, KC_ENT, KC_SPC -#endif -), -/* Keymap 1: Symbol layer + KC_PGDN, CFQ_KC_FN2, KC_ENT +),/* Keymap 1: KeyPad, Macro Record * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | {} | | }{ | F6 | F7 | F8 | F9 | F10 | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | => | () | | )( | <= | 7 | 8 | 9 | \ | F11 | + * | | | | | | | {} | | }{ | |NumLck| / | * | - | | + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | | | | | | => | () | | )( | <= | 7 | 8 | 9 | + | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | -> |------| |------| <- | 4 | 5 | 6 | * | F12 | + * | | | | | | -> |------| |------| <- | 4 | 5 | 6 | + | | * |--------+------+------+------+------+------| [] | | ][ |------+------+------+------+------+--------| - * | | | | | | <> | | | | >< | 1 | 2 | 3 | - | | + * | | | | | | <> | | | | >< | 1 | 2 | 3 | Enter| | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | 0 | | . | + | | + * | | | | | | | 0 | | . | Enter| | * `----------------------------------' `----------------------------------' - * ,-------------. ,---------------. - * |Start1|Start2| | | | - * ,------|------|------| |------+--------+------. - * | | | Stop | | | | | - * |Play1 |Play2 |------| |------| | | - * | | | | | | | | - * `--------------------' `----------------------' + * ,-------------. ,--------------. + * |Start1|Start2| | | | + * ,------+------+------| |------+-------+------. + * | | | Stop | | | | | + * |Play1 |Play2 |------| |------| | | + * | | | | | | | | + * `--------------------' `---------------------' */ -// SYMBOLS +/* SYMBOLS */ [SYMB] = LAYOUT_ergodox( - // left hand - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, M(M_BRACKET_IN_CBR), - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(M_ARROW_REQL), M(M_BRACKET_IN_PRN), - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(M_ARROW_RMINUS), - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(M_BRACKET_IN_ANG), M(M_BRACKET_IN_BRC), + /* left hand */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_BRACKET_IN_CBR, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_ARROW_REQL, M_BRACKET_IN_PRN, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_ARROW_RMINUS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_BRACKET_IN_ANG, M_BRACKET_IN_BRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, #ifdef CFQ_USE_DYNAMIC_MACRO DYN_REC_START1, DYN_REC_START2, @@ -195,21 +277,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, #endif - // right hand - M(M_BRACKET_OUT_CBR), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, - M(M_BRACKET_OUT_PRN), M(M_ARROW_LEQL), KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_SLASH, KC_F11, - M(M_ARROW_LMINUS), KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_ASTERISK, KC_F12, - M(M_BRACKET_OUT_BRC), M(M_BRACKET_OUT_ANG), KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_MINUS, KC_TRNS, - KC_KP_0, KC_TRNS, KC_KP_DOT, KC_KP_PLUS, KC_TRNS, + /* right hand */ + M_BRACKET_OUT_CBR, KC_TRNS, KC_NLCK, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_TRNS, + M_BRACKET_OUT_PRN, M_ARROW_LEQL, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_TRNS, + M_ARROW_LMINUS, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_TRNS, + M_BRACKET_OUT_BRC, M_BRACKET_OUT_ANG, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, KC_TRNS, + KC_KP_0, KC_TRNS, KC_KP_DOT, KC_KP_ENTER, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -/* Keymap 2: Media and mouse keys +/* Keymap 2: F-Keys, media and mouse keys * * ,--------------------------------------------------. ,--------------------------------------------------. * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| * | | | | MsUp | | |MWhlUp| | | | | | | | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | |MsLeft|MsDown|MsRght| |------| |------| Left | Down | Up |Right | | | @@ -220,15 +302,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | MRwd | MFwd | | MPrv | MNxt | - * ,------|------|------| |------+------+------. + * ,------+------+------| |------+------+------. * | | | | |VolUp | | | - * | | |------| |------| Mute | Play | + * | Mute | |------| |------| | Play | * | | | | |VolDn | | | * `--------------------' `--------------------' */ -// MEDIA AND MOUSE +/* MEDIA AND MOUSE */ [MDIA] = LAYOUT_ergodox( - // left hand + /* left hand */ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_WH_U, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, @@ -236,131 +318,66 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MRWD, KC_MFFD, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_MUTE, KC_TRNS, KC_TRNS, + /* right hand */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_VOLU, - KC_VOLD, KC_MUTE, KC_MPLY + KC_VOLD, KC_TRNS, KC_MPLY ), -#ifdef CFQ_USE_EXPEREMENTAL_LAYER -/* Keymap 3: My own testing keys! +/* Keymap 3: Entire Words (one for each key) * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | { | } | | } | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | ( | ) | | ) | | | Spc7 | Spc8 | | | | | + * | | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | | + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | | Q | W | E | R | T | | | | Y | U | I | O | P | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | [ | ] | |------| |------| Spc4 | Spc5 | Spc6 | | | | - * |--------+------+------+------+------+------| ] | | |------+------+------+------+------+--------| - * | | | | < | > | | | | | Spc1 | Spc2 | Spc3 | | | | + * | | A | S | D | F | G |------| |------| H | J | K | L | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | Z | X | C | V | B | | | | N | M | | | | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * | | | | | | | | | | | | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | - * ,------|------|------| |------+------+------. + * ,------+------+------| |------+------+------. * | | | | | | | | * | | |------| |------| | | * | | | | | | | | * `--------------------' `--------------------' */ -// EXPERIMENT -[EXPR] = LAYOUT_ergodox( - // left hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_TRNS, KC_RCBR, - KC_TRNS, KC_TRNS, KC_TRNS, KC_LPRN, KC_RPRN, KC_TRNS, KC_RPRN, - KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, S(KC_COMM), S(KC_DOT), KC_TRNS, KC_RBRC, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, M(M_SPACES_7), M(M_SPACES_8), KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, M(M_SPACES_4), M(M_SPACES_5), M(M_SPACES_6), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, M(M_SPACES_1), M(M_SPACES_2), M(M_SPACES_3), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +/* WORDS */ +[WORD] = LAYOUT_ergodox( + /* left hand */ + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, + KC_TRNS, M_WORD_Q, M_WORD_W, M_WORD_E, M_WORD_R, M_WORD_T, KC_TRNS, + KC_TRNS, M_WORD_A, M_WORD_S, M_WORD_D, M_WORD_F, M_WORD_G, + KC_TRNS, M_WORD_Z, M_WORD_X, M_WORD_C, M_WORD_V, M_WORD_B, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + /* right hand */ + KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, + KC_TRNS, M_WORD_Y, M_WORD_U, M_WORD_I, M_WORD_O, M_WORD_P, KC_TRNS, + M_WORD_H, M_WORD_J, M_WORD_K, M_WORD_L, KC_TRNS, KC_TRNS, + KC_TRNS, M_WORD_N, M_WORD_M, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -#endif // CFQ_USE_EXPEREMENTAL_LAYER }; const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols) - [2] = ACTION_LAYER_TAP_TOGGLE(MDIA), // FN2 - Momentary Layer 2 (Media) -#ifdef CFQ_USE_EXPEREMENTAL_LAYER - [3] = ACTION_LAYER_TAP_TOGGLE(EXPR), // FN3 - Momentary Layer 3 (Expremental) -#endif -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); - } - break; - case 1: - if (record->event.pressed) { // For resetting EEPROM - eeconfig_init(); - } - break; -#ifdef CFQ_USE_EXPEREMENTAL_LAYER - case M_SPACES_1: - if (record->event.pressed) { return MACRO(T(SPC), END); } - case M_SPACES_2: - if (record->event.pressed) { return MACRO(T(SPC), T(SPC), END); } - case M_SPACES_3: - if (record->event.pressed) { return MACRO(T(SPC), T(SPC), T(SPC), END); } - case M_SPACES_4: - if (record->event.pressed) { return MACRO(T(SPC), T(SPC), T(SPC), T(SPC), END); } - case M_SPACES_5: - if (record->event.pressed) { return MACRO(T(SPC), T(SPC), T(SPC), T(SPC), T(SPC), END); } - case M_SPACES_6: - if (record->event.pressed) { return MACRO(T(SPC), T(SPC), T(SPC), T(SPC), T(SPC), T(SPC), END); } - case M_SPACES_7: - if (record->event.pressed) { return MACRO(T(SPC), T(SPC), T(SPC), T(SPC), T(SPC), T(SPC), T(SPC), END); } - case M_SPACES_8: - if (record->event.pressed) { return MACRO(T(SPC), T(SPC), T(SPC), T(SPC), T(SPC), T(SPC), T(SPC), T(SPC), END); } -#endif // CFQ_USE_EXPEREMENTAL_LAYER - case M_BRACKET_IN_CBR: // {} - if (record->event.pressed) { return MACRO(D(LSFT), T(LBRC), T(RBRC), U(LSFT), T(LEFT), END); } - case M_BRACKET_IN_PRN: // () - if (record->event.pressed) { return MACRO(D(LSFT), T(9), T(0), U(LSFT), T(LEFT), END); } - case M_BRACKET_IN_BRC: // [] - if (record->event.pressed) { return MACRO(T(LBRC), T(RBRC), T(LEFT), END); } - case M_BRACKET_IN_ANG: // <> - if (record->event.pressed) { return MACRO(D(LSFT), T(COMM), T(DOT), U(LSFT), T(LEFT), END); } - case M_BRACKET_OUT_CBR: // }{ - if (record->event.pressed) { return MACRO(D(LSFT), T(RBRC), T(LBRC), U(LSFT), T(LEFT), END); } - case M_BRACKET_OUT_PRN: // )( - if (record->event.pressed) { return MACRO(D(LSFT), T(0), T(9), U(LSFT), T(LEFT), END); } - case M_BRACKET_OUT_BRC: // ][ - if (record->event.pressed) { return MACRO(T(RBRC), T(LBRC), T(LEFT), END); } - case M_BRACKET_OUT_ANG: // >< - if (record->event.pressed) { return MACRO(D(LSFT), T(DOT), T(COMM), U(LSFT), T(LEFT), END); } - - case M_ARROW_RMINUS: - if (record->event.pressed) { return MACRO(T(MINUS), D(LSFT), T(DOT), U(LSFT), END); } - case M_ARROW_LMINUS: - if (record->event.pressed) { return MACRO(D(LSFT), T(COMM), U(LSFT), T(MINUS), END); } - case M_ARROW_REQL: - if (record->event.pressed) { return MACRO(T(EQL), D(LSFT), T(DOT), U(LSFT), END); } - case M_ARROW_LEQL: - if (record->event.pressed) { return MACRO(D(LSFT), T(COMM), U(LSFT), T(EQL), END); } - } - return MACRO_NONE; + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), /* FN1 - Momentary Layer 1 (Symbols) */ + [2] = ACTION_LAYER_TAP_TOGGLE(MDIA), /* FN2 - Momentary Layer 2 (Media) */ + [3] = ACTION_LAYER_TAP_TOGGLE(WORD), /* FN3 - Momentary Layer 3 (Words) */ }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { @@ -370,37 +387,124 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } #endif switch (keycode) { - // dynamically generate these. - case EPRM: + /* dynamically generate these. */ + case RGB_SLD: if (record->event.pressed) { - eeconfig_init(); +#ifdef RGBLIGHT_ENABLE + rgblight_mode(1); +#endif } return false; break; - case VRSN: + case M_BRACKET_IN_CBR: /* {} */ if (record->event.pressed) { - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + SEND_STRING("{}" SS_TAP(X_LEFT)); + return false; } - return false; break; - case RGB_SLD: + case M_BRACKET_IN_PRN: /* () */ if (record->event.pressed) { -#ifdef RGBLIGHT_ENABLE - rgblight_mode(1); -#endif + SEND_STRING("()" SS_TAP(X_LEFT)); + return false; + } + break; + case M_BRACKET_IN_BRC: /* [] */ + if (record->event.pressed) { + SEND_STRING("[]" SS_TAP(X_LEFT)); + return false; + } + break; + case M_BRACKET_IN_ANG: /* <> */ + if (record->event.pressed) { + SEND_STRING("<>" SS_TAP(X_LEFT)); + return false; + } + break; + case M_BRACKET_OUT_CBR: /* }{ */ + if (record->event.pressed) { + SEND_STRING("}{" SS_TAP(X_LEFT)); + return false; + } + break; + case M_BRACKET_OUT_PRN: /* )( */ + if (record->event.pressed) { + SEND_STRING(")(" SS_TAP(X_LEFT)); + return false; + } + break; + case M_BRACKET_OUT_BRC: /* ][ */ + if (record->event.pressed) { + SEND_STRING("][" SS_TAP(X_LEFT)); + return false; + } + break; + case M_BRACKET_OUT_ANG: /* >< */ + if (record->event.pressed) { + SEND_STRING("><" SS_TAP(X_LEFT)); + return false; + } + break; + case M_ARROW_LMINUS: /* <- */ + if (record->event.pressed) { + SEND_STRING("<-"); + return false; } - return false; break; + case M_ARROW_RMINUS: /* -> */ + if (record->event.pressed) { + SEND_STRING("->"); + return false; + } + break; + case M_ARROW_LEQL: /* <= */ + if (record->event.pressed) { + SEND_STRING("<="); + return false; + } + break; + case M_ARROW_REQL: /* => */ + if (record->event.pressed) { + SEND_STRING("=>"); + return false; + } + break; + case KC_LSHIFT: /* '' */ + if (record->event.pressed && (keyboard_report->mods & (MOD_BIT(KC_RSFT)))) { + clear_mods(); + SEND_STRING("''" SS_TAP(X_LEFT) SS_DOWN(X_RSHIFT) SS_DOWN(X_LSHIFT)); + return false; + } + break; + case KC_RSHIFT: /* "" */ + if (record->event.pressed && (keyboard_report->mods & (MOD_BIT(KC_LSFT)))) { + clear_mods(); + SEND_STRING("\x22\x22" SS_TAP(X_LEFT) SS_DOWN(X_LSHIFT) SS_DOWN(X_RSHIFT)); + return false; + } + break; + + case M_WORD_A...M_WORD_Z: + { + const char *word = cfq_word_lut[keycode - M_WORD_A]; + if (record->event.pressed) { + if (*word) { + send_string(word); + } + return false; + } + break; + } } + return true; } -// Runs just one time when the keyboard initializes. +/* Runs just one time when the keyboard initializes. */ void matrix_init_user(void) { }; -// Runs constantly in the background, in a loop. +/* Runs constantly in the background, in a loop. */ void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); @@ -416,13 +520,11 @@ void matrix_scan_user(void) { case 2: ergodox_right_led_2_on(); break; -#ifdef CFQ_USE_EXPEREMENTAL_LAYER case 3: ergodox_right_led_3_on(); break; -#endif default: - // none + /* none */ break; } diff --git a/layouts/community/ergodox/qwerty_code_friendly/readme.md b/layouts/community/ergodox/qwerty_code_friendly/readme.md index 92130c6fb63c..231123b78071 100644 --- a/layouts/community/ergodox/qwerty_code_friendly/readme.md +++ b/layouts/community/ergodox/qwerty_code_friendly/readme.md @@ -3,7 +3,8 @@ - This layout aims to balance muscle memory from a typical QWERTY layout with having keys used for software development easily accessible. -- Arrow keys follow VIM convention (the media layer even uses arrow keys for HJKL). +- Arrow keys follow VIM convention + (the media layer even uses arrow keys for HJKL). - On the top row only symbols are used (not numbers), it's expected the symbol layer's number-pad layout will be used for numbers. @@ -17,65 +18,75 @@ at the same key locations to type matching pairs. - The extra space-bar on the lower-left looks like it's in an obscure location, - however using the larger thumb cluster ended up being more of a reach while typing. + however using the larger thumb cluster + ended up being more of a reach while typing. -- L3 is currently only used if `CFQ_USE_EXPEREMENTAL_LAYER` is defined, - this is a layer to place extra functionality and test new keys. +- There is a handy shortcut for writing quotes that inserts the cursor + between the quotation marks. + + Holding LShift, then RShift types: "" (then presses left). + + Holding RShift, then LShift types: '' (then presses left). ## Configuration Some optional behavior is configurable without editing the code using `CFQ_` prefixed defines which can be set by passing `EXTRAFLAGS` to make. -- `CFQ_USER_KEY1` (1..7) are used for custom-keys -- `CFQ_USE_MOMENTARY_LAYER_KEYS` is used to prevent layer keys from toggling when tapped. -- `CFQ_USE_SWAP_RIGHT_SPACE_ENTER` swap Enter and Space on the right hand thumb cluster. - While asymmetric, it makes Enter more easily accessible. -- `CFQ_USE_EXPEREMENTAL_LAYER` defines an extra layer for misc extra keys/macros. - When set, Caps-Lock is replace by Layer3. - Currently it's mostly empty. +- `CFQ_USER_KEY0` + (0..7) are used for custom-keys +- `CFQ_USE_MOMENTARY_LAYER_KEYS` + is used to prevent layer keys from toggling when tapped. +- `CFQ_WORD_[A-Z]` + defines can bind a key to an entire user defined word. ## Keymap 0: Basic layer ``` -Keymap 0: Basic layer ,--------------------------------------------------. ,--------------------------------------------------. | Grave | ! | @ | # | $ | % | { | | } | ^ | & | * | - | = | BSpace | -|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| | Tab | Q | W | E | R | T | ( | | ) | Y | U | I | O | P | \ | |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | Esc | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - | LCtl |Super | Alt | ~L1 |Space | | Left | Down | Up |Right | Del | + | LCtl |Super | Alt | ~L1 |Space | | Left | Down | Up |Right | Ins | `----------------------------------' `----------------------------------' ,-------------. ,-------------. - | Ins |CapsLk| | Home | End | - ,------|------|------| |------+------+------. - | | | ~L2 | | PgUp | | | - |Space |Enter |------| |------|Enter |Space | - | | | ~L1 | | PgDn | | | + | < | > | | Home | End | + ,------+------+------| |------+------+------. + | | |CapsLk| | PgUp | | | + |BSpace| Del |------| |------| ~L2 |Space | + | | | ~L3 | | PgDn | | | `--------------------' `--------------------' -Optional overrides: see CFQ_USER_KEY# defines +Optional overrides: see CFQ_USER_KEY# defines. - -------+------+------+------+------+ - | | | | USR1 | | - `----------------------------------' - - ,-------------. - | USR2 | USR3 | - ,------|------|------| - | | | USR6 | - | USR4 | USR5 |------| - | | | USR7 | - `--------------------' +,--------------------------------------------------. ,--------------------------------------------------. +| | | | | | | | | | | | | | | USR0 | +|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| +| | | | | | | | | | | | | | | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | | | | | |------| |------| | | | | | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | | | | | | | | | | | | | | | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | USR1 | | | | | | | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | USR2 | USR3 | | | | + ,------+------+------| |------+------+------. + | | | USR6 | | | | | + | USR4 | USR5 |------| |------| | | + | | | USR7 | | | | | + `--------------------' `--------------------' ``` -## Keymap 1: Symbol layer +## Keymap 1: KeyPad, Macro Record Notes: @@ -84,31 +95,31 @@ Notes: ``` ,--------------------------------------------------. ,--------------------------------------------------. -| | F1 | F2 | F3 | F4 | F5 | {} | | }{ | F6 | F7 | F8 | F9 | F10 | | -|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| -| | | | | | => | () | | )( | <= | 7 | 8 | 9 | \ | F11 | +| | | | | | | {} | | }{ | |NumLck| / | * | - | | +|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| +| | | | | | => | () | | )( | <= | 7 | 8 | 9 | + | | |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| -| | | | | | -> |------| |------| <- | 4 | 5 | 6 | * | F12 | +| | | | | | -> |------| |------| <- | 4 | 5 | 6 | + | | |--------+------+------+------+------+------| [] | | ][ |------+------+------+------+------+--------| -| | | | | | <> | | | | >< | 1 | 2 | 3 | - | | +| | | | | | <> | | | | >< | 1 | 2 | 3 | Enter| | `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - | | | | | | | 0 | | . | + | | + | | | | | | | 0 | | . | Enter| | `----------------------------------' `----------------------------------' - ,-------------. ,---------------. - |Start1|Start2| | | | - ,------|------|------| |------+--------+------. - | | | Stop | | | | | - |Play1 |Play2 |------| |------| | | - | | | | | | | | - `--------------------' `----------------------' + ,-------------. ,--------------. + |Start1|Start2| | | | + ,------+------+------| |------+-------+------. + | | | Stop | | | | | + |Play1 |Play2 |------| |------| | | + | | | | | | | | + `--------------------' `---------------------' ``` -## Keymap 2: Media and mouse keys +## Keymap 2: Keymap 2: Media and mouse keys ``` ,--------------------------------------------------. ,--------------------------------------------------. | | | | | | | | | | | | | | | | -|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| | | | | MsUp | | |MWhlUp| | | | | | | | | |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | | |MsLeft|MsDown|MsRght| |------| |------| Left | Down | Up |Right | | | @@ -119,15 +130,53 @@ Notes: `----------------------------------' `----------------------------------' ,-------------. ,-------------. | MRwd | MFwd | | MPrv | MNxt | - ,------|------|------| |------+------+------. + ,------+------+------| |------+------+------. | | | | |VolUp | | | - | | |------| |------| Mute | Play | + | Mute | |------| |------| | Play | | | | | |VolDn | | | `--------------------' `--------------------' ``` +## Keymap 3: K-Keys & User defined words + +This is for assigning whole words to single keys. +You can define the arguments (which must be quoted) using: `CFQ_WORD_[A-Z]` +eg: `-DCFQ_WORD_E=\"my@email.com\"` + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | | +|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| +| | Q | W | E | R | T | | | | Y | U | I | O | P | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | A | S | D | F | G |------| |------| H | J | K | L | | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | Z | X | C | V | B | | | | N | M | | | | | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------+------+------| |------+------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' +``` + ## Changelog +- 2018/03/06 + Add layer for user defined words (replaces `CFQ_USE_EXPEREMENTAL_LAYER`). + + Minor changes to thumb cluster. + + Move backspace to left thumb, optionally remap the top right backspace. + + Make keypad layout match a typical numpad. + + Move F-Keys to layer 3. + - 2017/11/09 Use Caps-Lock when `CFQ_USE_EXPEREMENTAL_LAYER` isn't defined. From 6c473c5f3863256f9b9d10d5c9292b15e9507178 Mon Sep 17 00:00:00 2001 From: Blake Newman Date: Wed, 7 Mar 2018 22:00:44 +0000 Subject: [PATCH 025/578] layout(preonic): blake-newman's layout (#2483) * layout(preonic): blake-newman's layout - Add keymap - Add Number Pad layout - Reconfigure other layouts to my opinionated style - Add `readme.md` with layout information * layout(preonic): blake-newman's layout - Move enter to `raise + space` / `lower + space` - Replace `enter` to `right shift` - Explicitly map modifier keys --- .../preonic/keymaps/blake-newman/config.h | 42 +++ .../preonic/keymaps/blake-newman/keymap.c | 253 ++++++++++++++++++ .../preonic/keymaps/blake-newman/readme.md | 108 ++++++++ .../preonic/keymaps/blake-newman/rules.mk | 0 4 files changed, 403 insertions(+) create mode 100644 keyboards/preonic/keymaps/blake-newman/config.h create mode 100644 keyboards/preonic/keymaps/blake-newman/keymap.c create mode 100644 keyboards/preonic/keymaps/blake-newman/readme.md create mode 100644 keyboards/preonic/keymaps/blake-newman/rules.mk diff --git a/keyboards/preonic/keymaps/blake-newman/config.h b/keyboards/preonic/keymaps/blake-newman/config.h new file mode 100644 index 000000000000..205351258267 --- /dev/null +++ b/keyboards/preonic/keymaps/blake-newman/config.h @@ -0,0 +1,42 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PREONIC_SOUND) + // #define STARTUP_SONG SONG(NO_SOUND) + + #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(COLEMAK_SOUND), \ + SONG(DVORAK_SOUND) \ + } +#endif + +#define MUSIC_MASK (keycode != KC_NO) + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ + +#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 2 + +#endif \ No newline at end of file diff --git a/keyboards/preonic/keymaps/blake-newman/keymap.c b/keyboards/preonic/keymaps/blake-newman/keymap.c new file mode 100644 index 000000000000..d14263d90c6e --- /dev/null +++ b/keyboards/preonic/keymaps/blake-newman/keymap.c @@ -0,0 +1,253 @@ +/* Copyright 2015-2017 Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "preonic.h" +#include "action_layer.h" + +enum preonic_layers { + _QWERTY, + _COLEMAK, + _DVORAK, + _NUMPAD, + _LOWER, + _RAISE, + _ADJUST +}; + +enum preonic_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + NUMPAD, + LOWER, + RAISE, + BACKLIT +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Bksp | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / | Shift| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | | Alt | Ctrl | Shift| + * `-----------------------------------------------------------------------------------' + */ + [_QWERTY] = { + {KC_GRV, KC_1, KC_2, KC_5, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, _______, KC_RALT, KC_RCTL, KC_RSFT} + }, + + /* Colemak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Bksp | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / | Shift| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | | Alt | Ctrl | Shift| + * `-----------------------------------------------------------------------------------' + */ + [_COLEMAK] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, _______, KC_RALT, KC_RCTL, KC_RSFT} + }, + + /* Dvorak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Bksp | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z | Shift| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | | Alt | Ctrl | Shift| + * `-----------------------------------------------------------------------------------' + */ + [_DVORAK] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT}, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, _______, KC_RALT, KC_RCTL, KC_RSFT} + }, + + /* Numpad + * ,-----------------------------------------------------------------------------------. + * | Esc | | | PgDn | PgUp | Home | End | | / | * | - | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | | Up | | | | | 7 | 8 | 9 | + | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Bksp | Left | Down | Right| | | | 4 | 5 | 6 | | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| | | | | | , | 1 | 2 | 3 | | Shift| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | 0 | . | Ctrl | Shift| + * `-----------------------------------------------------------------------------------' + */ + [_NUMPAD] = { + {KC_ESC, _______, _______, KC_PGDN, KC_PGUP, KC_END, KC_HOME, _______, KC_PSLS, KC_PAST, KC_PMNS, KC_DEL}, + {KC_TAB, _______, KC_UP, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_BSPC}, + {KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, KC_QUOT}, + {KC_LSFT, _______, _______, _______, _______, _______, KC_COMM, KC_P1, KC_P2, KC_P3, _______, KC_RSFT}, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_P0, KC_PDOT, KC_RCTL, KC_RSFT} + }, + + + /* Lower + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | | Up | | | | | -_ | - | + | = | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Bksp| Left | Down | Right| | | | { | } | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| | | | | | | | | | ¢ | € | Shift| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Enter |Raise | | Alt | Ctrl | Shift| + * `-----------------------------------------------------------------------------------' + */ + [_LOWER] = { + {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_ESC, _______, KC_UP, _______, _______, _______, _______, KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_BSPC}, + {KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_LSFT, KC_PIPE, _______, _______, _______, _______, _______, _______, ALGR_T(KC_4), ALGR_T(KC_5), _______, KC_RSFT}, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_ENT, KC_ENT, RAISE, _______, KC_RALT, KC_RCTL, KC_RSFT} + }, + + /* Raise + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | | Up | | | | | - | _ | = | + | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Bksp | Left | Down | Right| | | | [ | ] | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| \ | | | | | | | | £ | $ | Shift| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Enter |Raise | | Alt | Ctrl | Shift| + * `-----------------------------------------------------------------------------------' + */ + [_RAISE] = { + {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_ESC, _______, KC_UP, _______, _______, _______, _______, KC_MINS, KC_UNDS, KC_EQL, KC_PLUS, KC_BSPC}, + {KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_LSFT, KC_BSLS, _______, _______, _______, _______, _______, _______, _______, ALGR_T(KC_DLR), KC_DLR, KC_RSFT}, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_ENT, KC_ENT, RAISE, _______, KC_RALT, KC_RCTL, KC_RSFT} + }, + + /* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Reset| Debug| | | | | | | aPscr| sPscr| Pscr | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Caps | | |Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Numpad|Insert| + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_ADJUST] = { + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, RESET, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,LALT(KC_PSCR), LCTL(KC_PSCR), KC_PSCR}, + {KC_CAPS, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, NUMPAD, KC_INS}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + } + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; + case NUMPAD: + if (record->event.pressed) { + set_single_persistent_default_layer(_NUMPAD); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + PORTE &= ~(1<<6); + } else { + unregister_code(KC_RSFT); + PORTE |= (1<<6); + } + return false; + break; + } + return true; +}; diff --git a/keyboards/preonic/keymaps/blake-newman/readme.md b/keyboards/preonic/keymaps/blake-newman/readme.md new file mode 100644 index 000000000000..fe88b9816d15 --- /dev/null +++ b/keyboards/preonic/keymaps/blake-newman/readme.md @@ -0,0 +1,108 @@ +# Preonic layout by [Blake Newman](https://github.com/blake-newman) + +## Layouts + +### Qwerty +``` +,-----------------------------------------------------------------------------------. +| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | +|------+------+------+------+------+------+------+------+------+------+------+------| +| Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | +|------+------+------+------+------+-------------+------+------+------+------+------| +| Bksp | A | S | D | F | G | H | J | K | L | ; | " | +|------+------+------+------+------+------|------+------+------+------+------+------| +| Shift| Z | X | C | V | B | N | M | , | . | / | Shift| +|------+------+------+------+------+------+------+------+------+------+------+------| +| Brite| Ctrl | Alt | GUI |Lower | Space |Raise | | Alt | Ctrl | Shift| +`-----------------------------------------------------------------------------------' +``` + +### Colemak +``` +,-----------------------------------------------------------------------------------. +| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | +|------+------+------+------+------+------+------+------+------+------+------+------| +| Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | +|------+------+------+------+------+-------------+------+------+------+------+------| +| Bksp | A | R | S | T | D | H | N | E | I | O | " | +|------+------+------+------+------+------|------+------+------+------+------+------| +| Shift| Z | X | C | V | B | K | M | , | . | / | Shift| +|------+------+------+------+------+------+------+------+------+------+------+------| +| Brite| Ctrl | Alt | GUI |Lower | Space |Raise | | Alt | Ctrl | Shift| +`-----------------------------------------------------------------------------------' +``` + +### Dvorak +``` +,-----------------------------------------------------------------------------------. +| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | +|------+------+------+------+------+------+------+------+------+------+------+------| +| Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | +|------+------+------+------+------+-------------+------+------+------+------+------| +| Bksp | A | O | E | U | I | D | H | T | N | S | / | +|------+------+------+------+------+------|------+------+------+------+------+------| +| Shift| ; | Q | J | K | X | B | M | W | V | Z | Shift| +|------+------+------+------+------+------+------+------+------+------+------+------| +| Brite| Ctrl | Alt | GUI |Lower | Space |Raise | | Alt | Ctrl | Shift| +`-----------------------------------------------------------------------------------' +``` + +### Numpad +``` +,-----------------------------------------------------------------------------------. +| Esc | | | PgDn | PgUp | Home | End | | / | * | - | Del | +|------+------+------+------+------+------+------+------+------+------+------+------| +| Tab | | Up | | | | | 7 | 8 | 9 | + | Bksp | +|------+------+------+------+------+-------------+------+------+------+------+------| +| Bksp | Left | Down | Right| | | | 4 | 5 | 6 | | " | +|------+------+------+------+------+------|------+------+------+------+------+------| +| Shift| | | | | | , | 1 | 2 | 3 | | Shift| +|------+------+------+------+------+------+------+------+------+------+------+------| +| Brite| Ctrl | Alt | GUI |Lower | Space |Raise | 0 | . | Ctrl | Shift| +`-----------------------------------------------------------------------------------' +``` + +### Lower +``` +,-----------------------------------------------------------------------------------. +| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | +|------+------+------+------+------+-------------+------+------+------+------+------| +| Esc | | Up | | | | | -_ | - | + | = | Bksp | +|------+------+------+------+------+-------------+------+------+------+------+------| +| Bksp| Left | Down | Right| | | | { | } | [ | ] | \ | +|------+------+------+------+------+------|------+------+------+------+------+------| +| Shift| | | | | | | | | | ¢ | € | Shift| +|------+------+------+------+------+------+------+------+------+------+------+------| +| Brite| Ctrl | Alt | GUI |Lower | Enter |Raise | | Alt | Ctrl | Shift| +`-----------------------------------------------------------------------------------' +``` + +### Raise +``` +,-----------------------------------------------------------------------------------. +| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | +|------+------+------+------+------+-------------+------+------+------+------+------| +| Esc | | Up | | | | | - | _ | = | + | Bksp | +|------+------+------+------+------+-------------+------+------+------+------+------| +| Bksp | Left | Down | Right| | | | [ | ] | { | } | | | +|------+------+------+------+------+------|------+------+------+------+------+------| +| Shift| \ | | | | | | | | £ | $ | Shift| +|------+------+------+------+------+------+------+------+------+------+------+------| +| Brite| Ctrl | Alt | GUI |Lower | Enter |Raise | | Alt | Ctrl | Shift| +`-----------------------------------------------------------------------------------' +``` + +### Adjust (Lower + Raise) +``` +,-----------------------------------------------------------------------------------. +| | | | | | | | | | | | | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | Reset| Debug| | | | | | | aPscr| sPscr| Pscr | +|------+------+------+------+------+-------------+------+------+------+------+------| +| Caps | | |Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Numpad|Insert| +|------+------+------+------+------+------|------+------+------+------+------+------| +| |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | Next | Vol- | Vol+ | Play | +`-----------------------------------------------------------------------------------' +``` diff --git a/keyboards/preonic/keymaps/blake-newman/rules.mk b/keyboards/preonic/keymaps/blake-newman/rules.mk new file mode 100644 index 000000000000..e69de29bb2d1 From bec8d58ad8d8efc2095682f2aba7abc106c2464a Mon Sep 17 00:00:00 2001 From: Sebastian Kaim Date: Wed, 7 Mar 2018 23:05:02 +0100 Subject: [PATCH 026/578] Fixed compilation of the ps2avrGB keyboard/firmware (resolving #2425) (#2478) * Fixed compilation of the ps2avrGB keyboard/firmware This commit fixes the silent compilation error for the ps2avrGB keyboard/firmware. This error was caused by a lacking default keymap which it did not have because all keyboards based on it were moved to another directory. I also added the required config.h options so it's possible to compile it again and (probably) flash it on a b.mini. Lastly, I updated the README to reflect the current state. This commit fixes #2425 * Referenced the pearl in the ps2avrGB REAMDE Added a reference to the pearl keyboard in the README of the ps2avrGB keyboard as it is originally based on the firmware as well. --- keyboards/ps2avrGB/README.md | 9 ++-- keyboards/ps2avrGB/bmini.h | 60 +++++++++++++++++++++ keyboards/ps2avrGB/config.h | 11 +++- keyboards/ps2avrGB/keymaps/default/keymap.c | 37 +++++++++++++ 4 files changed, 112 insertions(+), 5 deletions(-) create mode 100644 keyboards/ps2avrGB/bmini.h create mode 100644 keyboards/ps2avrGB/keymaps/default/keymap.c diff --git a/keyboards/ps2avrGB/README.md b/keyboards/ps2avrGB/README.md index 886e3aea89d1..5111be264608 100644 --- a/keyboards/ps2avrGB/README.md +++ b/keyboards/ps2avrGB/README.md @@ -10,11 +10,14 @@ Note that this is a complete replacement for the firmware, so you won't be using Bootmapper Client to change any keyboard settings, since not all the USB report options are supported. +This is an example based on the b.mini keyboard for making other keyboards +compatible with QMK; fully supported boards have their own directory. + ## Supported Boards -Only the [B.mini X2](http://winkeyless.kr/product/b-mini-x2-pcb/) has been -tested so far (since it's the only one I own). But other boards that use -the ps2avrGB firmware should work as well. +- [b.fake](https://github.com/qmk/qmk_firmware/tree/master/keyboards/bfake) +- [b.mini](https://github.com/qmk/qmk_firmware/tree/master/keyboards/bmini) +- [pearl](https://github.com/qmk/qmk_firmware/tree/master/keyboards/pearl) ## Installing diff --git a/keyboards/ps2avrGB/bmini.h b/keyboards/ps2avrGB/bmini.h new file mode 100644 index 000000000000..65ffbe94797b --- /dev/null +++ b/keyboards/ps2avrGB/bmini.h @@ -0,0 +1,60 @@ +/* +Copyright 2017 Luiz Ribeiro + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef BMINI_H +#define BMINI_H + +#include "quantum.h" + +#define KEYMAP( \ + K05, K25, K35, K45, K55, K06, KA6, KA7, K07, KB5, KC5, KD5, KE5, KD1, KE1, KE2, \ + K04, K14, K24, K34, K44, K54, K16, KB6, KB7, K17, KA4, KB4, KC4, KE4, KD0, \ + K03, K13, K23, K33, K43, K53, K26, KC6, KC7, K27, KA3, KB3, KC3, KD3, K67, \ + K02, K12, K22, K32, K42, K52, K36, KD6, KD7, K37, KA2, KB2, KD2, KE0, \ + K01, K11, K21, K31, K41, K51, K46, KE6, KE7, K47, KA1, KB1, K86, K77, \ + K00, K10, K20, K56, K57, KB0, KC0, K66, K76, K96 \ +){ \ + { K00, K10, K20, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KB0, KC0, KD0, KE0 }, \ + { K01, K11, K21, K31, K41, K51, KC_NO, KC_NO, KC_NO, KC_NO, KA1, KB1, KC_NO, KD1, KE1 }, \ + { K02, K12, K22, K32, K42, K52, KC_NO, KC_NO, KC_NO, KC_NO, KA2, KB2, KC_NO, KD2, KE2 }, \ + { K03, K13, K23, K33, K43, K53, KC_NO, KC_NO, KC_NO, KC_NO, KA3, KB3, KC3, KD3, KC_NO }, \ + { K04, K14, K24, K34, K44, K54, KC_NO, KC_NO, KC_NO, KC_NO, KA4, KB4, KC4, KC_NO, KE4 }, \ + { K05, KC_NO, K25, K35, K45, K55, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KB5, KC5, KD5, KE5 }, \ + { K06, K16, K26, K36, K46, K56, K66, K76, K86, K96, KA6, KB6, KC6, KD6, KE6 }, \ + { K07, K17, K27, K37, K47, K57, K67, K77, KC_NO, KC_NO, KA7, KB7, KC7, KD7, KE7 } \ +} + +#define KC_KEYMAP( \ + K05, K25, K35, K45, K55, K06, KA6, KA7, K07, KB5, KC5, KD5, KE5, KD1, KE1, KE2, \ + K04, K14, K24, K34, K44, K54, K16, KB6, KB7, K17, KA4, KB4, KC4, KE4, KD0, \ + K03, K13, K23, K33, K43, K53, K26, KC6, KC7, K27, KA3, KB3, KC3, KD3, K67, \ + K02, K12, K22, K32, K42, K52, K36, KD6, KD7, K37, KA2, KB2, KD2, KE0, \ + K01, K11, K21, K31, K41, K51, K46, KE6, KE7, K47, KA1, KB1, K86, K77, \ + K00, K10, K20, K56, K57, KB0, KC0, K66, K76, K96 \ +) \ +{ \ + { KC_##K00, KC_##K10, KC_##K20, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_##KB0, KC_##KC0, KC_##KD0, KC_##KE0 }, \ + { KC_##K01, KC_##K11, KC_##K21, KC_##K31, KC_##K41, KC_##K51, KC_NO, KC_NO, KC_NO, KC_NO, KC_##KA1, KC_##KB1, KC_NO, KC_##KD1, KC_##KE1 }, \ + { KC_##K02, KC_##K12, KC_##K22, KC_##K32, KC_##K42, KC_##K52, KC_NO, KC_NO, KC_NO, KC_NO, KC_##KA2, KC_##KB2, KC_NO, KC_##KD2, KC_##KE2 }, \ + { KC_##K03, KC_##K13, KC_##K23, KC_##K33, KC_##K43, KC_##K53, KC_NO, KC_NO, KC_NO, KC_NO, KC_##KA3, KC_##KB3, KC_##KC3, KC_##KD3, KC_NO }, \ + { KC_##K04, KC_##K14, KC_##K24, KC_##K34, KC_##K44, KC_##K54, KC_NO, KC_NO, KC_NO, KC_NO, KC_##KA4, KC_##KB4, KC_##KC4, KC_NO, KC_##KE4 }, \ + { KC_##K05, KC_NO, KC_##K25, KC_##K35, KC_##K45, KC_##K55, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_##KB5, KC_##KC5, KC_##KD5, KC_##KE5 }, \ + { KC_##K06, KC_##K16, KC_##K26, KC_##K36, KC_##K46, KC_##K56, KC_##K66, KC_##K76, KC_##K86, KC_##K96, KC_##KA6, KC_##KB6, KC_##KC6, KC_##KD6, KC_##KE6 }, \ + { KC_##K07, KC_##K17, KC_##K27, KC_##K37, KC_##K47, KC_##K57, KC_##K67, KC_##K77, KC_NO, KC_NO, KC_##KA7, KC_##KB7, KC_##KC7, KC_##KD7, KC_##KE7 } \ +} + +#endif diff --git a/keyboards/ps2avrGB/config.h b/keyboards/ps2avrGB/config.h index f62de1653aa8..fc17b5d5e2e6 100644 --- a/keyboards/ps2avrGB/config.h +++ b/keyboards/ps2avrGB/config.h @@ -18,15 +18,22 @@ along with this program. If not, see . #ifndef CONFIG_H #define CONFIG_H -#include "config_common.h" - #define VENDOR_ID 0x20A0 #define PRODUCT_ID 0x422D +// TODO: share these strings with usbconfig.h +// Edit usbconfig.h to change these. +#define MANUFACTURER winkeyless.kr #define PRODUCT ps2avrGB +/* matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 15 + +#define RGBLED_NUM 16 #define RGBLIGHT_ANIMATIONS #define NO_UART 1 +#define BOOTLOADHID_BOOTLOADER 1 /* key combination for command */ #define IS_COMMAND() (keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) diff --git a/keyboards/ps2avrGB/keymaps/default/keymap.c b/keyboards/ps2avrGB/keymaps/default/keymap.c new file mode 100644 index 000000000000..5c52e1d9b687 --- /dev/null +++ b/keyboards/ps2avrGB/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* +Copyright 2017 Luiz Ribeiro + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "bmini.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = KEYMAP( + KC_ESC, 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_PSCR,KC_HOME,KC_END, + KC_GRV, 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_BSPC, KC_DEL, + 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_BSLS, KC_INS, + MO(0), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_ENT, KC_PGUP, + KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL,KC_LALT,KC_LGUI, KC_SPC, KC_RGUI,KC_RALT,KC_RCTL,KC_LEFT,KC_DOWN,KC_RGHT + ), + [1] = KEYMAP( + KC_TRNS,RGB_TOG,RGB_MOD,RGB_HUI,RGB_SAI,RGB_VAI,RGB_HUD,RGB_SAD,RGB_VAD,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_END, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_DEL, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_INS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_RGHT + ), +}; From d27d8549132fb78601a6980bc6016011a4437b15 Mon Sep 17 00:00:00 2001 From: "U-LANDSRAAD\\drashna" Date: Mon, 5 Mar 2018 07:59:27 -0800 Subject: [PATCH 027/578] Examples should all use _user functions for consistency --- docs/custom_quantum_functions.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/custom_quantum_functions.md b/docs/custom_quantum_functions.md index e7a45e0bfd37..ab3a72e5d384 100644 --- a/docs/custom_quantum_functions.md +++ b/docs/custom_quantum_functions.md @@ -98,10 +98,10 @@ This allows you to control the 5 LED's defined as part of the USB Keyboard spec. * `USB_LED_COMPOSE` * `USB_LED_KANA` -### Example `led_set_kb()` Implementation +### Example `led_set_user()` Implementation ``` -void led_set_kb(uint8_t usb_led) { +void led_set_user(uint8_t usb_led) { if (usb_led & (1< Date: Mon, 5 Mar 2018 08:19:15 -0800 Subject: [PATCH 028/578] Add layer_state_set_* to custom function lists --- docs/custom_quantum_functions.md | 38 +++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/docs/custom_quantum_functions.md b/docs/custom_quantum_functions.md index ab3a72e5d384..984787331662 100644 --- a/docs/custom_quantum_functions.md +++ b/docs/custom_quantum_functions.md @@ -139,7 +139,7 @@ void led_set_user(uint8_t usb_led) { Before a keyboard can be used the hardware must be initialized. QMK handles initialization of the keyboard matrix itself, but if you have other hardware like LED's or i²c controllers you will need to set up that hardware before it can be used. -### Example `matrix_init_kb()` Implementation +### Example `matrix_init_user()` Implementation This example, at the keyboard level, sets up B1, B2, and B3 as LED pins. @@ -177,3 +177,39 @@ This function gets called at every matrix scan, which is basically as often as t You should use this function if you need custom matrix scanning code. It can also be used for custom status output (such as LED's or a display) or other functionality that you want to trigger regularly even when the user isn't typing. +# Layer Change Code + +Thir runs code every time that the layers get changed. This can be useful for layer indication, or custom layer handling. + +### Example `layer_state_set_*` Implementation + +This example shows how to set the [RGB Underglow](feature_rgblight.md) lights based on the layer, using the Planck as an example + +``` +uint32_t layer_state_set_user(uint32_t state) { + switch (biton32(state)) { + case _RAISE: + rgblight_setrgb (0x00, 0x00, 0xFF); + break; + case _LOWER: + rgblight_setrgb (0xFF, 0x00, 0x00); + break; + case _PLOVER: + rgblight_setrgb (0x00, 0xFF, 0x00); + break; + case _ADJUST: + rgblight_setrgb (0x7A, 0x00, 0xFF); + break; + default: // for any other layers, or the default layer + rgblight_setrgb (0x00, 0xFF, 0xFF); + break; + } + return state; +} +``` +### `matrix_init_*` Function Documentation + +* Keyboard/Revision: `void uint32_t layer_state_set_kb(uint32_t state)` +* Keymap: `uint32_t layer_state_set_user(uint32_t state)` + +The `state` is the bitmask of the active layers, as explained in the [Keymap Overview](keymap.md#keymap-layer-status) From 03df19d3f6968f0dc3041b39b7ae8b85198aaa56 Mon Sep 17 00:00:00 2001 From: Maarten Dekkers Date: Wed, 7 Mar 2018 23:06:04 +0100 Subject: [PATCH 029/578] Fixed keymap, added capslock led for maartenwut's kbd66 keymap (#2473) * Fixed keymap, added capslock led * Removed macro --- keyboards/kbd66/keymaps/maartenwut/keymap.c | 57 +++++++++------------ 1 file changed, 25 insertions(+), 32 deletions(-) diff --git a/keyboards/kbd66/keymaps/maartenwut/keymap.c b/keyboards/kbd66/keymaps/maartenwut/keymap.c index 762bed221b90..4ca794c96e60 100755 --- a/keyboards/kbd66/keymaps/maartenwut/keymap.c +++ b/keyboards/kbd66/keymaps/maartenwut/keymap.c @@ -4,9 +4,6 @@ #define _GA 1 #define _FL 2 #define _AR 3 -#define _LE 4 -#define _LO 5 -#define _UL 6 #define TRNS KC_TRNS #define ______ KC_NO @@ -14,56 +11,52 @@ #define LSHIFT OSM(MOD_LSFT) #define SPACE LT(_AR, KC_SPC) -#define CAPS LT(_LE, KC_CAPS) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Main Layer -[_MA] = KEYMAP_ANSI( - KC_GESC, 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_MPLY, KC_BSPC, KC_PSCR, +[_MA] = KEYMAP( + KC_GESC, 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_BSPC, KC_MPLY, 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_BSLS, KC_DEL, - CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, LSHIFT, TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TRNS, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, SPACE, SPACE, KC_RALT, KC_RCTRL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), //Function Layer -[_FL] = KEYMAP_ANSI( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TRNS, RESET, KC_PGUP, - TRNS, KC_BTN1, KC_MS_U, KC_BTN2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_PGDN, - TRNS, KC_MS_L, KC_MS_D, KC_MS_R, TRNS, TG(_GA), TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_VOLD, KC_VOLU, KC_MUTE, TRNS, TRNS, KC_WH_U, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_WH_L, KC_WH_D, KC_WH_R), +[_FL] = KEYMAP( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TRNS, RESET, KC_PSCR, + TRNS, ______, ______, ______, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, ______, + TRNS, ______, ______, ______, TRNS, TG(_GA), TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_VOLD, KC_VOLU, KC_MUTE, TRNS, TRNS, KC_PGUP, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, ______, KC_PGDN, ______), //Arrow keys layer (space bar) -[_AR] = KEYMAP_ANSI( +[_AR] = KEYMAP( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, M(0), TRNS, TRNS, TRNS), -//LED control layer (caps) -[_LE] = KEYMAP_ANSI( - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, BL_TOGG, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, BL_INC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, BL_DEC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), //Game layer (fn + g) -[_GA] = KEYMAP_ANSI( +[_GA] = KEYMAP( TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - KC_CAPS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_LSFT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_SPC, KC_SPC, TRNS, TRNS, MO(_FL), TRNS, TRNS, TRNS), }; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - switch (id) { - case 0: - if (record->event.pressed) { - SEND_STRING("AdminF123!"); - } - break; +void matrix_init_user() { + //Set led port to output + DDRB |= (1<<2); +} + +void led_set_user(uint8_t usb_led) { + if (usb_led & (1< Date: Wed, 7 Mar 2018 16:06:41 -0600 Subject: [PATCH 030/578] Update Meira for revision 1.1 to enable backlighting by default (#2468) * Update Meira for revision 1.1 to enable backlighting by default * Updates to fix other keymaps --- keyboards/meira/config.h | 1 - keyboards/meira/featherble/rules.mk | 1 - keyboards/meira/keymaps/default/keymap.c | 5 ++--- keyboards/meira/keymaps/grahampheath/rules.mk | 2 ++ keyboards/meira/lighting.c | 2 ++ keyboards/meira/meira.h | 19 ++++++++++++++++++- keyboards/meira/promicro/rules.mk | 1 - keyboards/meira/rules.mk | 7 +++---- 8 files changed, 27 insertions(+), 11 deletions(-) diff --git a/keyboards/meira/config.h b/keyboards/meira/config.h index 88d5a31ea71c..b9bdd426a0e4 100644 --- a/keyboards/meira/config.h +++ b/keyboards/meira/config.h @@ -37,7 +37,6 @@ along with this program. If not, see . #define BACKLIGHT_LEVELS 10 #define BACKLIGHT_PWM_MAP {2, 4, 8, 16, 40, 55, 70, 128, 200, 255} -#define BACKLIGHT_BREATHING #define RGB_DI_PIN D3 #define RGBLIGHT_TIMER diff --git a/keyboards/meira/featherble/rules.mk b/keyboards/meira/featherble/rules.mk index 3913643222da..3f32ba890bac 100644 --- a/keyboards/meira/featherble/rules.mk +++ b/keyboards/meira/featherble/rules.mk @@ -1,4 +1,3 @@ BLUETOOTH_ENABLE = yes -BACKLIGHT_ENABLE = no F_CPU = 8000000 diff --git a/keyboards/meira/keymaps/default/keymap.c b/keyboards/meira/keymaps/default/keymap.c index acde30afc1df..dd55859a580e 100644 --- a/keyboards/meira/keymaps/default/keymap.c +++ b/keyboards/meira/keymaps/default/keymap.c @@ -14,7 +14,6 @@ * along with this program. If not, see . */ #include "meira.h" -#include "issi.h" #include "lighting.h" #ifdef RGBLIGHT_ENABLE @@ -277,10 +276,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return false; break; case BL_TOGG: -#ifdef ISSI_ENABLE +#ifdef BACKLIGHT_ENABLE if (record->event.pressed) { print("Enabling backlight\n"); - issi_init(); + backlight_init_ports(); } #endif return false; diff --git a/keyboards/meira/keymaps/grahampheath/rules.mk b/keyboards/meira/keymaps/grahampheath/rules.mk index 8288530c9e18..b3b1980eb151 100644 --- a/keyboards/meira/keymaps/grahampheath/rules.mk +++ b/keyboards/meira/keymaps/grahampheath/rules.mk @@ -1,3 +1,5 @@ AUDIO_ENABLE = yes # Audio output on port C6 EXTRAFLAGS+=-flto # -4-7k MOUSEKEY_ENABLE = no # Mouse keys(-47kb) +ISSI_ENABLE = no +BACKLIGHT_ENABLE = no \ No newline at end of file diff --git a/keyboards/meira/lighting.c b/keyboards/meira/lighting.c index fee70a32b65b..37bb45aec802 100755 --- a/keyboards/meira/lighting.c +++ b/keyboards/meira/lighting.c @@ -49,6 +49,8 @@ void backlight_set(uint8_t level){ #endif } + + void set_backlight_by_keymap(uint8_t col, uint8_t row){ // dprintf("LED: %02X, %d %d %d\n", lookup_value, matrix, led_col, led_row); // activateLED(matrix, led_col, led_row, 255); diff --git a/keyboards/meira/meira.h b/keyboards/meira/meira.h index 29fdb84d5cb0..35c5ba419de8 100644 --- a/keyboards/meira/meira.h +++ b/keyboards/meira/meira.h @@ -17,6 +17,7 @@ #define MEIRA_H #include "quantum.h" +#include "issi.h" void reset_keyboard_kb(void); @@ -37,6 +38,22 @@ void reset_keyboard_kb(void); { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \ } -#endif +// Used to create a keymap using only KC_ prefixed keys +#define KC_KEYMAP( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \ + ) \ + KEYMAP( \ + KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, \ + KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, \ + KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, \ + KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b \ + ) #define LAYOUT_ortho_4x12 KEYMAP +#define KC_LAYOUT_ortho_4x12 KC_KEYMAP + +#endif + diff --git a/keyboards/meira/promicro/rules.mk b/keyboards/meira/promicro/rules.mk index 529e3147eee3..3c81f1b344a1 100644 --- a/keyboards/meira/promicro/rules.mk +++ b/keyboards/meira/promicro/rules.mk @@ -1,2 +1 @@ BLUETOOTH_ENABLE = no -BACKLIGHT_ENABLE = no diff --git a/keyboards/meira/rules.mk b/keyboards/meira/rules.mk index d4a1f921d28b..e898146abd20 100644 --- a/keyboards/meira/rules.mk +++ b/keyboards/meira/rules.mk @@ -62,16 +62,15 @@ COMMAND_ENABLE = yes # Commands for debug and configuration SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = no # USB Nkey Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches - -ISSI_ENABLE = no # If the I2C pullup resistors aren't install this must be disabled -#WATCHDOG_ENABLE = yes # Resets keyboard if matrix_scan isn't run every 250ms +BACKLIGHT_CUSTOM_DRIVER = yes +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality, also set ISSI_ENABLE below for Miera +ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled CUSTOM_MATRIX = yes From 821b492667ff774534ba926dc3ec2d134d247f98 Mon Sep 17 00:00:00 2001 From: Lukas Klingsbo Date: Sun, 4 Mar 2018 14:28:21 +0100 Subject: [PATCH 031/578] Swedish layout for iris --- keyboards/iris/keymaps/swedish/config.h | 41 +++++++++ keyboards/iris/keymaps/swedish/keymap.c | 110 ++++++++++++++++++++++++ keyboards/iris/keymaps/swedish/rules.mk | 6 ++ 3 files changed, 157 insertions(+) create mode 100644 keyboards/iris/keymaps/swedish/config.h create mode 100644 keyboards/iris/keymaps/swedish/keymap.c create mode 100644 keyboards/iris/keymaps/swedish/rules.mk diff --git a/keyboards/iris/keymaps/swedish/config.h b/keyboards/iris/keymaps/swedish/config.h new file mode 100644 index 000000000000..4e3e558613a3 --- /dev/null +++ b/keyboards/iris/keymaps/swedish/config.h @@ -0,0 +1,41 @@ +/* +Copyright 2017 Danny Nguyen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ + +// #define MASTER_LEFT +// #define MASTER_RIGHT +#define EE_HANDS + +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 12 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +#endif diff --git a/keyboards/iris/keymaps/swedish/keymap.c b/keyboards/iris/keymaps/swedish/keymap.c new file mode 100644 index 000000000000..a11230eb651d --- /dev/null +++ b/keyboards/iris/keymaps/swedish/keymap.c @@ -0,0 +1,110 @@ +#include "iris.h" +#include "keymap_swedish.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +#define _QWERTY 0 +#define _LOWER 1 +#define _RAISE 2 +#define _EMPTY 16 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE +}; + +#define KC_ KC_TRNS +#define _______ KC_TRNS + +#define KC_LOWR LOWER +#define KC_RASE RAISE +#define KC_RST RESET + +#define KC_AA NO_AA +#define KC_AE NO_AE +#define KC_OE NO_OSLH + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + TAB , Q , W , E , R , T , Y , U , I , O , P , AA , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + LSFT, A , S , D , F , G , H , J , K , L , OE , AE , + //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + LCTL, Z , X , C , V , B ,DEL , BSPC, N , M ,COMM,DOT ,SLSH,MINS, + //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + LGUI,LOWR,SPC , ENT ,RASE,LALT + // `----+----+----' `----+----+----' + ), + + [_LOWER] = KEYMAP( + //,-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------. + NO_TILD,KC_EXLM,NO_AT ,KC_HASH,NO_DLR ,KC_PERC, NO_CIRC,NO_AMPR,NO_ASTR,NO_SLSH,NO_LPRN,NO_RPRN, + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + NO_ACUT,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,NO_PIPE,NO_LCBR,NO_RCBR, + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,NO_BSLS, KC_LEFT,KC_DOWN,KC_UP ,KC_RGHT,NO_LBRC,NO_RBRC, + //|-------+-------+-------+-------+-------+-------+-------. ,-------|-------+-------+-------+-------+-------+-------| + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,NO_LESS,NO_GRTR, + //`-------+-------+-------+--+----+-------+-------+-------/ \-------+-------+-------+-------+-------+-------+-------' + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS + // `-------+-------+-------' `-------+-------+-------' + ), + + [_RAISE] = KEYMAP( + //,-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------. + KC_F12 ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 , KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_F11 , + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + NO_GRV ,KC_7 ,KC_8 ,KC_9 ,NO_MINS,NO_ASTR, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,NO_PIPE, + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + KC_TRNS,KC_4 ,KC_5 ,KC_6 ,NO_PLUS,NO_SLSH, KC_HOME,KC_PGDN,KC_PGUP,KC_END ,KC_TRNS,NO_BSLS, + //|-------+-------+-------+-------+-------+-------+-------. ,-------|-------+-------+-------+-------+-------+-------| + KC_TRNS,KC_1 ,KC_2 ,KC_3 ,KC_0 ,NO_EQL ,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + //`-------+-------+-------+--+----+-------+-------+-------/ \-------+-------+-------+-------+-------+-------+-------' + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS + // `-------+-------+-------' `-------+-------+-------' + ) +}; + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + persistent_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _EMPTY); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _EMPTY); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _EMPTY); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _EMPTY); + } + return false; + break; + } + return true; +} diff --git a/keyboards/iris/keymaps/swedish/rules.mk b/keyboards/iris/keymaps/swedish/rules.mk new file mode 100644 index 000000000000..22b6ec476625 --- /dev/null +++ b/keyboards/iris/keymaps/swedish/rules.mk @@ -0,0 +1,6 @@ +RGBLIGHT_ENABLE = yes +BACKLIGHT_ENABLE = yes + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif From 483e3cd1cb8805ef9074d01fb1750e08a025f5ca Mon Sep 17 00:00:00 2001 From: crazyiop Date: Wed, 28 Feb 2018 18:07:08 +0100 Subject: [PATCH 032/578] quantum: keymap_bepo.h: fix typo in BP_COMMMA --- quantum/keymap_extras/keymap_bepo.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quantum/keymap_extras/keymap_bepo.h b/quantum/keymap_extras/keymap_bepo.h index 013559e96dee..05fd2b0023b5 100644 --- a/quantum/keymap_extras/keymap_bepo.h +++ b/quantum/keymap_extras/keymap_bepo.h @@ -203,7 +203,7 @@ #define BP_DEAD_TREMA ALTGR(BP_I) // dead ¨ (trema/umlaut/diaresis) #define BP_DTRM BP_DEAD_TREMA #define BP_EURO ALTGR(BP_E) // € -#define BP_TYPOGRAPHICAL_APOSTROPHE ALTGR(BP_COMMMA) // ’ +#define BP_TYPOGRAPHICAL_APOSTROPHE ALTGR(BP_COMMA) // ’ #define BP_TAPO BP_TYPOGRAPHICAL_APOSTROPHE #define BP_COPYRIGHT ALTGR(BP_C) // © #define BP_CPRT BP_COPYRIGHT From 3d7e9425c7c8eea3da7e96f6d56eb8ab60abeaf4 Mon Sep 17 00:00:00 2001 From: crazyiop Date: Sat, 10 Feb 2018 12:08:47 +0100 Subject: [PATCH 033/578] quantum: keympa_extra: add sendstring_bepo.h --- quantum/keymap_extras/sendstring_bepo.h | 41 +++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 quantum/keymap_extras/sendstring_bepo.h diff --git a/quantum/keymap_extras/sendstring_bepo.h b/quantum/keymap_extras/sendstring_bepo.h new file mode 100644 index 000000000000..c7377e077dbb --- /dev/null +++ b/quantum/keymap_extras/sendstring_bepo.h @@ -0,0 +1,41 @@ +/* Copyright 2018 Jonathan Nifenecker + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +/* Sendstring definitions for the bépo layout */ +#ifndef SENDSTRING_BEPO +#define SENDSTRING_BEPO + +#include "keymap_bepo.h" + +const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { + 0, 0, 0, 0, 0, 0, 0, 0, + KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, KC_ESC, 0, 0, 0, 0, + KC_SPC, BP_DCRC, BP_DQOT, BP_DOLLAR, BP_DOLLAR, BP_PERCENT, BP_P, BP_APOS, + BP_LPRN, BP_RPRN, BP_ASTR, BP_PLUS, BP_COMM, BP_MINUS, BP_DOT, BP_SLSH, + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, + KC_8, KC_9, BP_DOT, BP_DOT, KC_2, BP_EQUAL, KC_2, BP_APOS, + BP_AT, BP_A, BP_B, BP_C, BP_D, BP_E, BP_F, BP_G, + BP_H, BP_I, BP_J, BP_K, BP_L, BP_M, BP_N, BP_O, + BP_P, BP_Q, BP_R, BP_S, BP_T, BP_U, BP_V, BP_W, + BP_X, BP_Y, BP_Z, KC_4, BP_AGRV, KC_5, KC_5, KC_MINS, + KC_2, BP_A, BP_B, BP_C, BP_D, BP_E, BP_F, BP_G, + BP_H, BP_I, BP_J, BP_K, BP_L, BP_M, BP_N, BP_O, + BP_P, BP_Q, BP_R, BP_S, BP_T, BP_U, BP_V, BP_W, + BP_X, BP_Y, BP_Z, BP_Y, BP_B, BP_X, BP_K, KC_DEL, +}; + +#endif From 955b17189ac9c744ebdda01988e20a54b2b00d91 Mon Sep 17 00:00:00 2001 From: MakotoKurauchi Date: Thu, 8 Mar 2018 07:34:42 +0900 Subject: [PATCH 034/578] Move rows config to keymap (#2464) * Fork from Let's Split * Organizing files * Delete some keymaps * I2C and serial enabled at the same time * Change readme * add #define HELIX_ROWS for multiple rows * Delete avrdude flashing script * Delete makefiles * Subproject elimination * Fix lufa path * Remove PLAY_NOTE_ARRAY usages to get rid of warning. Fix conflicting function name * Mousekey change default to off * Fix to oled display adjust * make rev2 change pin assign change keymap * use master_buffer * Timing adjustment * Organizing files * Change Keymap * Change Keymap Add EISU and KANA Correct 4rows * NKRO default to disable * EXTRAKEY_ENABLE default to disable * add rgb reset key * rgb custom function enable * Extend font * add RGBLED_POWER default folder to helix/rev2 RGB_ENABLE to no * renamed directory * Disable RGBLIGHT_CUSTOM_DRIVER * Disable LOCKING_SUPPORT_ENABLE * Update bootloader setting * Change readme * Fixed argument error * Move rows config to keymap --- keyboards/helix/rev2/config.h | 15 --------------- keyboards/helix/rev2/keymaps/default/config.h | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/keyboards/helix/rev2/config.h b/keyboards/helix/rev2/config.h index 42878d5c0c67..5905627760f2 100644 --- a/keyboards/helix/rev2/config.h +++ b/keyboards/helix/rev2/config.h @@ -29,21 +29,6 @@ along with this program. If not, see . #define PRODUCT Helix Beta #define DESCRIPTION A split keyboard for the cheap makers -#define HELIX_ROWS 5 - -/* key matrix size */ -// Rows are doubled-up -#if HELIX_ROWS == 4 - #define MATRIX_ROWS 8 - #define MATRIX_COLS 7 - #define MATRIX_ROW_PINS { D4, C6, D7, E6 } -#elif HELIX_ROWS == 5 - #define MATRIX_ROWS 10 - #define MATRIX_COLS 7 - #define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 } -#else - #error "expected HELIX_ROWS 4 or 5" -#endif // wiring of each half #define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 } diff --git a/keyboards/helix/rev2/keymaps/default/config.h b/keyboards/helix/rev2/keymaps/default/config.h index 1b3875fcd633..5d8e37f6455e 100644 --- a/keyboards/helix/rev2/keymaps/default/config.h +++ b/keyboards/helix/rev2/keymaps/default/config.h @@ -37,6 +37,24 @@ along with this program. If not, see . //#define SSD1306OLED +/* Select rows configuration */ +// Rows are 4 or 5 +#define HELIX_ROWS 5 + +/* key matrix size */ +// Rows are doubled-up +#if HELIX_ROWS == 4 + #define MATRIX_ROWS 8 + #define MATRIX_COLS 7 + #define MATRIX_ROW_PINS { D4, C6, D7, E6 } +#elif HELIX_ROWS == 5 + #define MATRIX_ROWS 10 + #define MATRIX_COLS 7 + #define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 } +#else + #error "expected HELIX_ROWS 4 or 5" +#endif + #define USE_SERIAL_PD2 #define PREVENT_STUCK_MODIFIERS From 2bdf1731c38cdd730c5e21c60d2b9253138f81cc Mon Sep 17 00:00:00 2001 From: That-Canadian Date: Thu, 8 Mar 2018 07:31:27 -0800 Subject: [PATCH 035/578] Canadian planck (#2463) * Line ending stuff again * Added my personal Planck layout (finally) --- .../planck/keymaps/that_canadian/keymap.c | 217 ++++++++++++++++++ .../planck/keymaps/that_canadian/readme.md | 2 + 2 files changed, 219 insertions(+) create mode 100644 keyboards/planck/keymaps/that_canadian/keymap.c create mode 100644 keyboards/planck/keymaps/that_canadian/readme.md diff --git a/keyboards/planck/keymaps/that_canadian/keymap.c b/keyboards/planck/keymaps/that_canadian/keymap.c new file mode 100644 index 000000000000..993a0d6868b8 --- /dev/null +++ b/keyboards/planck/keymaps/that_canadian/keymap.c @@ -0,0 +1,217 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 + +#define _LOWER 2 +#define _RAISE 3 + +#define _FUNCTION 15 +#define _ADJUST 16 + +enum planck_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Func | A | S | D | F | G | H | J | K | L | ; | Enter| + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / | ' | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | ` | GUI | Alt |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {MO(_FUNCTION), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT}, + {OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT}, + {KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | Esc | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } |Enter | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | Mute | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | |Lower | Bksp | Bksp |Raise | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, + {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MUTE, _______, KC_PIPE}, + {_______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | 4 | 5 | 6 | + | F5 | F6 | - | = | [ | ] |Enter | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |Enter | 7 | 8 | 9 | - | F11 | F12 |ISO # |ISO / | Mute | | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | , | 0 | . |Lower | Bksp | Bksp |Raise | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, + {_______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______}, + {KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS}, + {_______, KC_COMM, KC_0, KC_DOT, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * |Taskmg| | | | | | | | | | |caltde| + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty| | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | RESET| + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {TSKMGR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CALTDEL}, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET} +}, + +/* Function + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | Up | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | Left | Down |Right | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Caps | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_FUNCTION] = { + {_______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______}, + {KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + + +}; + +#ifdef AUDIO_ENABLE + +float tone_startup[][2] = SONG(STARTUP_SOUND); +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); + +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + } + return true; +} + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + startup_user(); + #endif +} + +#ifdef AUDIO_ENABLE + +void startup_user() +{ + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); +} + +void shutdown_user() +{ + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); +} + +void music_on_user(void) +{ + music_scale_user(); +} + +void music_scale_user(void) +{ + PLAY_NOTE_ARRAY(music_scale, false, 0); +} + +#endif diff --git a/keyboards/planck/keymaps/that_canadian/readme.md b/keyboards/planck/keymaps/that_canadian/readme.md new file mode 100644 index 000000000000..267b4f94f8c2 --- /dev/null +++ b/keyboards/planck/keymaps/that_canadian/readme.md @@ -0,0 +1,2 @@ +# That-Canadian personal planck layout + From 566399794a6e2c19f11d9978a723595226e10560 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 8 Mar 2018 10:31:08 -0800 Subject: [PATCH 036/578] Disable the glossary linking to fix #2498 (#2499) --- docs/_summary.md | 2 +- docs/redirects.json | 4 ++-- docs/{glossary.md => reference_glossary.md} | 0 3 files changed, 3 insertions(+), 3 deletions(-) rename docs/{glossary.md => reference_glossary.md} (100%) diff --git a/docs/_summary.md b/docs/_summary.md index 4e743ac5eabc..50d9a37ae28c 100644 --- a/docs/_summary.md +++ b/docs/_summary.md @@ -73,7 +73,7 @@ * [Customizing Functionality](custom_quantum_functions.md) * [Documentation Best Practices](documentation_best_practices.md) * [Documentation Templates](documentation_templates.md) - * [Glossary](glossary.md) + * [Glossary](reference_glossary.md) * [Keymap Overview](keymap.md) * [Unit Testing](unit_testing.md) diff --git a/docs/redirects.json b/docs/redirects.json index db41cb41e4ca..43e906408157 100644 --- a/docs/redirects.json +++ b/docs/redirects.json @@ -17,8 +17,8 @@ "to": "feature_advanced_keycodes.html" }, { - "from": "flashing.html", - "to": "newbs_flashing.html" + "from": "glossary.html", + "to": "reference_glossary.html" }, { "from": "key_lock.html", diff --git a/docs/glossary.md b/docs/reference_glossary.md similarity index 100% rename from docs/glossary.md rename to docs/reference_glossary.md From 7d9dc61504d1251f8d0bd8ab58fb6a47234b52ef Mon Sep 17 00:00:00 2001 From: Oscillope Date: Thu, 8 Mar 2018 21:31:08 -0500 Subject: [PATCH 037/578] Fixes for JJ40 and Oscillope keymap (#2496) * Add navigation layer for hjkl arrow keys * Fix Oscillope keymap after jj40.h changes. Also fix jj40.c so that it can build without rgblight if you don't want that enabled. --- keyboards/jj40/jj40.c | 9 ++++++--- keyboards/jj40/keymaps/oscillope/config.h | 9 +++++++++ keyboards/jj40/keymaps/oscillope/keymap.c | 21 ++++++++++++++++++--- keyboards/jj40/keymaps/oscillope/rules.mk | 14 ++++++++++++++ 4 files changed, 47 insertions(+), 6 deletions(-) create mode 100644 keyboards/jj40/keymaps/oscillope/config.h create mode 100644 keyboards/jj40/keymaps/oscillope/rules.mk diff --git a/keyboards/jj40/jj40.c b/keyboards/jj40/jj40.c index 4affe199b90b..51f5295f465d 100644 --- a/keyboards/jj40/jj40.c +++ b/keyboards/jj40/jj40.c @@ -28,8 +28,6 @@ along with this program. If not, see . #include "backlight.h" #include "backlight_custom.h" -extern rgblight_config_t rgblight_config; - // for keyboard subdirectory level init functions // @Override void matrix_init_kb(void) { @@ -52,6 +50,9 @@ void backlight_set(uint8_t level) { } #endif +#ifdef RGBLIGHT_ENABLE +extern rgblight_config_t rgblight_config; + // custom RGB driver void rgblight_set(void) { if (!rgblight_config.enable) { @@ -77,7 +78,9 @@ void matrix_scan_kb(void) { } rgblight_task(); - +#else +void matrix_scan_kb(void) { +#endif matrix_scan_user(); /* Nothing else for now. */ } diff --git a/keyboards/jj40/keymaps/oscillope/config.h b/keyboards/jj40/keymaps/oscillope/config.h new file mode 100644 index 000000000000..52aaa8f24dce --- /dev/null +++ b/keyboards/jj40/keymaps/oscillope/config.h @@ -0,0 +1,9 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +#define PREVENT_STUCK_MODIFIERS +#define TAPPING_TERM 300 + +#endif diff --git a/keyboards/jj40/keymaps/oscillope/keymap.c b/keyboards/jj40/keymaps/oscillope/keymap.c index 5d2f400a1b7f..d4bca0e4923d 100644 --- a/keyboards/jj40/keymaps/oscillope/keymap.c +++ b/keyboards/jj40/keymaps/oscillope/keymap.c @@ -18,9 +18,17 @@ along with this program. If not, see . #include "jj40.h" #include "action_layer.h" +#ifdef KEYMAP +#undef KEYMAP +#endif +#define KEYMAP KEYMAP_OFFSET + #define _QWERTY 0 #define _LOWER 1 #define _RAISE 2 +#define _NAV 3 + +#define NAV_TAP LT(_NAV, KC_SPC) enum custom_keycodes { QWERTY = SAFE_RANGE, @@ -48,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \ KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, \ - KC_LCTL, KC_LGUI, KC_LALT, TT(_LOWER), KC_LSFT, TT(_RAISE), KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + KC_LCTL, KC_LGUI, KC_LALT, TT(_LOWER), KC_LSFT, TT(_RAISE), NAV_TAP, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ ), /* Lower @@ -66,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, _______, _______, CC_PRN, CC_BRC, CC_CBR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, \ KC_PSCR, KC_WBAK, KC_WFWD, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, \ - _______, _______, _______, _______, KC_LOCK, _______, _______, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT \ + _______, _______, _______, _______, KC_LOCK, _______, _______, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT \ ), /* Raise @@ -84,7 +92,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, KC_AMPR, KC_ASTR, KC_UNDS, KC_LPRN, KC_RPRN, KC_7, KC_8, KC_9, KC_EQL, KC_BSPC, KC_DEL, \ KC_TAB, KC_DLR, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_4, KC_5, KC_6, KC_MINS, KC_PLUS, _______, \ CC_ARRW, KC_EXLM, KC_AT, KC_HASH, KC_LCBR, KC_RCBR, KC_1, KC_2, KC_3, _______, KC_BSLS, KC_PIPE, \ - _______, _______, _______, _______, _______, _______, KC_0, KC_HOME, KC_PGDN, KC_PGUP, KC_END \ + _______, _______, _______, _______, _______, _______, KC_0, KC_HOME, KC_PGDN, KC_PGUP, KC_END \ +), + +[_NAV] = KEYMAP( \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ ) }; diff --git a/keyboards/jj40/keymaps/oscillope/rules.mk b/keyboards/jj40/keymaps/oscillope/rules.mk new file mode 100644 index 000000000000..a121bbc770ea --- /dev/null +++ b/keyboards/jj40/keymaps/oscillope/rules.mk @@ -0,0 +1,14 @@ +# build options +BOOTMAGIC_ENABLE = no +MOUSEKEY_ENABLE = no +EXTRAKEY_ENABLE = yes +CONSOLE_ENABLE = no +COMMAND_ENABLE = yes + +BACKLIGHT_ENABLE = no +BACKLIGHT_CUSTOM_DRIVER = no + +RGBLIGHT_ENABLE = no +RGBLIGHT_CUSTOM_DRIVER = no + +KEY_LOCK_ENABLE = yes From eba4b08a4a8734bb6c74602e317981a4542c634d Mon Sep 17 00:00:00 2001 From: edwardbrowncross <35063432+edwardbrowncross@users.noreply.github.com> Date: Fri, 9 Mar 2018 18:14:50 +0000 Subject: [PATCH 038/578] Add the OK60 keyboard (#2488) * Add the OK60 keyboard * Fix ok60 incorrect ANSI keymap signature Add support for default ansi and iso 60 keymaps --- keyboards/ok60/config.h | 84 +++++++++++++++++++++ keyboards/ok60/keymaps/default/keymap.c | 18 +++++ keyboards/ok60/keymaps/ebrowncross/keymap.c | 29 +++++++ keyboards/ok60/ok60.c | 1 + keyboards/ok60/ok60.h | 37 +++++++++ keyboards/ok60/pinout.txt | 12 +++ keyboards/ok60/readme.md | 16 ++++ keyboards/ok60/rules.mk | 66 ++++++++++++++++ 8 files changed, 263 insertions(+) create mode 100644 keyboards/ok60/config.h create mode 100644 keyboards/ok60/keymaps/default/keymap.c create mode 100644 keyboards/ok60/keymaps/ebrowncross/keymap.c create mode 100644 keyboards/ok60/ok60.c create mode 100644 keyboards/ok60/ok60.h create mode 100644 keyboards/ok60/pinout.txt create mode 100644 keyboards/ok60/readme.md create mode 100644 keyboards/ok60/rules.mk diff --git a/keyboards/ok60/config.h b/keyboards/ok60/config.h new file mode 100644 index 000000000000..61c2fa0ed34d --- /dev/null +++ b/keyboards/ok60/config.h @@ -0,0 +1,84 @@ +/* +Copyright 2018 Edward Browncross + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER OK60 +#define PRODUCT OK60 +#define DESCRIPTION qmk keyboard firmware for OK60 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { B5, B4, D7, D6, D4 } +#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, B6, C6, C7, F1, F0, E6, B3, B2, B1, B0 } +#define UNUSED_PINS + +#define BACKLIGHT_PIN B7 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* prevent stuck modifiers */ +#define PREVENT_STUCK_MODIFIERS + +#define RGB_DI_PIN F6 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 10 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +#endif diff --git a/keyboards/ok60/keymaps/default/keymap.c b/keyboards/ok60/keymaps/default/keymap.c new file mode 100644 index 000000000000..7fd3b8f729e9 --- /dev/null +++ b/keyboards/ok60/keymaps/default/keymap.c @@ -0,0 +1,18 @@ +#include "ok60.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + KEYMAP_ANSI( + 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_BSPC, + 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_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_MENU, KC_LCTL), + + KEYMAP_ANSI( + RESET, 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_DEL, + KC_TRNS, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; diff --git a/keyboards/ok60/keymaps/ebrowncross/keymap.c b/keyboards/ok60/keymaps/ebrowncross/keymap.c new file mode 100644 index 000000000000..904262f036fd --- /dev/null +++ b/keyboards/ok60/keymaps/ebrowncross/keymap.c @@ -0,0 +1,29 @@ +#include "ok60.h" + +// An ISO UK keymap + +#define _______ KC_TRNS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + KEYMAP_ISO( + 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_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LGUI, KC_MENU, KC_LCTL), + + KEYMAP_ISO( + KC_GRAVE, 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_DEL, + _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, + _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDN, KC_PSCR, + _______, _______, BL_DEC, BL_TOGG, BL_INC, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, + _______, _______, _______, _______, _______, MO(2), _______, _______), + + KEYMAP_ISO( + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/ok60/ok60.c b/keyboards/ok60/ok60.c new file mode 100644 index 000000000000..052656205bad --- /dev/null +++ b/keyboards/ok60/ok60.c @@ -0,0 +1 @@ +#include "ok60.h" diff --git a/keyboards/ok60/ok60.h b/keyboards/ok60/ok60.h new file mode 100644 index 000000000000..5511bf0f5971 --- /dev/null +++ b/keyboards/ok60/ok60.h @@ -0,0 +1,37 @@ +#ifndef OK60_H +#define OK60_H + +#include "quantum.h" + +#define KEYMAP_ANSI( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K213, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \ + K400, K401, K402, K406, K410, K411, K412, K413 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, KC_NO }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, KC_NO, K213, KC_NO }, \ + { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, KC_NO }, \ + { K400, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, KC_NO } \ +} + +#define KEYMAP_ISO( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \ + K400, K401, K402, K406, K410, K411, K412, K413 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, KC_NO }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, KC_NO }, \ + { K400, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, KC_NO } \ +} + +#define LAYOUT_60_ansi KEYMAP_ANSI +#define LAYOUT_60_iso KEYMAP_ISO + +#endif diff --git a/keyboards/ok60/pinout.txt b/keyboards/ok60/pinout.txt new file mode 100644 index 000000000000..ec557ce4bae7 --- /dev/null +++ b/keyboards/ok60/pinout.txt @@ -0,0 +1,12 @@ + /* Column pin configuration + * col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 + * pin: D0 D1 D2 D3 D5 B6 C6 C7 F1 F0 E6 B3 B2 B1 B0 + */ + + /* Row pin configuration + * row: 0 1 2 3 4 + * pin: B5 B4 D7 D6 D4 + */ + + B7 LED backlight + F6 WS2812 Strip diff --git a/keyboards/ok60/readme.md b/keyboards/ok60/readme.md new file mode 100644 index 000000000000..cd9951c543b8 --- /dev/null +++ b/keyboards/ok60/readme.md @@ -0,0 +1,16 @@ +# OK60 + +![OK60](https://i.imgur.com/X1rISXS.png) + +A 60% keyboard PCB sold on AliExpress by Shenzhen YMD Tech Co.,Ltd. +It supports the same layouts and cases as the GH60 but comes with WS2812 RGB underglow. + +Keyboard Maintainer: [Edward Browncross](https://github.com/edwardbrowncross) +Hardware Supported: OK60 PCB, OK60XRGB, Diamond 60 Keyboard +Hardware Availability: [AliExpress](https://www.aliexpress.com/store/product/Free-shipping-Pre-soldered-Diode-Resistance-Satan-GH60-PCB-Board-Programmable-DIY-Mechanical-Keyboard-Poker-2/429151_32809893696.html) + +Make example for this keyboard (after setting up your build environment): + + make ok60:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/ok60/rules.mk b/keyboards/ok60/rules.mk new file mode 100644 index 000000000000..a642c83b05e2 --- /dev/null +++ b/keyboards/ok60/rules.mk @@ -0,0 +1,66 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +# CONSOLE_ENABLE = yes # Console for debug(+400) +# COMMAND_ENABLE = yes # Commands for debug and configuration +KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable the RGB backlight +# MIDI_ENABLE = YES # MIDI controls +# UNICODE_ENABLE = YES # Unicode +# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID + +LAYOUTS = 60_ansi 60_iso From 3f1d147529233ebcc918cd3e4c96a8d249c321ce Mon Sep 17 00:00:00 2001 From: Drashna Jael're Date: Fri, 9 Mar 2018 09:37:41 -0800 Subject: [PATCH 039/578] Add SS_RALT for AltGR usage in macros --- docs/feature_macros.md | 1 + quantum/quantum.h | 1 + 2 files changed, 2 insertions(+) diff --git a/docs/feature_macros.md b/docs/feature_macros.md index e77d7afea30d..006fa04bca97 100644 --- a/docs/feature_macros.md +++ b/docs/feature_macros.md @@ -97,6 +97,7 @@ There's also a couple of mod shortcuts you can use: * `SS_LGUI(string)` * `SS_LALT(string)` * `SS_LSFT(string)` +* `SS_RALT(string)` These press the respective modifier, send the supplied string and then release the modifier. They can be used like this: diff --git a/quantum/quantum.h b/quantum/quantum.h index b4c9e0b894c4..e6d76015b0da 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -124,6 +124,7 @@ extern uint32_t default_layer_state; #define SS_LGUI(string) SS_DOWN(X_LGUI) string SS_UP(X_LGUI) #define SS_LALT(string) SS_DOWN(X_LALT) string SS_UP(X_LALT) #define SS_LSFT(string) SS_DOWN(X_LSHIFT) string SS_UP(X_LSHIFT) +#define SS_RALT(string) SS_DOWN(X_RALT) string SS_UP(X_RALT) #define SEND_STRING(str) send_string_P(PSTR(str)) extern const bool ascii_to_shift_lut[0x80]; From 33134730047934639c98b766edf8e971833e930f Mon Sep 17 00:00:00 2001 From: MakotoKurauchi Date: Sat, 10 Mar 2018 03:15:37 +0900 Subject: [PATCH 040/578] Usb max power (#2502) * add some comment about Helix customize and auto-setup RGBLIGHT_LIMIT_VAL * add define USB_MAX_POWER_CONSUMPTION --- keyboards/helix/rev2/keymaps/default/config.h | 27 ++++++++++++++++++- keyboards/helix/rev2/keymaps/default/rules.mk | 2 ++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/keyboards/helix/rev2/keymaps/default/config.h b/keyboards/helix/rev2/keymaps/default/config.h index 5d8e37f6455e..53ff0b3ca812 100644 --- a/keyboards/helix/rev2/keymaps/default/config.h +++ b/keyboards/helix/rev2/keymaps/default/config.h @@ -35,6 +35,7 @@ along with this program. If not, see . // #define MASTER_RIGHT // #define EE_HANDS +// Helix keyboard OLED support //#define SSD1306OLED /* Select rows configuration */ @@ -64,9 +65,33 @@ along with this program. If not, see . #undef RGBLED_NUM #define RGBLIGHT_ANIMATIONS +// Helix keyboard : see ./rules.mk: RGBLIGHT_ENABLE = yes or no +// Helix keyboard : RGBLED_NUM 6 or 32 #define RGBLED_NUM 6 -#define RGBLIGHT_LIMIT_VAL 255 +#if RGBLED_NUM <= 6 + #define RGBLIGHT_LIMIT_VAL 255 +#else + #if HELIX_ROWS == 5 + #define RGBLIGHT_LIMIT_VAL 120 + #else + #define RGBLIGHT_LIMIT_VAL 130 + #endif +#endif #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 #define RGBLIGHT_VAL_STEP 17 #endif + +#ifdef RGBLIGHT_ENABLE +// USB_MAX_POWER_CONSUMPTION value for Helix keyboard +// 120 RGBoff, OLEDoff +// 120 OLED +// 330 RGB 6 +// 300 RGB 32 +// 310 OLED & RGB 32 + #define USB_MAX_POWER_CONSUMPTION 330 +#else + // fix iPhone and iPad power adapter issue + // iOS device need lessthan 100 + #define USB_MAX_POWER_CONSUMPTION 100 +#endif diff --git a/keyboards/helix/rev2/keymaps/default/rules.mk b/keyboards/helix/rev2/keymaps/default/rules.mk index ce3ef6cd9aa0..f4d34543511a 100644 --- a/keyboards/helix/rev2/keymaps/default/rules.mk +++ b/keyboards/helix/rev2/keymaps/default/rules.mk @@ -14,6 +14,8 @@ MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +# Helix keyboard : see ./config.h: RGBLED_NUM 6 or 32 +# Helix keyboard : RGBLIGHT_ENABLE = no or yes RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. ONEHAND_ENABLE = no # Enable one-hand typing From 0603dcb1be324e2a9500b5c97d405e93c895b476 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 10 Mar 2018 05:19:51 +1100 Subject: [PATCH 041/578] qwerty_code_friendly: minor updates (#2494) * qwerty_code_friendly: minor updates - Correct mistake in ascii keymap. - Make lower right key delete again, but make it configurable. - Make double shift for double quotes optional. * qwerty_code_friendly: shift users title-caps --- .../ergodox/qwerty_code_friendly/keymap.c | 101 ++++++++++++++---- .../ergodox/qwerty_code_friendly/readme.md | 32 ++++-- 2 files changed, 102 insertions(+), 31 deletions(-) diff --git a/layouts/community/ergodox/qwerty_code_friendly/keymap.c b/layouts/community/ergodox/qwerty_code_friendly/keymap.c index 788c37d6e125..f79a1729080e 100644 --- a/layouts/community/ergodox/qwerty_code_friendly/keymap.c +++ b/layouts/community/ergodox/qwerty_code_friendly/keymap.c @@ -12,6 +12,9 @@ /* Personal preference (enable by passing EXTRAFLAGS=... to make). */ /* #define CFQ_USE_MOMENTARY_LAYER_KEYS */ +/* Holding right/left or left/right shift for single or double quote pair */ +/* #define CFQ_USE_SHIFT_QUOTES */ + #define CFQ_USE_DYNAMIC_MACRO #if !defined(CFQ_USER_KEY0) @@ -21,10 +24,10 @@ # define CFQ_USER_KEY1 CFQ_KC_FN1 #endif #if !defined(CFQ_USER_KEY2) -# define CFQ_USER_KEY2 KC_LT +# define CFQ_USER_KEY2 KC_INS #endif #if !defined(CFQ_USER_KEY3) -# define CFQ_USER_KEY3 KC_GT +# define CFQ_USER_KEY3 KC_NLCK #endif #if !defined(CFQ_USER_KEY4) # define CFQ_USER_KEY4 KC_BSPC @@ -38,6 +41,9 @@ #if !defined(CFQ_USER_KEY7) # define CFQ_USER_KEY7 CFQ_KC_FN3 #endif +#if !defined(CFQ_USER_KEY8) +# define CFQ_USER_KEY8 KC_DEL +#endif #ifndef CFQ_WORD_A #define CFQ_WORD_A "" @@ -118,14 +124,29 @@ #define CFQ_WORD_Z "" #endif -static const char *cfq_word_lut[26] = { - CFQ_WORD_A, CFQ_WORD_B, CFQ_WORD_C, CFQ_WORD_D, CFQ_WORD_E, CFQ_WORD_F, - CFQ_WORD_G, CFQ_WORD_H, CFQ_WORD_I, CFQ_WORD_J, CFQ_WORD_K, CFQ_WORD_L, - CFQ_WORD_M, CFQ_WORD_N, CFQ_WORD_O, CFQ_WORD_P, CFQ_WORD_Q, CFQ_WORD_R, - CFQ_WORD_S, CFQ_WORD_T, CFQ_WORD_U, CFQ_WORD_V, CFQ_WORD_W, CFQ_WORD_X, - CFQ_WORD_Y, CFQ_WORD_Z, +/* lower and title capitals versions (setup at start). */ +static char *cfq_word_lut[2][26] = { + { + CFQ_WORD_A, CFQ_WORD_B, CFQ_WORD_C, CFQ_WORD_D, CFQ_WORD_E, CFQ_WORD_F, + CFQ_WORD_G, CFQ_WORD_H, CFQ_WORD_I, CFQ_WORD_J, CFQ_WORD_K, CFQ_WORD_L, + CFQ_WORD_M, CFQ_WORD_N, CFQ_WORD_O, CFQ_WORD_P, CFQ_WORD_Q, CFQ_WORD_R, + CFQ_WORD_S, CFQ_WORD_T, CFQ_WORD_U, CFQ_WORD_V, CFQ_WORD_W, CFQ_WORD_X, + CFQ_WORD_Y, CFQ_WORD_Z, + }, + {NULL} }; +/* Storage for title-caps strings. */ +static char cfq_word_lut_title_caps[ + sizeof(CFQ_WORD_A) + sizeof(CFQ_WORD_B) + sizeof(CFQ_WORD_C) + sizeof(CFQ_WORD_D) + + sizeof(CFQ_WORD_E) + sizeof(CFQ_WORD_F) + sizeof(CFQ_WORD_G) + sizeof(CFQ_WORD_H) + + sizeof(CFQ_WORD_I) + sizeof(CFQ_WORD_J) + sizeof(CFQ_WORD_K) + sizeof(CFQ_WORD_L) + + sizeof(CFQ_WORD_M) + sizeof(CFQ_WORD_N) + sizeof(CFQ_WORD_O) + sizeof(CFQ_WORD_P) + + sizeof(CFQ_WORD_Q) + sizeof(CFQ_WORD_R) + sizeof(CFQ_WORD_S) + sizeof(CFQ_WORD_T) + + sizeof(CFQ_WORD_U) + sizeof(CFQ_WORD_V) + sizeof(CFQ_WORD_W) + sizeof(CFQ_WORD_X) + + sizeof(CFQ_WORD_Y) + sizeof(CFQ_WORD_Z) +]; + #define BASE 0 /* default layer */ #define SYMB 1 /* symbols */ #define MDIA 2 /* media keys */ @@ -186,13 +207,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | LCtl |Super | Alt | ~L1 |Space | | Left | Down | Up |Right | Ins | + * | LCtl |Super | Alt | ~L1 |Space | | Left | Down | Up |Right | Del | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. - * | < | > | | Home | End | + * | Ins |NumClk| | Home | End | * ,------+------+------| |------+------+------. * | | |CapsLk| | PgUp | | | - * |BSpace| Del |------| |------| ~L2 |Space | + * |BSpace| Del |------| |------| ~L2 |Enter | * | | | ~L3 | | PgDn | | | * `--------------------' `--------------------' * @@ -207,7 +228,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | | | | | | | | | | | | | | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | USR1 | | | | | | | | + * | | | | USR1 | | | | | | | USR8 | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | USR2 | USR3 | | | | @@ -235,7 +256,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_RPRN, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_RBRC, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, - KC_LEFT, KC_DOWN,KC_UP, KC_RGHT, KC_INS, + KC_LEFT, KC_DOWN,KC_UP, KC_RGHT, CFQ_USER_KEY8, KC_HOME, KC_END, KC_PGUP, KC_PGDN, CFQ_KC_FN2, KC_ENT @@ -380,6 +401,15 @@ const uint16_t PROGMEM fn_actions[] = { [3] = ACTION_LAYER_TAP_TOGGLE(WORD), /* FN3 - Momentary Layer 3 (Words) */ }; + + #define WITHOUT_MODS(...) \ + do { \ + uint8_t _real_mods = get_mods(); \ + clear_mods(); \ + { __VA_ARGS__ } \ + set_mods(_real_mods); \ + } while (0) + bool process_record_user(uint16_t keycode, keyrecord_t *record) { #ifdef CFQ_USE_DYNAMIC_MACRO if (!process_record_dynamic_macro(keycode, record)) { @@ -468,27 +498,33 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return false; } break; +#ifdef CFQ_USE_SHIFT_QUOTES case KC_LSHIFT: /* '' */ if (record->event.pressed && (keyboard_report->mods & (MOD_BIT(KC_RSFT)))) { - clear_mods(); - SEND_STRING("''" SS_TAP(X_LEFT) SS_DOWN(X_RSHIFT) SS_DOWN(X_LSHIFT)); + WITHOUT_MODS({ + SEND_STRING("''" SS_TAP(X_LEFT) SS_DOWN(X_RSHIFT) SS_DOWN(X_LSHIFT)); + }); return false; } break; case KC_RSHIFT: /* "" */ if (record->event.pressed && (keyboard_report->mods & (MOD_BIT(KC_LSFT)))) { - clear_mods(); - SEND_STRING("\x22\x22" SS_TAP(X_LEFT) SS_DOWN(X_LSHIFT) SS_DOWN(X_RSHIFT)); + WITHOUT_MODS({ + SEND_STRING("\x22\x22" SS_TAP(X_LEFT) SS_DOWN(X_LSHIFT) SS_DOWN(X_RSHIFT)); + }); return false; } break; - +#endif /* CFQ_USE_SHIFT_QUOTES */ case M_WORD_A...M_WORD_Z: { - const char *word = cfq_word_lut[keycode - M_WORD_A]; + uint8_t shift_index = (keyboard_report->mods & (MOD_BIT(KC_RSFT) | MOD_BIT(KC_LSFT))) ? 1 : 0; + const char *word = cfq_word_lut[shift_index][keycode - M_WORD_A]; if (record->event.pressed) { if (*word) { - send_string(word); + WITHOUT_MODS({ + send_string(word); + }); } return false; } @@ -502,6 +538,31 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { /* Runs just one time when the keyboard initializes. */ void matrix_init_user(void) { + /* Duplicate 'cfq_word_lut[0][...]' into 'cfq_word_lut[1][...]' */ + { + char *d = cfq_word_lut_title_caps; + for (uint16_t i = 0; i < 26; i++) { + char *s = cfq_word_lut[0][i]; + cfq_word_lut[1][i] = d; + while ((*d++ = *s++)) {} + } + } + /* Title caps. */ + for (uint16_t i = 0; i < 26; i++) { + char *w = cfq_word_lut[1][i]; + bool prev_is_alpha = false; + if (*w) { + while (*w) { + bool is_lower = (*w >= 'a' && *w <= 'z'); + bool is_upper = (*w >= 'A' && *w <= 'Z'); + if (prev_is_alpha == false && is_lower) { + *w -= ('a' - 'A'); + } + prev_is_alpha = is_lower || is_upper; + w++; + } + } + } }; /* Runs constantly in the background, in a loop. */ diff --git a/layouts/community/ergodox/qwerty_code_friendly/readme.md b/layouts/community/ergodox/qwerty_code_friendly/readme.md index 231123b78071..29a04e68931f 100644 --- a/layouts/community/ergodox/qwerty_code_friendly/readme.md +++ b/layouts/community/ergodox/qwerty_code_friendly/readme.md @@ -3,6 +3,9 @@ - This layout aims to balance muscle memory from a typical QWERTY layout with having keys used for software development easily accessible. + The this layout is a normalized qwerty, + with some configurable keys left thumb cluster so you can use it more as needed. + - Arrow keys follow VIM convention (the media layer even uses arrow keys for HJKL). @@ -21,13 +24,6 @@ however using the larger thumb cluster ended up being more of a reach while typing. -- There is a handy shortcut for writing quotes that inserts the cursor - between the quotation marks. - - Holding LShift, then RShift types: "" (then presses left). - - Holding RShift, then LShift types: '' (then presses left). - ## Configuration Some optional behavior is configurable without editing the code @@ -37,6 +33,14 @@ using `CFQ_` prefixed defines which can be set by passing `EXTRAFLAGS` to make. (0..7) are used for custom-keys - `CFQ_USE_MOMENTARY_LAYER_KEYS` is used to prevent layer keys from toggling when tapped. +- `CFQ_USE_SHIFT_QUOTES` + an optional handy shortcut for writing quotes that inserts the + cursor between the quotation marks. + + Holding LShift, then RShift types: "" (then presses left). + + Holding RShift, then LShift types: '' (then presses left). + - `CFQ_WORD_[A-Z]` defines can bind a key to an entire user defined word. @@ -54,13 +58,13 @@ using `CFQ_` prefixed defines which can be set by passing `EXTRAFLAGS` to make. |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - | LCtl |Super | Alt | ~L1 |Space | | Left | Down | Up |Right | Ins | + | LCtl |Super | Alt | ~L1 |Space | | Left | Down | Up |Right | Del | `----------------------------------' `----------------------------------' ,-------------. ,-------------. - | < | > | | Home | End | + | Ins |NumClk| | Home | End | ,------+------+------| |------+------+------. | | |CapsLk| | PgUp | | | - |BSpace| Del |------| |------| ~L2 |Space | + |BSpace| Del |------| |------| ~L2 |Enter | | | | ~L3 | | PgDn | | | `--------------------' `--------------------' @@ -75,7 +79,7 @@ Optional overrides: see CFQ_USER_KEY# defines. |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | | | | | | | | | | | | | | | | `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - | | | | USR1 | | | | | | | | + | | | | USR1 | | | | | | | USR8 | `----------------------------------' `----------------------------------' ,-------------. ,-------------. | USR2 | USR3 | | | | @@ -166,6 +170,12 @@ eg: `-DCFQ_WORD_E=\"my@email.com\"` ## Changelog +- 2018/03/08 + Add `CFQ_USE_SHIFT_QUOTES` option. + Add `CFQ_USER_KEY8` key. + + When holding shift `CFQ_WORD_[A-Z]` use title caps. + - 2018/03/06 Add layer for user defined words (replaces `CFQ_USE_EXPEREMENTAL_LAYER`). From 0e6e059ef3cd88692348db1f6ef3de2b0349bfe6 Mon Sep 17 00:00:00 2001 From: Louis Orleans Date: Fri, 9 Mar 2018 10:31:09 -0800 Subject: [PATCH 042/578] layout(planck): dudeofawesome's layout (#2457) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * layout(planck): new layout initial commit * feat(planck): add workman layout * fix(planck): switching to workman * layout(planck): swapping mnext and mplay * feat(planck): prep for RGB * perf(planck): remove plover saves 256 bytes of memory * perf(planck): remove colemak saves 128 bytes * layout(planck): swapping enter and quote * perf(planck): disable console frees 1664 bytes * feat(planck): RGB under-lighting * refactor(planck): change RGB pin Uses pin labeled PB2 * feat(planck): add RGB keycodes * feat(planck): re-enable audio * style(planck): fixing indentation Because who indents like that? * style(planck): clean up keycodes * layout(planck): remove del * feat(planck): add tap-space to layer keys * docs(planck): specify pin on PCB for RGB * bug(planck): reducing tap time * Revert "bug(planck): reducing tap time" This reverts commit 62606b2dc62c5adcc06cfb5978d7e5305411a658. * Revert "feat(planck): add tap-space to layer keys" This reverts commit c74de5a4aa45c5563dcaa463395654c29f50eda3. * perf(planck): remove backlit case * feat(planck): swap enter and quote * bug(planck): moving right shift * doc(planck): update README * chore(planck): remove makefile * 🔨 add userspace config * 📝 update layer ascii art * 🔥 disable RGB lighting * ✨ add Colemak * ✨ add numpad layer * ✨ add caps lock on adjust layer * 📝 update layer renders * 🔥 remove workman sound def * 🔨 add userspace config * 📝 update layer ascii art * 🔥 disable RGB lighting * ✨ add Colemak * ✨ add numpad layer * ✨ add caps lock on adjust layer * 📝 update layer renders * 🔥 remove workman sound def --- .../planck/keymaps/dudeofawesome/config.h | 8 +- .../planck/keymaps/dudeofawesome/keymap.c | 112 ++++++++++++------ .../planck/keymaps/dudeofawesome/readme.md | 14 +-- .../planck/keymaps/dudeofawesome/rules.mk | 2 +- users/dudeofawesome/dudeofawesome.c | 1 + users/dudeofawesome/dudeofawesome.h | 16 +++ users/dudeofawesome/rules.mk | 1 + 7 files changed, 106 insertions(+), 48 deletions(-) create mode 100644 users/dudeofawesome/dudeofawesome.c create mode 100644 users/dudeofawesome/dudeofawesome.h create mode 100644 users/dudeofawesome/rules.mk diff --git a/keyboards/planck/keymaps/dudeofawesome/config.h b/keyboards/planck/keymaps/dudeofawesome/config.h index 68d447dec8fe..33dd4e41a1e6 100644 --- a/keyboards/planck/keymaps/dudeofawesome/config.h +++ b/keyboards/planck/keymaps/dudeofawesome/config.h @@ -2,14 +2,14 @@ #define CONFIG_USER_H #include "../../config.h" - -#define WORKMAN_SOUND COLEMAK_SOUND +#include "dudeofawesome.h" #ifdef AUDIO_ENABLE #define STARTUP_SONG SONG(PLANCK_SOUND) // #define STARTUP_SONG SONG(NO_SOUND) #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(WORKMAN_SOUND), \ SONG(COLEMAK_SOUND), \ SONG(DVORAK_SOUND) \ } @@ -41,8 +41,4 @@ /* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ //#define MIDI_TONE_KEYCODE_OCTAVES 2 -#define RGB_DI_PIN B2 // The pin the LED strip is connected to (PB2 by default) -#define RGBLED_NUM 3 // Number of LEDs in your strip -#define RGBLIGHT_ANIMATIONS - #endif diff --git a/keyboards/planck/keymaps/dudeofawesome/keymap.c b/keyboards/planck/keymaps/dudeofawesome/keymap.c index 3fa73990864b..55ef0e39b5b1 100644 --- a/keyboards/planck/keymaps/dudeofawesome/keymap.c +++ b/keyboards/planck/keymaps/dudeofawesome/keymap.c @@ -22,17 +22,20 @@ extern keymap_config_t keymap_config; enum planck_layers { _QWERTY, - _DVORAK, _WORKMAN, + _COLEMAK, + _DVORAK, _LOWER, _RAISE, - _ADJUST + _ADJUST, + _NUMPAD, }; enum planck_keycodes { QWERTY = SAFE_RANGE, - DVORAK, WORKMAN, + COLEMAK, + DVORAK, LOWER, RAISE, BACKLIT @@ -44,61 +47,79 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ; |Enter | + * | Esc | A | S | D | F | G | H | J | K | L | ; | ' | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / | ' | + * | Shift| Z | X | C | V | B | N | M | , | . | / | Enter| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | RGB | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * | Num | Ctrl | Alt | GUI | Lower| Space | Raise| Left | Down | Up | Right| * `-----------------------------------------------------------------------------------' */ [_QWERTY] = { - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT }, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT)}, - {RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT } + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT }, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT)}, + {TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT } }, - /* Dvorak + /* Workman * ,-----------------------------------------------------------------------------------. - * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * | Tab | Q | W | R | W | B | J | F | U | P | ; | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | O | E | U | I | D | H | T | N | S |Enter | + * | Esc | A | S | H | T | G | Y | N | E | O | I | ' | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| ; | Q | J | K | X | B | M | W | V | Z | / | + * | Shift| Z | X | M | C | V | K | L | , | . | / | Enter| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | RGB | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * | Num | Ctrl | Alt | GUI | Lower| Space | Raise| Left | Down | Up | Right| * `-----------------------------------------------------------------------------------' */ - [_DVORAK] = { - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC }, - {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH }, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, RSFT_T(KC_ENT)}, - {RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT } + [_WORKMAN] = { + {KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSPC }, + {KC_ESC, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT }, + {KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT)}, + {TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT } }, - /* Workman + /* Colemak * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | R | W | B | J | F | U | P | ; | Bksp | + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | H | T | G | Y | N | E | O | I |Enter | + * | Esc | A | R | S | T | D | H | N | E | I | O | ' | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | M | C | V | K | L | , | . | / | ' | + * | Shift| Z | X | C | V | B | K | M | , | . | / | Enter| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | RGB | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * | Num | Ctrl | Alt | GUI | Lower| Space | Raise| Left | Down | Up | Right| * `-----------------------------------------------------------------------------------' */ - [_WORKMAN] = { - {KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSPC }, - {KC_ESC, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT }, - {KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT)}, - {RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT } + [_COLEMAK] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT)}, + {TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + }, + + /* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z | Enter| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Num | Ctrl | Alt | GUI | Lower| Space | Raise| Left | Down | Up | Right| + * `-----------------------------------------------------------------------------------' + */ + [_DVORAK] = { + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC }, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH }, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, RSFT_T(KC_ENT)}, + {TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT } }, /* Lower * ,-----------------------------------------------------------------------------------. * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -116,7 +137,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -134,7 +155,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | | Reset| | | | | | | | | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Wrkman|Dvorak| | | + * |CPSLCK| | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Wrkman|Dvorak|Colemk| | * |------+------+------+------+------+------|------+------+------+------+------+------| * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -143,9 +164,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = { {_______, RESET, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL }, - {_______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, WORKMAN, DVORAK, _______, _______}, + {KC_CAPS, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, WORKMAN, DVORAK, COLEMAK, _______}, {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, RGB_M_R, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} + }, + + /* Numpad + * ,-----------------------------------------------------------------------------------. + * | | ✗ | Home | Up | End | PgUp | ✗ | 7 | 8 | 9 | + | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | ✗ | Left | Down | Right| PgDn | ✗ | 4 | 5 | 6 | - | ✗ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | / | * | - | + | Enter| ✗ | 1 | 2 | 3 | * | Enter| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | ✗ | | 0 | 0 | . | / | = | + * `-----------------------------------------------------------------------------------' + */ + [_NUMPAD] = { + {_______, KC_NO, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_P7, KC_P8, KC_P9, KC_PPLS, _______}, + {_______, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_NO}, + {_______, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_PENT, KC_NO, KC_P1, KC_P2, KC_P3, KC_PAST, KC_PENT}, + {_______, _______, _______, _______, KC_NO, _______, _______, KC_P0, KC_P0, KC_PDOT, KC_PSLS, KC_PEQL} } }; @@ -168,6 +207,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { set_single_persistent_default_layer(_DVORAK); } return false; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/planck/keymaps/dudeofawesome/readme.md b/keyboards/planck/keymaps/dudeofawesome/readme.md index 7dccbaabc387..7e2f7dc943c6 100644 --- a/keyboards/planck/keymaps/dudeofawesome/readme.md +++ b/keyboards/planck/keymaps/dudeofawesome/readme.md @@ -1,17 +1,17 @@ # DudeOfAwesome's Planck Layout -A basic Planck layout with simultaneous RGB and audio support. - -![Planck Layout](https://i.imgur.com/2p1TEEH.png) +![Planck Layout](https://i.imgur.com/mOc2Sbd.png) ## Features - Base Layers - - QWERTY - - Workman - - Dvorak + - QWERTY + - Workman + - Dvorak + - Colemak +- Numpad layer + ![numpad layer](https://i.imgur.com/PQENcut.png) - Audio -- WS2812b RGB backlight ## Building and flashing diff --git a/keyboards/planck/keymaps/dudeofawesome/rules.mk b/keyboards/planck/keymaps/dudeofawesome/rules.mk index 42c370aa164a..edeab164393d 100644 --- a/keyboards/planck/keymaps/dudeofawesome/rules.mk +++ b/keyboards/planck/keymaps/dudeofawesome/rules.mk @@ -7,4 +7,4 @@ CONSOLE_ENABLE = no # Console for debug(+400) MIDI_ENABLE = no # MIDI controls MOUSEKEY_ENABLE = no # Mouse keys(+4700) NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. diff --git a/users/dudeofawesome/dudeofawesome.c b/users/dudeofawesome/dudeofawesome.c new file mode 100644 index 000000000000..5a9117b0299c --- /dev/null +++ b/users/dudeofawesome/dudeofawesome.c @@ -0,0 +1 @@ +#include "dudeofawesome.h" diff --git a/users/dudeofawesome/dudeofawesome.h b/users/dudeofawesome/dudeofawesome.h new file mode 100644 index 000000000000..b0387f2ad4b6 --- /dev/null +++ b/users/dudeofawesome/dudeofawesome.h @@ -0,0 +1,16 @@ +#ifndef USERSPACE +#define USERSPACE + +#define TAPPING_TOGGLE 2 + +#ifdef AUDIO_ENABLE + #define WORKMAN_SOUND \ + E__NOTE(_GS7), \ + ED_NOTE(_E7), \ + S__NOTE(_REST), \ + E__NOTE(_A6), \ + S__NOTE(_REST), \ + ED_NOTE(_GS6), +#endif + +#endif diff --git a/users/dudeofawesome/rules.mk b/users/dudeofawesome/rules.mk new file mode 100644 index 000000000000..b99697b586a4 --- /dev/null +++ b/users/dudeofawesome/rules.mk @@ -0,0 +1 @@ +SRC += dudeofawesome.c From 8d6eadf26159dfe3a63d0bda15bdc68cab21ee36 Mon Sep 17 00:00:00 2001 From: Brian Choromanski Date: Fri, 9 Mar 2018 13:31:42 -0500 Subject: [PATCH 043/578] Patched some keyboards that won't compile (#2453) --- keyboards/atomic/keymaps/pvc/keymap.c | 2 +- .../clueboard/66/keymaps/mrscooty/keymap.c | 2 +- keyboards/clueboard/66/rev2/rev2.h | 4 +-- keyboards/dz60/keymaps/LEdiodes/keymap.c | 30 ++++++++++--------- keyboards/planck/keymaps/aviator/config.h | 1 + keyboards/planck/keymaps/aviator/keymap.c | 3 -- keyboards/planck/keymaps/khord/keymap.c | 2 +- keyboards/planck/keymaps/pvc/keymap.c | 2 +- keyboards/planck/keymaps/steno/rules.mk | 1 + keyboards/planck/keymaps/zrichard/keymap.c | 2 +- users/gordon/rules.mk | 1 + 11 files changed, 26 insertions(+), 24 deletions(-) diff --git a/keyboards/atomic/keymaps/pvc/keymap.c b/keyboards/atomic/keymaps/pvc/keymap.c index 2e78e64b1c87..43ec0b23bf2e 100644 --- a/keyboards/atomic/keymaps/pvc/keymap.c +++ b/keyboards/atomic/keymaps/pvc/keymap.c @@ -359,7 +359,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case MACRO_BREATH_DEFAULT: if (record->event.pressed) { - breathing_defaults(); + breathing_period_default(); } break; diff --git a/keyboards/clueboard/66/keymaps/mrscooty/keymap.c b/keyboards/clueboard/66/keymaps/mrscooty/keymap.c index 29c4ac6ed35c..abf98615ea45 100644 --- a/keyboards/clueboard/66/keymaps/mrscooty/keymap.c +++ b/keyboards/clueboard/66/keymaps/mrscooty/keymap.c @@ -1,4 +1,4 @@ -#include "clueboard.h" +#include "66.h" // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. diff --git a/keyboards/clueboard/66/rev2/rev2.h b/keyboards/clueboard/66/rev2/rev2.h index 9676b2b247de..5eedcd237a4a 100644 --- a/keyboards/clueboard/66/rev2/rev2.h +++ b/keyboards/clueboard/66/rev2/rev2.h @@ -64,7 +64,7 @@ { k20, k21, k22, k23, k24, k25, k26, k27 }, \ { k30, KC_NO, k32, k33, k34, k35, k36, k37 }, \ { k40, k41, k42, KC_NO, KC_NO, KC_NO, k46, KC_NO }, \ - { k50, k51, k52, k53, k54, k55, KC_NO, k57 }, \ + { k50, k51, k52, k53, k54, KC_NO, KC_NO, k57 }, \ { k60, k61, k62, k63, k64, k65, KC_NO, k67 }, \ { k70, k71, k72, k73, KC_NO, k75, KC_NO, KC_NO }, \ { k80, k81, k82, k83, KC_NO, k85, k86, KC_NO }, \ @@ -73,7 +73,7 @@ /* LAYOUT_66_iso, standard 67 key ISO layout */ -#define LAYOUT_ISO( \ +#define LAYOUT_66_iso( \ k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54, k56, k57, \ k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k67, \ k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73, k74, k75, \ diff --git a/keyboards/dz60/keymaps/LEdiodes/keymap.c b/keyboards/dz60/keymaps/LEdiodes/keymap.c index 46bdb5fed1cc..dbf2a75f572e 100644 --- a/keyboards/dz60/keymaps/LEdiodes/keymap.c +++ b/keyboards/dz60/keymaps/LEdiodes/keymap.c @@ -1,14 +1,16 @@ -#include "xd60.h" +#include "dz60.h" #include "action_layer.h" -#Define _L0 0 -#Define _L1 1 -#Define _L2 2 -#Define _L3 3 -#Define _L4 4 +#define _L0 0 +#define _L1 1 +#define _L2 2 +#define _L3 3 +#define _L4 4 #define _______ KC_TRNS +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* * template * [_L1] = KEYMAP( @@ -22,7 +24,7 @@ *\ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap _L0: (Layer 0 - Base Layer) This is the default layer + * Keymap _L0: (Layer 0 - Base Layer) This is the default layer * This layer has a key set to MO(_L1) which means when held down Layer 1 will become active, If Layer 1 does not have anything set for tat key is will revert to uing the key set at layer 0. * LT(_L1, KC_1) means that when the "1" key is long touched then it will activate the layer _L1 key(F1) but if the key is just tapped it will activate the "1" key. * KC_GESC = Escape when tapped, ` when pressed with Shift or GUI @@ -45,9 +47,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_L0] = KEYMAP( KC_GESC, LT(_L1, KC_1),LT(_L1, KC_2),LT(_L1, KC_3),LT(_L1, KC_4),LT(_L1, KC_5),LT(_L1, KC_6),LT(_L1, KC_7),LT(_L1, KC_8),LT(_L1, KC_9),LT(_L1, KC_0),LT(_L1, KC_MINS),LT(_L1, KC_EQL),KC_BSPC, KC_DEL, \ 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_BSLS, \ - KC_CAPS, 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, \ - KC_LSPO, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPO, KC_UP, M0(_L1), \ - KC_LCTL, KC_LGUI, KC_LALT, TD(LT(_L3,KC_SPACE)),BL_TOGG,TD(TD_SPC_ENT), KC_RGUI, M0(_L2), KC_LEFT, KC_DOWN, KC_RIGHT), + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, TO(_L1), \ + KC_LCTL, KC_LGUI, KC_LALT, TD(LT(_L3,KC_SPACE)),BL_TOGG,TD(TD_SPC_ENT), KC_RGUI, TO(_L2), KC_LEFT, KC_DOWN, KC_RIGHT), /* Keymap _L1: (Layer 1) This is function layer 1 * This layer is activated while the Fn key is being held down. @@ -66,8 +68,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_L1] = KEYMAP( RESET, 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_F13, KC_F14, \ _______, KC_WH_U, KC_UP, KC_WH_D, _______, _______,_______, _______, _______, _______, KC_PSCR, _______, _______, _______, \ - _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_HOME, _______, _______, _______, KC_HOME, _______, _______, _______, \ - _______, _______, _______, KC_APP, BL_STEP,_______, KC_END, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, KC_PGUP, _______, \ + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_HOME, _______, _______, _______, KC_HOME, _______, _______, \ + _______, _______, KC_APP, BL_STEP,_______, KC_END, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, KC_PGUP, _______, \ _______, _______, _______, _______,_______,_______, _______, _______, KC_HOME, KC_PGDOWN, KC_END), /* Keymap _L2: (Layer 2) This is function layer 2 @@ -89,9 +91,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_L2] = KEYMAP( _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,LCA(KC_TAB), \ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, MEH(KC_TAB), \ - _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_MS_BTN1,KC_MS_UP,KC_MS_BTN2, \ - _______,_______,_______, _______,_______,_______, _______,_______,KC_MS_LEFT,KC_MS_DOWN,KC_MS_RIGHT, + _______,_______,_______, _______,_______,_______, _______,_______,KC_MS_LEFT,KC_MS_DOWN,KC_MS_RIGHT) }; diff --git a/keyboards/planck/keymaps/aviator/config.h b/keyboards/planck/keymaps/aviator/config.h index 6bc53cf57b51..81232367dbac 100644 --- a/keyboards/planck/keymaps/aviator/config.h +++ b/keyboards/planck/keymaps/aviator/config.h @@ -4,6 +4,7 @@ #include "config_common.h" #define BACKLIGHT_BREATHING +#define BREATHING_PERIOD 3 #ifdef AUDIO_ENABLE #define STARTUP_SONG SONG(PLANCK_SOUND) diff --git a/keyboards/planck/keymaps/aviator/keymap.c b/keyboards/planck/keymaps/aviator/keymap.c index 97d2bd063716..8ce9a8e174bb 100644 --- a/keyboards/planck/keymaps/aviator/keymap.c +++ b/keyboards/planck/keymaps/aviator/keymap.c @@ -134,7 +134,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { set_single_persistent_default_layer(_DATA); #ifdef BACKLIGHT_ENABLE - breathing_speed_set(3); breathing_enable(); #endif } @@ -146,7 +145,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { uint8_t default_layer = biton32(default_layer_state); if (default_layer == _QWERTY) { #ifdef BACKLIGHT_ENABLE - breathing_speed_set(3); breathing_enable(); #endif } @@ -167,7 +165,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { uint8_t default_layer = biton32(default_layer_state); if (default_layer == _QWERTY) { #ifdef BACKLIGHT_ENABLE - breathing_speed_set(3); breathing_enable(); #endif } diff --git a/keyboards/planck/keymaps/khord/keymap.c b/keyboards/planck/keymaps/khord/keymap.c index c515a0d3647c..642936909949 100644 --- a/keyboards/planck/keymaps/khord/keymap.c +++ b/keyboards/planck/keymaps/khord/keymap.c @@ -138,7 +138,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case MACRO_BREATH_DEFAULT: if (record->event.pressed) { - breathing_defaults(); + breathing_period_default(); } break; } diff --git a/keyboards/planck/keymaps/pvc/keymap.c b/keyboards/planck/keymaps/pvc/keymap.c index 820018af6d7d..a0981573ab7e 100644 --- a/keyboards/planck/keymaps/pvc/keymap.c +++ b/keyboards/planck/keymaps/pvc/keymap.c @@ -337,7 +337,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case MACRO_BREATH_DEFAULT: if (record->event.pressed) { - breathing_defaults(); + breathing_period_default(); } break; diff --git a/keyboards/planck/keymaps/steno/rules.mk b/keyboards/planck/keymaps/steno/rules.mk index 8bfc69499bff..634a1c8878a9 100644 --- a/keyboards/planck/keymaps/steno/rules.mk +++ b/keyboards/planck/keymaps/steno/rules.mk @@ -2,6 +2,7 @@ ifndef QUANTUM_DIR include ../../../../Makefile endif +EXTRAKEY_ENABLE = no MOUSEKEY_ENABLE = no # Mouse keys(+4700) STENO_ENABLE = yes # Additional protocols for Stenography(+1700), requires VIRTSER AUDIO_ENABLE = no # Audio output on port C6 diff --git a/keyboards/planck/keymaps/zrichard/keymap.c b/keyboards/planck/keymaps/zrichard/keymap.c index cf4478cee0d2..bb4e19fa0867 100755 --- a/keyboards/planck/keymaps/zrichard/keymap.c +++ b/keyboards/planck/keymaps/zrichard/keymap.c @@ -346,7 +346,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case MACRO_BREATH_DEFAULT: if (record->event.pressed) { - breathing_defaults(); + breathing_period_default(); } break; diff --git a/users/gordon/rules.mk b/users/gordon/rules.mk index 5dd62c200ba2..359478912c32 100644 --- a/users/gordon/rules.mk +++ b/users/gordon/rules.mk @@ -1 +1,2 @@ +TAP_DANCE_ENABLE = yes SRC += gordon.c \ No newline at end of file From 400f410c45cb0e97791988e753c8dab1b876b53a Mon Sep 17 00:00:00 2001 From: hypnocrat <33875176+hypnocrat@users.noreply.github.com> Date: Fri, 9 Mar 2018 19:32:03 +0100 Subject: [PATCH 044/578] XD75 keymap - Germanized (#2441) * Added a heavily customized German keymap to the XD75RE * A heavily customized alternative layout for the XD75, for German users * Fixed capitalization, removed unnecessary files * Hopefully fixed capitalization, some keymap changes --- keyboards/xd75/keymaps/germanized/config.h | 125 ++++++++++++++++++++ keyboards/xd75/keymaps/germanized/keymap.c | 86 ++++++++++++++ keyboards/xd75/keymaps/germanized/readme.md | 83 +++++++++++++ keyboards/xd75/keymaps/germanized/rules.mk | 38 ++++++ 4 files changed, 332 insertions(+) create mode 100644 keyboards/xd75/keymaps/germanized/config.h create mode 100644 keyboards/xd75/keymaps/germanized/keymap.c create mode 100644 keyboards/xd75/keymaps/germanized/readme.md create mode 100644 keyboards/xd75/keymaps/germanized/rules.mk diff --git a/keyboards/xd75/keymaps/germanized/config.h b/keyboards/xd75/keymaps/germanized/config.h new file mode 100644 index 000000000000..5b19bddb05ee --- /dev/null +++ b/keyboards/xd75/keymaps/germanized/config.h @@ -0,0 +1,125 @@ +/* Copyright 2018 Kolja Brauns + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here + +//Tap-Toggle +#define TAPPING_TOGGLE 3 + +//Tap Dancing +#define TAPPING_TERM 200 + +// Alt gr +#define ALGR(kc) RALT(kc) +#define DE_ALGR KC_RALT + +// normal characters +#define DE_Z KC_Y +#define DE_Y KC_Z + +#define DE_A KC_A +#define DE_B KC_B +#define DE_C KC_C +#define DE_D KC_D +#define DE_E KC_E +#define DE_F KC_F +#define DE_G KC_G +#define DE_H KC_H +#define DE_I KC_I +#define DE_J KC_J +#define DE_K KC_K +#define DE_L KC_L +#define DE_M KC_M +#define DE_N KC_N +#define DE_O KC_O +#define DE_P KC_P +#define DE_Q KC_Q +#define DE_R KC_R +#define DE_S KC_S +#define DE_T KC_T +#define DE_U KC_U +#define DE_V KC_V +#define DE_W KC_W +#define DE_X KC_X + +#define DE_0 KC_0 +#define DE_1 KC_1 +#define DE_2 KC_2 +#define DE_3 KC_3 +#define DE_4 KC_4 +#define DE_5 KC_5 +#define DE_6 KC_6 +#define DE_7 KC_7 +#define DE_8 KC_8 +#define DE_9 KC_9 + +#define DE_DOT KC_DOT +#define DE_COMM KC_COMM + +#define DE_SS KC_MINS +#define DE_AE KC_QUOT +#define DE_UE KC_LBRC +#define DE_OE KC_SCLN + +#define DE_CIRC KC_GRAVE // accent circumflex ^ and ring ° +#define DE_ACUT KC_EQL // accent acute ´ and grave ` +#define DE_PLUS KC_RBRC // + and * and ~ +#define DE_HASH KC_BSLS // # and ' +#define DE_LESS KC_NUBS // < and > and | +#define DE_MINS KC_SLSH // - and _ + +// shifted characters +#define DE_RING LSFT(DE_CIRC) // ° +#define DE_EXLM LSFT(KC_1) // ! +#define DE_DQOT LSFT(KC_2) // " +#define DE_PARA LSFT(KC_3) // § +#define DE_DLR LSFT(KC_4) // $ +#define DE_PERC LSFT(KC_5) // % +#define DE_AMPR LSFT(KC_6) // & +#define DE_SLSH LSFT(KC_7) // / +#define DE_LPRN LSFT(KC_8) // ( +#define DE_RPRN LSFT(KC_9) // ) +#define DE_EQL LSFT(KC_0) // = +#define DE_QST LSFT(DE_SS) // ? +#define DE_GRV LSFT(DE_ACUT) // ` +#define DE_ASTR LSFT(DE_PLUS) // * +#define DE_QUOT LSFT(DE_HASH) // ' +#define DE_MORE LSFT(DE_LESS) // > +#define DE_COLN LSFT(KC_DOT) // : +#define DE_SCLN LSFT(KC_COMM) // ; +#define DE_UNDS LSFT(DE_MINS) // _ + +// Alt Gr-ed characters +#define DE_SQ2 ALGR(KC_2) // ² +#define DE_SQ3 ALGR(KC_3) // ³ +#define DE_LCBR ALGR(KC_7) // { +#define DE_LBRC ALGR(KC_8) // [ +#define DE_RBRC ALGR(KC_9) // ] +#define DE_RCBR ALGR(KC_0) // } +#define DE_BSLS ALGR(DE_SS) // backslash +#define DE_AT ALGR(KC_Q) // @ +#define DE_EURO ALGR(KC_E) // € +#define DE_TILD ALGR(DE_PLUS) // ~ +#define DE_PIPE ALGR(DE_LESS) // | + +// Launchy +#define ALT_SPC LALT(KC_SPC) +#endif diff --git a/keyboards/xd75/keymaps/germanized/keymap.c b/keyboards/xd75/keymaps/germanized/keymap.c new file mode 100644 index 000000000000..b7c9620c13d2 --- /dev/null +++ b/keyboards/xd75/keymaps/germanized/keymap.c @@ -0,0 +1,86 @@ +/* Copyright 2017 Kolja Brauns +*/ +#include "xd75.h" + +#ifndef KEYMAP_GERMAN +#define KEYMAP_GERMAN + +#include "keymap.h" + +#endif + +//Tap Dance Declarations +enum { + TD_ESC_RUPT = 0 +}; + +enum { + TD_TAB = 1 +}; + +//Tap Dance Definitions +qk_tap_dance_action_t tap_dance_actions[] = { + //Tap once for Esc, twice Ctrl+Alt+Del + [TD_ESC_RUPT] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, LALT(LCTL(KC_DEL))), + [TD_TAB] = ACTION_TAP_DANCE_DOUBLE(KC_LCTL, LGUI(KC_TAB)) +// Other declarations would go here, separated by commas, if you have them +}; + +//In Layer declaration, add tap dance item in place of a key code + + +// Layer shorthand +#define _QWZ 0 +#define _FNC 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + + /* QWZ + * .-----------------------------------------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ß | ´ | BckSpc| Esc | + * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------| + * | Tab | Q | W | E | R | T | Z | U | I | O | P | Ü | + | | PgUp | + * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------| Enter |-------| + * | Ctrl/ | A | S | D | F | G | H | J | K | L | Ö | Ä | # | | PgDn | + * | GUITab| | | | | | | | | | | | | | | + * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------| + * | LShift| Y | X | C | V | B | N | M | , | . | - | ^ | Home/ | Up | End | + * | | | | | | | | | | | | | RShift| | | + * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------| + * | LCtrl | LAlt | MO(1)/| Space | Backspace | MO(1)/|AltGr/ | Win | < | Del | Left | Down | Right | + * | | | Enter | | | TO(1) |Pause | | | | | | | + * °-----------------------------------------------------------------------------------------------------------------------° + */ + + [_QWZ] = { + { TD(TD_ESC_RUPT), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, DE_SS, DE_ACUT, KC_BSPC, KC_ESC }, + { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UE, DE_PLUS, KC_NO, KC_PGUP }, + { TD(TD_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_OE, DE_AE, DE_HASH, KC_ENT, KC_PGDN }, + { KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, DE_MINS, DE_CIRC, MT(MOD_RSFT, KC_HOME), KC_UP, KC_END }, + { KC_LCTL, KC_LALT, LT(1, KC_ENT), KC_SPC, KC_NO, KC_BSPC, KC_NO, TT(1), MT(MOD_RALT, KC_PAUS), KC_RGUI, DE_LESS, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT }, + }, + + /* FNC + * .-----------------------------------------------------------------------------------------------------------------------. + * | Reset | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | _____ | _____ | + * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------| + * | _____ | _____ | _____ |Bright+| _____ | _____ | _____ | _____ | _____ | Up | PrtSc | _____ | _____ | _____ | _____ | + * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------| + * | _____ | _____ | _____ |RGB Tog|RGB Mod| _____ | _____ | _____ | Left | Down | Right | _____ | _____ | Play | _____ | + * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------| + * | CpsLck| _____ | _____ |Bright-| _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | VolUp | Mute | + * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------| + * | TO(0) | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | Prev | VolDn | Next | + * °-----------------------------------------------------------------------------------------------------------------------° +*/ + [_FNC] = { + { RESET, 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_TRNS, KC_TRNS }, + { KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }, + { KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS }, + { KC_CAPS, KC_TRNS, KC_TRNS, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE }, + { TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT }, + }, + +}; + diff --git a/keyboards/xd75/keymaps/germanized/readme.md b/keyboards/xd75/keymaps/germanized/readme.md new file mode 100644 index 000000000000..81e98c9f70ea --- /dev/null +++ b/keyboards/xd75/keymaps/germanized/readme.md @@ -0,0 +1,83 @@ +# XD75RE + +Copyright 2018 Kolja Brauns + +### Current release: 1.7 + +**Features** +A keymap for German users of the XD75RE keyboard, customized to my needs. Not optimized for ten-finger typing. Some choices are due to me being a lefty. +Designed to ease transition from staggered layouts, with the most important keys in the same positions. All German alphanumerics on main layer. Keyboard language should be set to DE in your OS. +Lots of dual-use keys, mostly with hold/tap. See visual representation below. +Some 2u keys, using PoS caps. If you don't have any you'll have to replace the dummy keys with the relevant keycodes. +Full nav keys on main layer. +Designed to be used with an additional macropad, no numpad configured. + + **QWZ** - Layer 0, Default Layer. QWERTZ layout. + + + .-----------------------------------------------------------------------------------------------------------------------. + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ß | ´ | BckSpc| Esc | + |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------| + | Tab | Q | W | E | R | T | Z | U | I | O | P | Ü | + | | PgUp | + |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------| Enter |-------| + | Ctrl/ | A | S | D | F | G | H | J | K | L | Ö | Ä | # | | PgDn | + | GUITab| | | | | | | | | | | | | | | + |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------| + | LShift| Y | X | C | V | B | N | M | , | . | - | ^ | Home/ | Up | End | + | | | | | | | | | | | | | RShift| | | + |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------| + | LCtrl | LAlt | MO(1)/| Space | Backspace | MO(1)/|AltGr/ | Win | < | Del | Left | Down | Right | + | | | Enter | | | TO(1) |Pause | | | | | | | + °-----------------------------------------------------------------------------------------------------------------------° + + + + +**FNC** - Layer 1, Function Layer. F-Keys, additional useful keys. Usually accessed temporarily, can be toggled if necessary. + + + .-----------------------------------------------------------------------------------------------------------------------. + | Reset | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | _____ | _____ | + |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------| + | _____ | _____ | _____ |Bright+| _____ | _____ | _____ | _____ | _____ | Up | PrtSc | _____ | _____ | _____ | _____ | + |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------| + | _____ | _____ | _____ |RGB Tog|RGB Mod| _____ | _____ | _____ | Left | Down | Right | _____ | _____ | Play | _____ | + |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------| + | CpsLck| _____ | _____ |Bright-| _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | VolUp | Mute | + |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------| + | TO(0) | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | Prev | VolDn | Next | + °-----------------------------------------------------------------------------------------------------------------------° + + + +*Release 1.1* + +Added Printscreen to second layer. +Added shortcut to Launchy to AltGr. + +*Release 1.3* + +Now using PoS keys for 2u keys, added dummy keys accordingly (not strictly necessary since debouncing handles this, but without this you'll have double input rarely.) +Cleaned keymap up & removed unnecessary layers. + +*Release 1.4* +Fixed position of the reset key, replaced right spacebar with backspace. + +*Release 1.5* +Reset moved to Esc. Removed Numpad since it wasn't getting any use. Removed random other keys on function layer that weren't getting any use or are covered by my macropad. Added RShift for held home key. +Added secondary arrow keys on JIKL. + +*Release 1.6* +Major rework and cleanup. +Capslock removed. Caps now temporarily toggles function layer when held, Esc when tapped. LShift is Capslock when tapped. Esc is Ctrl-Alt-Del on tap. +Left lower MO(1) is now Enter on tap. Right lower Layer(1) is now Tap-Toggle (Toggle:_Tap thrice). +Media keys moved to nav section - Enter=Play, Up=VolUp, Down=VolDn, Left=Prev, Right=Next, End=Mute. +Added PrintScreen on P on Layer 1. +Added cleaner visual representation since the multi-function keys make the actual keymap messy. +Moved old versions into folder together, only current version in root keymap directory now. + +*Release 1.7* +Backspace split, includes Esc now. +Capslock moved to function layer to keep smoother LShift operation. +Original Caps key now Ctrl, Alt+GUI on double-tap - inspired by Android. +Cleaned up visual representation in readme. diff --git a/keyboards/xd75/keymaps/germanized/rules.mk b/keyboards/xd75/keymaps/germanized/rules.mk new file mode 100644 index 000000000000..d72bcf575d5f --- /dev/null +++ b/keyboards/xd75/keymaps/germanized/rules.mk @@ -0,0 +1,38 @@ +# Copyright 2013 Jun Wako +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +# QMK Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +TAP_DANCE_ENABLE = yes # Enable Tap Dancing + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif From ac5326595c88503cc183e7b93af45b7d13e2a557 Mon Sep 17 00:00:00 2001 From: Danny Date: Fri, 9 Mar 2018 13:32:50 -0500 Subject: [PATCH 045/578] Add Viterbi fido keymap (#2454) * Add fido Viterbi keymap * Cleanup rules files * Remove unused WIP code --- keyboards/viterbi/keymaps/default/rules.mk | 4 -- keyboards/viterbi/keymaps/dwallace/rules.mk | 4 -- keyboards/viterbi/keymaps/fido/config.h | 45 +++++++++++++ keyboards/viterbi/keymaps/fido/keymap.c | 74 +++++++++++++++++++++ keyboards/viterbi/keymaps/fido/rules.mk | 1 + keyboards/viterbi/keymaps/hexwire/rules.mk | 4 -- keyboards/viterbi/split_rgb.c | 41 ------------ keyboards/viterbi/split_rgb.h | 6 -- 8 files changed, 120 insertions(+), 59 deletions(-) create mode 100644 keyboards/viterbi/keymaps/fido/config.h create mode 100644 keyboards/viterbi/keymaps/fido/keymap.c create mode 100644 keyboards/viterbi/keymaps/fido/rules.mk delete mode 100644 keyboards/viterbi/split_rgb.c delete mode 100644 keyboards/viterbi/split_rgb.h diff --git a/keyboards/viterbi/keymaps/default/rules.mk b/keyboards/viterbi/keymaps/default/rules.mk index 1e5761278801..1e3cebb14515 100644 --- a/keyboards/viterbi/keymaps/default/rules.mk +++ b/keyboards/viterbi/keymaps/default/rules.mk @@ -1,5 +1 @@ RGBLIGHT_ENABLE = yes - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif diff --git a/keyboards/viterbi/keymaps/dwallace/rules.mk b/keyboards/viterbi/keymaps/dwallace/rules.mk index 1e5761278801..1e3cebb14515 100644 --- a/keyboards/viterbi/keymaps/dwallace/rules.mk +++ b/keyboards/viterbi/keymaps/dwallace/rules.mk @@ -1,5 +1 @@ RGBLIGHT_ENABLE = yes - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif diff --git a/keyboards/viterbi/keymaps/fido/config.h b/keyboards/viterbi/keymaps/fido/config.h new file mode 100644 index 000000000000..5cb10836521b --- /dev/null +++ b/keyboards/viterbi/keymaps/fido/config.h @@ -0,0 +1,45 @@ +/* +Copyright 2018 Danny Nguyen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +#ifndef MASTER_LEFT + #define MASTER_RIGHT +#endif +// #define EE_HANDS + +#define TAPPING_TERM 150 + +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 2 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +#endif diff --git a/keyboards/viterbi/keymaps/fido/keymap.c b/keyboards/viterbi/keymaps/fido/keymap.c new file mode 100644 index 000000000000..cffc236e1efd --- /dev/null +++ b/keyboards/viterbi/keymaps/fido/keymap.c @@ -0,0 +1,74 @@ +#include "viterbi.h" +#include "action_layer.h" +#include "eeconfig.h" +#ifdef RGBLIGHT_ENABLE +#include "rgblight.h" +#endif + +extern keymap_config_t keymap_config; + +#define _QWERTY 0 +#define _FN 1 + +#define KC_ KC_TRNS +#define _______ KC_TRNS + +#define KC_FN1 MO(_FN) +#define KC_WD_L LCTL(KC_LEFT) +#define KC_WD_R LCTL(KC_RGHT) +#define KC_RTOG RGB_TOG +#define KC_RMOD RGB_MOD +#define KC_RHUI RGB_HUI +#define KC_RHUD RGB_HUD +#define KC_RSAI RGB_SAI +#define KC_RSAD RGB_SAD +#define KC_RVAI RGB_VAI +#define KC_RVAD RGB_VAD +#define KC_RST RESET +#define KC_CTLZ LCTL(KC_Z) +#define KC_CTLX LCTL(KC_X) +#define KC_CTLC LCTL(KC_C) +#define KC_CTLV LCTL(KC_V) +#define KC_ATAB LALT(KC_TAB) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = KC_KEYMAP( + //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. + 1 , 2 , 3 , 4 , 5 , 6 ,ESC , DEL , 7 , 8 , 9 , 0 ,MINS,EQL , + //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| + RBRC, Q , W , E , R , T ,TAB , BSPC, Y , U , I , O , P ,LBRC, + //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| + GRV , A , S , D , F , G ,LALT, CAPS, H , J , K , L ,SCLN,QUOT, + //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| + BSLS, Z , X , C , V , B ,LSFT, RSFT, N , M ,COMM,DOT ,SLSH,ENT , + //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| + INS ,PSCR,MENU,LGUI,LCTL,SPC ,FN1 , FN1 ,SPC ,RCTL,RALT, , , + //`----+----+----+----+----+----+----' `----+----+----+----+----+----+----' + ), + + [_FN] = KC_KEYMAP( + //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. + F1 , F2 , F3 , F4 , F5 , F6 , , , F7 , F8 , F9 ,F10 ,F11 ,F12 , + //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| + ,PGUP,WD_L, UP ,WD_R, ,ATAB, ,RMOD,RHUI,RSAI,RVAI, , , + //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| + ,HOME,LEFT,DOWN,RGHT, , , , ,RHUD,RSAD,RVAD, , , + //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| + ,CTLZ,CTLX,CTLC,CTLV, , , ,MUTE,VOLD,VOLU, , , , + //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| + , , , , , , , , , , , , , + //`----+----+----+----+----+----+----' `----+----+----+----+----+----+----' + ) + +}; + +void led_set_user(uint8_t usb_led) { + #ifdef RGBLIGHT_ENABLE + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + rgblight_enable(); + } else { + rgblight_disable(); + } + #endif //RGBLIGHT_ENABLE +} diff --git a/keyboards/viterbi/keymaps/fido/rules.mk b/keyboards/viterbi/keymaps/fido/rules.mk new file mode 100644 index 000000000000..1e3cebb14515 --- /dev/null +++ b/keyboards/viterbi/keymaps/fido/rules.mk @@ -0,0 +1 @@ +RGBLIGHT_ENABLE = yes diff --git a/keyboards/viterbi/keymaps/hexwire/rules.mk b/keyboards/viterbi/keymaps/hexwire/rules.mk index 1e5761278801..1e3cebb14515 100644 --- a/keyboards/viterbi/keymaps/hexwire/rules.mk +++ b/keyboards/viterbi/keymaps/hexwire/rules.mk @@ -1,5 +1 @@ RGBLIGHT_ENABLE = yes - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif diff --git a/keyboards/viterbi/split_rgb.c b/keyboards/viterbi/split_rgb.c deleted file mode 100644 index 6d7cb44cf0d2..000000000000 --- a/keyboards/viterbi/split_rgb.c +++ /dev/null @@ -1,41 +0,0 @@ -#include -#include -#include "split_util.h" -#include "progmem.h" -#include "print.h" -#include "rgblight.h" - -#ifdef USE_I2C -# include "i2c.h" -#else // USE_SERIAL -# include "serial.h" -#endif - - -rgblight_config_t rgblight_config; - -void rgblight_slave_update(void) { - //rgblight_effect_christmas(); -} - - -void rgblight_set(void) { - if (rgblight_config.enable) { - #ifdef RGBW - ws2812_setleds_rgbw(led, RGBLED_NUM); - #else - ws2812_setleds(led, RGBLED_NUM); - #endif - } else { - for (uint8_t i = 0; i < RGBLED_NUM; i++) { - led[i].r = 0; - led[i].g = 0; - led[i].b = 0; - } - #ifdef RGBW - ws2812_setleds_rgbw(led, RGBLED_NUM); - #else - ws2812_setleds(led, RGBLED_NUM); - #endif - } -} diff --git a/keyboards/viterbi/split_rgb.h b/keyboards/viterbi/split_rgb.h deleted file mode 100644 index 5f552890afdb..000000000000 --- a/keyboards/viterbi/split_rgb.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef SPLIT_RGB_H -#define SPLIT_RGB_H - -void rgblight_slave_update(void); - -#endif From 141a52982e9d6d5bc290b831713b6d4f400fbf83 Mon Sep 17 00:00:00 2001 From: sparkyman215 <4030760+sparkyman215@users.noreply.github.com> Date: Thu, 1 Mar 2018 14:13:28 -0500 Subject: [PATCH 046/578] update ymdk96 files --- keyboards/ymd96/README.md | 25 +++++++++--------------- keyboards/ymd96/config.h | 5 ++++- keyboards/ymd96/keymaps/default/keymap.c | 18 ++++++++--------- 3 files changed, 22 insertions(+), 26 deletions(-) diff --git a/keyboards/ymd96/README.md b/keyboards/ymd96/README.md index a60323ab95f5..5de5062ecd4b 100644 --- a/keyboards/ymd96/README.md +++ b/keyboards/ymd96/README.md @@ -10,7 +10,7 @@ using Bootmapper Client to change any keyboard settings, since not all the USB report options are supported. Here is the default layout, it is fairly simple with a few function keys: -![YMD96 Layout](https://i.imgur.com/qCwE2ns.png) +![YMD96 Layout](https://i.imgur.com/3QnqVPn.png) If you have a different layout (since there were many options during the GB), please feel free to contribute! Keyboard maintainer: [Andrew](https://github.com/sparkyman215) @@ -29,27 +29,18 @@ This firmware was modified from [ps2avrGB](https://github.com/qmk/qmk_firmware/t ## Installing and Building -First, install the requirements. These commands are for OSX, but all you -need is the AVR toolchain and `bootloadHID` for flashing: - -``` -$ brew cask install crosspack-avr -$ brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb -``` - -In order to use the `./program` script, which can reboot the board into -the bootloader, you'll need Python 2 with PyUSB installed: - -``` -$ pip install pyusb -``` +Since the YMD96 uses an ATmega32a chip instead of the 32u4, you need to download [HIDBootFlash v.1.0](http://vusb.wikidot.com/project:hidbootflash) for Windows. If anyone knows of a Linux/Mac bootflasher that works, edit this readme! +On Windows, I use [MINGw](http://www.mingw.org/) to compile the keymaps. On Linux, you can simply use the terminal. +Once you have those two pieces of software: Build the keyboard with ``` -$ make ymd96:default +$ make ymd96-default ``` If you make your own layout, change the `default` word to whatever your layout is. +And flash the compiled hex file with `HIDBootFlash`. Simply put the board in flashing mode by plugging it in while holding control, and click `find device`. Then you can specify the .hex file and flash it to the device. + ## Troubleshooting From my experience, it's really hard to brick these boards. But these @@ -60,3 +51,5 @@ tricks have been useful when it got stuck in a weird scenario. done, just reflash the board with the original firmware. 2. Sometimes USB hubs can act weird, so try connecting the board directly to your computer or plugging/unplugging the USB hub. + +Lastly, if you still need help, you can add me on Discord and I'll be happy to help. diff --git a/keyboards/ymd96/config.h b/keyboards/ymd96/config.h index e0a2aa138329..8a0668ac9816 100644 --- a/keyboards/ymd96/config.h +++ b/keyboards/ymd96/config.h @@ -31,10 +31,13 @@ along with this program. If not, see . #define MATRIX_COLS 15 #define DIODE_DIRECTION ROW2COL -#define RGBLED_NUM 20 +#define RGB_DI_PIN C4 +#define RGBLED_NUM 18 #define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_VAL_STEP 20 #define NO_UART 1 +#define BOOTLOADHID_BOOTLOADER 1 /* key combination for command */ #define IS_COMMAND() (keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) diff --git a/keyboards/ymd96/keymaps/default/keymap.c b/keyboards/ymd96/keymaps/default/keymap.c index ae2b3ed19736..1ca3d22a34fd 100644 --- a/keyboards/ymd96/keymaps/default/keymap.c +++ b/keyboards/ymd96/keymaps/default/keymap.c @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Tab | Q | W | E | R | T | Y | U | I | O | P | { | } | \ | 7 | 8 | 9 | - | 18 keys * | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Return | 4 | 5 | 6 | + | 17 keys * | LShft | Z | X | C | V | B | N | M | , | . | / | RShft | 1 | 2 | 3 | En | 16 keys - * | Ctrl | Win | Alt | Space | Fn | Win | Left | Down | Up | Right| 0 | . | ter | 12 keys + * | Ctrl | Win | Alt | Space | Fn | Win | Left | Down | Up | Right| 0 | . | | 12 keys */ [_DEFLT] = KEYMAP( @@ -46,17 +46,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Layer 1, raise layer * | | | | | | | | | | | | | | | | | | | | * | | | | | | | | | | | | | | | | | | | - * | | | | | | | | | | | | | | | | | | | + * | | |rgb_up|rgb_dn|rgb_mo| | | | | | F22 | F23 | F24 | | | | | | * | | | | | | | | | | | | | | | | | | * | | | | | | | | | VolDn| VolUp| Mute | Play/Pause | | | | | - * | | | | | | | | | | | | | | + * | | | | | | |MPrev | | | MNext| | | | */ [_RAISE] = KEYMAP( - ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ - ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ - ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_F22, KC_F23, KC_F24, ______, ______, ______, ______, ______, \ - ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ - ______, ______, ______, ______, ______, ______, ______, ______, KC_VOLD,KC_VOLU, KC_MUTE, KC_MPLY, ______, ______, ______, ______, \ - ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______ \ + ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ + ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ + ______, ______, RGB_VAI, RGB_VAD, RGB_MOD, ______, ______, ______, ______, ______, KC_F22, KC_F23, KC_F24, ______, ______, ______, ______, ______, \ + ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ + ______, ______, ______, ______, ______, ______, ______, ______, KC_VOLD,KC_VOLU, KC_MUTE, KC_MPLY, ______, ______, ______, ______, \ + ______, ______, ______, ______, ______, ______, KC_MPRV, ______, ______, KC_MNXT, ______, ______ \ ) }; \ No newline at end of file From fdeb7f7665899cf52e66436a06774eae10646596 Mon Sep 17 00:00:00 2001 From: adiron Date: Fri, 9 Mar 2018 21:27:31 +0200 Subject: [PATCH 047/578] Added Contra keyboard support (#2501) * Added Contra keyboard support The configuration came from a source distribution of the firmware on the Contra's official website. I have also included a simple MIDI keymap. (And it works!) * Changes to Contra config and README * Readme has been changed as requested by jackhumbert * Config has been changed to add the Cartel and Contra names to the USB configuration. --- keyboards/contra/config.h | 58 +++++++++++++++++++++++++ keyboards/contra/contra.c | 1 + keyboards/contra/contra.h | 18 ++++++++ keyboards/contra/keymaps/dana/config.h | 30 +++++++++++++ keyboards/contra/keymaps/dana/keymap.c | 37 ++++++++++++++++ keyboards/contra/keymaps/dana/readme.md | 6 +++ keyboards/contra/keymaps/dana/rules.mk | 25 +++++++++++ keyboards/contra/readme.md | 16 +++++++ keyboards/contra/rules.mk | 58 +++++++++++++++++++++++++ 9 files changed, 249 insertions(+) create mode 100755 keyboards/contra/config.h create mode 100755 keyboards/contra/contra.c create mode 100755 keyboards/contra/contra.h create mode 100644 keyboards/contra/keymaps/dana/config.h create mode 100644 keyboards/contra/keymaps/dana/keymap.c create mode 100644 keyboards/contra/keymaps/dana/readme.md create mode 100644 keyboards/contra/keymaps/dana/rules.mk create mode 100644 keyboards/contra/readme.md create mode 100755 keyboards/contra/rules.mk diff --git a/keyboards/contra/config.h b/keyboards/contra/config.h new file mode 100755 index 000000000000..85077ed46ad1 --- /dev/null +++ b/keyboards/contra/config.h @@ -0,0 +1,58 @@ +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Cartel +#define PRODUCT Contra +#define DESCRIPTION Keyboard + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { F6, B3, B2, B6 } +#define MATRIX_COL_PINS { F4, F5, B5, B4, E6, D7, C6, D4, D0, D1, D2, D3 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* number of backlight levels */ + +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 0 +#endif + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* prevent stuck modifiers */ +#define PREVENT_STUCK_MODIFIERS + + +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 0 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif + +#endif diff --git a/keyboards/contra/contra.c b/keyboards/contra/contra.c new file mode 100755 index 000000000000..3ef66a9c0d5e --- /dev/null +++ b/keyboards/contra/contra.c @@ -0,0 +1 @@ +#include "contra.h" diff --git a/keyboards/contra/contra.h b/keyboards/contra/contra.h new file mode 100755 index 000000000000..e9f9c5418db5 --- /dev/null +++ b/keyboards/contra/contra.h @@ -0,0 +1,18 @@ +#ifndef KB_H +#define KB_H + +#include "quantum.h" + +#define KEYMAP( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 } \ +} + +#endif \ No newline at end of file diff --git a/keyboards/contra/keymaps/dana/config.h b/keyboards/contra/keymaps/dana/config.h new file mode 100644 index 000000000000..2846b5791050 --- /dev/null +++ b/keyboards/contra/keymaps/dana/config.h @@ -0,0 +1,30 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + + +#undef TAPPING_TERM +#define TAPPING_TERM 190 + +#define MUSIC_MASK (keycode != KC_NO) +#define MIDI_ADVANCED + +#endif diff --git a/keyboards/contra/keymaps/dana/keymap.c b/keyboards/contra/keymaps/dana/keymap.c new file mode 100644 index 000000000000..529491923f73 --- /dev/null +++ b/keyboards/contra/keymaps/dana/keymap.c @@ -0,0 +1,37 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "contra.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | ` | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Tab | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | Cmd |Lower | Space |Raise | Enter| Cmd | Alt |Ctrl | + * `-----------------------------------------------------------------------------------' + */ +[0] = { + { MI_C_4, MI_Cs_4, MI_D_4, MI_Ds_4, MI_E_4, MI_F_4, MI_Fs_4, MI_G_4, MI_Gs_4, MI_A_4, MI_As_4, MI_B_4 }, + { MI_C_3, MI_Cs_3, MI_D_3, MI_Ds_3, MI_E_3, MI_F_3, MI_Fs_3, MI_G_3, MI_Gs_3, MI_A_3, MI_As_3, MI_B_3 }, + { MI_C_2, MI_Cs_2, MI_D_2, MI_Ds_2, MI_E_2, MI_F_2, MI_Fs_2, MI_G_2, MI_Gs_2, MI_A_2, MI_As_2, MI_B_2 }, + { MI_C_1, MI_Cs_1, MI_D_1, MI_Ds_1, MI_E_1, MI_F_1, MI_Fs_1, MI_G_1, MI_Gs_1, MI_A_1, MI_As_1, MI_B_1 } +} +}; + + + + diff --git a/keyboards/contra/keymaps/dana/readme.md b/keyboards/contra/keymaps/dana/readme.md new file mode 100644 index 000000000000..75b4582d4afc --- /dev/null +++ b/keyboards/contra/keymaps/dana/readme.md @@ -0,0 +1,6 @@ +# Dana musical MIDI keyboard layout + +Has the contra mapped as a MIDI keyboard, where each row is an octave. + +The keyboard has only MIDI, nothing else! + diff --git a/keyboards/contra/keymaps/dana/rules.mk b/keyboards/contra/keymaps/dana/rules.mk new file mode 100644 index 000000000000..1198f378a8e2 --- /dev/null +++ b/keyboards/contra/keymaps/dana/rules.mk @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = no # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = yes # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/contra/readme.md b/keyboards/contra/readme.md new file mode 100644 index 000000000000..a83228507dc3 --- /dev/null +++ b/keyboards/contra/readme.md @@ -0,0 +1,16 @@ +CONTRA +=== + +![CONTRA](https://cartel.ltd/wp-content/uploads/2018/01/img_3209.jpg) + +A 40% keyboard by + +Keyboard Maintainer: The QMK Community +Hardware Supported: CONTRA +Hardware Availability: [CARTEL](https://cartel.ltd/projects/contra/) + +Make example for this keyboard (after setting up your build environment): + + make contra:dana + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/contra/rules.mk b/keyboards/contra/rules.mk new file mode 100755 index 000000000000..ca2945e63b25 --- /dev/null +++ b/keyboards/contra/rules.mk @@ -0,0 +1,58 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE = no # MIDI controls +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 From 0b82d08e8dd3cf7c887489a0e696b2cac9ffc4d9 Mon Sep 17 00:00:00 2001 From: Jon Nall Date: Fri, 9 Mar 2018 19:52:04 -0800 Subject: [PATCH 048/578] Fixed exit status check for brew --- util/macos_install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/macos_install.sh b/util/macos_install.sh index 551b84b5aa3a..ec8502985a0f 100755 --- a/util/macos_install.sh +++ b/util/macos_install.sh @@ -1,6 +1,6 @@ #!/bin/bash -if brew --version 2>&1 > /dev/null; then +if ! brew --version 2>&1 > /dev/null; then echo "Error! Homebrew not installed or broken!" echo -n "Would you like to install homebrew now? [y/n] " while read ANSWER; do From bfa34d02b0d6f02c515774a8c566937fd1de9911 Mon Sep 17 00:00:00 2001 From: Joe Wasson Date: Sun, 11 Mar 2018 17:58:02 -0700 Subject: [PATCH 049/578] Add default keymap for contra --- keyboards/contra/keymaps/default/config.h | 42 ++++ keyboards/contra/keymaps/default/keymap.c | 264 +++++++++++++++++++++ keyboards/contra/keymaps/default/readme.md | 2 + 3 files changed, 308 insertions(+) create mode 100644 keyboards/contra/keymaps/default/config.h create mode 100644 keyboards/contra/keymaps/default/keymap.c create mode 100644 keyboards/contra/keymaps/default/readme.md diff --git a/keyboards/contra/keymaps/default/config.h b/keyboards/contra/keymaps/default/config.h new file mode 100644 index 000000000000..a1635f2bab5f --- /dev/null +++ b/keyboards/contra/keymaps/default/config.h @@ -0,0 +1,42 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PLANCK_SOUND) + // #define STARTUP_SONG SONG(NO_SOUND) + + #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(COLEMAK_SOUND), \ + SONG(DVORAK_SOUND) \ + } +#endif + +#define MUSIC_MASK (keycode != KC_NO) + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ + +#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 2 + +#endif \ No newline at end of file diff --git a/keyboards/contra/keymaps/default/keymap.c b/keyboards/contra/keymaps/default/keymap.c new file mode 100644 index 000000000000..176b2508aa42 --- /dev/null +++ b/keyboards/contra/keymaps/default/keymap.c @@ -0,0 +1,264 @@ +/* Copyright 2015-2017 Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "contra.h" +#include "action_layer.h" + +extern keymap_config_t keymap_config; + +enum planck_layers { + _QWERTY, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _PLOVER, + _ADJUST +}; + +enum planck_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + PLOVER, + LOWER, + RAISE, + BACKLIT, + EXT_PLV +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = { + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_PLOVER] = { + {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, + {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, + {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {_______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL }, + {_______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + + +}; + +#ifdef AUDIO_ENABLE + float plover_song[][2] = SONG(PLOVER_SOUND); + float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + PORTE &= ~(1<<6); + } else { + unregister_code(KC_RSFT); + PORTE |= (1<<6); + } + return false; + break; + case PLOVER: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_SONG(plover_song); + #endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + break; + case EXT_PLV: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(plover_gb_song); + #endif + layer_off(_PLOVER); + } + return false; + break; + } + return true; +} diff --git a/keyboards/contra/keymaps/default/readme.md b/keyboards/contra/keymaps/default/readme.md new file mode 100644 index 000000000000..80aba1095487 --- /dev/null +++ b/keyboards/contra/keymaps/default/readme.md @@ -0,0 +1,2 @@ +# The Default Contra Layout + From 2dacf25f284551fa423bfdb309b4ad99e4253095 Mon Sep 17 00:00:00 2001 From: Joe Wasson Date: Sun, 11 Mar 2018 17:58:23 -0700 Subject: [PATCH 050/578] Add layout support for contra. --- keyboards/contra/contra.h | 48 +++++++++++++++---- keyboards/contra/rules.mk | 3 ++ keyboards/planck/rules.mk | 5 +- .../community/ortho_4x12/bakingpy/rules.mk | 2 +- 4 files changed, 45 insertions(+), 13 deletions(-) diff --git a/keyboards/contra/contra.h b/keyboards/contra/contra.h index e9f9c5418db5..873429b53a00 100755 --- a/keyboards/contra/contra.h +++ b/keyboards/contra/contra.h @@ -3,16 +3,44 @@ #include "quantum.h" -#define KEYMAP( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ - K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ - K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 \ +#define LAYOUT_grid( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 \ ) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 } \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 } \ } -#endif \ No newline at end of file +#define LAYOUT_mit( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ + K300, K301, K302, K303, K304, K305, K307, K308, K309, K310, K311 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ + { K300, K301, K302, K303, K304, K305, K305, K307, K308, K309, K310, K311 } \ +} + +#define KC_LAYOUT_grid( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 \ +) \ + LAYOUT_grid( \ + KC_##K000, KC_##K001, KC_##K002, KC_##K003, KC_##K004, KC_##K005, KC_##K006, KC_##K007, KC_##K008, KC_##K009, KC_##K010, KC_##K011, \ + KC_##K100, KC_##K101, KC_##K102, KC_##K103, KC_##K104, KC_##K105, KC_##K106, KC_##K107, KC_##K108, KC_##K109, KC_##K110, KC_##K111, \ + KC_##K200, KC_##K201, KC_##K202, KC_##K203, KC_##K204, KC_##K205, KC_##K206, KC_##K207, KC_##K208, KC_##K209, KC_##K210, KC_##K211, \ + KC_##K300, KC_##K301, KC_##K302, KC_##K303, KC_##K304, KC_##K305, KC_##K306, KC_##K307, KC_##K308, KC_##K309, KC_##K310, KC_##K311 \ + ) +#define KEYMAP LAYOUT_grid +#define LAYOUT_ortho_4x12 LAYOUT_grid +#define KC_LAYOUT_ortho_4x12 KC_LAYOUT_grid + +#endif diff --git a/keyboards/contra/rules.mk b/keyboards/contra/rules.mk index ca2945e63b25..a926dfc03ed4 100755 --- a/keyboards/contra/rules.mk +++ b/keyboards/contra/rules.mk @@ -56,3 +56,6 @@ MIDI_ENABLE = no # MIDI controls UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 + +LAYOUTS = ortho_4x12 planck_mit planck_grid +LAYOUTS_HAS_RGB = no diff --git a/keyboards/planck/rules.mk b/keyboards/planck/rules.mk index 4d882d0b0bc7..511c06d70865 100644 --- a/keyboards/planck/rules.mk +++ b/keyboards/planck/rules.mk @@ -36,7 +36,7 @@ F_USB = $(F_CPU) # Bootloader # This definition is optional, and if your keyboard supports multiple bootloaders of -# different sizes, comment this out, and the correct address will be loaded +# different sizes, comment this out, and the correct address will be loaded # automatically (+60). See bootloader.mk for all options. ifeq ($(strip $(KEYBOARD)), planck/rev3) BOOTLOADER = atmel-dfu @@ -55,7 +55,7 @@ endif OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # Build Options -# change to "no" to disable the options, or define them in the Makefile in +# change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) @@ -76,5 +76,6 @@ API_SYSEX_ENABLE = no SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend LAYOUTS = ortho_4x12 planck_mit planck_grid +LAYOUTS_HAS_RGB = no DEFAULT_FOLDER = planck/rev5 diff --git a/layouts/community/ortho_4x12/bakingpy/rules.mk b/layouts/community/ortho_4x12/bakingpy/rules.mk index 45ad262393fe..02899eafeb52 100644 --- a/layouts/community/ortho_4x12/bakingpy/rules.mk +++ b/layouts/community/ortho_4x12/bakingpy/rules.mk @@ -1,4 +1,4 @@ # Enable RGB if not a Planck -ifeq (,$(findstring planck,$(KEYBOARD))) +ifeq ($(LAYOUTS_HAS_RGB),yes) RGBLIGHT_ENABLE = yes endif From 4464d90f4d3e64180f619d0663b8dd8f9b29b7e9 Mon Sep 17 00:00:00 2001 From: Brian Choromanski Date: Mon, 12 Mar 2018 18:18:40 -0400 Subject: [PATCH 051/578] Fixed plank keymaps so that they will compile for planck light --- keyboards/planck/keymaps/aviator/config.h | 2 ++ keyboards/planck/keymaps/aviator/keymap.c | 20 +++++++++----- keyboards/planck/keymaps/cbbrowne/config.h | 3 ++ keyboards/planck/keymaps/cbbrowne/keymap.c | 4 +-- keyboards/planck/keymaps/khord/config.h | 2 ++ keyboards/planck/keymaps/khord/keymap.c | 16 ++++++++--- keyboards/planck/keymaps/pvc/config.h | 4 +++ keyboards/planck/keymaps/pvc/keymap.c | 32 ++++++++++++++++------ keyboards/planck/keymaps/zrichard/config.h | 4 +++ keyboards/planck/keymaps/zrichard/keymap.c | 32 ++++++++++++++++------ 10 files changed, 90 insertions(+), 29 deletions(-) diff --git a/keyboards/planck/keymaps/aviator/config.h b/keyboards/planck/keymaps/aviator/config.h index 81232367dbac..5bd98a74b79f 100644 --- a/keyboards/planck/keymaps/aviator/config.h +++ b/keyboards/planck/keymaps/aviator/config.h @@ -3,8 +3,10 @@ #include "config_common.h" +#ifndef LIGHT_CONFIG_H #define BACKLIGHT_BREATHING #define BREATHING_PERIOD 3 +#endif #ifdef AUDIO_ENABLE #define STARTUP_SONG SONG(PLANCK_SOUND) diff --git a/keyboards/planck/keymaps/aviator/keymap.c b/keyboards/planck/keymaps/aviator/keymap.c index 8ce9a8e174bb..889fd72903c5 100644 --- a/keyboards/planck/keymaps/aviator/keymap.c +++ b/keyboards/planck/keymaps/aviator/keymap.c @@ -126,14 +126,16 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case QWERTY: if (record->event.pressed) { set_single_persistent_default_layer(_QWERTY); - breathing_self_disable(); + #ifdef BACKLIGHT_BREATHING + breathing_self_disable(); + #endif } return false; break; case DATA: if (record->event.pressed) { set_single_persistent_default_layer(_DATA); - #ifdef BACKLIGHT_ENABLE + #ifdef BACKLIGHT_BREATHING breathing_enable(); #endif } @@ -144,7 +146,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { layer_on(_LOWER); uint8_t default_layer = biton32(default_layer_state); if (default_layer == _QWERTY) { - #ifdef BACKLIGHT_ENABLE + #ifdef BACKLIGHT_BREATHING breathing_enable(); #endif } @@ -153,7 +155,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { layer_off(_LOWER); uint8_t default_layer = biton32(default_layer_state); if (default_layer == _QWERTY) { - breathing_self_disable(); + #ifdef BACKLIGHT_BREATHING + breathing_self_disable(); + #endif } update_tri_layer(_LOWER, _RAISE, _ADJUST); } @@ -164,7 +168,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { layer_on(_RAISE); uint8_t default_layer = biton32(default_layer_state); if (default_layer == _QWERTY) { - #ifdef BACKLIGHT_ENABLE + #ifdef BACKLIGHT_BREATHING breathing_enable(); #endif } @@ -173,7 +177,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { layer_off(_RAISE); uint8_t default_layer = biton32(default_layer_state); if (default_layer == _QWERTY) { - breathing_self_disable(); + #ifdef BACKLIGHT_BREATHING + breathing_self_disable(); + #endif } update_tri_layer(_LOWER, _RAISE, _ADJUST); } @@ -182,7 +188,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case BACKLIT: if (record->event.pressed) { register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE + #ifdef BACKLIGHT_BREATHING backlight_step(); #endif } else { diff --git a/keyboards/planck/keymaps/cbbrowne/config.h b/keyboards/planck/keymaps/cbbrowne/config.h index d92790635ef5..0bb508385c69 100644 --- a/keyboards/planck/keymaps/cbbrowne/config.h +++ b/keyboards/planck/keymaps/cbbrowne/config.h @@ -27,7 +27,10 @@ #include "../../config.h" #define LEADER_TIMEOUT 300 + +#ifndef LIGHT_CONFIG_H #define BACKLIGHT_BREATHING +#endif /* cbbrowne user configuration */ diff --git a/keyboards/planck/keymaps/cbbrowne/keymap.c b/keyboards/planck/keymaps/cbbrowne/keymap.c index 9bae6fb50fcc..eb8d422f2d3b 100644 --- a/keyboards/planck/keymaps/cbbrowne/keymap.c +++ b/keyboards/planck/keymaps/cbbrowne/keymap.c @@ -219,7 +219,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { layer_on(_RAISE); -#ifdef BACKLIGHT_ENABLE +#ifdef BACKLIGHT_BREATHING breathing_period_set(2); breathing_pulse(); #endif @@ -235,7 +235,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { layer_on(_LOWER); -#ifdef BACKLIGHT_ENABLE +#ifdef BACKLIGHT_BREATHING breathing_period_set(2); breathing_pulse(); #endif diff --git a/keyboards/planck/keymaps/khord/config.h b/keyboards/planck/keymaps/khord/config.h index 43c8001cf780..955f6a1136d4 100644 --- a/keyboards/planck/keymaps/khord/config.h +++ b/keyboards/planck/keymaps/khord/config.h @@ -12,7 +12,9 @@ } #endif +#ifndef LIGHT_CONFIG_H #define BACKLIGHT_BREATHING +#endif #define TAPPING_TERM 150 #define MUSIC_MASK (keycode != KC_NO) diff --git a/keyboards/planck/keymaps/khord/keymap.c b/keyboards/planck/keymaps/khord/keymap.c index 642936909949..1ecab9bfb61f 100644 --- a/keyboards/planck/keymaps/khord/keymap.c +++ b/keyboards/planck/keymaps/khord/keymap.c @@ -123,22 +123,30 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch(id) { case MACRO_BREATH_TOGGLE: if (record->event.pressed) { - breathing_toggle(); + #ifdef BACKLIGHT_BREATHING + breathing_toggle(); + #endif } break; case MACRO_BREATH_SPEED_INC: if (record->event.pressed) { - breathing_period_inc(); + #ifdef BACKLIGHT_BREATHING + breathing_period_inc(); + #endif } break; case MACRO_BREATH_SPEED_DEC: if (record->event.pressed) { - breathing_period_dec(); + #ifdef BACKLIGHT_BREATHING + breathing_period_dec(); + #endif } break; case MACRO_BREATH_DEFAULT: if (record->event.pressed) { - breathing_period_default(); + #ifdef BACKLIGHT_BREATHING + breathing_period_default(); + #endif } break; } diff --git a/keyboards/planck/keymaps/pvc/config.h b/keyboards/planck/keymaps/pvc/config.h index 5394237357c4..11204358bd76 100644 --- a/keyboards/planck/keymaps/pvc/config.h +++ b/keyboards/planck/keymaps/pvc/config.h @@ -25,9 +25,11 @@ along with this program. If not, see . #define MATRIX_COLS 12 /* Planck PCB default pin-out */ +#ifndef LIGHT_CONFIG_H #define MATRIX_ROW_PINS { D0, D5, B5, B6 } #define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } #define UNUSED_PINS +#endif /* * MIDI options @@ -69,7 +71,9 @@ along with this program. If not, see . /* Only print user print statements */ #define USER_PRINT +#ifndef LIGHT_CONFIG_H #define BACKLIGHT_BREATHING +#endif /* disable action features */ //#define NO_ACTION_LAYER diff --git a/keyboards/planck/keymaps/pvc/keymap.c b/keyboards/planck/keymaps/pvc/keymap.c index a0981573ab7e..2e81dcad6aa2 100644 --- a/keyboards/planck/keymaps/pvc/keymap.c +++ b/keyboards/planck/keymaps/pvc/keymap.c @@ -316,28 +316,36 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case MACRO_BREATH_TOGGLE: if (record->event.pressed) { + #ifdef BACKLIGHT_BREATHING breathing_toggle(); + #endif } break; case MACRO_BREATH_SPEED_INC: if (record->event.pressed) { + #ifdef BACKLIGHT_BREATHING breathing_period_inc(); + #endif } break; case MACRO_BREATH_SPEED_DEC: if (record->event.pressed) { + #ifdef BACKLIGHT_BREATHING breathing_period_dec(); + #endif } break; case MACRO_BREATH_DEFAULT: if (record->event.pressed) { + #ifdef BACKLIGHT_BREATHING breathing_period_default(); + #endif } break; @@ -352,8 +360,10 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { layer_on(LAYER_UPPER); - breathing_period_set(2); - breathing_pulse(); + #ifdef BACKLIGHT_BREATHING + breathing_period_set(2); + breathing_pulse(); + #endif update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); } else @@ -367,8 +377,10 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { layer_on(LAYER_LOWER); - breathing_period_set(2); - breathing_pulse(); + #ifdef BACKLIGHT_BREATHING + breathing_period_set(2); + breathing_pulse(); + #endif update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); } else @@ -381,14 +393,18 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case MACRO_FUNCTION: if (record->event.pressed) { - breathing_period_set(3); - breathing_enable(); + #ifdef BACKLIGHT_BREATHING + breathing_period_set(3); + breathing_enable(); + #endif layer_on(LAYER_FUNCTION); } else { - breathing_period_set(1); - breathing_self_disable(); + #ifdef BACKLIGHT_BREATHING + breathing_period_set(1); + breathing_self_disable(); + #endif layer_off(LAYER_FUNCTION); } break; diff --git a/keyboards/planck/keymaps/zrichard/config.h b/keyboards/planck/keymaps/zrichard/config.h index aa8991e01b7b..216801c85531 100755 --- a/keyboards/planck/keymaps/zrichard/config.h +++ b/keyboards/planck/keymaps/zrichard/config.h @@ -26,9 +26,11 @@ along with this program. If not, see . #define MATRIX_COLS 12 /* Planck PCB default pin-out */ +#ifndef LIGHT_CONFIG_H #define MATRIX_ROW_PINS { D0, D5, B5, B6 } #define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } #define UNUSED_PINS +#endif /* Prevent use of disabled MIDI features in the keymap */ //#define MIDI_ENABLE_STRICT 1 @@ -64,7 +66,9 @@ along with this program. If not, see . /* Only print user print statements */ #define USER_PRINT +#ifndef LIGHT_CONFIG_H #define BACKLIGHT_BREATHING +#endif /* disable action features */ //#define NO_ACTION_LAYER diff --git a/keyboards/planck/keymaps/zrichard/keymap.c b/keyboards/planck/keymaps/zrichard/keymap.c index bb4e19fa0867..9ae4c7b740d8 100755 --- a/keyboards/planck/keymaps/zrichard/keymap.c +++ b/keyboards/planck/keymaps/zrichard/keymap.c @@ -325,28 +325,36 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case MACRO_BREATH_TOGGLE: if (record->event.pressed) { + #ifdef BACKLIGHT_BREATHING breathing_toggle(); + #endif } break; case MACRO_BREATH_SPEED_INC: if (record->event.pressed) { + #ifdef BACKLIGHT_BREATHING breathing_period_inc(); + #endif } break; case MACRO_BREATH_SPEED_DEC: if (record->event.pressed) { + #ifdef BACKLIGHT_BREATHING breathing_period_dec(); + #endif } break; case MACRO_BREATH_DEFAULT: if (record->event.pressed) { + #ifdef BACKLIGHT_BREATHING breathing_period_default(); + #endif } break; @@ -361,8 +369,10 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { layer_on(LAYER_UPPER); - breathing_period_set(2); - breathing_pulse(); + #ifdef BACKLIGHT_BREATHING + breathing_period_set(2); + breathing_pulse(); + #endif update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); } else @@ -376,8 +386,10 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { layer_on(LAYER_LOWER); - breathing_period_set(2); - breathing_pulse(); + #ifdef BACKLIGHT_BREATHING + breathing_period_set(2); + breathing_pulse(); + #endif update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); } else @@ -390,14 +402,18 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case MACRO_FUNCTION: if (record->event.pressed) { - breathing_period_set(3); - breathing_enable(); + #ifdef BACKLIGHT_BREATHING + breathing_period_set(3); + breathing_enable(); + #endif layer_on(LAYER_FUNCTION); } else { - breathing_period_set(1); - breathing_self_disable(); + #ifdef BACKLIGHT_BREATHING + breathing_period_set(1); + breathing_self_disable(); + #endif layer_off(LAYER_FUNCTION); } break; From e8e999dcc0d99fef28031f7b262102536f16da00 Mon Sep 17 00:00:00 2001 From: uplus Date: Mon, 12 Mar 2018 17:33:31 +0900 Subject: [PATCH 052/578] Fix preonic/rev2 bootloader config --- keyboards/preonic/rev2/info.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/keyboards/preonic/rev2/info.json b/keyboards/preonic/rev2/info.json index c8b9b16a7ee1..406f80ef1cbc 100644 --- a/keyboards/preonic/rev2/info.json +++ b/keyboards/preonic/rev2/info.json @@ -1,3 +1,4 @@ { - "identifier": "FEED:6061:0002" -} \ No newline at end of file + "identifier": "FEED:6061:0002", + "bootloader": "qmk-dfu" +} From added1f062345a365c7004b9c17a7c1a473ab4bd Mon Sep 17 00:00:00 2001 From: ajp10304 Date: Tue, 13 Mar 2018 06:22:35 +0000 Subject: [PATCH 053/578] Planck ajp10304 (#2519) * Planck ajp10304 layout clean up * Planck ajp10304 layout add Mac layer extensions * JJ40 ajp10304 layout add Mac layer extensions --- keyboards/jj40/keymaps/ajp10304/keymap.c | 108 ++++++++++++++++---- keyboards/jj40/keymaps/ajp10304/readme.md | 40 ++++---- keyboards/planck/keymaps/ajp10304/keymap.c | 105 ++++++++++++++++--- keyboards/planck/keymaps/ajp10304/readme.md | 4 +- 4 files changed, 203 insertions(+), 54 deletions(-) diff --git a/keyboards/jj40/keymaps/ajp10304/keymap.c b/keyboards/jj40/keymaps/ajp10304/keymap.c index e1c7e6b470f3..be5ee9e3681e 100644 --- a/keyboards/jj40/keymaps/ajp10304/keymap.c +++ b/keyboards/jj40/keymaps/ajp10304/keymap.c @@ -5,22 +5,28 @@ extern keymap_config_t keymap_config; -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QWERTY 0 -#define _LOWER 1 -#define _RAISE 2 -#define _FUNC 3 -#define _ADJUST 16 -#define _DYN 6 - -enum planck_keycodes { +enum jj40_layers { + _QWERTY, + _MAC, + _LOWER, + _MLWR, + _RAISE, + _MRSE, + _FUNC, + _MFNC, + _ADJUST, + _DYN +}; + +enum jj40_keycodes { QWERTY = SAFE_RANGE, + MAC, FUNC, + MFNC, LOWER, + MLWR, RAISE, + MRSE, DYNAMIC_MACRO_RANGE }; @@ -117,10 +123,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = KEYMAP(\ - M(0), RESET, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,\ - KC_CAPS, _______, _______, _______, _______, _______, _______, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ ,\ - _______, _______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ ,\ - _______, _______, _______, _______, _______, _______, _______, _______, MO(_DYN), _______, _______, _______ \ + M(0), RESET, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,\ + KC_CAPS, _______, _______, _______, _______, _______, _______, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ ,\ + TG(_MAC), _______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ ,\ + _______, _______, _______, _______, _______, _______, _______, _______, MO(_DYN), _______, _______, _______ \ ), /* DYN: Macro Recording and Playback @@ -139,11 +145,38 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______,\ _______, _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, _______, _______, _______, _______, _______,\ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______\ +), + +[_MAC]= KEYMAP(\ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\ + _______, _______, _______, _______, MLWR, _______, _______, MRSE, _______, _______, _______, _______\ +), + +[_MLWR] = KEYMAP(\ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\ + _______, KC_GRAVE, KC_NONUS_BSLASH, _______, _______, _______, _______, _______, _______, _______, _______, _______,\ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______\ +), + +[_MRSE] = KEYMAP(\ + _______, _______, M(2), _______, _______, _______, _______, _______, _______, _______, _______, _______ ,\ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_EQL) ,\ + _______, _______, _______, _______, _______, _______, LALT(KC_LEFT), _______, _______, _______, LALT(KC_RIGHT), LGUI(KC_MINS) ,\ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +), + +[_MFNC]= KEYMAP(\ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,\ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT) ,\ + _______, KC_GRAVE, KC_NONUS_BSLASH, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,\ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ ) }; - void persistant_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); @@ -179,10 +212,42 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; - } + case MLWR: + if (record->event.pressed) { + layer_on(_LOWER); + layer_on(_MLWR); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + layer_off(_MLWR); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + case MRSE: + if (record->event.pressed) { + layer_on(_RAISE); + layer_on(_MRSE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + layer_off(_MRSE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + case MFNC: + if (record->event.pressed) { + layer_on(_FUNC); + layer_on(_MFNC); + } else { + layer_off(_FUNC); + layer_off(_MFNC); + } + return false; + } return true; } + const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch(id) { // These would trigger when you hit a key mapped as M(0) @@ -201,6 +266,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { END ); } + case 2: // Word Select - MAC + if (record->event.pressed) { + return MACRO( + DOWN(KC_LALT), DOWN(KC_RIGHT), UP(KC_RIGHT), DOWN(KC_LSFT), DOWN(KC_LEFT), UP(KC_LEFT), UP(KC_LSFT), UP(KC_LALT), + END + ); + } } return MACRO_NONE; }; diff --git a/keyboards/jj40/keymaps/ajp10304/readme.md b/keyboards/jj40/keymaps/ajp10304/readme.md index d35237c5d6f2..406bb6ba2fa2 100644 --- a/keyboards/jj40/keymaps/ajp10304/readme.md +++ b/keyboards/jj40/keymaps/ajp10304/readme.md @@ -1,12 +1,12 @@ # AJP10304 Custom JJ40 Layout ###Based on my Planck layout of the same name. -**Note:** In the tables below where there are two characters on a key, +**Note:** In the tables below where there are two characters on a key, the second is the output when shift is applied. - + **Note:** The below tables assume a UK layout. -##### Main Qwerty Layer +##### Main Qwerty Layer * Tab: when held, operates as shift. * Enter: when held, operates as shift. @@ -33,7 +33,7 @@ Activated when `fn` held in the above `qwerty` layer. Activated when `Lower` is held in the above `qwerty` layer. * Numbers are along the top row, their shifted counterparts are on row 2. -* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word. +* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word. * WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word. | | | | | | | | | | | | | @@ -42,45 +42,47 @@ Activated when `Lower` is held in the above `qwerty` layer. | ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks| | Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift | | | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play | - + ##### Raise Layer Activated when `Raise` is held in the above `qwerty` layer. - + * Preferred layer for typing brackets. * Allows for cursor navigation to be used solely with the right hand. * WRDSEL: Select the word where the cursor is. * |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping. -| | | | | | | | | | | | | -| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:| +| | | | | | | | | | | | | +| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:| | ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC| | ` | | | ( | ) | | | HOME | UP | END | |ZOOM +| | | | | { | } | ||<| LEFT | DOWN |RIGHT |>||ZOOM -| -| | | | | | Alt | Enter |Raise | | | | | - +| | | | | | Alt | Enter |Raise | | | | | + ##### Lower + Raise Activated when `Lower` and `Raise` are held together the above `qwerty` layer. -* Audio controls in the same position as cursor keys from the `Raise` layer. +* Audio controls in the same position as cursor keys from the `Raise` layer. * ????: Runs a macro for outputting a text string. Do not use this store passwords. * Reset: Enter bootloader for flashing firmware to the keyboard. * CAPS: Toggle caps lock. * DYN: Enter `DYN` layer. +* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER, +MRSE with RAISE and MFNC with FUNC respectively. -| | | | | | | | | | | | | -| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| +| | | | | | | | | | | | | +| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| | ???? | Reset|Qwerty| | | | | | | | | Del | | CAPS | | | | | | | Mute | Vol+ | Play | | | -| | | | | | | | Prev | Vol- | Next | | | +| MAC | | | | | | | Prev | Vol- | Next | | | | | | | | | | | | DYN | | | | - + ##### DYN Activated when `DYN` held along with `Lower` and `Raise` -Allows recording of macros. To start recording the macro, press either REC1 or REC2. -To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2. +Allows recording of macros. To start recording the macro, press either REC1 or REC2. +To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2. -| | | | | | | | | | | | | -| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| +| | | | | | | | | | | | | +| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| | | | | | | REC1 | REC2 | | | | | | | | | | | | PLAY1| PLAY2| | | | | | | | | | | | STOP | STOP | | | | | | diff --git a/keyboards/planck/keymaps/ajp10304/keymap.c b/keyboards/planck/keymaps/ajp10304/keymap.c index da1b5e8edada..18a3f486d1f6 100644 --- a/keyboards/planck/keymaps/ajp10304/keymap.c +++ b/keyboards/planck/keymaps/ajp10304/keymap.c @@ -5,22 +5,28 @@ extern keymap_config_t keymap_config; -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QWERTY 0 -#define _LOWER 1 -#define _RAISE 2 -#define _FUNC 3 -#define _ADJUST 16 -#define _DYN 6 +enum planck_layers { + _QWERTY, + _MAC, + _LOWER, + _MLWR, + _RAISE, + _MRSE, + _FUNC, + _MFNC, + _ADJUST, + _DYN +}; enum planck_keycodes { QWERTY = SAFE_RANGE, + MAC, FUNC, + MFNC, LOWER, + MLWR, RAISE, + MRSE, DYNAMIC_MACRO_RANGE }; @@ -117,10 +123,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = { - {M(0), RESET, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL }, - {KC_CAPS, _______, _______, _______, _______, _______, _______, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ }, - {_______, _______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ }, - {_______, _______, _______, _______, _______, _______, _______, _______, MO(_DYN), _______, _______, _______ } + {M(0), RESET, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL }, + {KC_CAPS, _______, _______, _______, _______, _______, _______, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ }, + {TG(_MAC), _______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ }, + {_______, _______, _______, _______, _______, _______, _______, _______, MO(_DYN), _______, _______, _______ } }, /* DYN: Macro Recording and Playback @@ -141,8 +147,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, -}; +[_MAC]= { + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, MLWR, _______, _______, MRSE, _______, _______, _______, _______} +}, + +[_MLWR] = { + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, KC_GRAVE, KC_NONUS_BSLASH, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +}, + +[_MRSE] = { + {_______, _______, M(2), _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_EQL) }, + {_______, _______, _______, _______, _______, _______, LALT(KC_LEFT), _______, _______, _______, LALT(KC_RIGHT), LGUI(KC_MINS) }, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ } +}, + +[_MFNC]= { + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT) }, + {_______, KC_GRAVE, KC_NONUS_BSLASH, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ } +}, + +}; void persistant_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); @@ -179,10 +213,42 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; - } + case MLWR: + if (record->event.pressed) { + layer_on(_LOWER); + layer_on(_MLWR); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + layer_off(_MLWR); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + case MRSE: + if (record->event.pressed) { + layer_on(_RAISE); + layer_on(_MRSE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + layer_off(_MRSE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + case MFNC: + if (record->event.pressed) { + layer_on(_FUNC); + layer_on(_MFNC); + } else { + layer_off(_FUNC); + layer_off(_MFNC); + } + return false; + } return true; } + const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch(id) { // These would trigger when you hit a key mapped as M(0) @@ -201,6 +267,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { END ); } + case 2: // Word Select - MAC + if (record->event.pressed) { + return MACRO( + DOWN(KC_LALT), DOWN(KC_RIGHT), UP(KC_RIGHT), DOWN(KC_LSFT), DOWN(KC_LEFT), UP(KC_LEFT), UP(KC_LSFT), UP(KC_LALT), + END + ); + } } return MACRO_NONE; }; diff --git a/keyboards/planck/keymaps/ajp10304/readme.md b/keyboards/planck/keymaps/ajp10304/readme.md index 8f9edbcc2db1..69b08ed511a5 100644 --- a/keyboards/planck/keymaps/ajp10304/readme.md +++ b/keyboards/planck/keymaps/ajp10304/readme.md @@ -65,12 +65,14 @@ Activated when `Lower` and `Raise` are held together the above `qwerty` layer. * Reset: Enter bootloader for flashing firmware to the keyboard. * CAPS: Toggle caps lock. * DYN: Enter `DYN` layer. +* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER, +MRSE with RAISE and MFNC with FUNC respectively. | | | | | | | | | | | | | | :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| | ???? | Reset|Qwerty| | | | | | | | | Del | | CAPS | | | | | | | Mute | Vol+ | Play | | | -| | | | | | | | Prev | Vol- | Next | | | +| MAC | | | | | | | Prev | Vol- | Next | | | | | | | | | | | | DYN | | | | ##### DYN From 9db908f7d130ce0996e00f7059fd3688ee163232 Mon Sep 17 00:00:00 2001 From: "U-LANDSRAAD\\drashna" Date: Wed, 14 Mar 2018 18:50:17 -0700 Subject: [PATCH 054/578] Fix Preonic layout --- keyboards/preonic/preonic.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/preonic/preonic.h b/keyboards/preonic/preonic.h index aa1d93d84c34..1977bde69725 100644 --- a/keyboards/preonic/preonic.h +++ b/keyboards/preonic/preonic.h @@ -14,7 +14,7 @@ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ - { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \ { k40, k41, k42, k43, k44, k45, k45, k47, k48, k49, k4a, k4b } \ } @@ -29,7 +29,7 @@ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ - { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b } \ } From ad1a868701102fdf031c2d187b7fb9b656040fc6 Mon Sep 17 00:00:00 2001 From: "U-LANDSRAAD\\drashna" Date: Wed, 14 Mar 2018 16:40:24 -0700 Subject: [PATCH 055/578] Move Narze keymap into Ergodox Infinity folder --- keyboards/{ergodox => ergodox_infinity}/keymaps/narze/config.h | 0 .../{ergodox => ergodox_infinity}/keymaps/narze/default.png.md | 0 .../keymaps/narze/default_highres.png.md | 0 keyboards/{ergodox => ergodox_infinity}/keymaps/narze/keymap.c | 0 keyboards/{ergodox => ergodox_infinity}/keymaps/narze/readme.md | 0 keyboards/{ergodox => ergodox_infinity}/keymaps/narze/rules.mk | 0 .../{ergodox => ergodox_infinity}/keymaps/narze/visualizer.c | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename keyboards/{ergodox => ergodox_infinity}/keymaps/narze/config.h (100%) rename keyboards/{ergodox => ergodox_infinity}/keymaps/narze/default.png.md (100%) rename keyboards/{ergodox => ergodox_infinity}/keymaps/narze/default_highres.png.md (100%) rename keyboards/{ergodox => ergodox_infinity}/keymaps/narze/keymap.c (100%) rename keyboards/{ergodox => ergodox_infinity}/keymaps/narze/readme.md (100%) rename keyboards/{ergodox => ergodox_infinity}/keymaps/narze/rules.mk (100%) rename keyboards/{ergodox => ergodox_infinity}/keymaps/narze/visualizer.c (100%) diff --git a/keyboards/ergodox/keymaps/narze/config.h b/keyboards/ergodox_infinity/keymaps/narze/config.h similarity index 100% rename from keyboards/ergodox/keymaps/narze/config.h rename to keyboards/ergodox_infinity/keymaps/narze/config.h diff --git a/keyboards/ergodox/keymaps/narze/default.png.md b/keyboards/ergodox_infinity/keymaps/narze/default.png.md similarity index 100% rename from keyboards/ergodox/keymaps/narze/default.png.md rename to keyboards/ergodox_infinity/keymaps/narze/default.png.md diff --git a/keyboards/ergodox/keymaps/narze/default_highres.png.md b/keyboards/ergodox_infinity/keymaps/narze/default_highres.png.md similarity index 100% rename from keyboards/ergodox/keymaps/narze/default_highres.png.md rename to keyboards/ergodox_infinity/keymaps/narze/default_highres.png.md diff --git a/keyboards/ergodox/keymaps/narze/keymap.c b/keyboards/ergodox_infinity/keymaps/narze/keymap.c similarity index 100% rename from keyboards/ergodox/keymaps/narze/keymap.c rename to keyboards/ergodox_infinity/keymaps/narze/keymap.c diff --git a/keyboards/ergodox/keymaps/narze/readme.md b/keyboards/ergodox_infinity/keymaps/narze/readme.md similarity index 100% rename from keyboards/ergodox/keymaps/narze/readme.md rename to keyboards/ergodox_infinity/keymaps/narze/readme.md diff --git a/keyboards/ergodox/keymaps/narze/rules.mk b/keyboards/ergodox_infinity/keymaps/narze/rules.mk similarity index 100% rename from keyboards/ergodox/keymaps/narze/rules.mk rename to keyboards/ergodox_infinity/keymaps/narze/rules.mk diff --git a/keyboards/ergodox/keymaps/narze/visualizer.c b/keyboards/ergodox_infinity/keymaps/narze/visualizer.c similarity index 100% rename from keyboards/ergodox/keymaps/narze/visualizer.c rename to keyboards/ergodox_infinity/keymaps/narze/visualizer.c From 6c74d734c274f70ce72150ecbd844f8eff5040c4 Mon Sep 17 00:00:00 2001 From: Brian Choromanski Date: Fri, 16 Mar 2018 16:20:09 -0400 Subject: [PATCH 056/578] Fixed various keymaps and the allocation of "key_combos" (#2526) * Fixed plank keymaps so that they will compile for planck light * tv44:budi now compiles * s60_x:amnesia0287 now compiles * Fixed allocation of key_combos so that narze keymap for planck can compile correctly * Disabled rgb on ergodone and infinity * Enabled tap dance so it compiles * Added return statement so it compiles * If compiling on light disable extra functionality * Properly redefined variable so it compiles --- keyboards/dz60/keymaps/LEdiodes/keymap.c | 15 +++++++-------- keyboards/dz60/keymaps/LEdiodes/rules.mk | 3 ++- keyboards/knops/mini/keymaps/knops/keymap.c | 3 +++ keyboards/planck/keymaps/piemod/rules.mk | 10 +++++++++- keyboards/s60_x/keymaps/amnesia0287/keymap.c | 2 +- keyboards/tv44/keymaps/budi/config.h | 3 +++ layouts/community/ergodox/berfarah/keymap.c | 6 ++++++ layouts/community/ergodox/berfarah/rules.mk | 3 ++- quantum/process_keycode/process_combo.c | 2 +- users/dudeofawesome/dudeofawesome.h | 3 +++ 10 files changed, 37 insertions(+), 13 deletions(-) diff --git a/keyboards/dz60/keymaps/LEdiodes/keymap.c b/keyboards/dz60/keymaps/LEdiodes/keymap.c index dbf2a75f572e..4405b20d3edb 100644 --- a/keyboards/dz60/keymaps/LEdiodes/keymap.c +++ b/keyboards/dz60/keymaps/LEdiodes/keymap.c @@ -9,6 +9,12 @@ #define _______ KC_TRNS +enum { + TD_SPC_ENT = 0, + TD_KC_LSFT_CAPS, + TD_KC_RSFT_CAPS +}; + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* @@ -49,7 +55,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_BSLS, \ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, TO(_L1), \ - KC_LCTL, KC_LGUI, KC_LALT, TD(LT(_L3,KC_SPACE)),BL_TOGG,TD(TD_SPC_ENT), KC_RGUI, TO(_L2), KC_LEFT, KC_DOWN, KC_RIGHT), + KC_LCTL, KC_LGUI, KC_LALT, LT(_L3,KC_SPACE),BL_TOGG,TD(TD_SPC_ENT), KC_RGUI, TO(_L2), KC_LEFT, KC_DOWN, KC_RIGHT), /* Keymap _L1: (Layer 1) This is function layer 1 * This layer is activated while the Fn key is being held down. @@ -121,13 +127,6 @@ void matrix_scan_user(void) { // Empty }; -//Tap Dance Declarations -enum { - TD_SPC_ENT = 0, - TD_KC_LSFT_CAPS = 0, - TD_KC_RSFT_CAPS = 0 -}; - //Tap Dance Definitions qk_tap_dance_action_t tap_dance_actions[] = { diff --git a/keyboards/dz60/keymaps/LEdiodes/rules.mk b/keyboards/dz60/keymaps/LEdiodes/rules.mk index f54d9500fbf7..08adc989df30 100644 --- a/keyboards/dz60/keymaps/LEdiodes/rules.mk +++ b/keyboards/dz60/keymaps/LEdiodes/rules.mk @@ -54,4 +54,5 @@ NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https:/ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality AUDIO_ENABLE = no RGBLIGHT_ENABLE = yes -AUTO_SHIFT_ENABLE = yes # If the time depressed is greater than or equal to the AUTO_SHIFT_TIMEOUT, then a shifted version of the key is emitted. If the time is less than the AUTO_SHIFT_TIMEOUT time, then the normal state is emitted \ No newline at end of file +AUTO_SHIFT_ENABLE = yes # If the time depressed is greater than or equal to the AUTO_SHIFT_TIMEOUT, then a shifted version of the key is emitted. If the time is less than the AUTO_SHIFT_TIMEOUT time, then the normal state is emitted +TAP_DANCE_ENABLE = yes \ No newline at end of file diff --git a/keyboards/knops/mini/keymaps/knops/keymap.c b/keyboards/knops/mini/keymaps/knops/keymap.c index 34e560600921..7bc7fbe43d74 100644 --- a/keyboards/knops/mini/keymaps/knops/keymap.c +++ b/keyboards/knops/mini/keymaps/knops/keymap.c @@ -117,6 +117,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { //keyevent_t event = record->event; /*KNOPS_MACRO*/ + return NULL; } @@ -133,6 +134,8 @@ void led_set_user(uint8_t usb_led) { bool process_record_user (uint16_t keycode, keyrecord_t *record) { /*KNOPS_PROCESS_STATE*/ + + return NULL; } diff --git a/keyboards/planck/keymaps/piemod/rules.mk b/keyboards/planck/keymaps/piemod/rules.mk index 1e48872e391e..84cb02bd760a 100644 --- a/keyboards/planck/keymaps/piemod/rules.mk +++ b/keyboards/planck/keymaps/piemod/rules.mk @@ -1,10 +1,18 @@ SUBPROJECT_DEFAULT = rev4 MOUSEKEY_ENABLE = yes -BLUETOOTH_ENABLE = yes EXTRAKEY_ENABLE = yes AUDIO_ENABLE = yes +ifeq ($(MCU),at90usb1286) +BOOTMAGIC_ENABLE = no +CONSOLE_ENABLE = no +COMMAND_ENABLE = no +BLUETOOTH_ENABLE = no +else +BLUETOOTH_ENABLE = yes +endif + ifndef QUANTUM_DIR include ../../../../Makefile endif diff --git a/keyboards/s60_x/keymaps/amnesia0287/keymap.c b/keyboards/s60_x/keymaps/amnesia0287/keymap.c index f9ca3f15ab80..42f82e1d9b1b 100644 --- a/keyboards/s60_x/keymaps/amnesia0287/keymap.c +++ b/keyboards/s60_x/keymaps/amnesia0287/keymap.c @@ -1,4 +1,4 @@ -#include "rgb.h" +#include "s60_x.h" // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. diff --git a/keyboards/tv44/keymaps/budi/config.h b/keyboards/tv44/keymaps/budi/config.h index e6f23c936918..67bcf3546e96 100644 --- a/keyboards/tv44/keymaps/budi/config.h +++ b/keyboards/tv44/keymaps/budi/config.h @@ -4,6 +4,9 @@ #include "../../config.h" // place overrides here +#ifdef DEBOUNCING_DELAY +#undef DEBOUNCING_DELAY +#endif #define DEBOUNCING_DELAY 2 #define MOUSEKEY_INTERVAL 10 #define MOUSEKEY_DELAY 0 diff --git a/layouts/community/ergodox/berfarah/keymap.c b/layouts/community/ergodox/berfarah/keymap.c index bc639b189da6..a0a1077852ab 100644 --- a/layouts/community/ergodox/berfarah/keymap.c +++ b/layouts/community/ergodox/berfarah/keymap.c @@ -183,6 +183,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; +#ifdef RGBLIGHT_ENABLE /* * Led Configuration */ @@ -222,6 +223,7 @@ static inline void mod_layer_with_rgb(keyrecord_t *record, uint8_t layer) { bf_set_led(currentLayer); }; }; +#endif /* * Custom keycodes @@ -240,12 +242,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { SEND_STRING(" "); } return false; break; + #ifdef RGBLIGHT_ENABLE case BF_NUMS: mod_layer_with_rgb(record, NUMS); return false; break; case BF_MOVE: mod_layer_with_rgb(record, MOVE); return false; break; + #endif } return true; @@ -255,7 +259,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { * Active Routines */ void matrix_init_user(void) { +#ifdef RGBLIGHT_ENABLE bf_set_led(QWERTY); +#endif }; // Runs constantly in the background, in a loop. diff --git a/layouts/community/ergodox/berfarah/rules.mk b/layouts/community/ergodox/berfarah/rules.mk index 7153c6ad0f32..a87325037294 100644 --- a/layouts/community/ergodox/berfarah/rules.mk +++ b/layouts/community/ergodox/berfarah/rules.mk @@ -6,8 +6,9 @@ DEBUG_ENABLE = no CONSOLE_ENABLE = no TAP_DANCE_ENABLE = no MOUSEKEY_ENABLE = no -RGBLIGHT_ENABLE = yes +ifdef RGBLIGHT_ENABLE RGBLIGHT_ANIMATION = yes +endif ifeq (${FORCE_NKRO},yes) OPT_DEFS += -DFORCE_NKRO diff --git a/quantum/process_keycode/process_combo.c b/quantum/process_keycode/process_combo.c index 1addd72e5ade..6e9c28e4fc04 100644 --- a/quantum/process_keycode/process_combo.c +++ b/quantum/process_keycode/process_combo.c @@ -22,7 +22,7 @@ __attribute__ ((weak)) -combo_t key_combos[] = { +combo_t key_combos[COMBO_COUNT] = { }; diff --git a/users/dudeofawesome/dudeofawesome.h b/users/dudeofawesome/dudeofawesome.h index b0387f2ad4b6..12b581b4d9f7 100644 --- a/users/dudeofawesome/dudeofawesome.h +++ b/users/dudeofawesome/dudeofawesome.h @@ -1,6 +1,9 @@ #ifndef USERSPACE #define USERSPACE +#ifdef TAPPING_TOGGLE +#undef TAPPING_TOGGLE +#endif #define TAPPING_TOGGLE 2 #ifdef AUDIO_ENABLE From 4658786436a9e481c4d7c2a330076cf508085be9 Mon Sep 17 00:00:00 2001 From: Nicola Gargagli Date: Fri, 9 Mar 2018 10:53:54 +0100 Subject: [PATCH 057/578] Add italian keymap --- quantum/keymap_extras/keymap_italian.h | 122 +++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 quantum/keymap_extras/keymap_italian.h diff --git a/quantum/keymap_extras/keymap_italian.h b/quantum/keymap_extras/keymap_italian.h new file mode 100644 index 000000000000..0ff6ce8762eb --- /dev/null +++ b/quantum/keymap_extras/keymap_italian.h @@ -0,0 +1,122 @@ +/* Copyright 2015-2016 Matthias Schmidtt + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef KEYMAP_ITALIAN +#define KEYMAP_ITALIAN + +#include "keymap.h" + +// Alt gr +#define ALGR(kc) RALT(kc) +#define IT_ALGR KC_RALT + +// normal characters + + + +#define IT_A KC_A +#define IT_B KC_B +#define IT_C KC_C +#define IT_D KC_D +#define IT_E KC_E +#define IT_F KC_F +#define IT_G KC_G +#define IT_H KC_H +#define IT_I KC_I +#define IT_J KC_J +#define IT_K KC_K +#define IT_L KC_L +#define IT_M KC_M +#define IT_N KC_N +#define IT_O KC_O +#define IT_P KC_P +#define IT_Q KC_Q +#define IT_R KC_R +#define IT_S KC_S +#define IT_T KC_T +#define IT_U KC_U +#define IT_V KC_V +#define IT_W KC_W +#define IT_X KC_X +#define IT_Y KC_Y +#define IT_Z KC_Z + +#define IT_0 KC_0 +#define IT_1 KC_1 +#define IT_2 KC_2 +#define IT_3 KC_3 +#define IT_4 KC_4 +#define IT_5 KC_5 +#define IT_6 KC_6 +#define IT_7 KC_7 +#define IT_8 KC_8 +#define IT_9 KC_9 + +#define IT_DOT KC_DOT +#define IT_COMM KC_COMM + +#define IT_EACC KC_LBRC // è, é, [, { +#define IT_PLUS KC_RBRC // +, *, ], } +#define IT_OACC KC_SCLN // ò, ç, @, +#define IT_AACC KC_QUOT // à, °, #, +#define IT_UACC KC_BSLS // ù, §, , +#define IT_IACC KC_EQL // ì, ^, , + +#define IT_APOS KC_MINS // ', ?, , + + + +#define IT_BKSL KC_GRAVE // backslash \, | + + +#define IT_ACUT // accent acute ´ and grave ` + +#define IT_LESS KC_NUBS // < and > and | +#define IT_MINS KC_SLSH // - and _ + +// shifted characters +#define IT_PIPE LSFT(IT_BKSL) // ° +#define IT_EXLM LSFT(KC_1) // ! +#define IT_DQOT LSFT(KC_2) // " +#define IT_STRL LSFT(KC_3) // £ +#define IT_DLR LSFT(KC_4) // $ +#define IT_PERC LSFT(KC_5) // % +#define IT_AMPR LSFT(KC_6) // & +#define IT_SLSH LSFT(KC_7) // / +#define IT_LPRN LSFT(KC_8) // ( +#define IT_RPRN LSFT(KC_9) // ) +#define IT_EQL LSFT(KC_0) // = +#define IT_QST LSFT(IT_APOS) // ? +#define IT_CRC LSFT(IT_IACC) // ^ +#define IT_ASTR LSFT(IT_PLUS) // * +#define IT_MORE LSFT(IT_LESS) // > +#define IT_COLN LSFT(IT_DOT) // : +#define IT_SCLN LSFT(IT_COMM) // ; +#define IT_UNDS LSFT(IT_MINS) // _ + +// Alt Gr-ed characters +#define IT_LCBR ALGR(KC_7) // { +#define IT_LBRC ALGR(IT_EACC) // [ +#define IT_RBRC ALGR(IT_PLUS) // ] +#define IT_RCBR ALGR(KC_0) // } +#define IT_AT ALGR(IT_OACC) // @ +#define IT_EURO ALGR(KC_E) // € +#define IT_PIPE LSFT(IT_BKSL) // | +#define IT_SHRP ALGR(IT_AACC) // # + +#define IT_X_PLUS X_RBRACKET // # + +#endif From e424944a57569d85d7bed7dc77b645408cf487eb Mon Sep 17 00:00:00 2001 From: lucwastiaux Date: Sat, 17 Mar 2018 04:21:00 +0800 Subject: [PATCH 058/578] update to Ergodox / Atreus Dvorak 42 key layouts (#2504) * add SCREEN_NAV layer for copy/pasting within screen * working readreg/paste macros * working read reg / paste macros * write log and tran patterns, and expand * add ls -la shortcut, add tab on combined layer * put delete word on the right pinky key on shell_nav layer * add TAB on the right side, add reset key * added Cloud9 macros * add cloud9 shortcuts to atreus layout * added BROWSER_CONTROL layer * finalized browser control layer * adding comment * add browser control layer to atreus * add flashing command line * remove the tab on combined layer --- keyboards/atreus/keymaps/dvorak_42_key/keymap.c | 10 +++++++++- keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c | 4 +++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/keyboards/atreus/keymaps/dvorak_42_key/keymap.c b/keyboards/atreus/keymaps/dvorak_42_key/keymap.c index 1617f1baff05..15064eb8c9ab 100644 --- a/keyboards/atreus/keymaps/dvorak_42_key/keymap.c +++ b/keyboards/atreus/keymaps/dvorak_42_key/keymap.c @@ -7,6 +7,7 @@ #define KEYSEL 2 #define MOUSE 3 #define COMBINED 4 +#define BROWSER_CONTROL 5 // macros #define MOUSE_TOGGLE 1 @@ -39,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, KC_TRNS, KC_F, KC_G, KC_C, KC_R, KC_L, }, {KC_A, KC_O, KC_E, KC_U, KC_I, KC_TRNS, KC_D, KC_H, KC_T, KC_N, KC_S, }, {KC_SCOLON, KC_Q, KC_J, KC_K, KC_X, MO(KEYNAV), KC_B, KC_M, KC_W, KC_V, KC_Z, }, - {OSM(MOD_LSFT), OSM(MOD_LCTL), M(MOUSE_TOGGLE), MO(KEYSEL), MO(COMBINED), KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_CAPSLOCK, OSM(MOD_LSFT), } + {OSM(MOD_LSFT), OSM(MOD_LCTL), MO(KEYSEL), MO(BROWSER_CONTROL), MO(COMBINED), KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_CAPSLOCK, OSM(MOD_LSFT), } }, [KEYNAV] = { @@ -70,6 +71,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TRNS, M(MOUSE_LOCK), KC_TRNS, KC_MS_ACCEL0, KC_TRNS, KC_BTN1, KC_BTN2, RSFT(RCTL(KC_TAB)), RCTL(KC_TAB), RCTL(KC_T), LALT(KC_LEFT), } }, +[BROWSER_CONTROL] = { + {KC_TRNS, KC_BTN3, KC_MS_U, KC_BTN1, KC_BTN2, KC_TRNS, KC_UP, KC_PGUP, KC_PGDN, KC_MS_WH_UP, KC_TRNS, }, + {KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_DOWN, RSFT(RCTL(KC_TAB)), RCTL(KC_TAB), KC_MS_WH_DOWN, LALT(KC_LEFT), }, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RCTL(KC_1), RCTL(KC_9), KC_F6, KC_F5, }, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RCTL(KC_W), RCTL(KC_T), RSFT(RCTL(KC_TAB)), KC_TRNS, KC_TRNS, KC_TRNS, } +}, + }; diff --git a/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c b/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c index cfae6eff01ea..e9959b99661d 100644 --- a/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c +++ b/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c @@ -6,6 +6,8 @@ // to build this keymap // make ergodox_ez:dvorak_42_key:teensy +// flashing from rpi: +// sudo teensy_loader_cli -v -w .build/ergodox_ez_dvorak_42_key.hex --mcu atmega32u4 // keeping fork up to date: // https://help.github.com/articles/configuring-a-remote-for-a-fork/ @@ -317,7 +319,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // thumb cluster KC_TRNS,KC_TRNS, KC_TRNS, - KC_TRNS,KC_TRNS,KC_TAB), + KC_TRNS,KC_TRNS,KC_TRNS), [MOUSE] = KEYMAP( From 48321c3eee6218aaaa5287747e3ee5ac14617518 Mon Sep 17 00:00:00 2001 From: Louis Orleans Date: Fri, 16 Mar 2018 13:21:22 -0700 Subject: [PATCH 059/578] layout(infinity ergodox): update dudeofawesome's layout (#2506) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 🎉 Building simple flasher * 🎉 Flashing works * 🎨 Cleaning up * 🐛 Being more specific with board identity * 🐛 Flashing correct keymap * 🎉 Adding keymap * ✨ Updating keymap * 🚨 RGB * ⏪ Revert "🚨 RGB" This reverts commit 9ceabfb267f8daedaad929231229c703abc12ec4. * ✨ Improvements to flasher * ✨ Layout tweaks * 💄 Messing around with LCD * 💄 Enabling LCD backlight matching * 🔧 Updating layout * 🐛 Fixing console logging * 🎨 Cleaning up indentation * 🔧 Adding editorconfig * ✨ Adding game layer * 💄 Changing numpad layout * ✨🔥 redoing entire layout It's now more similar to the Planck default layout * ✨ add workman and dvorak layouts * 🐛 fix numpad * 🐛 fix layer orders * 🐛 fix layer toggling * 🐛 fix tri-layer switching * 🐛 fix LCD colors for adjustment layers * 🔥 remove old flasher project * 🔥 remove simple_visualizer * 💄 update LCD colors * 📝 fix layout comments * 💄 swapping 2u buttons * 🔥🔧 removing editorconfig * 🚨 using 2 spaces * 📝 add README * ⏪ Revert "💄 Enabling LCD backlight matching" This reverts commit 51577903dfdc9fea5d33e9ab8cfa9b854e7ae19e. * ⏪ Revert "💄 Messing around with LCD" This reverts commit fdd9acdae514a3e0e4a7153225053680744980e5. * 🐛 fix thumb inconsistency in QWERTY * 🐛 fix media keys * ✨ add F# shortcuts to vertical 1.5u buttons * ✨ hold enter for RShift * ✨ hold for numpad * 🎨 remove unnecessary breaks * 🎨 reoganizing layers * ✨ add Colmak layer * 🚧🔧 add basic config * ✨ use more standard numpad layout * 💄 change layer orders * ✨ add caps lock on adjust layer * 🔥 disable space cadet * 📝 update README * 🔨 use userspace config * 🎨 clean up a bit * 🐛 undefine tapping toggle from base config * 🔨 rename LED functions --- .../keymaps/dudeofawesome/README.md | 11 +- .../keymaps/dudeofawesome/config.h | 11 + .../keymaps/dudeofawesome/keymap.c | 281 ++++++++++-------- .../keymaps/dudeofawesome/visualizer.c | 20 +- .../keymaps/dudeofawesome/visualizer.h | 35 +++ 5 files changed, 225 insertions(+), 133 deletions(-) create mode 100644 keyboards/ergodox_infinity/keymaps/dudeofawesome/config.h create mode 100644 keyboards/ergodox_infinity/keymaps/dudeofawesome/visualizer.h diff --git a/keyboards/ergodox_infinity/keymaps/dudeofawesome/README.md b/keyboards/ergodox_infinity/keymaps/dudeofawesome/README.md index 98eb7abb2589..a0e4565b103e 100644 --- a/keyboards/ergodox_infinity/keymaps/dudeofawesome/README.md +++ b/keyboards/ergodox_infinity/keymaps/dudeofawesome/README.md @@ -2,14 +2,19 @@ A basic ErgoDox layout with Planck-like tri-layer support. -![ErgoDox Layout](https://i.imgur.com/9zfKPV7.png) +![ErgoDox Layout](https://i.imgur.com/ae0Phzb.png) ## Features +- Base Layers + - QWERTY + - Workman + - Dvorak + - Colemak - Planck-like tri-layer -- Workman layout - In-progress gaming layer -- Numpad +- Numpad layer + ![numpad layer](https://i.imgur.com/oHDYpzf.png) - LCD colors are linked together, like the default KLL firmware ## Building and flashing diff --git a/keyboards/ergodox_infinity/keymaps/dudeofawesome/config.h b/keyboards/ergodox_infinity/keymaps/dudeofawesome/config.h new file mode 100644 index 000000000000..161958233e28 --- /dev/null +++ b/keyboards/ergodox_infinity/keymaps/dudeofawesome/config.h @@ -0,0 +1,11 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#undef TAPPING_TOGGLE + +#include "../../config.h" +#include "dudeofawesome.h" + +#include "./visualizer.h" + +#endif diff --git a/keyboards/ergodox_infinity/keymaps/dudeofawesome/keymap.c b/keyboards/ergodox_infinity/keymaps/dudeofawesome/keymap.c index 7d76b25a4ed2..cf0b452bdfdf 100644 --- a/keyboards/ergodox_infinity/keymaps/dudeofawesome/keymap.c +++ b/keyboards/ergodox_infinity/keymaps/dudeofawesome/keymap.c @@ -4,40 +4,41 @@ #include "version.h" enum custom_layers { - _QWERTY, - _DVORAK, - _WORKMAN, - _GAME, - _MOUSE, - _NUM, - _LOWER, - _RAISE, - _ADJUST, + _QWERTY, + _WORKMAN, + _DVORAK, + _COLEMAK, + _LOWER, + _RAISE, + _ADJUST, + _GAME, + _MOUSE, + _NUM, }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - DVORAK, - WORKMAN, - LOWER, - RAISE, - GAME, - MOUSE, - NUM, - EPRM, - VRSN, - RGB_SLD + QWERTY = SAFE_RANGE, + WORKMAN, + DVORAK, + COLEMAK, + LOWER, + RAISE, + GAME, + MOUSE, + EPRM, + VRSN, + RGB_SLD, }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic QWERTY layer * * ,---------------------------------------------. ,---------------------------------------------. - * | - | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = | + * | ` | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | Del | * |--------+-----+-----+-----+-----+------------| |------+-----+-----+-----+-----+-----+--------| * | Tab | Q | W | E | R | T | [{ | | ]} | Y | U | I | O | P | BSPC | * |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------| - * | ESC | A | S | D | F | G |------| |------| H | J | K | L | ; | '" | + * | ESC | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | * |--------+-----+-----+-----+-----+-----| L1 | | L1 |-----+-----+-----+-----+-----+--------| * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | Enter | * `--------+-----+-----+-----+-----+------------' `------------+-----+-----+-----+-----+--------' @@ -53,32 +54,77 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_QWERTY] = LAYOUT_ergodox( // left hand - KC_MINUS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRACKET, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_FN1, - TG(_NUM), KC_LCTL, KC_LALT, KC_LGUI, LOWER, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_FN1, + TT(_NUM), KC_LCTL, KC_LALT, KC_LGUI, LOWER, - KC_MPLY, TG(_MOUSE), - KC_LALT, - LOWER, KC_BSPACE, KC_LGUI, + KC_MPLY, TG(_MOUSE), + KC_LALT, + KC_BSPACE, LOWER, KC_LGUI, // right hand - KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQUAL, + KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_RBRACKET, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPACE, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE, - KC_FN1, KC_N, KC_M, KC_COMM, KC_DOT, LT(_MOUSE, KC_SLSH), KC_ENTER, + KC_FN1, KC_N, KC_M, KC_COMM, KC_DOT, LT(_MOUSE, KC_SLSH), RSFT_T(KC_ENT), RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, - TG(_NUM), TG(_MOUSE), + TT(_NUM), TG(_MOUSE), KC_LALT, - KC_LGUI, KC_SPACE, RAISE + KC_LGUI, RAISE, KC_SPACE +), + +/* Keymap 0: Basic Workman layer + * + * ,---------------------------------------------. ,--------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | Del | + * |--------+-----+-----+-----+-----+------------| |------+-----+-----+-----+-----+-----+--------| + * | Tab | Q | D | R | W | B | [{ | | ]} | J | F | U | P | ; | BSPC | + * |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------| + * | ESC | A | S | H | T | G |------| |------| Y | N | E | O | I | ' | + * |--------+-----+-----+-----+-----+-----| L1 | | L1 |-----+-----+-----+-----+-----+--------| + * | LShift | Z | X | M | C | V | | | | K | L | , | . | / | Enter | + * `--------+-----+-----+-----+-----+------------' `------------+-----+-----+-----+-----+--------' + * | Num |Ctrl | Alt |LGUI |Lower| |Raise|Left |Down | Up |Right | + * `------------------------------' `------------------------------' + * ,------------. ,------------. + * |Play |Mouse | | Num |Mouse| + * ,----|-----|------| |------+-----+-----. + * | | | Alt | | Alt | | | + * |BSPC|LOWER|------| |------|RAISE|Space| + * | | | LGUI | | LGUI | | | + * `-----------------' `------------------' + */ +[_WORKMAN] = LAYOUT_ergodox( + // left hand + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, + KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_LBRACKET, + KC_ESC, KC_A, KC_S, KC_H, KC_T, KC_G, + KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_FN1, + TT(_NUM), KC_LCTL, KC_LALT, KC_LGUI, LOWER, + + KC_MPLY, TG(_MOUSE), + KC_LALT, + KC_BSPACE, LOWER, KC_LGUI, + + // right hand + KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_RBRACKET, KC_J, KC_F, KC_U, KC_P, KC_SCOLON, KC_BSPACE, + KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOTE, + KC_FN1, KC_K, KC_L, KC_COMM, KC_DOT, LT(_MOUSE, KC_SLSH), RSFT_T(KC_ENT), + RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, + + TT(_NUM), TG(_MOUSE), + KC_LALT, + KC_LGUI, RAISE, KC_SPACE ), /* Keymap 0: Basic Dvorak layer * * ,---------------------------------------------. ,--------------------------------------------. - * | - | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = | + * | ` | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | Del | * |--------+-----+-----+-----+-----+------------| |------+-----+-----+-----+-----+-----+--------| * | Tab | ' | , | . | P | Y | [{ | | ]} | F | G | C | R | L | BSPC | * |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------| @@ -98,38 +144,38 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_DVORAK] = LAYOUT_ergodox( // left hand - KC_MINUS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_LBRACKET, KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, - KC_LSPO, KC_SCOLON, KC_Q, KC_J, KC_K, KC_X, KC_FN1, - TG(_NUM), KC_LCTL, KC_LALT, KC_LGUI, LOWER, + KC_LSFT, KC_SCOLON, KC_Q, KC_J, KC_K, KC_X, KC_FN1, + TT(_NUM), KC_LCTL, KC_LALT, KC_LGUI, LOWER, - KC_MPLY, TG(_MOUSE), - KC_LALT, - KC_BSPACE, LOWER, KC_LGUI, + KC_MPLY, TG(_MOUSE), + KC_LALT, + KC_BSPACE, LOWER, KC_LGUI, // right hand - KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQUAL, + KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_RBRACKET, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPACE, KC_D, KC_H, KC_T, KC_N, KC_S, LT(MOUSE, KC_SLSH), - KC_FN1, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENTER, + KC_FN1, KC_B, KC_M, KC_W, KC_V, KC_Z, RSFT_T(KC_ENT), RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, - TG(_NUM), TG(_MOUSE), + TT(_NUM), TG(_MOUSE), KC_LALT, KC_LGUI, RAISE, KC_SPACE ), -/* Keymap 0: Basic Workman layer +/* Keymap 0: Basic Colemak layer * * ,---------------------------------------------. ,--------------------------------------------. - * | - | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = | + * | ` | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | Del | * |--------+-----+-----+-----+-----+------------| |------+-----+-----+-----+-----+-----+--------| - * | Tab | Q | D | R | W | B | [{ | | ]} | J | F | U | P | ; | BSPC | + * | Tab | Q | W | F | P | G | [{ | | ]} | J | L | U | Y | ; | BSPC | * |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------| - * | ESC | A | S | H | T | G |------| |------| Y | N | E | O | I | '" | + * | ESC | A | R | S | T | D |------| |------| H | N | E | I | O | ' | * |--------+-----+-----+-----+-----+-----| L1 | | L1 |-----+-----+-----+-----+-----+--------| - * | LShift | Z | X | M | C | V | | | | K | L | , | . | / | Enter | + * | LShift | Z | X | C | V | B | | | | K | M | , | . | / | Enter | * `--------+-----+-----+-----+-----+------------' `------------+-----+-----+-----+-----+--------' * | Num |Ctrl | Alt |LGUI |Lower| |Raise|Left |Down | Up |Right | * `------------------------------' `------------------------------' @@ -141,28 +187,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | LGUI | | LGUI | | | * `-----------------' `------------------' */ -[_WORKMAN] = LAYOUT_ergodox( +[_COLEMAK] = LAYOUT_ergodox( // left hand - KC_MINUS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, - KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_LBRACKET, - KC_ESC, KC_A, KC_S, KC_H, KC_T, KC_G, - KC_LSPO, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_FN1, - TG(_NUM), KC_LCTL, KC_LALT, KC_LGUI, LOWER, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_LBRACKET, + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_FN1, + TT(_NUM), KC_LCTL, KC_LALT, KC_LGUI, LOWER, - KC_MPLY, TG(_MOUSE), + KC_MPLY, TG(_MOUSE), KC_LALT, - KC_BSPACE, LOWER, KC_LGUI, + KC_BSPACE, LOWER, KC_LGUI, // right hand - KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQUAL, - KC_RBRACKET, KC_J, KC_F, KC_U, KC_P, KC_SCOLON, KC_BSPACE, - KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOTE, - KC_FN1, KC_K, KC_L, KC_COMM, KC_DOT, LT(_MOUSE, KC_SLSH), KC_ENTER, + KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_RBRACKET, KC_J, KC_L, KC_U, KC_Y, KC_SCOLON, KC_BSPACE, + KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOTE, + KC_FN1, KC_K, KC_M, KC_COMM, KC_DOT, LT(_MOUSE, KC_SLSH), RSFT_T(KC_ENT), RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, - NUM, TG(_MOUSE), + TT(_NUM), TG(_MOUSE), KC_LALT, - KC_LGUI, RAISE, KC_SPACE + KC_LGUI, RAISE, KC_SPACE ), /* Lower @@ -176,7 +222,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |---------+------+------+------+------+------| L2 | | L2 |------+------+------+------+------+--------| * | | F7 | F8 | F9 | F10 | F11 | | | | F12 |ISO ~ |ISO | | Home | End | | * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | Next | Vol- | Vol+ | Play | + * | | | | | | | | Play | Vol- | Vol+ | Next | * `-----------------------------------' `----------------------------------' * ,-------------. ,-------------. * |Animat| | |Toggle|Solid | @@ -189,9 +235,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LOWER] = LAYOUT_ergodox( // left hand VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_F6, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, @@ -199,11 +245,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, // right hand - KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, - KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - _______, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, - _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, + KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_F5, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MNXT, _______, _______, _______, @@ -221,7 +267,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |---------+------+------+------+------+------| L2 | | L2 |------+------+------+------+------+--------| * | | F7 | F8 | F9 | F10 | F11 | | | | F12 |ISO # |ISO / |Pg Up |Pg Dn | | * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | Next | Vol- | Vol+ | Play | + * | | | | | | | | Play | Vol- | Vol+ | Next | * `-----------------------------------' `----------------------------------' * ,-------------. ,-------------. * |Animat| | |Toggle|Solid | @@ -234,9 +280,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_RAISE] = LAYOUT_ergodox( // left hand VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F6, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, @@ -244,11 +290,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, // right hand - KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______, - KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - _______, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, - _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, + KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_F5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MNXT, _______, _______, _______, @@ -262,7 +308,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | |Reset |Debug | | | | | | | |TRM on|TRMoff| | | Del | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | |AG Nrm|------| |------|AG Swp|QWERTY|Wrkman|Dvorak| | | + * | CPSLCK | | | | |AG Nrm|------| |------|AG Swp|QWERTY|Wrkman|Dvorak| | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | | | | | | | | | | | Prev | Next | | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' @@ -280,7 +326,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand VRSN, _______, _______, _______, _______, _______, _______, _______, RESET, DEBUG, _______, _______, _______, _______, - _______, _______, _______, _______, _______, AG_NORM, + KC_CAPS, _______, _______, _______, _______, AG_NORM, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -291,7 +337,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // right hand _______, _______, _______, _______, _______, _______, _______, _______, _______, TERM_ON, TERM_OFF, _______, _______, KC_DEL, - AG_SWAP, QWERTY, WORKMAN, DVORAK, _______, _______, + AG_SWAP, QWERTY, WORKMAN, DVORAK, COLEMAK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -386,24 +432,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - TG(_MOUSE), TG(_NUM), + TG(_MOUSE), TT(_NUM), _______, _______, _______, _______ ), - /* Keymap 2: NUMPAD * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | | + * | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | | ✗ | ✗ | ✗ | / | * | - | | * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| - * | | ! | @ | { | } | | | | | | | 7 | 8 | 9 | * | | + * | | ✗ | Home | Up | End | PgUp | | | | ✗ | 7 | 8 | 9 | + | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | # | $ | ( | ) | ` |------| |------| | 4 | 5 | 6 | + | | + * | | ✗ | Left | Down | Right| PgDn |------| |------| ✗ | 4 | 5 | 6 | + | ✗ | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | % | ^ | [ | ] | ~ | | | | | 1 | 2 | 3 | \ | | + * | | / | * | - | + | Enter| | | | ✗ | 1 | 2 | 3 | Enter| Enter | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | . | 0 | 0 | = | | + * | | | | | ✗ | | 0 | 0 | . | Enter| = | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | @@ -415,22 +460,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_NUM] = LAYOUT_ergodox( // left hand - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, - _______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, _______, - _______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, - _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, _______, - _______, _______, _______, _______, _______, + _______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + _______, KC_NO, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, + _______, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, + _______, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_PENT, KC_NO, + _______, _______, _______, _______, KC_NO, _______, _______, _______, _______, _______, _______, // right hand - KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - _______, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_ASTERISK, _______, - _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, _______, - _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_SLASH, _______, - KC_KP_DOT, KC_KP_0, KC_KP_0, KC_KP_EQUAL, _______, + KC_NO, KC_NO, KC_NO, KC_PSLS, KC_PAST, KC_PMNS, _______, + KC_NO, KC_NO, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, + KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_NO, + KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_PENT, KC_PENT, + KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_PEQL, _______, _______, _______, @@ -444,15 +489,15 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // MACRODOWN only works in this function switch(id) { case 0: - if (record->event.pressed) { - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); - } - break; + if (record->event.pressed) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + break; case 1: - if (record->event.pressed) { // For resetting EEPROM - eeconfig_init(); - } - break; + if (record->event.pressed) { // For resetting EEPROM + eeconfig_init(); + } + break; } return MACRO_NONE; }; @@ -461,23 +506,24 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QWERTY: if (record->event.pressed) { - print("mode just switched to qwerty and this is a huge string\n"); set_single_persistent_default_layer(_QWERTY); } return false; - break; case WORKMAN: if (record->event.pressed) { set_single_persistent_default_layer(_WORKMAN); } return false; - break; case DVORAK: if (record->event.pressed) { set_single_persistent_default_layer(_DVORAK); } return false; - break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; case LOWER: if (record->event.pressed) { layer_on(_LOWER); @@ -494,7 +540,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } return false; - break; case RAISE: if (record->event.pressed) { layer_on(_RAISE); @@ -511,19 +556,16 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } return false; - break; case EPRM: if (record->event.pressed) { eeconfig_init(); } return false; - break; case VRSN: if (record->event.pressed) { SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); } return false; - break; case RGB_SLD: if (record->event.pressed) { #ifdef RGBLIGHT_ENABLE @@ -531,7 +573,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #endif } return false; - break; } return true; } @@ -550,19 +591,19 @@ void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); + ergodox_led_lower_off(); + ergodox_led_raise_off(); + ergodox_led_adjust_off(); switch (layer) { case _LOWER: - ergodox_right_led_1_on(); + ergodox_led_lower_on(); break; case _RAISE: - ergodox_right_led_2_on(); + ergodox_led_raise_on(); break; case _ADJUST: - ergodox_right_led_3_on(); + ergodox_led_adjust_on(); break; } }; diff --git a/keyboards/ergodox_infinity/keymaps/dudeofawesome/visualizer.c b/keyboards/ergodox_infinity/keymaps/dudeofawesome/visualizer.c index 034f152709e8..d339ecc9704a 100644 --- a/keyboards/ergodox_infinity/keymaps/dudeofawesome/visualizer.c +++ b/keyboards/ergodox_infinity/keymaps/dudeofawesome/visualizer.c @@ -28,7 +28,7 @@ along with this program. If not, see . #error This visualizer needs that LCD is enabled #endif -#include "visualizer.h" +#include "./visualizer.h" #include "visualizer_keyframes.h" #include "lcd_keyframes.h" #include "lcd_backlight_keyframes.h" @@ -295,17 +295,17 @@ void ergodox_board_led_on(void){ // No board led support } -void ergodox_right_led_1_on(void){ +void ergodox_led_lower_on(void){ user_data_keyboard.led_on |= (1u << 0); visualizer_set_user_data(&user_data_keyboard); } -void ergodox_right_led_2_on(void){ +void ergodox_led_raise_on(void){ user_data_keyboard.led_on |= (1u << 1); visualizer_set_user_data(&user_data_keyboard); } -void ergodox_right_led_3_on(void){ +void ergodox_led_adjust_on(void){ user_data_keyboard.led_on |= (1u << 2); visualizer_set_user_data(&user_data_keyboard); } @@ -314,32 +314,32 @@ void ergodox_board_led_off(void){ // No board led support } -void ergodox_right_led_1_off(void){ +void ergodox_led_lower_off(void){ user_data_keyboard.led_on &= ~(1u << 0); visualizer_set_user_data(&user_data_keyboard); } -void ergodox_right_led_2_off(void){ +void ergodox_led_raise_off(void){ user_data_keyboard.led_on &= ~(1u << 1); visualizer_set_user_data(&user_data_keyboard); } -void ergodox_right_led_3_off(void){ +void ergodox_led_adjust_off(void){ user_data_keyboard.led_on &= ~(1u << 2); visualizer_set_user_data(&user_data_keyboard); } -void ergodox_right_led_1_set(uint8_t n) { +void ergodox_led_lower_set(uint8_t n) { user_data_keyboard.led1 = n; visualizer_set_user_data(&user_data_keyboard); } -void ergodox_right_led_2_set(uint8_t n) { +void ergodox_led_raise_set(uint8_t n) { user_data_keyboard.led2 = n; visualizer_set_user_data(&user_data_keyboard); } -void ergodox_right_led_3_set(uint8_t n) { +void ergodox_led_adjust_set(uint8_t n) { user_data_keyboard.led3 = n; visualizer_set_user_data(&user_data_keyboard); } diff --git a/keyboards/ergodox_infinity/keymaps/dudeofawesome/visualizer.h b/keyboards/ergodox_infinity/keymaps/dudeofawesome/visualizer.h new file mode 100644 index 000000000000..740a951ec887 --- /dev/null +++ b/keyboards/ergodox_infinity/keymaps/dudeofawesome/visualizer.h @@ -0,0 +1,35 @@ +/* Copyright 2017 Fred Sundvik + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef VISUALIZER_H_ +#define VISUALIZER_H_ + +#include "visualizer.h" +#include "led.h" + +void ergodox_led_lower_on (void); +void ergodox_led_raise_on (void); +void ergodox_led_adjust_on (void); + +void ergodox_led_lower_off (void); +void ergodox_led_raise_off (void); +void ergodox_led_adjust_off (void); + +void ergodox_led_lower_set (uint8_t n); +void ergodox_led_raise_set (uint8_t n); +void ergodox_led_adjust_set (uint8_t n); + +#endif /* VISUALIZER_H_ */ From f139c3db8d2b21e5d4d68b85bfdd705c20fcd795 Mon Sep 17 00:00:00 2001 From: Louis Orleans Date: Fri, 16 Mar 2018 13:22:33 -0700 Subject: [PATCH 060/578] layout(preonic): update to dudeofawesome's layout (#2507) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 🎉 duplicate default Preonic keymap * ✨ add Workman layout * 🚚 swap backspace and delete * ✨ enable hold enter for shift * 🚚 swap media play and next * 💄 use Planck startup sound * 💄 add Workman layer sound * ✨ add numpad layer * 💄 add new workman sound * 📝 add README * 🎨 fix layout formatting * 📝 add image of numpad layer * 📦 changing chibios submodule version to match upstream/master's version * ✨ add caps lock key on adjust layer * ✨ reworking numpad layer to match a real numpad * ✨ add double tap to activate numpad * 📝 fix layout comments * 📝 update numpad layer render * ✨ adding operator keys to left hand on numpad * 🎨 shorten numpad keycodes * 🎨 remove redundant breaks * 📝 update numpad layer render * 🎨 fix indentation * 🔧 add rules file * ✨🔊 play sound when switching to numpad layer * 🔨 use userspace sounds --- .../preonic/keymaps/dudeofawesome/config.h | 27 ++-- .../preonic/keymaps/dudeofawesome/keymap.c | 130 ++++++++++-------- .../preonic/keymaps/dudeofawesome/readme.md | 2 +- .../preonic/keymaps/dudeofawesome/rules.mk | 5 + users/dudeofawesome/dudeofawesome.h | 6 + 5 files changed, 94 insertions(+), 76 deletions(-) diff --git a/keyboards/preonic/keymaps/dudeofawesome/config.h b/keyboards/preonic/keymaps/dudeofawesome/config.h index 566fac3ed352..48bd13ba451b 100644 --- a/keyboards/preonic/keymaps/dudeofawesome/config.h +++ b/keyboards/preonic/keymaps/dudeofawesome/config.h @@ -1,27 +1,20 @@ #ifndef CONFIG_USER_H #define CONFIG_USER_H -#include "config_common.h" +#include "../../config.h" +#include "dudeofawesome.h" #define TAPPING_TOGGLE 2 #ifdef AUDIO_ENABLE - #define STARTUP_SONG SONG(PLANCK_SOUND) - // #define STARTUP_SONG SONG(NO_SOUND) - - #define WORKMAN_SOUND \ - E__NOTE(_GS7), \ - ED_NOTE(_E7), \ - S__NOTE(_REST), \ - E__NOTE(_A6), \ - S__NOTE(_REST), \ - ED_NOTE(_GS6), - - #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ - SONG(WORKMAN_SOUND), \ - SONG(COLEMAK_SOUND), \ - SONG(DVORAK_SOUND) \ - } + #define STARTUP_SONG SONG(PLANCK_SOUND) + // #define STARTUP_SONG SONG(NO_SOUND) + + #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(WORKMAN_SOUND), \ + SONG(COLEMAK_SOUND), \ + SONG(DVORAK_SOUND) \ + } #endif #define MUSIC_MASK (keycode != KC_NO) diff --git a/keyboards/preonic/keymaps/dudeofawesome/keymap.c b/keyboards/preonic/keymaps/dudeofawesome/keymap.c index e8faf670be49..dbe7fb6488fb 100644 --- a/keyboards/preonic/keymaps/dudeofawesome/keymap.c +++ b/keyboards/preonic/keymaps/dudeofawesome/keymap.c @@ -213,63 +213,77 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case WORKMAN: - if (record->event.pressed) { - set_single_persistent_default_layer(_WORKMAN); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - break; - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case BACKLIT: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - PORTE &= ~(1<<6); - } else { - unregister_code(KC_RSFT); - PORTE |= (1<<6); - } - return false; - break; + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); } - return true; + return false; + case WORKMAN: + if (record->event.pressed) { + set_single_persistent_default_layer(_WORKMAN); + } + return false; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + PORTE &= ~(1<<6); + } else { + unregister_code(KC_RSFT); + PORTE |= (1<<6); + } + return false; + } + return true; +}; + +bool numpadActive = false; + +float tone_numpad_on[][2] = SONG(NUMPAD_ON_SOUND); + +void matrix_scan_user (void) { + uint8_t layer = biton32(layer_state); + + switch (layer) { + case _NUMPAD: + if (!numpadActive) { + numpadActive = true; + PLAY_SONG(tone_numpad_on); + } + break; + default: + if (numpadActive) { + numpadActive = false; + } + } }; diff --git a/keyboards/preonic/keymaps/dudeofawesome/readme.md b/keyboards/preonic/keymaps/dudeofawesome/readme.md index 244442494d2a..a5d89fc82875 100644 --- a/keyboards/preonic/keymaps/dudeofawesome/readme.md +++ b/keyboards/preonic/keymaps/dudeofawesome/readme.md @@ -10,7 +10,7 @@ - Dvorak - Colemak - Numpad layer - ![numpad layer](https://i.imgur.com/V5iGHZg.png) + ![numpad layer](https://i.imgur.com/IH8sWmQ.png) - Audio ## Building and flashing diff --git a/keyboards/preonic/keymaps/dudeofawesome/rules.mk b/keyboards/preonic/keymaps/dudeofawesome/rules.mk index e69de29bb2d1..4434d3de7e5d 100644 --- a/keyboards/preonic/keymaps/dudeofawesome/rules.mk +++ b/keyboards/preonic/keymaps/dudeofawesome/rules.mk @@ -0,0 +1,5 @@ +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. diff --git a/users/dudeofawesome/dudeofawesome.h b/users/dudeofawesome/dudeofawesome.h index 12b581b4d9f7..91557925a857 100644 --- a/users/dudeofawesome/dudeofawesome.h +++ b/users/dudeofawesome/dudeofawesome.h @@ -14,6 +14,12 @@ E__NOTE(_A6), \ S__NOTE(_REST), \ ED_NOTE(_GS6), + + #define NUMPAD_ON_SOUND \ + E__NOTE(_C6), \ + ED_NOTE(_BF5), \ + S__NOTE(_C6), \ + ED_NOTE(_BF5), #endif #endif From a730cf6718919e89ed44f5e15f24b7c2022400a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Rodr=C3=ADguez=20Rivero?= Date: Sat, 10 Mar 2018 15:17:25 +0100 Subject: [PATCH 061/578] Create sendstring_spanish.h This makes possible to use SEND_STRING with a spanish keyboard for almost all symbols except the ones that require ALT, which are documented on the code comments. I am not adding any documentation because the functionality is not complete until a way to specify alted symbols is added. --- quantum/keymap_extras/sendstring_spanish.h | 71 ++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 quantum/keymap_extras/sendstring_spanish.h diff --git a/quantum/keymap_extras/sendstring_spanish.h b/quantum/keymap_extras/sendstring_spanish.h new file mode 100644 index 000000000000..719445929019 --- /dev/null +++ b/quantum/keymap_extras/sendstring_spanish.h @@ -0,0 +1,71 @@ +/* Copyright 2018 Daniel Rodríguez + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +/* Sendstring definitions for the Spanish layout */ +#ifndef SENDSTRING_SPANISH +#define SENDSTRING_SPANISH + +#include "keymap_spanish.h" + +const bool ascii_to_shift_lut[0x80] PROGMEM = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 1, 1, 0, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 0, 0, 0, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 1, 0 +}; + +/* Until an ALT table/functionality is added, the following symbols will not work: + # @ [ ] { } | ~ +*/ +const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { + 0, 0, 0, 0, 0, 0, 0, 0, + KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, KC_ESC, 0, 0, 0, 0, +/* , ! " # $ % & ' */ + KC_SPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, ES_APOS, +/* ( ) * + , - . / */ + KC_8, KC_9, ES_PLUS, ES_PLUS, KC_COMM, ES_MINS, KC_DOT, KC_7, + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, +/* 8 9 : ; < = > ? */ + KC_8, KC_9, KC_DOT, KC_COMM, KC_NUBS, KC_0, KC_NUBS, ES_APOS, +/* @ A B C D E F G */ + KC_2, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, + KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O, + KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, +/* X Y Z [ \ ] ^ _ */ + KC_X, KC_Y, KC_Z, KC_LBRC, KC_BSLS, KC_RBRC, ES_GRV, ES_MINS, + ES_GRV, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, + KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O, + KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, + KC_X, KC_Y, KC_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_GRV, KC_DEL +}; + +#endif From 54f1cdfb1ef13cacb6a8271fe2f1950f50f78c36 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 16 Mar 2018 13:26:21 -0700 Subject: [PATCH 062/578] Add teensy revision folder for Orthodox Rev3 (#2510) * Add Rev3 Teensy for Orthodox * MOve bootloader defines into revision folders * Finishing touches --- keyboards/orthodox/orthodox.h | 5 +- keyboards/orthodox/rev1/config.h | 7 +- keyboards/orthodox/rev1/rules.mk | 3 +- keyboards/orthodox/rev3/config.h | 2 +- keyboards/orthodox/rev3/rules.mk | 1 + keyboards/orthodox/rev3_teensy/config.h | 93 ++++++++++++++++++++ keyboards/orthodox/rev3_teensy/rev3_teensy.c | 35 ++++++++ keyboards/orthodox/rev3_teensy/rev3_teensy.h | 47 ++++++++++ keyboards/orthodox/rev3_teensy/rules.mk | 2 + keyboards/orthodox/rules.mk | 2 - 10 files changed, 186 insertions(+), 11 deletions(-) create mode 100644 keyboards/orthodox/rev3_teensy/config.h create mode 100644 keyboards/orthodox/rev3_teensy/rev3_teensy.c create mode 100644 keyboards/orthodox/rev3_teensy/rev3_teensy.h create mode 100644 keyboards/orthodox/rev3_teensy/rules.mk diff --git a/keyboards/orthodox/orthodox.h b/keyboards/orthodox/orthodox.h index 970d3a117378..932f8fd12453 100644 --- a/keyboards/orthodox/orthodox.h +++ b/keyboards/orthodox/orthodox.h @@ -5,7 +5,10 @@ #include "rev1.h" #endif #ifdef KEYBOARD_orthodox_rev3 - #include "rev3.h" +#include "rev3.h" +#endif +#ifdef KEYBOARD_orthodox_rev3_teensy +#include "rev3_teensy.h" #endif // Used to create a keymap using only KC_ prefixed keys diff --git a/keyboards/orthodox/rev1/config.h b/keyboards/orthodox/rev1/config.h index d6564f281c96..98c24c8c08dc 100644 --- a/keyboards/orthodox/rev1/config.h +++ b/keyboards/orthodox/rev1/config.h @@ -45,11 +45,6 @@ along with this program. If not, see . #define MATRIX_COL_PINS { D7, F4, F5, F6, F7, B1, B3, B2, B6 } //#define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4, D7 } -/*/ -//TEENSY -#define MATRIX_ROW_PINS { D0, C6, C7, } -#define MATRIX_COL_PINS { D2, F5, F6, F7, B6, B5, B4, D7, D6 } -/*/ /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW @@ -70,7 +65,7 @@ along with this program. If not, see . /* key combination for command */ #define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_LGUI)) \ ) /* ws2812 RGB LED */ diff --git a/keyboards/orthodox/rev1/rules.mk b/keyboards/orthodox/rev1/rules.mk index f845616741c2..7e31822098d3 100644 --- a/keyboards/orthodox/rev1/rules.mk +++ b/keyboards/orthodox/rev1/rules.mk @@ -1 +1,2 @@ -BACKLIGHT_ENABLE = no \ No newline at end of file +BACKLIGHT_ENABLE = no +BOOTLOADER = caterina diff --git a/keyboards/orthodox/rev3/config.h b/keyboards/orthodox/rev3/config.h index 5022e888b51f..851499176258 100644 --- a/keyboards/orthodox/rev3/config.h +++ b/keyboards/orthodox/rev3/config.h @@ -70,7 +70,7 @@ along with this program. If not, see . /* key combination for command */ #define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_LGUI)) \ ) /* ws2812 RGB LED */ diff --git a/keyboards/orthodox/rev3/rules.mk b/keyboards/orthodox/rev3/rules.mk index 7b30c0beff2a..7e31822098d3 100644 --- a/keyboards/orthodox/rev3/rules.mk +++ b/keyboards/orthodox/rev3/rules.mk @@ -1 +1,2 @@ BACKLIGHT_ENABLE = no +BOOTLOADER = caterina diff --git a/keyboards/orthodox/rev3_teensy/config.h b/keyboards/orthodox/rev3_teensy/config.h new file mode 100644 index 000000000000..daba627fa8e5 --- /dev/null +++ b/keyboards/orthodox/rev3_teensy/config.h @@ -0,0 +1,93 @@ +/* +This is the c configuration file for the subproject + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2017 Art Ortenburger + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef REV3_TEENSY_CONFIG_H +#define REV3_TEENSY_CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x3060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER deductivemonkee +#define PRODUCT Monkeebs Orthodox Rev.3 (Teensy) +#define DESCRIPTION Bananadox + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 6 +#define MATRIX_COLS 9 + +// wiring of each half + +//REV.3 TEENSY +#define MATRIX_ROW_PINS { B0, C6, C7, } +#define MATRIX_COL_PINS { D2, F5, F6, D6, D7, B4, B5, B6, F7 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +// #define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +// #define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +// #define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_LGUI)) \ +) + +/* ws2812 RGB LED */ +//#define RGB_DI_PIN D3 +//#define RGBLIGHT_TIMER +//#define RGBLED_NUM 16 // Number of LEDs +//#define ws2812_PORTREG PORTD +//#define ws2812_DDRREG DDRD + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/orthodox/rev3_teensy/rev3_teensy.c b/keyboards/orthodox/rev3_teensy/rev3_teensy.c new file mode 100644 index 000000000000..ae45e34b1992 --- /dev/null +++ b/keyboards/orthodox/rev3_teensy/rev3_teensy.c @@ -0,0 +1,35 @@ +/* +This is the source file for the subproject + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2017 Art Ortenburger + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "orthodox.h" + +void matrix_init_kb(void) { + + //// // green led on + //// DDRD |= (1<<5); + //// PORTD &= ~(1<<5); + + //// // orange led on + //// DDRB |= (1<<0); + //// PORTB &= ~(1<<0); + + matrix_init_user(); +}; diff --git a/keyboards/orthodox/rev3_teensy/rev3_teensy.h b/keyboards/orthodox/rev3_teensy/rev3_teensy.h new file mode 100644 index 000000000000..18b47671c709 --- /dev/null +++ b/keyboards/orthodox/rev3_teensy/rev3_teensy.h @@ -0,0 +1,47 @@ +/* +This is the header file for the subproject + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2017 Art Ortenburger + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef REV3_TEENSY_H +#define REV3_TEENSY_H + +#include "orthodox.h" + +//void promicro_bootloader_jmp(bool program); +#include "quantum.h" + +//void promicro_bootloader_jmp(bool program); + +#define KEYMAP( \ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ + L10, L11, L12, L13, L14, L15, L16, L18, R10, R12, R13, R14, R15, R16, R17, R18, \ + L20, L21, L22, L23, L24, L25, L26, L27, L28, R20, R21, R22, R23, R24, R25, R26, R27, R28 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15, L16, KC_NO, L18}, \ + { L20, L21, L22, L23, L24, L25, L26, L27, L28 }, \ + { R05, R04, R03, R02, R01, R00 }, \ + { R18, R17, R16, R15, R14, R13, R12, KC_NO, R10 }, \ + { R28, R27, R26, R25, R24, R23, R22, R21, R20 } \ + } + +#endif + diff --git a/keyboards/orthodox/rev3_teensy/rules.mk b/keyboards/orthodox/rev3_teensy/rules.mk new file mode 100644 index 000000000000..409061345729 --- /dev/null +++ b/keyboards/orthodox/rev3_teensy/rules.mk @@ -0,0 +1,2 @@ +BACKLIGHT_ENABLE = no +BOOTLOADER = halfkay diff --git a/keyboards/orthodox/rules.mk b/keyboards/orthodox/rules.mk index 1bbae99a3eaf..7132a915bf36 100644 --- a/keyboards/orthodox/rules.mk +++ b/keyboards/orthodox/rules.mk @@ -4,7 +4,6 @@ SRC += matrix.c \ serial.c # MCU name -#MCU = at90usb1287 MCU = atmega32u4 # Processor frequency. @@ -43,7 +42,6 @@ F_USB = $(F_CPU) # This definition is optional, and if your keyboard supports multiple bootloaders of # different sizes, comment this out, and the correct address will be loaded # automatically (+60). See bootloader.mk for all options. -BOOTLOADER = caterina # Interrupt driven control endpoint task(+60) OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT From ea070950e7c5f21ec1c24df53acdef5608b703b3 Mon Sep 17 00:00:00 2001 From: Otto Rask Date: Fri, 16 Mar 2018 22:27:03 +0200 Subject: [PATCH 063/578] Add underglow animation support to rask's UK78 (#2512) * Add rask's Satan layout * Add rask's Satan layout * Add rask's BananaSplit60 layout * Add rask's BS60 readme * Fix rask's BS60 readme image * Fix rask's BS60 readme image again * Add rask's UK78 layout * Change RGui to be LGui to fix locale switching On Ubuntu the keyboard seemingly lost RGui when toggling between typing languages. With LGui toggling works normally. * Add rask's ErgoDox Infinity layout * Modify ErgoDox layout and add readme for it * Add rask's UK78 layout readme * Add undnerglow animation to rask's UK78 firmware --- keyboards/uk78/keymaps/rask/README.md | 5 +++++ keyboards/uk78/keymaps/rask/keymap.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/keyboards/uk78/keymaps/rask/README.md b/keyboards/uk78/keymaps/rask/README.md index 1fabd4d496d9..c9740c9f8910 100644 --- a/keyboards/uk78/keymaps/rask/README.md +++ b/keyboards/uk78/keymaps/rask/README.md @@ -2,6 +2,11 @@ ![UK78 Layout](https://i.imgur.com/46trAbD.png) +### Update 2018-03-10 + +Added `RGB_MOD` key on layer two to the `F` key location, allows +shuffling between underglow animation modes. + ## Flashing Plug the keyboard in and press the reset button, then in the main diff --git a/keyboards/uk78/keymaps/rask/keymap.c b/keyboards/uk78/keymaps/rask/keymap.c index 7482c1940eea..f29a0923b11a 100644 --- a/keyboards/uk78/keymaps/rask/keymap.c +++ b/keyboards/uk78/keymaps/rask/keymap.c @@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-------------------------------------------------------------------------------| * | | | | |RST| | | | |Prv|Ply|Nxt| | | | | | | * |-------------------------------------------------------------------------------| - * |Caps | | | |Hu+|Va+|Sa+| | |Vod|Vou|Mut| | | | | | | + * |Caps | | |uln|Hu+|Va+|Sa+| | |Vod|Vou|Mut| | | | | | | * |-------------------------------------------------------------------------------| * | | | |RGB|Hu-|Va-|Sa-|Bl-|Bl+|Stp| | | | | | | | * |-------------------------------------------------------------------------------| @@ -66,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FL2] = KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, BL_DEC, BL_INC, KC_MSTP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_APP, KC_APP, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), From 3d1801e63a03779df5b47076b5b129b41d5f8891 Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Sat, 17 Mar 2018 05:28:07 +0900 Subject: [PATCH 064/578] Helix keyboard led test as a keymap (#2513) * duplicate keyboards/helix/rev2/keymaps/default to keyboards/helix/rev2/keymaps/led_test * OLED & RGB LED on * duplicate quantum/rgblight.[ch] to keyboards/helix/rev2/keymaps/led_test * rgblight.c modify for RGB test --- .../helix/rev2/keymaps/led_test/config.h | 97 +++ .../helix/rev2/keymaps/led_test/keymap.c | 616 ++++++++++++++++ .../helix/rev2/keymaps/led_test/rgblight.c | 666 ++++++++++++++++++ .../helix/rev2/keymaps/led_test/rgblight.h | 148 ++++ .../helix/rev2/keymaps/led_test/rules.mk | 38 + 5 files changed, 1565 insertions(+) create mode 100644 keyboards/helix/rev2/keymaps/led_test/config.h create mode 100644 keyboards/helix/rev2/keymaps/led_test/keymap.c create mode 100644 keyboards/helix/rev2/keymaps/led_test/rgblight.c create mode 100644 keyboards/helix/rev2/keymaps/led_test/rgblight.h create mode 100644 keyboards/helix/rev2/keymaps/led_test/rules.mk diff --git a/keyboards/helix/rev2/keymaps/led_test/config.h b/keyboards/helix/rev2/keymaps/led_test/config.h new file mode 100644 index 000000000000..fa16b87f0f65 --- /dev/null +++ b/keyboards/helix/rev2/keymaps/led_test/config.h @@ -0,0 +1,97 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +/* Use I2C or Serial */ + +#define USE_I2C +#define USE_SERIAL +//#define USE_MATRIX_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +// Helix keyboard OLED support +#define SSD1306OLED + +/* Select rows configuration */ +// Rows are 4 or 5 +#define HELIX_ROWS 5 + +/* key matrix size */ +// Rows are doubled-up +#if HELIX_ROWS == 4 + #define MATRIX_ROWS 8 + #define MATRIX_COLS 7 + #define MATRIX_ROW_PINS { D4, C6, D7, E6 } +#elif HELIX_ROWS == 5 + #define MATRIX_ROWS 10 + #define MATRIX_COLS 7 + #define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 } +#else + #error "expected HELIX_ROWS 4 or 5" +#endif + +#define USE_SERIAL_PD2 + +#define PREVENT_STUCK_MODIFIERS +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 100 + + +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +// Helix keyboard : see ./rules.mk: RGBLIGHT_ENABLE = yes or no +// Helix keyboard : RGBLED_NUM 6 or 32 +#define RGBLED_NUM 32 +#if RGBLED_NUM <= 6 + #define RGBLIGHT_LIMIT_VAL 255 +#else + #if HELIX_ROWS == 5 + #define RGBLIGHT_LIMIT_VAL 120 + #else + #define RGBLIGHT_LIMIT_VAL 130 + #endif +#endif +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 +#endif + +#ifdef RGBLIGHT_ENABLE +// USB_MAX_POWER_CONSUMPTION value for Helix keyboard +// 120 RGBoff, OLEDoff +// 120 OLED +// 330 RGB 6 +// 300 RGB 32 +// 310 OLED & RGB 32 + #define USB_MAX_POWER_CONSUMPTION 330 +#else + // fix iPhone and iPad power adapter issue + // iOS device need lessthan 100 + #define USB_MAX_POWER_CONSUMPTION 100 +#endif diff --git a/keyboards/helix/rev2/keymaps/led_test/keymap.c b/keyboards/helix/rev2/keymaps/led_test/keymap.c new file mode 100644 index 000000000000..b8a9baee3435 --- /dev/null +++ b/keyboards/helix/rev2/keymaps/led_test/keymap.c @@ -0,0 +1,616 @@ +#include "helix.h" +#include "bootloader.h" +#include "action_layer.h" +#include "eeconfig.h" +#ifdef PROTOCOL_LUFA +#include "lufa.h" +#include "split_util.h" +#endif +#include "LUFA/Drivers/Peripheral/TWI.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif +#ifdef SSD1306OLED + #include "ssd1306.h" +#endif + +extern keymap_config_t keymap_config; + +#ifdef RGBLIGHT_ENABLE +//Following line allows macro to read current RGB settings +extern rgblight_config_t rgblight_config; +#endif + +extern uint8_t is_master; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _ADJUST 16 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, + ADJUST, + BACKLIT, + EISU, + KANA, + RGBRST +}; + +enum macro_keycodes { + KC_SAMPLEMACRO, +}; + + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO +//Macros +#define M_SAMPLE M(KC_SAMPLEMACRO) + +#if HELIX_ROWS == 5 +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | [ | ] | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + * `-------------------------------------------------------------------------------------------------' + */ + [_QWERTY] = KEYMAP( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ + ADJUST, KC_ESC, KC_LALT, KC_LGUI, EISU, LOWER, KC_SPC, KC_SPC, RAISE, KANA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + ), + + /* Colemak + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | R | S | T | D | | H | N | E | I | O | ' | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | [ | ] | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + * `-------------------------------------------------------------------------------------------------' + */ + [_COLEMAK] = KEYMAP( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ + KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ + ADJUST, KC_ESC, KC_LALT, KC_LGUI, EISU, LOWER, KC_SPC, KC_SPC, RAISE, KANA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + ), + + /* Dvorak + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | ' | , | . | P | Y | | F | G | C | R | L | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | O | E | U | I | | D | H | T | N | S | / | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | [ | ] | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + * `-------------------------------------------------------------------------------------------------' + */ + [_DVORAK] = KEYMAP( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL, \ + KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_LBRC, KC_RBRC, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , \ + ADJUST, KC_ESC, KC_LALT, KC_LGUI, EISU, LOWER, KC_SPC, KC_SPC, RAISE, KANA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + ), + + /* Lower + * ,-----------------------------------------. ,-----------------------------------------. + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | ( | ) | F12 | | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-------------------------------------------------------------------------------------------------' + */ + [_LOWER] = KEYMAP( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, \ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_LPRN, KC_RPRN, KC_F12, _______, _______, KC_HOME, KC_END, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + ), + + /* Raise + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | | | F12 | | |PageDn|PageUp| | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-------------------------------------------------------------------------------------------------' + */ + [_RAISE] = KEYMAP( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, KC_F12, _______, _______, KC_PGDN, KC_PGUP, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + ), + + /* Adjust (Lower + Raise) + * ,-----------------------------------------. ,-----------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | Reset|RGBRST| | | | | | | | | | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | |Aud on|Audoff| Mac | | Win |Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | |RGB ON| HUE+ | SAT+ | VAL+ | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | MODE | HUE- | SAT- | VAL- | + * `-------------------------------------------------------------------------------------------------' + */ + [_ADJUST] = KEYMAP( \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ + _______, RESET, RGBRST, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD \ + ) +}; + +#elif HELIX_ROWS == 4 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------. ,-----------------------------------------. + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + * |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + * `-------------------------------------------------------------------------------------------------' + */ + [_QWERTY] = KEYMAP( \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ + ADJUST, KC_ESC, KC_LALT, KC_LGUI, EISU, LOWER, KC_SPC, KC_SPC, RAISE, KANA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + ), + + /* Colemak + * ,-----------------------------------------. ,-----------------------------------------. + * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | R | S | T | D | | H | N | E | I | O | ' | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + * |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + * `-------------------------------------------------------------------------------------------------' + */ + [_COLEMAK] = KEYMAP( \ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ + KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ + ADJUST, KC_ESC, KC_LALT, KC_LGUI, EISU, LOWER, KC_SPC, KC_SPC, RAISE, KANA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + ), + + /* Dvorak + * ,-----------------------------------------. ,-----------------------------------------. + * | Tab | ' | , | . | P | Y | | F | G | C | R | L | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | O | E | U | I | | D | H | T | N | S | / | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + * |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + * `-------------------------------------------------------------------------------------------------' + */ + [_DVORAK] = KEYMAP( \ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL, \ + KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , \ + ADJUST, KC_ESC, KC_LALT, KC_LGUI, EISU, LOWER, KC_SPC, KC_SPC, RAISE, KANA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + ), + + /* Lower + * ,-----------------------------------------. ,-----------------------------------------. + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | | F12 | | | Home | End | | + * |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + * | | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-------------------------------------------------------------------------------------------------' + */ + [_LOWER] = KEYMAP( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, \ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_HOME, KC_END, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + ), + + /* Raise + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | | F12 | | |PageDn|PageUp| | + * |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + * | | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-------------------------------------------------------------------------------------------------' + */ + [_RAISE] = KEYMAP( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PGDN, KC_PGUP, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + ), + + /* Adjust (Lower + Raise) + * ,-----------------------------------------. ,-----------------------------------------. + * | | Reset| | | | | | | | | | | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | |Aud on|Audoff| Mac | | Win |Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | |RGB ON| HUE+ | SAT+ | VAL+ | + * |------+------+------+------+------+------+-------------+------+------+------+------+------+------| + * | | | | | | | | | | | MODE | HUE- | SAT- | VAL- | + * `-------------------------------------------------------------------------------------------------' + */ + [_ADJUST] = KEYMAP( \ + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD \ + ) +}; + +#else +#error "undefined keymaps" +#endif + + +#ifdef AUDIO_ENABLE + +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); +#endif + +// define variables for reactive RGB +bool TOG_STATUS = false; +int RGB_current_mode; + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +// Setting ADJUST layer RGB back to default +void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(RGB_current_mode); + #endif + layer_on(layer3); + } else { + layer_off(layer3); + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_qwerty); + #endif + persistent_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_colemak); + #endif + persistent_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_dvorak); + #endif + persistent_default_layer_set(1UL<<_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + //not sure how to have keyboard check mode and set it to a variable, so my work around + //uses another variable that would be set to true after the first time a reactive key is pressed. + if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false + } else { + TOG_STATUS = !TOG_STATUS; + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(16); + #endif + } + layer_on(_LOWER); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } else { + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change + #endif + TOG_STATUS = false; + layer_off(_LOWER); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + //not sure how to have keyboard check mode and set it to a variable, so my work around + //uses another variable that would be set to true after the first time a reactive key is pressed. + if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false + } else { + TOG_STATUS = !TOG_STATUS; + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(15); + #endif + } + layer_on(_RAISE); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } else { + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change + #endif + layer_off(_RAISE); + TOG_STATUS = false; + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + break; + //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released + case RGB_MOD: + #ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + rgblight_mode(RGB_current_mode); + rgblight_step(); + RGB_current_mode = rgblight_config.mode; + } + #endif + return false; + break; + case EISU: + if (record->event.pressed) { + if(keymap_config.swap_lalt_lgui==false){ + register_code(KC_LANG2); + }else{ + SEND_STRING(SS_LALT("`")); + } + } else { + unregister_code(KC_LANG2); + } + return false; + break; + case KANA: + if (record->event.pressed) { + if(keymap_config.swap_lalt_lgui==false){ + register_code(KC_LANG1); + }else{ + SEND_STRING(SS_LALT("`")); + } + } else { + unregister_code(KC_LANG1); + } + return false; + break; + case RGBRST: + #ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + eeconfig_update_rgblight_default(); + rgblight_enable(); + RGB_current_mode = rgblight_config.mode; + } + #endif + break; + } + return true; +} + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + startup_user(); + #endif + #ifdef RGBLIGHT_ENABLE + RGB_current_mode = rgblight_config.mode; + #endif + //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h + #ifdef SSD1306OLED + TWI_Init(TWI_BIT_PRESCALE_1, TWI_BITLENGTH_FROM_FREQ(1, 800000)); + iota_gfx_init(!has_usb()); // turns on the display + #endif +} + + +#ifdef AUDIO_ENABLE + +void startup_user() +{ + _delay_ms(20); // gets rid of tick +} + +void shutdown_user() +{ + _delay_ms(150); + stop_all_notes(); +} + +void music_on_user(void) +{ + music_scale_user(); +} + +void music_scale_user(void) +{ + PLAY_SONG(music_scale); +} + +#endif + + +//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h +#ifdef SSD1306OLED + +void matrix_scan_user(void) { + iota_gfx_task(); // this is what updates the display continuously +} + +void matrix_update(struct CharacterMatrix *dest, + const struct CharacterMatrix *source) { + if (memcmp(dest->display, source->display, sizeof(dest->display))) { + memcpy(dest->display, source->display, sizeof(dest->display)); + dest->dirty = true; + } +} + +//assign the right code to your layers for OLED display +#define L_BASE 0 +#define L_LOWER 8 +#define L_RAISE 16 +#define L_FNLAYER 64 +#define L_NUMLAY 128 +#define L_NLOWER 136 +#define L_NFNLAYER 192 +#define L_MOUSECURSOR 256 +#define L_ADJUST 65536 +#define L_ADJUST_TRI 65560 + +static void render_logo(struct CharacterMatrix *matrix) { + + static char logo[]={ + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4, + 0}; + matrix_write(matrix, logo); + //matrix_write_P(&matrix, PSTR(" Split keyboard kit")); +} + + + +void render_status(struct CharacterMatrix *matrix) { + + // Render to mode icon + static char logo[][2][3]={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}}; + if(keymap_config.swap_lalt_lgui==false){ + matrix_write(matrix, logo[0][0]); + matrix_write_P(matrix, PSTR("\n")); + matrix_write(matrix, logo[0][1]); + }else{ + matrix_write(matrix, logo[1][0]); + matrix_write_P(matrix, PSTR("\n")); + matrix_write(matrix, logo[1][1]); + } + + // Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below + char buf[40]; + snprintf(buf,sizeof(buf), "Undef-%ld", layer_state); + matrix_write_P(matrix, PSTR("\nLayer: ")); + switch (layer_state) { + case L_BASE: + matrix_write_P(matrix, PSTR("Default")); + break; + case L_RAISE: + matrix_write_P(matrix, PSTR("Raise")); + break; + case L_LOWER: + matrix_write_P(matrix, PSTR("Lower")); + break; + case L_ADJUST: + case L_ADJUST_TRI: + matrix_write_P(matrix, PSTR("Adjust")); + break; + default: + matrix_write(matrix, buf); + } + + // Host Keyboard LED Status + char led[40]; + snprintf(led, sizeof(led), "\n%s %s %s", + (host_keyboard_leds() & (1<. + */ +#include +#include +#include +#include +#include "progmem.h" +#include "timer.h" +#include "rgblight.h" +#include "debug.h" +#include "led_tables.h" + +__attribute__ ((weak)) +const uint16_t RGBLED_BREATHING_INTERVALS[] PROGMEM = {1024, 20, 10, 5}; //modify for led_test +__attribute__ ((weak)) +const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {120, 60, 30}; +__attribute__ ((weak)) +const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {100, 50, 20}; +__attribute__ ((weak)) +const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 50, 20}; +__attribute__ ((weak)) +const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {127, 63, 31}; +__attribute__ ((weak)) +const uint16_t RGBLED_GRADIENT_RANGES[] PROGMEM = {360, 240, 180, 120, 90}; + +rgblight_config_t rgblight_config; +rgblight_config_t inmem_config; + +LED_TYPE led[RGBLED_NUM]; +uint8_t rgblight_inited = 0; +bool rgblight_timer_enabled = false; + +void sethsv(uint16_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1) { + uint8_t r = 0, g = 0, b = 0, base, color; + + #ifdef RGBLIGHT_LIMIT_VAL + if (val > RGBLIGHT_LIMIT_VAL) { + val=RGBLIGHT_LIMIT_VAL; // limit the val + } + #endif + + if (sat == 0) { // Acromatic color (gray). Hue doesn't mind. + r = val; + g = val; + b = val; + } else { + base = ((255 - sat) * val) >> 8; + color = (val - base) * (hue % 60) / 60; + + switch (hue / 60) { + case 0: + r = val; + g = base + color; + b = base; + break; + case 1: + r = val - color; + g = val; + b = base; + break; + case 2: + r = base; + g = val; + b = base + color; + break; + case 3: + r = base; + g = val - color; + b = val; + break; + case 4: + r = base + color; + g = base; + b = val; + break; + case 5: + r = val; + g = base; + b = val - color; + break; + } + } + r = pgm_read_byte(&CIE1931_CURVE[r]); + g = pgm_read_byte(&CIE1931_CURVE[g]); + b = pgm_read_byte(&CIE1931_CURVE[b]); + + setrgb(r, g, b, led1); +} + +void setrgb(uint8_t r, uint8_t g, uint8_t b, LED_TYPE *led1) { + (*led1).r = r; + (*led1).g = g; + (*led1).b = b; +} + + +uint32_t eeconfig_read_rgblight(void) { + return eeprom_read_dword(EECONFIG_RGBLIGHT); +} +void eeconfig_update_rgblight(uint32_t val) { + eeprom_update_dword(EECONFIG_RGBLIGHT, val); +} +void eeconfig_update_rgblight_default(void) { + dprintf("eeconfig_update_rgblight_default\n"); + rgblight_config.enable = 1; + rgblight_config.mode = 1; + rgblight_config.hue = 0; + rgblight_config.sat = 255; + rgblight_config.val = 255; + eeconfig_update_rgblight(rgblight_config.raw); +} +void eeconfig_debug_rgblight(void) { + dprintf("rgblight_config eprom\n"); + dprintf("rgblight_config.enable = %d\n", rgblight_config.enable); + dprintf("rghlight_config.mode = %d\n", rgblight_config.mode); + dprintf("rgblight_config.hue = %d\n", rgblight_config.hue); + dprintf("rgblight_config.sat = %d\n", rgblight_config.sat); + dprintf("rgblight_config.val = %d\n", rgblight_config.val); +} + +void rgblight_init(void) { + debug_enable = 1; // Debug ON! + dprintf("rgblight_init called.\n"); + rgblight_inited = 1; + dprintf("rgblight_init start!\n"); + if (!eeconfig_is_enabled()) { + dprintf("rgblight_init eeconfig is not enabled.\n"); + eeconfig_init(); + eeconfig_update_rgblight_default(); + } + rgblight_config.raw = eeconfig_read_rgblight(); + if (!rgblight_config.mode) { + dprintf("rgblight_init rgblight_config.mode = 0. Write default values to EEPROM.\n"); + eeconfig_update_rgblight_default(); + rgblight_config.raw = eeconfig_read_rgblight(); + } + eeconfig_debug_rgblight(); // display current eeprom values + + #ifdef RGBLIGHT_ANIMATIONS + rgblight_timer_init(); // setup the timer + #endif + + if (rgblight_config.enable) { + rgblight_mode(rgblight_config.mode); + } +} + +void rgblight_update_dword(uint32_t dword) { + rgblight_config.raw = dword; + eeconfig_update_rgblight(rgblight_config.raw); + if (rgblight_config.enable) + rgblight_mode(rgblight_config.mode); + else { + #ifdef RGBLIGHT_ANIMATIONS + rgblight_timer_disable(); + #endif + rgblight_set(); + } +} + +void rgblight_increase(void) { + uint8_t mode = 0; + if (rgblight_config.mode < RGBLIGHT_MODES) { + mode = rgblight_config.mode + 1; + } + rgblight_mode(mode); +} +void rgblight_decrease(void) { + uint8_t mode = 0; + // Mode will never be < 1. If it ever is, eeprom needs to be initialized. + if (rgblight_config.mode > 1) { + mode = rgblight_config.mode - 1; + } + rgblight_mode(mode); +} +void rgblight_step(void) { + uint8_t mode = 0; + mode = rgblight_config.mode + 1; + if (mode > RGBLIGHT_MODES) { + mode = 1; + } + rgblight_mode(mode); +} +void rgblight_step_reverse(void) { + uint8_t mode = 0; + mode = rgblight_config.mode - 1; + if (mode < 1) { + mode = RGBLIGHT_MODES; + } + rgblight_mode(mode); +} + +uint32_t rgblight_get_mode(void) { + if (!rgblight_config.enable) { + return false; + } + + return rgblight_config.mode; +} + +void rgblight_mode(uint8_t mode) { + if (!rgblight_config.enable) { + return; + } + if (mode < 1) { + rgblight_config.mode = 1; + } else if (mode > RGBLIGHT_MODES) { + rgblight_config.mode = RGBLIGHT_MODES; + } else { + rgblight_config.mode = mode; + } + eeconfig_update_rgblight(rgblight_config.raw); + xprintf("rgblight mode: %u\n", rgblight_config.mode); + if (rgblight_config.mode == 1) { + #ifdef RGBLIGHT_ANIMATIONS + rgblight_timer_disable(); + #endif + } else if (rgblight_config.mode >= 2 && rgblight_config.mode <= 24) { + // MODE 2-5, breathing + // MODE 6-8, rainbow mood + // MODE 9-14, rainbow swirl + // MODE 15-20, snake + // MODE 21-23, knight + // MODE 24, xmas + // MODE 25-34, static rainbow + + #ifdef RGBLIGHT_ANIMATIONS + rgblight_timer_enable(); + #endif + } else if (rgblight_config.mode >= 25 && rgblight_config.mode <= 34) { + // MODE 25-34, static gradient + + #ifdef RGBLIGHT_ANIMATIONS + rgblight_timer_disable(); + #endif + } + rgblight_sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val); +} + +void rgblight_toggle(void) { + xprintf("rgblight toggle: rgblight_config.enable = %u\n", !rgblight_config.enable); + if (rgblight_config.enable) { + rgblight_disable(); + } + else { + rgblight_enable(); + } +} + +void rgblight_enable(void) { + rgblight_config.enable = 1; + eeconfig_update_rgblight(rgblight_config.raw); + xprintf("rgblight enable: rgblight_config.enable = %u\n", rgblight_config.enable); + rgblight_mode(rgblight_config.mode); +} + +void rgblight_disable(void) { + rgblight_config.enable = 0; + eeconfig_update_rgblight(rgblight_config.raw); + xprintf("rgblight disable: rgblight_config.enable = %u\n", rgblight_config.enable); + #ifdef RGBLIGHT_ANIMATIONS + rgblight_timer_disable(); + #endif + _delay_ms(50); + rgblight_set(); +} + + +void rgblight_increase_hue(void) { + uint16_t hue; + hue = (rgblight_config.hue+RGBLIGHT_HUE_STEP) % 360; + rgblight_sethsv(hue, rgblight_config.sat, rgblight_config.val); +} +void rgblight_decrease_hue(void) { + uint16_t hue; + if (rgblight_config.hue-RGBLIGHT_HUE_STEP < 0) { + hue = (rgblight_config.hue + 360 - RGBLIGHT_HUE_STEP) % 360; + } else { + hue = (rgblight_config.hue - RGBLIGHT_HUE_STEP) % 360; + } + rgblight_sethsv(hue, rgblight_config.sat, rgblight_config.val); +} +void rgblight_increase_sat(void) { + uint8_t sat; + if (rgblight_config.sat + RGBLIGHT_SAT_STEP > 255) { + sat = 255; + } else { + sat = rgblight_config.sat + RGBLIGHT_SAT_STEP; + } + rgblight_sethsv(rgblight_config.hue, sat, rgblight_config.val); +} +void rgblight_decrease_sat(void) { + uint8_t sat; + if (rgblight_config.sat - RGBLIGHT_SAT_STEP < 0) { + sat = 0; + } else { + sat = rgblight_config.sat - RGBLIGHT_SAT_STEP; + } + rgblight_sethsv(rgblight_config.hue, sat, rgblight_config.val); +} +void rgblight_increase_val(void) { + uint8_t val; + if (rgblight_config.val + RGBLIGHT_VAL_STEP > 255) { + val = 255; + } else { + val = rgblight_config.val + RGBLIGHT_VAL_STEP; + } + rgblight_sethsv(rgblight_config.hue, rgblight_config.sat, val); +} +void rgblight_decrease_val(void) { + uint8_t val; + if (rgblight_config.val - RGBLIGHT_VAL_STEP < 0) { + val = 0; + } else { + val = rgblight_config.val - RGBLIGHT_VAL_STEP; + } + rgblight_sethsv(rgblight_config.hue, rgblight_config.sat, val); +} + +void rgblight_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val) { + inmem_config.raw = rgblight_config.raw; + if (rgblight_config.enable) { + LED_TYPE tmp_led; + sethsv(hue, sat, val, &tmp_led); + inmem_config.hue = hue; + inmem_config.sat = sat; + inmem_config.val = val; + // dprintf("rgblight set hue [MEMORY]: %u,%u,%u\n", inmem_config.hue, inmem_config.sat, inmem_config.val); + rgblight_setrgb(tmp_led.r, tmp_led.g, tmp_led.b); + } +} +void rgblight_sethsv(uint16_t hue, uint8_t sat, uint8_t val) { + if (rgblight_config.enable) { + if (rgblight_config.mode == 1) { + // same static color + rgblight_sethsv_noeeprom(hue, sat, val); + } else { + // all LEDs in same color + if (rgblight_config.mode >= 2 && rgblight_config.mode <= 5) { + // breathing mode, ignore the change of val, use in memory value instead + val = rgblight_config.val; + } else if (rgblight_config.mode >= 6 && rgblight_config.mode <= 14) { + // rainbow mood and rainbow swirl, ignore the change of hue + hue = rgblight_config.hue; + } else if (rgblight_config.mode >= 25 && rgblight_config.mode <= 34) { + // static gradient + uint16_t _hue; + int8_t direction = ((rgblight_config.mode - 25) % 2) ? -1 : 1; + uint16_t range = pgm_read_word(&RGBLED_GRADIENT_RANGES[(rgblight_config.mode - 25) / 2]); + for (uint8_t i = 0; i < RGBLED_NUM; i++) { + _hue = (range / RGBLED_NUM * i * direction + hue + 360) % 360; + dprintf("rgblight rainbow set hsv: %u,%u,%d,%u\n", i, _hue, direction, range); + sethsv(_hue, sat, val, (LED_TYPE *)&led[i]); + } + rgblight_set(); + } + } + rgblight_config.hue = hue; + rgblight_config.sat = sat; + rgblight_config.val = val; + eeconfig_update_rgblight(rgblight_config.raw); + xprintf("rgblight set hsv [EEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val); + } +} + +uint16_t rgblight_get_hue(void) { + return rgblight_config.hue; +} + +uint8_t rgblight_get_sat(void) { + return rgblight_config.sat; +} + +uint8_t rgblight_get_val(void) { + return rgblight_config.val; +} + +void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b) { + if (!rgblight_config.enable) { return; } + + for (uint8_t i = 0; i < RGBLED_NUM; i++) { + led[i].r = r; + led[i].g = g; + led[i].b = b; + } + rgblight_set(); +} + +void rgblight_setrgb_at(uint8_t r, uint8_t g, uint8_t b, uint8_t index) { + if (!rgblight_config.enable || index >= RGBLED_NUM) { return; } + + led[index].r = r; + led[index].g = g; + led[index].b = b; + rgblight_set(); +} + +void rgblight_sethsv_at(uint16_t hue, uint8_t sat, uint8_t val, uint8_t index) { + if (!rgblight_config.enable) { return; } + + LED_TYPE tmp_led; + sethsv(hue, sat, val, &tmp_led); + rgblight_setrgb_at(tmp_led.r, tmp_led.g, tmp_led.b, index); +} + +#ifndef RGBLIGHT_CUSTOM_DRIVER +void rgblight_set(void) { + if (rgblight_config.enable) { + #ifdef RGBW + ws2812_setleds_rgbw(led, RGBLED_NUM); + #else + ws2812_setleds(led, RGBLED_NUM); + #endif + } else { + for (uint8_t i = 0; i < RGBLED_NUM; i++) { + led[i].r = 0; + led[i].g = 0; + led[i].b = 0; + } + #ifdef RGBW + ws2812_setleds_rgbw(led, RGBLED_NUM); + #else + ws2812_setleds(led, RGBLED_NUM); + #endif + } +} +#endif + +#ifdef RGBLIGHT_ANIMATIONS + +// Animation timer -- AVR Timer3 +void rgblight_timer_init(void) { + // static uint8_t rgblight_timer_is_init = 0; + // if (rgblight_timer_is_init) { + // return; + // } + // rgblight_timer_is_init = 1; + // /* Timer 3 setup */ + // TCCR3B = _BV(WGM32) // CTC mode OCR3A as TOP + // | _BV(CS30); // Clock selelct: clk/1 + // /* Set TOP value */ + // uint8_t sreg = SREG; + // cli(); + // OCR3AH = (RGBLED_TIMER_TOP >> 8) & 0xff; + // OCR3AL = RGBLED_TIMER_TOP & 0xff; + // SREG = sreg; + + rgblight_timer_enabled = true; +} +void rgblight_timer_enable(void) { + rgblight_timer_enabled = true; + dprintf("TIMER3 enabled.\n"); +} +void rgblight_timer_disable(void) { + rgblight_timer_enabled = false; + dprintf("TIMER3 disabled.\n"); +} +void rgblight_timer_toggle(void) { + rgblight_timer_enabled ^= rgblight_timer_enabled; + dprintf("TIMER3 toggled.\n"); +} + +void rgblight_show_solid_color(uint8_t r, uint8_t g, uint8_t b) { + rgblight_enable(); + rgblight_mode(1); + rgblight_setrgb(r, g, b); +} + +void rgblight_task(void) { + if (rgblight_inited == 1) { //modify for led_test + /* first call */ + rgblight_inited = 2; + rgblight_enable(); + rgblight_mode(2); + } + if (rgblight_timer_enabled) { + // mode = 1, static light, do nothing here + if (rgblight_config.mode >= 2 && rgblight_config.mode <= 5) { + // mode = 2 to 5, breathing mode + rgblight_effect_breathing(rgblight_config.mode - 2); +#if 0 + } else if (rgblight_config.mode >= 6 && rgblight_config.mode <= 8) { + // mode = 6 to 8, rainbow mood mod + rgblight_effect_rainbow_mood(rgblight_config.mode - 6); + } else if (rgblight_config.mode >= 9 && rgblight_config.mode <= 14) { + // mode = 9 to 14, rainbow swirl mode + rgblight_effect_rainbow_swirl(rgblight_config.mode - 9); + } else if (rgblight_config.mode >= 15 && rgblight_config.mode <= 20) { + // mode = 15 to 20, snake mode + rgblight_effect_snake(rgblight_config.mode - 15); + } else if (rgblight_config.mode >= 21 && rgblight_config.mode <= 23) { + // mode = 21 to 23, knight mode + rgblight_effect_knight(rgblight_config.mode - 21); + } else if (rgblight_config.mode == 24) { + // mode = 24, christmas mode + rgblight_effect_christmas(); +#endif + } + } +} + +// Effects +void rgblight_effect_breathing(uint8_t interval) { + static uint8_t pos = 0; + static uint16_t last_timer = 0; + + if (timer_elapsed(last_timer) < pgm_read_word(&RGBLED_BREATHING_INTERVALS[interval])) {//modify for led_test + return; + } + last_timer = timer_read(); + + + //modify for led_test + rgblight_config.hue = (pos*120)%360; + rgblight_sethsv_noeeprom(rgblight_config.hue, rgblight_config.sat, rgblight_config.val); + pos = (pos + 1) % 3; +} +#if 0 +void rgblight_effect_rainbow_mood(uint8_t interval) { + static uint16_t current_hue = 0; + static uint16_t last_timer = 0; + + if (timer_elapsed(last_timer) < pgm_read_byte(&RGBLED_RAINBOW_MOOD_INTERVALS[interval])) { + return; + } + last_timer = timer_read(); + rgblight_sethsv_noeeprom(current_hue, rgblight_config.sat, rgblight_config.val); + current_hue = (current_hue + 1) % 360; +} +void rgblight_effect_rainbow_swirl(uint8_t interval) { + static uint16_t current_hue = 0; + static uint16_t last_timer = 0; + uint16_t hue; + uint8_t i; + if (timer_elapsed(last_timer) < pgm_read_byte(&RGBLED_RAINBOW_SWIRL_INTERVALS[interval / 2])) { + return; + } + last_timer = timer_read(); + for (i = 0; i < RGBLED_NUM; i++) { + hue = (360 / RGBLED_NUM * i + current_hue) % 360; + sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i]); + } + rgblight_set(); + + if (interval % 2) { + current_hue = (current_hue + 1) % 360; + } else { + if (current_hue - 1 < 0) { + current_hue = 359; + } else { + current_hue = current_hue - 1; + } + } +} +void rgblight_effect_snake(uint8_t interval) { + static uint8_t pos = 0; + static uint16_t last_timer = 0; + uint8_t i, j; + int8_t k; + int8_t increment = 1; + if (interval % 2) { + increment = -1; + } + if (timer_elapsed(last_timer) < pgm_read_byte(&RGBLED_SNAKE_INTERVALS[interval / 2])) { + return; + } + last_timer = timer_read(); + for (i = 0; i < RGBLED_NUM; i++) { + led[i].r = 0; + led[i].g = 0; + led[i].b = 0; + for (j = 0; j < RGBLIGHT_EFFECT_SNAKE_LENGTH; j++) { + k = pos + j * increment; + if (k < 0) { + k = k + RGBLED_NUM; + } + if (i == k) { + sethsv(rgblight_config.hue, rgblight_config.sat, (uint8_t)(rgblight_config.val*(RGBLIGHT_EFFECT_SNAKE_LENGTH-j)/RGBLIGHT_EFFECT_SNAKE_LENGTH), (LED_TYPE *)&led[i]); + } + } + } + rgblight_set(); + if (increment == 1) { + if (pos - 1 < 0) { + pos = RGBLED_NUM - 1; + } else { + pos -= 1; + } + } else { + pos = (pos + 1) % RGBLED_NUM; + } +} +void rgblight_effect_knight(uint8_t interval) { + static uint16_t last_timer = 0; + if (timer_elapsed(last_timer) < pgm_read_byte(&RGBLED_KNIGHT_INTERVALS[interval])) { + return; + } + last_timer = timer_read(); + + static int8_t low_bound = 0; + static int8_t high_bound = RGBLIGHT_EFFECT_KNIGHT_LENGTH - 1; + static int8_t increment = 1; + uint8_t i, cur; + + // Set all the LEDs to 0 + for (i = 0; i < RGBLED_NUM; i++) { + led[i].r = 0; + led[i].g = 0; + led[i].b = 0; + } + // Determine which LEDs should be lit up + for (i = 0; i < RGBLIGHT_EFFECT_KNIGHT_LED_NUM; i++) { + cur = (i + RGBLIGHT_EFFECT_KNIGHT_OFFSET) % RGBLED_NUM; + + if (i >= low_bound && i <= high_bound) { + sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[cur]); + } else { + led[cur].r = 0; + led[cur].g = 0; + led[cur].b = 0; + } + } + rgblight_set(); + + // Move from low_bound to high_bound changing the direction we increment each + // time a boundary is hit. + low_bound += increment; + high_bound += increment; + + if (high_bound <= 0 || low_bound >= RGBLIGHT_EFFECT_KNIGHT_LED_NUM - 1) { + increment = -increment; + } +} + + +void rgblight_effect_christmas(void) { + static uint16_t current_offset = 0; + static uint16_t last_timer = 0; + uint16_t hue; + uint8_t i; + if (timer_elapsed(last_timer) < RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL) { + return; + } + last_timer = timer_read(); + current_offset = (current_offset + 1) % 2; + for (i = 0; i < RGBLED_NUM; i++) { + hue = 0 + ((i/RGBLIGHT_EFFECT_CHRISTMAS_STEP + current_offset) % 2) * 120; + sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i]); + } + rgblight_set(); +} +#endif /* 0 */ +#endif /* RGBLIGHT_ANIMATIONS */ diff --git a/keyboards/helix/rev2/keymaps/led_test/rgblight.h b/keyboards/helix/rev2/keymaps/led_test/rgblight.h new file mode 100644 index 000000000000..9c1c0add23d2 --- /dev/null +++ b/keyboards/helix/rev2/keymaps/led_test/rgblight.h @@ -0,0 +1,148 @@ +/* Copyright 2017 Yang Liu + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#ifndef RGBLIGHT_H +#define RGBLIGHT_H + +#ifdef RGBLIGHT_ANIMATIONS + #define RGBLIGHT_MODES 5 +#else + #define RGBLIGHT_MODES 1 +#endif + +#ifndef RGBLIGHT_EFFECT_BREATHE_CENTER +#define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1-2.7 +#endif + +#ifndef RGBLIGHT_EFFECT_BREATHE_MAX +#define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0-255 +#endif + +#ifndef RGBLIGHT_EFFECT_SNAKE_LENGTH +#define RGBLIGHT_EFFECT_SNAKE_LENGTH 4 +#endif + +#ifndef RGBLIGHT_EFFECT_KNIGHT_LENGTH +#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3 +#endif + +#ifndef RGBLIGHT_EFFECT_KNIGHT_OFFSET +#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 0 +#endif + +#ifndef RGBLIGHT_EFFECT_KNIGHT_LED_NUM +#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM RGBLED_NUM +#endif + +#ifndef RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL +#define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 1000 +#endif + +#ifndef RGBLIGHT_EFFECT_CHRISTMAS_STEP +#define RGBLIGHT_EFFECT_CHRISTMAS_STEP 2 +#endif + +#ifndef RGBLIGHT_HUE_STEP +#define RGBLIGHT_HUE_STEP 10 +#endif +#ifndef RGBLIGHT_SAT_STEP +#define RGBLIGHT_SAT_STEP 17 +#endif +#ifndef RGBLIGHT_VAL_STEP +#define RGBLIGHT_VAL_STEP 17 +#endif + +#define RGBLED_TIMER_TOP F_CPU/(256*64) +// #define RGBLED_TIMER_TOP 0xFF10 + +#include +#include +#include "eeconfig.h" +#ifndef RGBLIGHT_CUSTOM_DRIVER +#include "ws2812.h" +#endif +#include "rgblight_types.h" + +extern LED_TYPE led[RGBLED_NUM]; + +extern const uint16_t RGBLED_BREATHING_INTERVALS[4] PROGMEM; //modify for led_test +extern const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[3] PROGMEM; +extern const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[3] PROGMEM; +extern const uint8_t RGBLED_SNAKE_INTERVALS[3] PROGMEM; +extern const uint8_t RGBLED_KNIGHT_INTERVALS[3] PROGMEM; + +typedef union { + uint32_t raw; + struct { + bool enable :1; + uint8_t mode :6; + uint16_t hue :9; + uint8_t sat :8; + uint8_t val :8; + }; +} rgblight_config_t; + +void rgblight_init(void); +void rgblight_increase(void); +void rgblight_decrease(void); +void rgblight_toggle(void); +void rgblight_enable(void); +void rgblight_disable(void); +void rgblight_step(void); +void rgblight_step_reverse(void); +uint32_t rgblight_get_mode(void); +void rgblight_mode(uint8_t mode); +void rgblight_set(void); +void rgblight_update_dword(uint32_t dword); +void rgblight_increase_hue(void); +void rgblight_decrease_hue(void); +void rgblight_increase_sat(void); +void rgblight_decrease_sat(void); +void rgblight_increase_val(void); +void rgblight_decrease_val(void); +void rgblight_sethsv(uint16_t hue, uint8_t sat, uint8_t val); +uint16_t rgblight_get_hue(void); +uint8_t rgblight_get_sat(void); +uint8_t rgblight_get_val(void); +void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b); +void rgblight_setrgb_at(uint8_t r, uint8_t g, uint8_t b, uint8_t index); +void rgblight_sethsv_at(uint16_t hue, uint8_t sat, uint8_t val, uint8_t index); + +uint32_t eeconfig_read_rgblight(void); +void eeconfig_update_rgblight(uint32_t val); +void eeconfig_update_rgblight_default(void); +void eeconfig_debug_rgblight(void); + +void sethsv(uint16_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1); +void setrgb(uint8_t r, uint8_t g, uint8_t b, LED_TYPE *led1); +void rgblight_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val); + +#define EZ_RGB(val) rgblight_show_solid_color((val >> 16) & 0xFF, (val >> 8) & 0xFF, val & 0xFF) +void rgblight_show_solid_color(uint8_t r, uint8_t g, uint8_t b); + +void rgblight_task(void); + +void rgblight_timer_init(void); +void rgblight_timer_enable(void); +void rgblight_timer_disable(void); +void rgblight_timer_toggle(void); +void rgblight_effect_breathing(uint8_t interval); +void rgblight_effect_rainbow_mood(uint8_t interval); +void rgblight_effect_rainbow_swirl(uint8_t interval); +void rgblight_effect_snake(uint8_t interval); +void rgblight_effect_knight(uint8_t interval); +void rgblight_effect_christmas(void); + +#endif diff --git a/keyboards/helix/rev2/keymaps/led_test/rules.mk b/keyboards/helix/rev2/keymaps/led_test/rules.mk new file mode 100644 index 000000000000..71323916b41c --- /dev/null +++ b/keyboards/helix/rev2/keymaps/led_test/rules.mk @@ -0,0 +1,38 @@ + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = no # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +# Helix keyboard : see ./config.h: RGBLED_NUM 6 or 32 +# Helix keyboard : RGBLIGHT_ENABLE = no or yes +RGBLIGHT_ENABLE = yes-but-local # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +ONEHAND_ENABLE = no # Enable one-hand typing + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif + +#copy from common_features.mk and modify rgblight.c + OPT_DEFS += -DRGBLIGHT_ENABLE + SRC += rgblight.c + CIE1931_CURVE = yes + LED_BREATHING_TABLE = yes + ifeq ($(strip $(RGBLIGHT_CUSTOM_DRIVER)), yes) + OPT_DEFS += -DRGBLIGHT_CUSTOM_DRIVER + else + SRC += ws2812.c + endif From 241421efd44b7d85870df6eef72fd68fcfaa8e59 Mon Sep 17 00:00:00 2001 From: James OFarrell Date: Sun, 11 Mar 2018 17:44:30 +1000 Subject: [PATCH 065/578] Added support for ca66 --- keyboards/ca66/ca66.c | 1 + keyboards/ca66/ca66.h | 20 +++++++++ keyboards/ca66/config.h | 58 +++++++++++++++++++++++++ keyboards/ca66/keymaps/default/keymap.c | 36 +++++++++++++++ keyboards/ca66/readme.md | 13 ++++++ keyboards/ca66/rules.mk | 56 ++++++++++++++++++++++++ 6 files changed, 184 insertions(+) create mode 100644 keyboards/ca66/ca66.c create mode 100644 keyboards/ca66/ca66.h create mode 100644 keyboards/ca66/config.h create mode 100644 keyboards/ca66/keymaps/default/keymap.c create mode 100644 keyboards/ca66/readme.md create mode 100644 keyboards/ca66/rules.mk diff --git a/keyboards/ca66/ca66.c b/keyboards/ca66/ca66.c new file mode 100644 index 000000000000..91f4826f991f --- /dev/null +++ b/keyboards/ca66/ca66.c @@ -0,0 +1 @@ +#include "ca66.h" diff --git a/keyboards/ca66/ca66.h b/keyboards/ca66/ca66.h new file mode 100644 index 000000000000..9e3638aac317 --- /dev/null +++ b/keyboards/ca66/ca66.h @@ -0,0 +1,20 @@ +#ifndef KB_H +#define KB_H + +#include "quantum.h" + +#define KEYMAP( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K114, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K214, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K314, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K414, \ + K401, K402, K403, K404, K406, K408, K409, K410, K411, K412, K413 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { KC_NO, K401, K402, K403, K404, KC_NO, K406, KC_NO, K408, K409, K410, K411, K412, K413, K414 } \ +} + +#endif diff --git a/keyboards/ca66/config.h b/keyboards/ca66/config.h new file mode 100644 index 000000000000..f00b5109d750 --- /dev/null +++ b/keyboards/ca66/config.h @@ -0,0 +1,58 @@ +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Barry +#define PRODUCT CA66 +#define DESCRIPTION CA66 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { F5, F4, F1, B0, B3 } +#define MATRIX_COL_PINS { F7, C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, F6, B7, E6 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* number of backlight levels */ + +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 3 +#endif + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* prevent stuck modifiers */ +#define PREVENT_STUCK_MODIFIERS + +#define RGB_DI_PIN B1 +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 6 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif + +#endif diff --git a/keyboards/ca66/keymaps/default/keymap.c b/keyboards/ca66/keymaps/default/keymap.c new file mode 100644 index 000000000000..7feb0afb9f5b --- /dev/null +++ b/keyboards/ca66/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +#include "ca66.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + KEYMAP( + KC_GESC, 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_BSPC, KC_BSPC, KC_PSCR, + 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_BSLS, KC_DEL, + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, LT(1, KC_SPC), KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + KEYMAP( + KC_GRV, 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_DEL, KC_DEL, RGB_TOG, + KC_CAPS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, RGB_MOD, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, RGB_VAI, KC_INS, KC_HOME, + KC_LSFT, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_HUI, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAD, RGB_HUD, RGB_SAI), +}; + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + DDRD |= (1 << 1); PORTD &= ~(1 << 1); + } else { + DDRD &= ~(1 << 1); PORTD &= ~(1 << 1); + } +} diff --git a/keyboards/ca66/readme.md b/keyboards/ca66/readme.md new file mode 100644 index 000000000000..f8464fdd19d3 --- /dev/null +++ b/keyboards/ca66/readme.md @@ -0,0 +1,13 @@ +CA66 +== + +Custom 65% + +Keyboard Maintainer: QMK Community +Hardware Supported: CA66 + +Make example for this keyboard (after setting up your build environment): + + make ca66:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/ca66/rules.mk b/keyboards/ca66/rules.mk new file mode 100644 index 000000000000..d3ad3d20c633 --- /dev/null +++ b/keyboards/ca66/rules.mk @@ -0,0 +1,56 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= no +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= no # Commands for debug and configuration +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality +AUDIO_ENABLE ?= no +RGBLIGHT_ENABLE ?= yes From 598ab478be6f52382aeeb9df78c377cdcf963068 Mon Sep 17 00:00:00 2001 From: Twentylives Date: Fri, 16 Mar 2018 22:32:18 +0200 Subject: [PATCH 066/578] new handwired keyboard - Dactyl Manuform (#2516) * adding new handwired keyboard: dactyl-manuform * adding qwerty layout * updating readme file. --- keyboards/handwired/dactyl_manuform/config.h | 87 ++++ .../dactyl_manuform/dactyl_manuform.c | 23 + .../dactyl_manuform/dactyl_manuform.h | 71 +++ keyboards/handwired/dactyl_manuform/i2c.c | 162 ++++++ keyboards/handwired/dactyl_manuform/i2c.h | 49 ++ .../dactyl_manuform/keymaps/default/config.h | 37 ++ .../dactyl_manuform/keymaps/default/keymap.c | 119 +++++ .../dactyl_manuform/keymaps/default/rules.mk | 3 + .../dactyl_manuform/keymaps/dvorak/config.h | 37 ++ .../dactyl_manuform/keymaps/dvorak/keymap.c | 119 +++++ .../dactyl_manuform/keymaps/dvorak/rules.mk | 3 + keyboards/handwired/dactyl_manuform/matrix.c | 466 ++++++++++++++++++ keyboards/handwired/dactyl_manuform/readme.md | 147 ++++++ keyboards/handwired/dactyl_manuform/rules.mk | 75 +++ keyboards/handwired/dactyl_manuform/serial.c | 228 +++++++++ keyboards/handwired/dactyl_manuform/serial.h | 26 + .../handwired/dactyl_manuform/split_util.c | 86 ++++ .../handwired/dactyl_manuform/split_util.h | 20 + 18 files changed, 1758 insertions(+) create mode 100644 keyboards/handwired/dactyl_manuform/config.h create mode 100644 keyboards/handwired/dactyl_manuform/dactyl_manuform.c create mode 100644 keyboards/handwired/dactyl_manuform/dactyl_manuform.h create mode 100644 keyboards/handwired/dactyl_manuform/i2c.c create mode 100644 keyboards/handwired/dactyl_manuform/i2c.h create mode 100644 keyboards/handwired/dactyl_manuform/keymaps/default/config.h create mode 100644 keyboards/handwired/dactyl_manuform/keymaps/default/keymap.c create mode 100644 keyboards/handwired/dactyl_manuform/keymaps/default/rules.mk create mode 100644 keyboards/handwired/dactyl_manuform/keymaps/dvorak/config.h create mode 100644 keyboards/handwired/dactyl_manuform/keymaps/dvorak/keymap.c create mode 100644 keyboards/handwired/dactyl_manuform/keymaps/dvorak/rules.mk create mode 100644 keyboards/handwired/dactyl_manuform/matrix.c create mode 100644 keyboards/handwired/dactyl_manuform/readme.md create mode 100644 keyboards/handwired/dactyl_manuform/rules.mk create mode 100644 keyboards/handwired/dactyl_manuform/serial.c create mode 100644 keyboards/handwired/dactyl_manuform/serial.h create mode 100644 keyboards/handwired/dactyl_manuform/split_util.c create mode 100644 keyboards/handwired/dactyl_manuform/split_util.h diff --git a/keyboards/handwired/dactyl_manuform/config.h b/keyboards/handwired/dactyl_manuform/config.h new file mode 100644 index 000000000000..093d6680bfa6 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/config.h @@ -0,0 +1,87 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x3060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER tshort +#define PRODUCT Dactyl-Manuform +#define DESCRIPTION A split keyboard for the cheap makers + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 10 +#define MATRIX_COLS 5 + +// wiring of each half +#define MATRIX_ROW_PINS { F7, B1, B3, B2, B6 } +// #define MATRIX_COL_PINS { B5, B4, E6, D7, C6 } +#define MATRIX_COL_PINS { C6, D7, E6, B4, B5 } + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +// #define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D3 +#define RGBLIGHT_TIMER +#define RGBLED_NUM 12 // Number of LEDs +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + + +#endif diff --git a/keyboards/handwired/dactyl_manuform/dactyl_manuform.c b/keyboards/handwired/dactyl_manuform/dactyl_manuform.c new file mode 100644 index 000000000000..17caecb4fd59 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/dactyl_manuform.c @@ -0,0 +1,23 @@ +#include "dactyl_manuform.h" + + +#ifdef SSD1306OLED +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + led_set_user(usb_led); +} +#endif + +void matrix_init_kb(void) { + + // // green led on + // DDRD |= (1<<5); + // PORTD &= ~(1<<5); + + // // orange led on + // DDRB |= (1<<0); + // PORTB &= ~(1<<0); + + matrix_init_user(); +}; + diff --git a/keyboards/handwired/dactyl_manuform/dactyl_manuform.h b/keyboards/handwired/dactyl_manuform/dactyl_manuform.h new file mode 100644 index 000000000000..197909823527 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/dactyl_manuform.h @@ -0,0 +1,71 @@ +#ifndef REV2_H +#define REV2_H + +#include "dactyl_manuform.h" + +//void promicro_bootloader_jmp(bool program); +#include "quantum.h" + + +#ifdef USE_I2C +#include +#ifdef __AVR__ + #include + #include +#endif +#endif + +//void promicro_bootloader_jmp(bool program); + +#ifndef FLIP_HALF + +#define KEYMAP( \ + L00, L01, L02, L03, L04, R00, R01, R02, R03, R04, \ + L10, L11, L12, L13, L14, R10, R11, R12, R13, R14, \ + L20, L21, L22, L23, L24, R20, R21, R22, R23, R24, \ + L31, L32, R33, R34, \ + L33, L34, R31, R32, \ + L44, L42, R43, R41, \ + L43, L41, R44, R42 \ + ) \ + { \ + { L00, L01, L02, L03, L04 }, \ + { L10, L11, L12, L13, L14 }, \ + { L20, L21, L22, L23, L24 }, \ + { KC_NO, L31, L32, L33, L34 }, \ + { KC_NO, L41, L42, L43, L44 }, \ +\ + { R04, R03, R02, R01, R00 }, \ + { R14, R13, R12, R11, R10 }, \ + { R24, R23, R22, R21, R20 }, \ + { KC_NO, R34, R33, R32, R31 }, \ + { KC_NO, R44, R43, R42, R41 } \ + } +#else + +#define KEYMAP( \ + L00, L01, L02, L03, L04, R00, R01, R02, R03, R04, \ + L10, L11, L12, L13, L14, R10, R11, R12, R13, R14, \ + L20, L21, L22, L23, L24, R20, R21, R22, R23, R24, \ + L31, L32, L33, L34, \ + R31, R32, R33, R34, \ + L41, L42, L43, L44, \ + R41, R42, R43, R44 \ + ) \ + { \ + { L00, L01, L02, L03, L04 }, \ + { L10, L11, L12, L13, L14 }, \ + { L20, L21, L22, L23, L24 }, \ + { KC_NO, L31, L32, L33, L34 }, \ + { KC_NO, L41, L42, L43, L44 }, \ +\ + { R00, R01, R02, R03, R04 }, \ + { R10, R11, R12, R13, R14 }, \ + { R20, R21, R22, R23, R24 }, \ + { KC_NO, R31, R32, R33, R34 }, \ + { KC_NO, R41, R42, R43, R44 } \ + } + +#endif + +#endif diff --git a/keyboards/handwired/dactyl_manuform/i2c.c b/keyboards/handwired/dactyl_manuform/i2c.c new file mode 100644 index 000000000000..084c890c405f --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/i2c.c @@ -0,0 +1,162 @@ +#include +#include +#include +#include +#include +#include +#include "i2c.h" + +#ifdef USE_I2C + +// Limits the amount of we wait for any one i2c transaction. +// Since were running SCL line 100kHz (=> 10μs/bit), and each transactions is +// 9 bits, a single transaction will take around 90μs to complete. +// +// (F_CPU/SCL_CLOCK) => # of μC cycles to transfer a bit +// poll loop takes at least 8 clock cycles to execute +#define I2C_LOOP_TIMEOUT (9+1)*(F_CPU/SCL_CLOCK)/8 + +#define BUFFER_POS_INC() (slave_buffer_pos = (slave_buffer_pos+1)%SLAVE_BUFFER_SIZE) + +volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; + +static volatile uint8_t slave_buffer_pos; +static volatile bool slave_has_register_set = false; + +// Wait for an i2c operation to finish +inline static +void i2c_delay(void) { + uint16_t lim = 0; + while(!(TWCR & (1<10. + // Check datasheets for more info. + TWBR = ((F_CPU/SCL_CLOCK)-16)/2; +} + +// Start a transaction with the given i2c slave address. The direction of the +// transfer is set with I2C_READ and I2C_WRITE. +// returns: 0 => success +// 1 => error +uint8_t i2c_master_start(uint8_t address) { + TWCR = (1< slave ACK +// 1 => slave NACK +uint8_t i2c_master_write(uint8_t data) { + TWDR = data; + TWCR = (1<= SLAVE_BUFFER_SIZE ) { + ack = 0; + slave_buffer_pos = 0; + } + slave_has_register_set = true; + } else { + i2c_slave_buffer[slave_buffer_pos] = TWDR; + BUFFER_POS_INC(); + } + break; + + case TW_ST_SLA_ACK: + case TW_ST_DATA_ACK: + // master has addressed this device as a slave transmitter and is + // requesting data. + TWDR = i2c_slave_buffer[slave_buffer_pos]; + BUFFER_POS_INC(); + break; + + case TW_BUS_ERROR: // something went wrong, reset twi state + TWCR = 0; + default: + break; + } + // Reset everything, so we are ready for the next TWI interrupt + TWCR |= (1< + +#ifndef F_CPU +#define F_CPU 16000000UL +#endif + +#define I2C_READ 1 +#define I2C_WRITE 0 + +#define I2C_ACK 1 +#define I2C_NACK 0 + +#define SLAVE_BUFFER_SIZE 0x10 + +// i2c SCL clock frequency +#define SCL_CLOCK 400000L + +extern volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; + +void i2c_master_init(void); +uint8_t i2c_master_start(uint8_t address); +void i2c_master_stop(void); +uint8_t i2c_master_write(uint8_t data); +uint8_t i2c_master_read(int); +void i2c_reset_state(void); +void i2c_slave_init(uint8_t address); + + +static inline unsigned char i2c_start_read(unsigned char addr) { + return i2c_master_start((addr << 1) | I2C_READ); +} + +static inline unsigned char i2c_start_write(unsigned char addr) { + return i2c_master_start((addr << 1) | I2C_WRITE); +} + +// from SSD1306 scrips +extern unsigned char i2c_rep_start(unsigned char addr); +extern void i2c_start_wait(unsigned char addr); +extern unsigned char i2c_readAck(void); +extern unsigned char i2c_readNak(void); +extern unsigned char i2c_read(unsigned char ack); + +#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak(); + +#endif diff --git a/keyboards/handwired/dactyl_manuform/keymaps/default/config.h b/keyboards/handwired/dactyl_manuform/keymaps/default/config.h new file mode 100644 index 000000000000..216917ed7136 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/keymaps/default/config.h @@ -0,0 +1,37 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ + +// #define MASTER_LEFT +// #define MASTER_RIGHT +#define EE_HANDS + +#endif diff --git a/keyboards/handwired/dactyl_manuform/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/keymaps/default/keymap.c new file mode 100644 index 000000000000..0a74323ab9d5 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/keymaps/default/keymap.c @@ -0,0 +1,119 @@ +#include "dactyl_manuform.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +#define _BASE 0 +#define _NAV 1 +#define _NUM 2 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + NAV, + NUM, +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Base (qwerty) + * ,----------------------------------, ,----------------------------------, + * | Q | W | E | R | T | | Y | U | I | O | P | + * |------+------+------+------+------| |-------------+------+------+------| + * | A | S | D | F | G | | H | J | K | L | ; | + * |------+------+------+------+------| |------|------+------+------+------| + * | Z | X | C | V | B | | N | M | , | . | ' | + * |------+------+------+-------------, ,-------------+------+------+------, + * | [ | ] | | - | = | + * '------+------'-------------' '-------------'------+------' + * | esc | bs | | space|enter | + * | + | + | | + | + | + * | shift| ctrl | | alt |shift | + * '------+------' '------+------' + * '------+------' '------+------' + * | tab | home | | end | del | + * |------+------' '------+------| + * |\(NAV)| ~ | | gui |/(NUM)| + * '------+------' '------+------' + */ + +[_BASE] = KEYMAP( \ + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \ + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \ + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOT, \ + KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, \ + SFT_T(KC_ESC), CTL_T(KC_BSPC), ALT_T(KC_SPC), SFT_T(KC_ENT), \ + KC_TAB, KC_HOME, KC_END, KC_DEL, \ + LT(_NAV, KC_BSLS), KC_GRV, KC_LGUI, LT(_NUM, KC_SLSH) \ +), + +/* Navigation layer + * ,----------------------------------, ,----------------------------------, + * | | | mup | | | | | | up | | | + * |------+------+------+------+------| |-------------+------+------+------| + * | | mleft| mdown|mright| | | | left | down |right | | + * |------+------+------+------+------| |------|------+------+------+------| + * | | | | | | | | | | | | + * |------+------+------+-------------, ,-------------+------+------+------, + * | | | | mbtn |mbtn2 | + * '------+------'-------------' '-------------'------+------' + * | | | | | | + * | | | | | | + * | | | | | | + * '------+------' '------+------' + * '------+------' '------+------' + * | tab | home | | end | del | + * '------+------' '------+------' + * |\(NAV)| ~ | | gui |/(NUM)| + * '------+------' '------+------' + */ + +[_NAV] = KEYMAP( \ + KC_TRNS, KC_TRNS, KC_MS_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_MS_BTN1, KC_MS_BTN2, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +), +/* Numbers layer + * ,----------------------------------, ,----------------------------------, + * | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | + * |------+------+------+------+------| |-------------+------+------+------| + * | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 10 | + * |------+------+------+------+------| |------|------+------+------+------| + * | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + * |------+------+------+-------------, ,-------------+------+------+------, + * | F11 | F12 | | | | + * '------+------'-------------' '-------------'------+------' + * | | | | | | + * | | | | | | + * | | | | | | + * '------+------' '------+------' + * '------+------' '------+------' + * | tab | home | | end | del | + * '------+------' '------+------' + * |\(NAV)| ~ | | gui |/(NUM)| + * '------+------' '------+------' + */ +[_NUM] = KEYMAP( \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, \ + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \ + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, \ + KC_F11, KC_F12, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +) +}; + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + diff --git a/keyboards/handwired/dactyl_manuform/keymaps/default/rules.mk b/keyboards/handwired/dactyl_manuform/keymaps/default/rules.mk new file mode 100644 index 000000000000..457a3d01d4a4 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/keymaps/default/rules.mk @@ -0,0 +1,3 @@ +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/handwired/dactyl_manuform/keymaps/dvorak/config.h b/keyboards/handwired/dactyl_manuform/keymaps/dvorak/config.h new file mode 100644 index 000000000000..216917ed7136 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/keymaps/dvorak/config.h @@ -0,0 +1,37 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ + +// #define MASTER_LEFT +// #define MASTER_RIGHT +#define EE_HANDS + +#endif diff --git a/keyboards/handwired/dactyl_manuform/keymaps/dvorak/keymap.c b/keyboards/handwired/dactyl_manuform/keymaps/dvorak/keymap.c new file mode 100644 index 000000000000..e0852f8e06b2 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/keymaps/dvorak/keymap.c @@ -0,0 +1,119 @@ +#include "dactyl_manuform.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +#define _BASE 0 +#define _NAV 1 +#define _NUM 2 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + NAV, + NUM, +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Base (dvorak) + * ,----------------------------------, ,----------------------------------, + * | ' | , | . | p | y | | f | g | c | r | l | + * |------+------+------+------+------| |-------------+------+------+------| + * | a | o | e | u | i | | d | h | t | n | s | + * |------+------+------+------+------| |------|------+------+------+------| + * | ; | q | j | k | x | | b | m | w | v | z | + * |------+------+------+-------------, ,-------------+------+------+------, + * | [ | ] | | - | = | + * '------+------'-------------' '-------------'------+------' + * | esc | bs | | space|enter | + * | + | + | | + | + | + * | shift| ctrl | | alt |shift | + * '------+------' '------+------' + * '------+------' '------+------' + * | tab | home | | end | del | + * |------+------' '------+------| + * |\(NAV)| ~ | | gui |/(NUM)| + * '------+------' '------+------' + */ + +[_BASE] = KEYMAP( \ + KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, \ + KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, \ + KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, \ + KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, \ + SFT_T(KC_ESC), CTL_T(KC_BSPC), ALT_T(KC_SPC), SFT_T(KC_ENT), \ + KC_TAB, KC_HOME, KC_END, KC_DEL, \ + LT(_NAV, KC_BSLS), KC_GRV, KC_LGUI, LT(_NUM, KC_SLSH) \ +), + +/* Navigation layer + * ,----------------------------------, ,----------------------------------, + * | | | mup | | | | | | up | | | + * |------+------+------+------+------| |-------------+------+------+------| + * | | mleft| mdown|mright| | | | left | down |right | | + * |------+------+------+------+------| |------|------+------+------+------| + * | | | | | | | | | | | | + * |------+------+------+-------------, ,-------------+------+------+------, + * | | | | mbtn |mbtn2 | + * '------+------'-------------' '-------------'------+------' + * | | | | | | + * | | | | | | + * | | | | | | + * '------+------' '------+------' + * '------+------' '------+------' + * | tab | home | | end | del | + * '------+------' '------+------' + * |\(NAV)| ~ | | gui |/(NUM)| + * '------+------' '------+------' + */ + +[_NAV] = KEYMAP( \ + KC_TRNS, KC_TRNS, KC_MS_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_MS_BTN1, KC_MS_BTN2, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +), +/* Numbers layer + * ,----------------------------------, ,----------------------------------, + * | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | + * |------+------+------+------+------| |-------------+------+------+------| + * | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 10 | + * |------+------+------+------+------| |------|------+------+------+------| + * | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + * |------+------+------+-------------, ,-------------+------+------+------, + * | F11 | F12 | | | | + * '------+------'-------------' '-------------'------+------' + * | | | | | | + * | | | | | | + * | | | | | | + * '------+------' '------+------' + * '------+------' '------+------' + * | tab | home | | end | del | + * '------+------' '------+------' + * |\(NAV)| ~ | | gui |/(NUM)| + * '------+------' '------+------' + */ +[_NUM] = KEYMAP( \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, \ + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \ + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, \ + KC_F11, KC_F12, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +) +}; + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + diff --git a/keyboards/handwired/dactyl_manuform/keymaps/dvorak/rules.mk b/keyboards/handwired/dactyl_manuform/keymaps/dvorak/rules.mk new file mode 100644 index 000000000000..457a3d01d4a4 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/keymaps/dvorak/rules.mk @@ -0,0 +1,3 @@ +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/handwired/dactyl_manuform/matrix.c b/keyboards/handwired/dactyl_manuform/matrix.c new file mode 100644 index 000000000000..c3bfe80423aa --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/matrix.c @@ -0,0 +1,466 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +/* + * scan matrix + */ +#include +#include +#include +#include "wait.h" +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "split_util.h" +#include "pro_micro.h" +#include "config.h" +#include "timer.h" + +#ifdef USE_I2C +# include "i2c.h" +#else // USE_SERIAL +# include "serial.h" +#endif + +#ifndef DEBOUNCING_DELAY +# define DEBOUNCING_DELAY 5 +#endif + +#if (DEBOUNCING_DELAY > 0) + static uint16_t debouncing_time; + static bool debouncing = false; +#endif + +#if (MATRIX_COLS <= 8) +# define print_matrix_header() print("\nr/c 01234567\n") +# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) +# define matrix_bitpop(i) bitpop(matrix[i]) +# define ROW_SHIFTER ((uint8_t)1) +#else +# error "Currently only supports 8 COLS" +#endif +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +#define ERROR_DISCONNECT_COUNT 5 + +#define ROWS_PER_HAND (MATRIX_ROWS/2) + +static uint8_t error_count = 0; + +static const uint8_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; +static const uint8_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +#if (DIODE_DIRECTION == COL2ROW) + static void init_cols(void); + static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row); + static void unselect_rows(void); + static void select_row(uint8_t row); + static void unselect_row(uint8_t row); +#elif (DIODE_DIRECTION == ROW2COL) + static void init_rows(void); + static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col); + static void unselect_cols(void); + static void unselect_col(uint8_t col); + static void select_col(uint8_t col); +#endif + +__attribute__ ((weak)) +void matrix_init_kb(void) { + matrix_init_user(); +} + +__attribute__ ((weak)) +void matrix_scan_kb(void) { + matrix_scan_user(); +} + +__attribute__ ((weak)) +void matrix_init_user(void) { +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { +} + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +void matrix_init(void) +{ +#ifdef DISABLE_JTAG + // JTAG disable for PORT F. write JTD bit twice within four cycles. + MCUCR |= (1< 0) + bool matrix_changed = read_cols_on_row(matrix_debouncing+offset, current_row); + + if (matrix_changed) { + debouncing = true; + debouncing_time = timer_read(); + PORTD ^= (1 << 2); + } + +# else + read_cols_on_row(matrix+offset, current_row); +# endif + + } + +#elif (DIODE_DIRECTION == ROW2COL) + // Set col, read rows + for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) { +# if (DEBOUNCING_DELAY > 0) + bool matrix_changed = read_rows_on_col(matrix_debouncing+offset, current_col); + if (matrix_changed) { + debouncing = true; + debouncing_time = timer_read(); + } +# else + read_rows_on_col(matrix+offset, current_col); +# endif + + } +#endif + +# if (DEBOUNCING_DELAY > 0) + if (debouncing && (timer_elapsed(debouncing_time) > DEBOUNCING_DELAY)) { + for (uint8_t i = 0; i < ROWS_PER_HAND; i++) { + matrix[i+offset] = matrix_debouncing[i+offset]; + } + debouncing = false; + } +# endif + + return 1; +} + +#ifdef USE_I2C + +// Get rows from other half over i2c +int i2c_transaction(void) { + int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; + + int err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_WRITE); + if (err) goto i2c_error; + + // start of matrix stored at 0x00 + err = i2c_master_write(0x00); + if (err) goto i2c_error; + + // Start read + err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_READ); + if (err) goto i2c_error; + + if (!err) { + int i; + for (i = 0; i < ROWS_PER_HAND-1; ++i) { + matrix[slaveOffset+i] = i2c_master_read(I2C_ACK); + } + matrix[slaveOffset+i] = i2c_master_read(I2C_NACK); + i2c_master_stop(); + } else { +i2c_error: // the cable is disconnceted, or something else went wrong + i2c_reset_state(); + return err; + } + + return 0; +} + +#else // USE_SERIAL + +int serial_transaction(void) { + int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; + + if (serial_update_buffers()) { + return 1; + } + + for (int i = 0; i < ROWS_PER_HAND; ++i) { + matrix[slaveOffset+i] = serial_slave_buffer[i]; + } + return 0; +} +#endif + +uint8_t matrix_scan(void) +{ + uint8_t ret = _matrix_scan(); + +#ifdef USE_I2C + if( i2c_transaction() ) { +#else // USE_SERIAL + if( serial_transaction() ) { +#endif + // turn on the indicator led when halves are disconnected + TXLED1; + + error_count++; + + if (error_count > ERROR_DISCONNECT_COUNT) { + // reset other half if disconnected + int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; + for (int i = 0; i < ROWS_PER_HAND; ++i) { + matrix[slaveOffset+i] = 0; + } + } + } else { + // turn off the indicator led on no error + TXLED0; + error_count = 0; + } + matrix_scan_quantum(); + return ret; +} + +void matrix_slave_scan(void) { + _matrix_scan(); + + int offset = (isLeftHand) ? 0 : ROWS_PER_HAND; + +#ifdef USE_I2C + for (int i = 0; i < ROWS_PER_HAND; ++i) { + i2c_slave_buffer[i] = matrix[offset+i]; + } +#else // USE_SERIAL + for (int i = 0; i < ROWS_PER_HAND; ++i) { + serial_slave_buffer[i] = matrix[offset+i]; + } +#endif +} + +bool matrix_is_modified(void) +{ + if (debouncing) return false; + return true; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1<> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI + } +} + +static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) +{ + // Store last value of row prior to reading + matrix_row_t last_row_value = current_matrix[current_row]; + + // Clear data in matrix row + current_matrix[current_row] = 0; + + // Select row and wait for row selecton to stabilize + select_row(current_row); + wait_us(30); + + // For each col... + for(uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) { + + // Select the col pin to read (active low) + uint8_t pin = col_pins[col_index]; + uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); + + // Populate the matrix row with the state of the col pin + current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + } + + // Unselect row + unselect_row(current_row); + + return (last_row_value != current_matrix[current_row]); +} + +static void select_row(uint8_t row) +{ + uint8_t pin = row_pins[row]; + _SFR_IO8((pin >> 4) + 1) |= _BV(pin & 0xF); // OUT + _SFR_IO8((pin >> 4) + 2) &= ~_BV(pin & 0xF); // LOW +} + +static void unselect_row(uint8_t row) +{ + uint8_t pin = row_pins[row]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI +} + +static void unselect_rows(void) +{ + for(uint8_t x = 0; x < ROWS_PER_HAND; x++) { + uint8_t pin = row_pins[x]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI + } +} + +#elif (DIODE_DIRECTION == ROW2COL) + +static void init_rows(void) +{ + for(uint8_t x = 0; x < ROWS_PER_HAND; x++) { + uint8_t pin = row_pins[x]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI + } +} + +static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) +{ + bool matrix_changed = false; + + // Select col and wait for col selecton to stabilize + select_col(current_col); + wait_us(30); + + // For each row... + for(uint8_t row_index = 0; row_index < ROWS_PER_HAND; row_index++) + { + + // Store last value of row prior to reading + matrix_row_t last_row_value = current_matrix[row_index]; + + // Check row pin state + if ((_SFR_IO8(row_pins[row_index] >> 4) & _BV(row_pins[row_index] & 0xF)) == 0) + { + // Pin LO, set col bit + current_matrix[row_index] |= (ROW_SHIFTER << current_col); + } + else + { + // Pin HI, clear col bit + current_matrix[row_index] &= ~(ROW_SHIFTER << current_col); + } + + // Determine if the matrix changed state + if ((last_row_value != current_matrix[row_index]) && !(matrix_changed)) + { + matrix_changed = true; + } + } + + // Unselect col + unselect_col(current_col); + + return matrix_changed; +} + +static void select_col(uint8_t col) +{ + uint8_t pin = col_pins[col]; + _SFR_IO8((pin >> 4) + 1) |= _BV(pin & 0xF); // OUT + _SFR_IO8((pin >> 4) + 2) &= ~_BV(pin & 0xF); // LOW +} + +static void unselect_col(uint8_t col) +{ + uint8_t pin = col_pins[col]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI +} + +static void unselect_cols(void) +{ + for(uint8_t x = 0; x < MATRIX_COLS; x++) { + uint8_t pin = col_pins[x]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI + } +} + +#endif diff --git a/keyboards/handwired/dactyl_manuform/readme.md b/keyboards/handwired/dactyl_manuform/readme.md new file mode 100644 index 000000000000..354e11ee9da2 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/readme.md @@ -0,0 +1,147 @@ +Dactyl manuform +====== + +the [Dactyl-Manuform](https://github.com/tshort/dactyl-keyboard) is a split curved keyboard based on the design of [adereth dactyl](https://github.com/adereth/dactyl-keyboard) and thumb cluster design of the [manuform](https://geekhack.org/index.php?topic=46015.0) keyboard, the hardware is similar to the let's split keyboard. all information needed for making one is in the first link. + +## First Time Setup + +Download or clone the `qmk_firmware` repo and navigate to its top level directory. Once your build environment is setup, you'll be able to generate the default .hex using: + +``` +$ make dactyl_manuform:dvorak +``` + +You will see a lot of output and if everything worked correctly you will see the built hex file: + +``` +dactyl_manuform_dvorak.hex +``` + +If you would like to use one of the alternative keymaps, or create your own, copy one of the existing [keymaps](keymaps/) and run make like so: + +``` +$ make dactyl_manuform:YOUR_KEYMAP_NAME +``` + +If everything worked correctly you will see a file: + +``` +dactyl_manuform_YOUR_KEYMAP_NAME.hex +``` + +For more information on customizing keymaps, take a look at the primary documentation for [Customizing Your Keymap](/docs/faq_keymap.md) in the main readme.md. + +Required Hardware +----------------- + +Apart from diodes and key switches for the keyboard matrix in each half, you +will need: + +* 2 Arduino Pro Micros. You can find these on AliExpress for ≈3.50USD each. +* 2 TRRS sockets and 1 TRRS cable, or 2 TRS sockets and 1 TRS cable + +Alternatively, you can use any sort of cable and socket that has at least 3 +wires. If you want to use I2C to communicate between halves, you will need a +cable with at least 4 wires and 2x 4.7kΩ pull-up resistors + +Optional Hardware +----------------- +A speaker can be hooked-up to either side to the `5` (`C6`) pin and `GND`, and turned on via `AUDIO_ENABLE`. + +Wiring +------ + +The 3 wires of the TRS/TRRS cable need to connect GND, VCC, and digital pin 3 (i.e. +PD0 on the ATmega32u4) between the two Pro Micros. + +Next, wire your key matrix to any of the remaining 17 IO pins of the pro micro +and modify the `matrix.c` accordingly. + +The wiring for serial: + +![serial wiring](https://i.imgur.com/C3D1GAQ.png) + +The wiring for i2c: + +![i2c wiring](https://i.imgur.com/Hbzhc6E.png) + +The pull-up resistors may be placed on either half. It is also possible +to use 4 resistors and have the pull-ups in both halves, but this is +unnecessary in simple use cases. + +You can change your configuration between serial and i2c by modifying your `config.h` file. + +Notes on Software Configuration +------------------------------- + +the keymaps in here are for the 4x5 layout of the keyboard only. + +Flashing +------- +From the top level `qmk_firmware` directory run `make KEYBOARD:KEYMAP:avrdude` for automatic serial port resolution and flashing. +Example: `make lets_split/rev2:default:avrdude` + + +Choosing which board to plug the USB cable into (choosing Master) +-------- +Because the two boards are identical, the firmware has logic to differentiate the left and right board. + +It uses two strategies to figure things out: looking at the EEPROM (memory on the chip) or looking if the current board has the usb cable. + +The EEPROM approach requires additional setup (flashing the eeprom) but allows you to swap the usb cable to either side. + +The USB cable approach is easier to setup and if you just want the usb cable on the left board, you do not need to do anything extra. + +### Setting the left hand as master +If you always plug the usb cable into the left board, nothing extra is needed as this is the default. Comment out `EE_HANDS` and comment out `I2C_MASTER_RIGHT` or `MASTER_RIGHT` if for some reason it was set. + +### Setting the right hand as master +If you always plug the usb cable into the right board, add an extra flag to your `config.h` +``` + #define MASTER_RIGHT +``` + +### Setting EE_hands to use either hands as master +If you define `EE_HANDS` in your `config.h`, you will need to set the +EEPROM for the left and right halves. + +The EEPROM is used to store whether the +half is left handed or right handed. This makes it so that the same firmware +file will run on both hands instead of having to flash left and right handed +versions of the firmware to each half. To flash the EEPROM file for the left +half run: +``` +avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:eeprom-lefthand.eep +// or the equivalent in dfu-programmer + +``` +and similarly for right half +``` +avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:eeprom-righhand.eep +// or the equivalent in dfu-programmer +``` + +NOTE: replace `$(COM_PORT)` with the port of your device (e.g. `/dev/ttyACM0`) + +After you have flashed the EEPROM, you then need to set `EE_HANDS` in your config.h, rebuild the hex files and reflash. + +Note that you need to program both halves, but you have the option of using +different keymaps for each half. You could program the left half with a QWERTY +layout and the right half with a Colemak layout using bootmagic's default layout option. +Then if you connect the left half to a computer by USB the keyboard will use QWERTY and Colemak when the +right half is connected. + + +Notes on Using Pro Micro 3.3V +----------------------------- + +Do update the `F_CPU` parameter in `rules.mk` to `8000000` which reflects +the frequency on the 3.3V board. + +Also, if the slave board is producing weird characters in certain columns, +update the following line in `matrix.c` to the following: + +``` +// _delay_us(30); // without this wait read unstable value. +_delay_us(300); // without this wait read unstable value. +``` diff --git a/keyboards/handwired/dactyl_manuform/rules.mk b/keyboards/handwired/dactyl_manuform/rules.mk new file mode 100644 index 000000000000..6c0949b54033 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/rules.mk @@ -0,0 +1,75 @@ +SRC += matrix.c \ + i2c.c \ + split_util.c \ + serial.c \ + ssd1306.c + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Bootloader +# This definition is optional, and if your keyboard supports multiple bootloaders of +# different sizes, comment this out, and the correct address will be loaded +# automatically (+60). See bootloader.mk for all options. +BOOTLOADER = caterina + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SUBPROJECT_rev1 = yes +USE_I2C = yes +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +CUSTOM_MATRIX = yes + +LAYOUTS = ortho_4x12 diff --git a/keyboards/handwired/dactyl_manuform/serial.c b/keyboards/handwired/dactyl_manuform/serial.c new file mode 100644 index 000000000000..74bcbb6bf6e2 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/serial.c @@ -0,0 +1,228 @@ +/* + * WARNING: be careful changing this code, it is very timing dependent + */ + +#ifndef F_CPU +#define F_CPU 16000000 +#endif + +#include +#include +#include +#include +#include "serial.h" + +#ifndef USE_I2C + +// Serial pulse period in microseconds. Its probably a bad idea to lower this +// value. +#define SERIAL_DELAY 24 + +uint8_t volatile serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH] = {0}; +uint8_t volatile serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH] = {0}; + +#define SLAVE_DATA_CORRUPT (1<<0) +volatile uint8_t status = 0; + +inline static +void serial_delay(void) { + _delay_us(SERIAL_DELAY); +} + +inline static +void serial_output(void) { + SERIAL_PIN_DDR |= SERIAL_PIN_MASK; +} + +// make the serial pin an input with pull-up resistor +inline static +void serial_input(void) { + SERIAL_PIN_DDR &= ~SERIAL_PIN_MASK; + SERIAL_PIN_PORT |= SERIAL_PIN_MASK; +} + +inline static +uint8_t serial_read_pin(void) { + return !!(SERIAL_PIN_INPUT & SERIAL_PIN_MASK); +} + +inline static +void serial_low(void) { + SERIAL_PIN_PORT &= ~SERIAL_PIN_MASK; +} + +inline static +void serial_high(void) { + SERIAL_PIN_PORT |= SERIAL_PIN_MASK; +} + +void serial_master_init(void) { + serial_output(); + serial_high(); +} + +void serial_slave_init(void) { + serial_input(); + + // Enable INT0 + EIMSK |= _BV(INT0); + // Trigger on falling edge of INT0 + EICRA &= ~(_BV(ISC00) | _BV(ISC01)); +} + +// Used by the master to synchronize timing with the slave. +static +void sync_recv(void) { + serial_input(); + // This shouldn't hang if the slave disconnects because the + // serial line will float to high if the slave does disconnect. + while (!serial_read_pin()); + serial_delay(); +} + +// Used by the slave to send a synchronization signal to the master. +static +void sync_send(void) { + serial_output(); + + serial_low(); + serial_delay(); + + serial_high(); +} + +// Reads a byte from the serial line +static +uint8_t serial_read_byte(void) { + uint8_t byte = 0; + serial_input(); + for ( uint8_t i = 0; i < 8; ++i) { + byte = (byte << 1) | serial_read_pin(); + serial_delay(); + _delay_us(1); + } + + return byte; +} + +// Sends a byte with MSB ordering +static +void serial_write_byte(uint8_t data) { + uint8_t b = 8; + serial_output(); + while( b-- ) { + if(data & (1 << b)) { + serial_high(); + } else { + serial_low(); + } + serial_delay(); + } +} + +// interrupt handle to be used by the slave device +ISR(SERIAL_PIN_INTERRUPT) { + sync_send(); + + uint8_t checksum = 0; + for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) { + serial_write_byte(serial_slave_buffer[i]); + sync_send(); + checksum += serial_slave_buffer[i]; + } + serial_write_byte(checksum); + sync_send(); + + // wait for the sync to finish sending + serial_delay(); + + // read the middle of pulses + _delay_us(SERIAL_DELAY/2); + + uint8_t checksum_computed = 0; + for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) { + serial_master_buffer[i] = serial_read_byte(); + sync_send(); + checksum_computed += serial_master_buffer[i]; + } + uint8_t checksum_received = serial_read_byte(); + sync_send(); + + serial_input(); // end transaction + + if ( checksum_computed != checksum_received ) { + status |= SLAVE_DATA_CORRUPT; + } else { + status &= ~SLAVE_DATA_CORRUPT; + } +} + +inline +bool serial_slave_DATA_CORRUPT(void) { + return status & SLAVE_DATA_CORRUPT; +} + +// Copies the serial_slave_buffer to the master and sends the +// serial_master_buffer to the slave. +// +// Returns: +// 0 => no error +// 1 => slave did not respond +int serial_update_buffers(void) { + // this code is very time dependent, so we need to disable interrupts + cli(); + + // signal to the slave that we want to start a transaction + serial_output(); + serial_low(); + _delay_us(1); + + // wait for the slaves response + serial_input(); + serial_high(); + _delay_us(SERIAL_DELAY); + + // check if the slave is present + if (serial_read_pin()) { + // slave failed to pull the line low, assume not present + sei(); + return 1; + } + + // if the slave is present syncronize with it + sync_recv(); + + uint8_t checksum_computed = 0; + // receive data from the slave + for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) { + serial_slave_buffer[i] = serial_read_byte(); + sync_recv(); + checksum_computed += serial_slave_buffer[i]; + } + uint8_t checksum_received = serial_read_byte(); + sync_recv(); + + if (checksum_computed != checksum_received) { + sei(); + return 1; + } + + uint8_t checksum = 0; + // send data to the slave + for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) { + serial_write_byte(serial_master_buffer[i]); + sync_recv(); + checksum += serial_master_buffer[i]; + } + serial_write_byte(checksum); + sync_recv(); + + // always, release the line when not in use + serial_output(); + serial_high(); + + sei(); + return 0; +} + +#endif diff --git a/keyboards/handwired/dactyl_manuform/serial.h b/keyboards/handwired/dactyl_manuform/serial.h new file mode 100644 index 000000000000..15fe4db7b4c6 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/serial.h @@ -0,0 +1,26 @@ +#ifndef MY_SERIAL_H +#define MY_SERIAL_H + +#include "config.h" +#include + +/* TODO: some defines for interrupt setup */ +#define SERIAL_PIN_DDR DDRD +#define SERIAL_PIN_PORT PORTD +#define SERIAL_PIN_INPUT PIND +#define SERIAL_PIN_MASK _BV(PD0) +#define SERIAL_PIN_INTERRUPT INT0_vect + +#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2 +#define SERIAL_MASTER_BUFFER_LENGTH 1 + +// Buffers for master - slave communication +extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH]; +extern volatile uint8_t serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH]; + +void serial_master_init(void); +void serial_slave_init(void); +int serial_update_buffers(void); +bool serial_slave_data_corrupt(void); + +#endif diff --git a/keyboards/handwired/dactyl_manuform/split_util.c b/keyboards/handwired/dactyl_manuform/split_util.c new file mode 100644 index 000000000000..346cbc908949 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/split_util.c @@ -0,0 +1,86 @@ +#include +#include +#include +#include +#include +#include +#include "split_util.h" +#include "matrix.h" +#include "keyboard.h" +#include "config.h" +#include "timer.h" + +#ifdef USE_I2C +# include "i2c.h" +#else +# include "serial.h" +#endif + +volatile bool isLeftHand = true; + +static void setup_handedness(void) { + #ifdef EE_HANDS + isLeftHand = eeprom_read_byte(EECONFIG_HANDEDNESS); + #else + // I2C_MASTER_RIGHT is deprecated, use MASTER_RIGHT instead, since this works for both serial and i2c + #if defined(I2C_MASTER_RIGHT) || defined(MASTER_RIGHT) + isLeftHand = !has_usb(); + #else + isLeftHand = has_usb(); + #endif + #endif +} + +static void keyboard_master_setup(void) { +#ifdef USE_I2C + i2c_master_init(); +#ifdef SSD1306OLED + matrix_master_OLED_init (); +#endif +#else + serial_master_init(); +#endif +} + +static void keyboard_slave_setup(void) { + timer_init(); +#ifdef USE_I2C + i2c_slave_init(SLAVE_I2C_ADDRESS); +#else + serial_slave_init(); +#endif +} + +bool has_usb(void) { + USBCON |= (1 << OTGPADE); //enables VBUS pad + _delay_us(5); + return (USBSTA & (1< +#include "eeconfig.h" + +#define SLAVE_I2C_ADDRESS 0x32 + +extern volatile bool isLeftHand; + +// slave version of matix scan, defined in matrix.c +void matrix_slave_scan(void); + +void split_keyboard_setup(void); +bool has_usb(void); +void keyboard_slave_loop(void); + +void matrix_master_OLED_init (void); + +#endif From 687c7070a14108f69623bc925496444c4eadcf6a Mon Sep 17 00:00:00 2001 From: uplus Date: Sun, 11 Mar 2018 15:58:51 +0900 Subject: [PATCH 067/578] fix generate Keyboard.h --- tmk_core/avr.mk | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk index 853b8f02f208..10b043caa25d 100644 --- a/tmk_core/avr.mk +++ b/tmk_core/avr.mk @@ -251,16 +251,16 @@ extcoff: $(BUILD_DIR)/$(TARGET).elf bootloader: make -C lib/lufa/Bootloaders/DFU/ clean - echo "#ifndef QMK_KEYBOARD\n#define QMK_KEYBOARD\n" > lib/lufa/Bootloaders/DFU/Keyboard.h - echo `grep "MANUFACTURER" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h - echo `grep "PRODUCT" $(ALL_CONFIGS) -h | tail -1` Bootloader >> lib/lufa/Bootloaders/DFU/Keyboard.h - echo `grep "QMK_ESC_OUTPUT" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h - echo `grep "QMK_ESC_INPUT" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h - echo `grep "QMK_LED" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h - echo `grep "QMK_SPEAKER" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h - echo "\n#endif" >> lib/lufa/Bootloaders/DFU/Keyboard.h + echo -e "#ifndef QMK_KEYBOARD\n#define QMK_KEYBOARD\n" > lib/lufa/Bootloaders/DFU/Keyboard.h + echo -e `grep "MANUFACTURER" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h + echo -e `grep "PRODUCT" $(ALL_CONFIGS) -h | tail -1` Bootloader >> lib/lufa/Bootloaders/DFU/Keyboard.h + echo -e `grep "QMK_ESC_OUTPUT" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h + echo -e `grep "QMK_ESC_INPUT" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h + echo -e `grep "QMK_LED" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h + echo -e `grep "QMK_SPEAKER" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h + echo -e "\n#endif" >> lib/lufa/Bootloaders/DFU/Keyboard.h make -C lib/lufa/Bootloaders/DFU/ - echo "BootloaderDFU.hex copied to $(TARGET)_bootloader.hex" + echo -e "BootloaderDFU.hex copied to $(TARGET)_bootloader.hex" cp lib/lufa/Bootloaders/DFU/BootloaderDFU.hex $(TARGET)_bootloader.hex production: $(BUILD_DIR)/$(TARGET).hex bootloader From 7230923b051bdb32bea19c3d732fa1fbc4883a68 Mon Sep 17 00:00:00 2001 From: Joe Wasson Date: Sun, 11 Mar 2018 14:07:02 -0700 Subject: [PATCH 068/578] Rename ONEHAND_ENABLE to SWAP_HANDS_ENABLE for consistency --- docs/feature_swap_hands.md | 2 +- keyboards/ergo42/ergo42.c | 2 +- keyboards/ergodone/rules.mk | 4 ++-- keyboards/ergodox_ez/ergodox_ez.c | 4 ++-- keyboards/ergodox_ez/keymaps/bepo_tm_style/rules.mk | 2 +- keyboards/ergodox_ez/rules.mk | 8 ++++---- keyboards/ergodox_infinity/ergodox_infinity.c | 2 +- keyboards/ergodox_infinity/keymaps/halfkeyboard/rules.mk | 2 +- keyboards/ergodox_infinity/rules.mk | 6 +++--- keyboards/hadron/keymaps/default/rules.mk | 4 ++-- keyboards/hadron/keymaps/side_numpad/rules.mk | 4 ++-- keyboards/handwired/dactyl/dactyl.c | 2 +- keyboards/handwired/dactyl/rules.mk | 2 +- keyboards/helix/rev1/keymaps/OLED_sample/rules.mk | 2 +- keyboards/helix/rev2/keymaps/default/rules.mk | 2 +- keyboards/lets_split/keymaps/OLED_sample/rules.mk | 4 ++-- keyboards/lets_split/keymaps/heartrobotninja/rules.mk | 2 +- keyboards/lets_split/keymaps/mjt/rules.mk | 4 ++-- keyboards/lets_split/lets_split.c | 2 +- keyboards/levinson/levinson.c | 2 +- keyboards/mitosis/mitosis.c | 2 +- keyboards/niu_mini/niu_mini.c | 2 +- keyboards/planck/keymaps/experimental/rules.mk | 2 +- keyboards/planck/planck.c | 2 +- keyboards/preonic/preonic.c | 2 +- tmk_core/common.mk | 7 +++++-- tmk_core/common/action.c | 6 +++--- tmk_core/common/action.h | 2 +- 28 files changed, 45 insertions(+), 42 deletions(-) diff --git a/docs/feature_swap_hands.md b/docs/feature_swap_hands.md index 42f9e08671f0..61c66a2c10bd 100644 --- a/docs/feature_swap_hands.md +++ b/docs/feature_swap_hands.md @@ -1,6 +1,6 @@ # Swap-Hands Action -The swap-hands action allows support for one-handed typing without requiring a separate layer. Set `ONEHAND_ENABLE` in the Makefile and define a `hand_swap_config` entry in your keymap. Now whenever the `ACTION_SWAP_HANDS` command key is pressed the keyboard is mirrored. For instance, to type "Hello, World" on QWERTY you would type `^Ge^s^s^w^c W^wr^sd` +The swap-hands action allows support for one-handed typing without requiring a separate layer. Set `SWAP_HANDS_ENABLE` in the Makefile and define a `hand_swap_config` entry in your keymap. Now whenever the `ACTION_SWAP_HANDS` command key is pressed the keyboard is mirrored. For instance, to type "Hello, World" on QWERTY you would type `^Ge^s^s^w^c W^wr^sd` ## Configuration diff --git a/keyboards/ergo42/ergo42.c b/keyboards/ergo42/ergo42.c index 9954f5c4cdbd..e42dcb22617a 100644 --- a/keyboards/ergo42/ergo42.c +++ b/keyboards/ergo42/ergo42.c @@ -1,6 +1,6 @@ #include "ergo42.h" -#ifdef ONEHAND_ENABLE +#ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/ergodone/rules.mk b/keyboards/ergodone/rules.mk index dee7a14e0d6d..6acfaf92e96a 100644 --- a/keyboards/ergodone/rules.mk +++ b/keyboards/ergodone/rules.mk @@ -5,7 +5,7 @@ # # make clean = Clean out built project files. # -# That's pretty much all you need. To compile, always go make clean, +# That's pretty much all you need. To compile, always go make clean, # followed by make. # # For advanced users only: @@ -88,7 +88,7 @@ FADING_LED_ENABLE = no # Enable fading backlight BREATHING_LED_ENABLE = no # Enable breathing backlight LEDMAP_ENABLE = no # Enable LED mapping LEDMAP_IN_EEPROM_ENABLE = no # Read LED mapping from eeprom -ONEHAND_ENABLE = no # Disable Onehand +SWAP_HANDS_ENABLE = no # Disable Onehand RGBLIGHT_ENABLE = no MIDI_ENABLE = no diff --git a/keyboards/ergodox_ez/ergodox_ez.c b/keyboards/ergodox_ez/ergodox_ez.c index 5f197cb2d7fa..437411856b48 100644 --- a/keyboards/ergodox_ez/ergodox_ez.c +++ b/keyboards/ergodox_ez/ergodox_ez.c @@ -100,7 +100,7 @@ void ergodox_blink_all_leds(void) mcp23018_status = ergodox_left_leds_update(); } #endif - + //ergodox_led_all_on(); //_delay_ms(333); ergodox_led_all_off(); @@ -185,7 +185,7 @@ uint8_t ergodox_left_leds_update(void) { #endif -#ifdef ONEHAND_ENABLE +#ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) // swap-hands action needs a matrix to define the swap const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/ergodox_ez/keymaps/bepo_tm_style/rules.mk b/keyboards/ergodox_ez/keymaps/bepo_tm_style/rules.mk index 6ed55e72b4ae..6d20fcf762e1 100755 --- a/keyboards/ergodox_ez/keymaps/bepo_tm_style/rules.mk +++ b/keyboards/ergodox_ez/keymaps/bepo_tm_style/rules.mk @@ -2,7 +2,7 @@ MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # USB Nkey Rollover - for issues, see github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -ONEHAND_ENABLE = yes # Allow swapping hands of keyboard +SWAP_HANDS_ENABLE= yes # Allow swapping hands of keyboard KEY_LOCK_ENABLE = yes # Enable the KC_LOCK key TAP_DANCE_ENABLE = yes # Enable the tap dance feature. CONSOLE_ENABLE = yes # Console for debug diff --git a/keyboards/ergodox_ez/rules.mk b/keyboards/ergodox_ez/rules.mk index 4d2c461085b7..5ee9d5cb8a52 100644 --- a/keyboards/ergodox_ez/rules.mk +++ b/keyboards/ergodox_ez/rules.mk @@ -5,7 +5,7 @@ # # make clean = Clean out built project files. # -# That's pretty much all you need. To compile, always go make clean, +# That's pretty much all you need. To compile, always go make clean, # followed by make. # # For advanced users only: @@ -56,7 +56,7 @@ F_USB = $(F_CPU) # Bootloader # This definition is optional, and if your keyboard supports multiple bootloaders of -# different sizes, comment this out, and the correct address will be loaded +# different sizes, comment this out, and the correct address will be loaded # automatically (+60). See bootloader.mk for all options. BOOTLOADER = halfkay @@ -79,9 +79,9 @@ COMMAND_ENABLE = yes # Commands for debug and configuration CUSTOM_MATRIX = yes # Custom matrix file for the ErgoDox EZ NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work UNICODE_ENABLE = yes # Unicode -ONEHAND_ENABLE = yes # Allow swapping hands of keyboard +SWAP_HANDS_ENABLE= yes # Allow swapping hands of keyboard SLEEP_LED_ENABLE = no API_SYSEX_ENABLE = no RGBLIGHT_ENABLE = yes -LAYOUTS = ergodox \ No newline at end of file +LAYOUTS = ergodox diff --git a/keyboards/ergodox_infinity/ergodox_infinity.c b/keyboards/ergodox_infinity/ergodox_infinity.c index 87e1b524b6c5..9fda7991f13f 100644 --- a/keyboards/ergodox_infinity/ergodox_infinity.c +++ b/keyboards/ergodox_infinity/ergodox_infinity.c @@ -174,7 +174,7 @@ __attribute__ ((weak)) void ergodox_right_led_3_set(uint8_t n) { } -#ifdef ONEHAND_ENABLE +#ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{0, 9}, {1, 9}, {2, 9}, {3, 9}, {4, 9}}, diff --git a/keyboards/ergodox_infinity/keymaps/halfkeyboard/rules.mk b/keyboards/ergodox_infinity/keymaps/halfkeyboard/rules.mk index 74881c981ded..2d3597ceb99a 100644 --- a/keyboards/ergodox_infinity/keymaps/halfkeyboard/rules.mk +++ b/keyboards/ergodox_infinity/keymaps/halfkeyboard/rules.mk @@ -67,7 +67,7 @@ CUSTOM_MATRIX = yes # Custom matrix file for the ErgoDox EZ SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work UNICODE_ENABLE = yes # Unicode -ONEHAND_ENABLE = yes # Allow swapping hands of keyboard +SWAP_HANDS_ENABLE = yes # Allow swapping hands of keyboard STENO_ENABLE = yes #enable plover steno mode CUSTOM_MATRIX = yes # Custom matrix file SERIAL_LINK_ENABLE = yes diff --git a/keyboards/ergodox_infinity/rules.mk b/keyboards/ergodox_infinity/rules.mk index e1cef51c1e1b..c243c258bac3 100644 --- a/keyboards/ergodox_infinity/rules.mk +++ b/keyboards/ergodox_infinity/rules.mk @@ -67,7 +67,7 @@ CUSTOM_MATRIX = yes # Custom matrix file for the ErgoDox EZ SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work UNICODE_ENABLE = yes # Unicode -ONEHAND_ENABLE = yes # Allow swapping hands of keyboard +SWAP_HANDS_ENABLE= yes # Allow swapping hands of keyboard CUSTOM_MATRIX = yes # Custom matrix file SERIAL_LINK_ENABLE = yes @@ -79,11 +79,11 @@ MIDI_ENABLE = no RGBLIGHT_ENABLE = no LCD_DRIVER = st7565 -LCD_WIDTH = 128 +LCD_WIDTH = 128 LCD_HEIGHT = 32 LED_DRIVER = is31fl3731c -LED_WIDTH = 7 +LED_WIDTH = 7 LED_HEIGHT = 7 LAYOUTS = ergodox diff --git a/keyboards/hadron/keymaps/default/rules.mk b/keyboards/hadron/keymaps/default/rules.mk index e24ba04b5351..1f3975255a1f 100644 --- a/keyboards/hadron/keymaps/default/rules.mk +++ b/keyboards/hadron/keymaps/default/rules.mk @@ -1,7 +1,7 @@ # Build Options -# change to "no" to disable the options, or define them in the Makefile in +# change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) @@ -16,7 +16,7 @@ AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. -ONEHAND_ENABLE = no # Enable one-hand typing +SWAP_HANDS_ENABLE = no # Enable one-hand typing # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/hadron/keymaps/side_numpad/rules.mk b/keyboards/hadron/keymaps/side_numpad/rules.mk index 5cdc186cd61a..d9fabc1accbe 100644 --- a/keyboards/hadron/keymaps/side_numpad/rules.mk +++ b/keyboards/hadron/keymaps/side_numpad/rules.mk @@ -1,7 +1,7 @@ # Build Options -# change to "no" to disable the options, or define them in the Makefile in +# change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) @@ -16,7 +16,7 @@ AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. -ONEHAND_ENABLE = no # Enable one-hand typing +SWAP_HANDS_ENABLE = no # Enable one-hand typing # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/handwired/dactyl/dactyl.c b/keyboards/handwired/dactyl/dactyl.c index 3f59154fdc48..abe3d9d603b1 100644 --- a/keyboards/handwired/dactyl/dactyl.c +++ b/keyboards/handwired/dactyl/dactyl.c @@ -57,7 +57,7 @@ uint8_t init_mcp23018(void) { return mcp23018_status; } -#ifdef ONEHAND_ENABLE +#ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) // swap-hands action needs a matrix to define the swap const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/handwired/dactyl/rules.mk b/keyboards/handwired/dactyl/rules.mk index 90a29bd2d6ec..dc25f9c3fb76 100644 --- a/keyboards/handwired/dactyl/rules.mk +++ b/keyboards/handwired/dactyl/rules.mk @@ -80,7 +80,7 @@ COMMAND_ENABLE = no # Commands for debug and configuration CUSTOM_MATRIX = yes # Custom matrix file for the Dactyl NKRO_ENABLE = yes # USB Nkey Rollover UNICODE_ENABLE = yes # Unicode -ONEHAND_ENABLE = yes # Allow swapping hands of keyboard +SWAP_HANDS_ENABLE = yes # Allow swapping hands of keyboard SLEEP_LED_ENABLE = no API_SYSEX_ENABLE = no RGBLIGHT_ENABLE = no diff --git a/keyboards/helix/rev1/keymaps/OLED_sample/rules.mk b/keyboards/helix/rev1/keymaps/OLED_sample/rules.mk index 67a0ff2d8f6d..3f8fd5dc674b 100644 --- a/keyboards/helix/rev1/keymaps/OLED_sample/rules.mk +++ b/keyboards/helix/rev1/keymaps/OLED_sample/rules.mk @@ -15,7 +15,7 @@ AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. -ONEHAND_ENABLE = no # Enable one-hand typing +SWAP_HANDS_ENABLE = no # Enable one-hand typing # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/helix/rev2/keymaps/default/rules.mk b/keyboards/helix/rev2/keymaps/default/rules.mk index f4d34543511a..dc4187c08382 100644 --- a/keyboards/helix/rev2/keymaps/default/rules.mk +++ b/keyboards/helix/rev2/keymaps/default/rules.mk @@ -17,7 +17,7 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID # Helix keyboard : see ./config.h: RGBLED_NUM 6 or 32 # Helix keyboard : RGBLIGHT_ENABLE = no or yes RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. -ONEHAND_ENABLE = no # Enable one-hand typing +SWAP_HANDS_ENABLE = no # Enable one-hand typing # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/lets_split/keymaps/OLED_sample/rules.mk b/keyboards/lets_split/keymaps/OLED_sample/rules.mk index 90616d1f1948..874d09eab540 100644 --- a/keyboards/lets_split/keymaps/OLED_sample/rules.mk +++ b/keyboards/lets_split/keymaps/OLED_sample/rules.mk @@ -1,6 +1,6 @@ # Build Options -# change to "no" to disable the options, or define them in the Makefile in +# change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) @@ -15,7 +15,7 @@ AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. -ONEHAND_ENABLE = no # Enable one-hand typing +SWAP_HANDS_ENABLE = no # Enable one-hand typing # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/lets_split/keymaps/heartrobotninja/rules.mk b/keyboards/lets_split/keymaps/heartrobotninja/rules.mk index d5e58dad4608..2261a848aa69 100644 --- a/keyboards/lets_split/keymaps/heartrobotninja/rules.mk +++ b/keyboards/lets_split/keymaps/heartrobotninja/rules.mk @@ -15,7 +15,7 @@ AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. -ONEHAND_ENABLE = no # Enable one-hand typing +SWAP_HANDS_ENABLE = no # Enable one-hand typing # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/lets_split/keymaps/mjt/rules.mk b/keyboards/lets_split/keymaps/mjt/rules.mk index 90616d1f1948..874d09eab540 100644 --- a/keyboards/lets_split/keymaps/mjt/rules.mk +++ b/keyboards/lets_split/keymaps/mjt/rules.mk @@ -1,6 +1,6 @@ # Build Options -# change to "no" to disable the options, or define them in the Makefile in +# change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) @@ -15,7 +15,7 @@ AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. -ONEHAND_ENABLE = no # Enable one-hand typing +SWAP_HANDS_ENABLE = no # Enable one-hand typing # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/lets_split/lets_split.c b/keyboards/lets_split/lets_split.c index 914cf2698c87..c400ab7bb8e7 100644 --- a/keyboards/lets_split/lets_split.c +++ b/keyboards/lets_split/lets_split.c @@ -1,6 +1,6 @@ #include "lets_split.h" -#ifdef ONEHAND_ENABLE +#ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/levinson/levinson.c b/keyboards/levinson/levinson.c index 2c993daece85..95f3fe9ef816 100644 --- a/keyboards/levinson/levinson.c +++ b/keyboards/levinson/levinson.c @@ -1,6 +1,6 @@ #include "levinson.h" -#ifdef ONEHAND_ENABLE +#ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/mitosis/mitosis.c b/keyboards/mitosis/mitosis.c index 61a26c662ae0..f965f2a0484b 100644 --- a/keyboards/mitosis/mitosis.c +++ b/keyboards/mitosis/mitosis.c @@ -30,7 +30,7 @@ void led_set_kb(uint8_t usb_led) { } -#ifdef ONEHAND_ENABLE +#ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, diff --git a/keyboards/niu_mini/niu_mini.c b/keyboards/niu_mini/niu_mini.c index f1607df55c8b..60df62b9e3cd 100644 --- a/keyboards/niu_mini/niu_mini.c +++ b/keyboards/niu_mini/niu_mini.c @@ -1,6 +1,6 @@ #include "niu_mini.h" -#ifdef ONEHAND_ENABLE +#ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, diff --git a/keyboards/planck/keymaps/experimental/rules.mk b/keyboards/planck/keymaps/experimental/rules.mk index 29108e522b6b..b135dfca01ca 100644 --- a/keyboards/planck/keymaps/experimental/rules.mk +++ b/keyboards/planck/keymaps/experimental/rules.mk @@ -16,7 +16,7 @@ AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. -ONEHAND_ENABLE = yes # Enable one-hand typing +SWAP_HANDS_ENABLE = yes # Enable one-hand typing STENO_ENABLE = yes # Enable TX Bolt protocol for Stenography, requires VIRTSER and may not work with mouse keys # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/planck/planck.c b/keyboards/planck/planck.c index 1d2f91bc557e..6ac789cbe72c 100644 --- a/keyboards/planck/planck.c +++ b/keyboards/planck/planck.c @@ -1,6 +1,6 @@ #include "planck.h" -#ifdef ONEHAND_ENABLE +#ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, diff --git a/keyboards/preonic/preonic.c b/keyboards/preonic/preonic.c index d9c119b8daca..637a73ab8b1a 100644 --- a/keyboards/preonic/preonic.c +++ b/keyboards/preonic/preonic.c @@ -1,6 +1,6 @@ #include "preonic.h" -#ifdef ONEHAND_ENABLE +#ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, diff --git a/tmk_core/common.mk b/tmk_core/common.mk index 75b810d9856b..f120735250fe 100644 --- a/tmk_core/common.mk +++ b/tmk_core/common.mk @@ -25,7 +25,7 @@ TMK_COMMON_SRC += $(COMMON_DIR)/host.c \ ifeq ($(PLATFORM),AVR) TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/xprintf.S -endif +endif ifeq ($(PLATFORM),CHIBIOS) TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/printf.c @@ -124,7 +124,10 @@ ifeq ($(strip $(BLUETOOTH)), RN42) endif ifeq ($(strip $(ONEHAND_ENABLE)), yes) - TMK_COMMON_DEFS += -DONEHAND_ENABLE + SWAP_HANDS_ENABLE = yes # backwards compatibility +endif +ifeq ($(strip $(SWAP_HANDS_ENABLE)), yes) + TMK_COMMON_DEFS += -DSWAP_HANDS_ENABLE endif ifeq ($(strip $(NO_USB_STARTUP_CHECK)), yes) diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index dd3a5b3ee243..947e5118f179 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -64,7 +64,7 @@ void action_exec(keyevent_t event) fauxclicky_check(); #endif -#ifdef ONEHAND_ENABLE +#ifdef SWAP_HANDS_ENABLE if (!IS_NOEVENT(event)) { process_hand_swap(&event); } @@ -91,7 +91,7 @@ void action_exec(keyevent_t event) #endif } -#ifdef ONEHAND_ENABLE +#ifdef SWAP_HANDS_ENABLE bool swap_hands = false; void process_hand_swap(keyevent_t *event) { @@ -524,7 +524,7 @@ void process_action(keyrecord_t *record, action_t action) #endif case ACT_COMMAND: break; -#ifdef ONEHAND_ENABLE +#ifdef SWAP_HANDS_ENABLE case ACT_SWAP_HANDS: switch (action.swap.code) { case OP_SH_TOGGLE: diff --git a/tmk_core/common/action.h b/tmk_core/common/action.h index b9bdfe642c5a..87027dedea60 100644 --- a/tmk_core/common/action.h +++ b/tmk_core/common/action.h @@ -67,7 +67,7 @@ extern bool disable_action_cache; #endif /* Code for handling one-handed key modifiers. */ -#ifdef ONEHAND_ENABLE +#ifdef SWAP_HANDS_ENABLE extern bool swap_hands; extern const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS]; #if (MATRIX_COLS <= 8) From 23ac2a02ef870dce91318a4d98e3c8ec5749bced Mon Sep 17 00:00:00 2001 From: Joe Wasson Date: Sun, 11 Mar 2018 16:53:35 -0700 Subject: [PATCH 069/578] Add keycodes for swap-hands feature. --- docs/feature_swap_hands.md | 21 +++++++++---------- docs/keycodes.md | 12 +++++++++++ .../planck/keymaps/experimental/keymap.c | 11 ++++------ quantum/keymap_common.c | 6 ++++++ quantum/quantum_keycodes.h | 14 +++++++++++++ 5 files changed, 46 insertions(+), 18 deletions(-) diff --git a/docs/feature_swap_hands.md b/docs/feature_swap_hands.md index 61c66a2c10bd..92e8e3b10722 100644 --- a/docs/feature_swap_hands.md +++ b/docs/feature_swap_hands.md @@ -17,15 +17,14 @@ const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { Note that the array indices are reversed same as the matrix and the values are of type `keypos_t` which is `{col, row}` and all values are zero-based. In the example above, `hand_swap_config[2][4]` (third row, fifth column) would return `{7, 2}` (third row, eighth column). Yes, this is confusing. -## Advanced Swap Commands +## Swap Keycodes -|Macro | Description | -|------|-------------| -| `ACTION_SWAP_HANDS()` | Swaps hands when pressed, returns to normal when released (momentary). | -| `ACTION_SWAP_HANDS_TOGGLE()` | Toggles swap on and off with every key press. | -| `ACTION_SWAP_HANDS_TAP_TOGGLE()` | Toggles with a tap; momentary when held. | -| `ACTION_SWAP_HANDS_TAP_KEY(key)`| Sends `key` with a tap; momentary swap when held. | -| `ACTION_SWAP_HANDS_ON_OFF()` | Alias for `ACTION_SWAP_HANDS()` | -| `ACTION_SWAP_HANDS_OFF_ON()` | Momentarily turns off swap. | -| `ACTION_SWAP_HANDS_ON()` | Turns on swapping and leaves it on. | -| `ACTION_SWAP_HANDS_OFF()` | Turn off swapping and leaves it off. Good for returning to a known state. | \ No newline at end of file +|Key |Description | +|-----------|-------------------------------------------------------------------------| +|`SH_T(key)`|Sends `key` with a tap; momentary swap when held. | +|`SW_ON` |Turns on swapping and leaves it on. | +|`SW_OFF` |Turn off swapping and leaves it off. Good for returning to a known state.| +|`SW_MON` |Swaps hands when pressed, returns to normal when released (momentary). | +|`SW_MOFF` |Momentarily turns off swap. | +|`SH_TG` |Toggles swap on and off with every key press. | +|`SH_TT` |Toggles with a tap; momentary when held. | diff --git a/docs/keycodes.md b/docs/keycodes.md index 030b23827a0c..21a722250e7f 100644 --- a/docs/keycodes.md +++ b/docs/keycodes.md @@ -390,3 +390,15 @@ This is a reference only. Each group of keys links to the page documenting their |------------|-------|-------------------------------------------------| |`UNICODE(n)`|`UC(n)`|Send Unicode character `n` | |`X(n)` | |Send Unicode character `n` via a different method| + +## [Swap Hands](feature_swap_hands.md) + +|Key |Description | +|-----------|-------------------------------------------------------------------------| +|`SH_T(key)`|Sends `key` with a tap; momentary swap when held. | +|`SW_ON` |Turns on swapping and leaves it on. | +|`SW_OFF` |Turn off swapping and leaves it off. Good for returning to a known state.| +|`SH_MON` |Swaps hands when pressed, returns to normal when released (momentary). | +|`SH_MOFF` |Momentarily turns off swap. | +|`SH_TG` |Toggles swap on and off with every key press. | +|`SH_TT` |Toggles with a tap; momentary when held. | diff --git a/keyboards/planck/keymaps/experimental/keymap.c b/keyboards/planck/keymaps/experimental/keymap.c index feeb137fa0b4..8ddb3d4650b8 100644 --- a/keyboards/planck/keymaps/experimental/keymap.c +++ b/keyboards/planck/keymaps/experimental/keymap.c @@ -45,6 +45,7 @@ enum planck_keycodes { // Fillers to make layering more clear #define _______ KC_TRNS #define XXXXXXX KC_NO +#define SW_SPC SH_T(KC_SPC) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = { @@ -69,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_FN0, KC_FN0, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, SW_SPC, SW_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Colemak @@ -87,7 +88,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_FN0, KC_FN0, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, SW_SPC, SW_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Dvorak @@ -105,7 +106,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_FN0, KC_FN0, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, SW_SPC, SW_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Lower @@ -184,10 +185,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -const uint16_t PROGMEM fn_actions[] = { - ACTION_SWAP_HANDS_TAP_KEY(KC_SPC), -}; - #ifdef AUDIO_ENABLE float tone_startup[][2] = SONG(STARTUP_SOUND); diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index a0d4c1ddb087..8b09f93fced6 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -146,6 +146,12 @@ action_t action_for_key(uint8_t layer, keypos_t key) action.code = ACTION_BACKLIGHT_STEP(); break; #endif + #ifdef SWAP_HANDS_ENABLE + case QK_SWAP_HANDS ... QK_SWAP_HANDS_MAX: + action.code = ACTION(ACT_SWAP_HANDS, keycode & 0xff); + break; + #endif + default: action.code = ACTION_NO; break; diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h index a4ee4d6bb92e..9040299a7449 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h @@ -76,6 +76,10 @@ enum quantum_keycodes { QK_STENO_BOLT = 0x5A30, QK_STENO_GEMINI = 0x5A31, QK_STENO_MAX = 0x5A3F, +#endif +#ifdef SWAP_HANDS_ENABLE + QK_SWAP_HANDS = 0x5B00, + QK_SWAP_HANDS_MAX = 0x5BFF, #endif QK_MOD_TAP = 0x6000, QK_MOD_TAP_MAX = 0x7FFF, @@ -641,4 +645,14 @@ enum quantum_keycodes { #define X(n) (n | QK_UNICODE_MAP) #endif +#ifdef SWAP_HANDS_ENABLE + #define SH_T(key) (QK_SWAP_HANDS | key) + #define SH_TG (QK_SWAP_HANDS | OP_SH_TOGGLE) + #define SH_TT (QK_SWAP_HANDS | OP_SH_TAP_TOGGLE) + #define SH_MON (QK_SWAP_HANDS | OP_SH_ON_OFF) + #define SH_MOFF (QK_SWAP_HANDS | OP_SH_OFF_ON) + #define SH_ON (QK_SWAP_HANDS | OP_SH_ON) + #define SH_OFF (QK_SWAP_HANDS | OP_SH_OFF) +#endif + #endif // QUANTUM_KEYCODES_H From 5d771039adf23fe9cb8de5843a3d799dc73a2fc7 Mon Sep 17 00:00:00 2001 From: Joe Wasson Date: Mon, 12 Mar 2018 10:22:49 -0700 Subject: [PATCH 070/578] Fix swap-hands tapping. This is an inelegant hack for #2522 but makes things work. Basically we give `action.c` a chance to handle the hold event early so that we can swap the keyboard for later keys. Later, to allow the hold to happen again quickly we nuke the key record so that tapping is reset. I tried to find a cleaner way, honestly. --- tmk_core/common/action.c | 44 +++++++++++++++++++++++++++++--- tmk_core/common/action.h | 4 +++ tmk_core/common/action_code.h | 8 +++--- tmk_core/common/action_tapping.c | 3 ++- 4 files changed, 50 insertions(+), 9 deletions(-) diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index 947e5118f179..33d920554fac 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -93,6 +93,7 @@ void action_exec(keyevent_t event) #ifdef SWAP_HANDS_ENABLE bool swap_hands = false; +bool swap_held = false; void process_hand_swap(keyevent_t *event) { static swap_state_row_t swap_state[MATRIX_ROWS]; @@ -132,6 +133,27 @@ bool process_record_quantum(keyrecord_t *record) { return true; } +#ifndef NO_ACTION_TAPPING +// Allows for handling tap-hold actions immediately instead of waiting for TAPPING_TERM or another keypress. +void process_record_tap_hint(keyrecord_t *record) +{ + action_t action = layer_switch_get_action(record->event.key); + + switch (action.kind.id) { +#ifdef SWAP_HANDS_ENABLE + case ACT_SWAP_HANDS: + switch (action.swap.code) { + case OP_SH_TAP_TOGGLE: + default: + swap_hands = !swap_hands; + swap_held = true; + } + break; +#endif + } +} +#endif + void process_record(keyrecord_t *record) { if (IS_NOEVENT(record->event)) { return; } @@ -551,23 +573,37 @@ void process_action(keyrecord_t *record, action_t action) #ifndef NO_ACTION_TAPPING case OP_SH_TAP_TOGGLE: /* tap toggle */ - if (tap_count > 0) { - if (!event.pressed) { + + if (event.pressed) { + if (swap_held) { + swap_held = false; + } else { swap_hands = !swap_hands; } } else { - swap_hands = event.pressed; + if (tap_count < TAPPING_TOGGLE) { + swap_hands = !swap_hands; + } } break; default: + /* tap key */ if (tap_count > 0) { + if (swap_held) { + swap_hands = !swap_hands; // undo hold set up in _tap_hint + swap_held = false; + } if (event.pressed) { register_code(action.swap.code); } else { unregister_code(action.swap.code); + *record = (keyrecord_t){}; // hack: reset tap mode } } else { - swap_hands = event.pressed; + if (swap_held && !event.pressed) { + swap_hands = !swap_hands; // undo hold set up in _tap_hint + swap_held = false; + } } #endif } diff --git a/tmk_core/common/action.h b/tmk_core/common/action.h index 87027dedea60..acc55c7d3881 100644 --- a/tmk_core/common/action.h +++ b/tmk_core/common/action.h @@ -96,6 +96,10 @@ void clear_keyboard_but_mods(void); void layer_switch(uint8_t new_layer); bool is_tap_key(keypos_t key); +#ifndef NO_ACTION_TAPPING +void process_record_tap_hint(keyrecord_t *record); +#endif + /* debug */ void debug_event(keyevent_t event); void debug_record(keyrecord_t record); diff --git a/tmk_core/common/action_code.h b/tmk_core/common/action_code.h index 05bc845732f6..fe2735b97390 100644 --- a/tmk_core/common/action_code.h +++ b/tmk_core/common/action_code.h @@ -186,7 +186,7 @@ typedef union { } func; struct action_swap { uint8_t code :8; - uint8_t opt :4; + uint8_t opt :4; uint8_t kind :4; } swap; } action_t; @@ -243,7 +243,7 @@ enum usage_pages { -/* +/* * Layer Actions */ enum layer_param_on { @@ -257,7 +257,7 @@ enum layer_param_bit_op { OP_BIT_XOR = 2, OP_BIT_SET = 3, }; -enum layer_pram_tap_op { +enum layer_param_tap_op { OP_TAP_TOGGLE = 0xF0, OP_ON_OFF, OP_OFF_ON, @@ -329,7 +329,7 @@ enum function_opts { #define ACTION_FUNCTION_TAP(id) ACTION(ACT_FUNCTION, FUNC_TAP<<8 | (id)) #define ACTION_FUNCTION_OPT(id, opt) ACTION(ACT_FUNCTION, (opt)<<8 | (id)) /* OneHand Support */ -enum swap_hands_pram_tap_op { +enum swap_hands_param_tap_op { OP_SH_TOGGLE = 0xF0, OP_SH_TAP_TOGGLE, OP_SH_ON_OFF, diff --git a/tmk_core/common/action_tapping.c b/tmk_core/common/action_tapping.c index 531a3ca345b6..6280c6c36f87 100644 --- a/tmk_core/common/action_tapping.c +++ b/tmk_core/common/action_tapping.c @@ -263,7 +263,7 @@ bool process_tapping(keyrecord_t *keyp) return true; } } else { - // FIX: process_aciton here? + // FIX: process_action here? // timeout. no sequential tap. debug("Tapping: End(Timeout after releasing last tap): "); debug_event(event); debug("\n"); @@ -277,6 +277,7 @@ bool process_tapping(keyrecord_t *keyp) if (event.pressed && is_tap_key(event.key)) { debug("Tapping: Start(Press tap key).\n"); tapping_key = *keyp; + process_record_tap_hint(&tapping_key); waiting_buffer_scan_tap(); debug_tapping_key(); return true; From a3047f1ab35e2e9543dae78cd3336f2cd13e596c Mon Sep 17 00:00:00 2001 From: Brian Choromanski Date: Fri, 16 Mar 2018 16:35:44 -0400 Subject: [PATCH 071/578] Added choromanski keymap (#2528) * Added ergodox layout * Added preonic layout * Added readme for exgodox layout * fixed errors with formatting readme * Added edited preonic keymap & readme --- .../preonic/keymaps/choromanski/config.h | 52 ++++ .../preonic/keymaps/choromanski/keymap.c | 175 +++++++++++ .../preonic/keymaps/choromanski/readme.md | 95 ++++++ .../preonic/keymaps/choromanski/rules.mk | 3 + .../community/ergodox/choromanski/keymap.c | 284 ++++++++++++++++++ .../community/ergodox/choromanski/readme.md | 138 +++++++++ .../ergodox/choromanski/visualizer.c | 62 ++++ 7 files changed, 809 insertions(+) create mode 100644 keyboards/preonic/keymaps/choromanski/config.h create mode 100644 keyboards/preonic/keymaps/choromanski/keymap.c create mode 100644 keyboards/preonic/keymaps/choromanski/readme.md create mode 100644 keyboards/preonic/keymaps/choromanski/rules.mk create mode 100644 layouts/community/ergodox/choromanski/keymap.c create mode 100644 layouts/community/ergodox/choromanski/readme.md create mode 100644 layouts/community/ergodox/choromanski/visualizer.c diff --git a/keyboards/preonic/keymaps/choromanski/config.h b/keyboards/preonic/keymaps/choromanski/config.h new file mode 100644 index 000000000000..600cbea5c20b --- /dev/null +++ b/keyboards/preonic/keymaps/choromanski/config.h @@ -0,0 +1,52 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PREONIC_SOUND) + // #define STARTUP_SONG SONG(NO_SOUND) + + #define DEFAULT_LAYER_SONGS { SONG(COLEMAK_SOUND), \ + SONG(QWERTY_SOUND), \ + SONG(AUDIO_ON_SOUND), \ + SONG(TERMINAL_SOUND), \ + SONG(NO_SOUND), \ + SONG(MUSIC_ON_SOUND) \ + } +#endif + +#define MUSIC_MASK (keycode != MU_TOG) + + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ + +#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 2 + +#endif + +#ifndef TAPPING_TERM +#define TAPPING_TERM 200 + +#endif \ No newline at end of file diff --git a/keyboards/preonic/keymaps/choromanski/keymap.c b/keyboards/preonic/keymaps/choromanski/keymap.c new file mode 100644 index 000000000000..195fbeec73d5 --- /dev/null +++ b/keyboards/preonic/keymaps/choromanski/keymap.c @@ -0,0 +1,175 @@ +#include "preonic.h" +#include "action_layer.h" + +enum preonic_layers { + _COLEMAK, + _QWERTY, + _FUNCT, + _NUMPAD, + _SYMB, + _MUSIC +}; + +enum preonic_keycodes { + FUNCT +}; + +//Tap Dance Declarations +enum { + G1 = 0, + BRC, + EQ +}; + +//Tap Dance Definitions +qk_tap_dance_action_t tap_dance_actions[] = { + //Tap once for 1, twice for Grave + [G1] = ACTION_TAP_DANCE_DOUBLE(KC_1, KC_GRV), + //Tap once for [, twice for ] + [BRC] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC), + //Tap once for = twice for Backslash + [EQ] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, KC_BSLS) +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | 1 ` | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | [ ] | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Numpad| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Symbol| Ctrl | Alt | GUI | Bksp | Del |Enter |Space | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = { + {TD(G1), KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TD(EQ)}, + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, TD(BRC)}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, TG(_NUMPAD)}, + {OSL(_SYMB), KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | 1 ` | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ ] | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Numpad| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Symbol| Ctrl | Alt | GUI | Bksp | Del |Enter |Space | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = { + {TD(G1), KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TD(EQ)}, + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(BRC)}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, TG(_NUMPAD)}, + {OSL(_SYMB), KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Function + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Symbol| | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_FUNCT] = { + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +}, + +/* Numpad & Mouse + * ,-----------------------------------------------------------------------------------. + * | ` | | |M-clic| | | | | / | * | - | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | ACL0 |L-clck| Up |R-clck|Scrl U| | 7 | 8 | 9 | + | ] | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | ACL1 | Left | Down |Right |Scrl D| | 4 | 5 | 6 | + | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | ACL2 | VOLU | PREV |PAUSE | NEXT | | 1 | 2 | 3 |Enter | Back | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Symbol| | VOLD | MUTE | Bksp | Del |Enter |Space | 0 | . |Enter | | + * `-----------------------------------------------------------------------------------' + */ +[_NUMPAD] = { + {KC_GRV, _______, _______, KC_BTN3, _______, _______, _______, KC_NLCK, KC_SLSH, KC_ASTR, KC_MINS, KC_BSLS}, + {_______, KC_ACL0, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_7, KC_8, KC_9, KC_PLUS, KC_RBRC}, + {_______, KC_ACL1, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_4, KC_5, KC_6, KC_PLUS, _______}, + {_______, KC_ACL2, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_1, KC_2, KC_3, KC_ENT, _______}, + {OSL(_SYMB), _______, KC_VOLD, KC_MUTE, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, KC_0, KC_DOT, KC_ENT, _______} +}, + +/* Symbol + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | + | < | > | # | ~ | ( | ) | \ | : | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | ! | - | = | % | @ | _ | { | } | / | ? | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |MUSIC | * | & | / | $ | ^ | | | [ | ] | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | FN |COLMAK|QWERTY| | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_SYMB] = { + {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_PIPE, KC_PLUS, KC_LABK, KC_RABK, KC_HASH, KC_TILD, KC_LPRN, KC_RPRN, KC_BSLS, KC_COLN, _______}, + {_______, KC_EXLM, KC_MINS, KC_EQL, KC_PERC, KC_AT, KC_UNDS, KC_LCBR, KC_RCBR, KC_SLSH, KC_QUES, _______}, + {TO(_MUSIC), KC_ASTR, KC_AMPR, KC_SLSH, KC_DLR, KC_CIRC, KC_PIPE, KC_LBRC, KC_RBRC, _______, _______, _______}, + {_______, FUNCT, TO(_COLEMAK), TO(_QWERTY), _______, _______, _______, _______, _______, _______, _______, _______} +}, + +/* Music + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |COLMAK| | | | | | | | | | MOD | TOG | + * `-----------------------------------------------------------------------------------' + */ +[_MUSIC] = { + {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}, + {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}, + {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}, + {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}, + {TO(_COLEMAK), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MU_MOD, MU_TOG} +} + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case FUNCT: + if (record->event.pressed) { + layer_off(_SYMB); + layer_on(_FUNCT); + } + return false; + break; + } + return true; +}; \ No newline at end of file diff --git a/keyboards/preonic/keymaps/choromanski/readme.md b/keyboards/preonic/keymaps/choromanski/readme.md new file mode 100644 index 000000000000..5b8d359009f6 --- /dev/null +++ b/keyboards/preonic/keymaps/choromanski/readme.md @@ -0,0 +1,95 @@ +# Choromanski + +## Features +* Colemak +* Qwerty +* Toggable function row +* Symbol layer programmer friendly +* Numpad/Mouse layer with media controls + +## Layers + +### 0 Colemak +``` +,-----------------------------------------------------------------------------------. +| 1 ` | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = \ | +|------+------+------+------+------+------+------+------+------+------+------+------| +| Tab | Q | W | F | P | G | J | L | U | Y | ; | [ ] | +|------+------+------+------+------+------+------+------+------+------+------+------| +| Esc | A | R | S | T | D | H | N | E | I | O | " | +|------+------+------+------+------+------+------+------+------+------+------+------| +| Shift| Z | X | C | V | B | K | M | , | . | / |Numpad| +|------+------+------+------+------+------+------+------+------+------+------+------| +|Symbol| Ctrl | Alt | GUI | Bksp | Del |Enter |Space | Left | Down | Up |Right | +`-----------------------------------------------------------------------------------' +``` +### 1 Qwerty +``` +,-----------------------------------------------------------------------------------. +| 1 ` | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = \ | +|------+------+------+------+------+------+------+------+------+------+------+------| +| Tab | Q | W | E | R | T | Y | U | I | O | P | [ ] | +|------+------+------+------+------+------+------+------+------+------+------+------| +| Esc | A | S | D | F | G | H | J | K | L | ; | " | +|------+------+------+------+------+------+------+------+------+------+------+------| +| Shift| Z | X | C | V | B | N | M | , | . | / |Numpad| +|------+------+------+------+------+------+------+------+------+------+------+------| +|Symbol| Ctrl | Alt | GUI | Bksp | Del |Enter |Space | Left | Down | Up |Right | +`-----------------------------------------------------------------------------------' +``` +### 2 Function Lock +``` +,-----------------------------------------------------------------------------------. +| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | | | | | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | | | | | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | | | | | +|------+------+------+------+------+------+------+------+------+------+------+------| +|Symbol| | | | | | | | | | | | +`-----------------------------------------------------------------------------------' +``` +### 3 Numpad/Mouse with Media Controls +``` +,-----------------------------------------------------------------------------------. +| ` | | |M-clic| | | | | / | | - | \ | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | ACL0 |L-clck| Up |R-clck|Scrl U| | 7 | 8 | 9 | + | ] | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | ACL1 | Left | Down |Right |Scrl D| | 4 | 5 | 6 | + | | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | ACL2 | VOLU | PREV |PAUSE | NEXT | | 1 | 2 | 3 |Enter | Back | +|------+------+------+------+------+------+------+------+------+------+------+------| +|Symbol| | VOLD | MUTE | Bksp | Del |Enter |Space | 0 | . |Enter | | +`-----------------------------------------------------------------------------------' +``` +### 4 Symbols +``` +,-----------------------------------------------------------------------------------. +| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | | | + | < | > | # | ~ | ( | ) | \ | : | | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | ! | - | = | % | @ | _ | { | } | / | ? | | +|------+------+------+------+------+------+------+------+------+------+------+------| +|MUSIC | * | & | / | $ | ^ | | | [ | ] | | | | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | FN |COLMAK|QWERTY| | | | | | | | | +`-----------------------------------------------------------------------------------' +``` +### 5 Music +``` +,-----------------------------------------------------------------------------------. +| | | | | | | | | | | | | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | | | | | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | | | | | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | | | | | +|------+------+------+------+------+------+------+------+------+------+------+------| +|COLMAK| | | | | | | | | | MOD | TOG | +`-----------------------------------------------------------------------------------' +``` \ No newline at end of file diff --git a/keyboards/preonic/keymaps/choromanski/rules.mk b/keyboards/preonic/keymaps/choromanski/rules.mk new file mode 100644 index 000000000000..9aae19dd97b1 --- /dev/null +++ b/keyboards/preonic/keymaps/choromanski/rules.mk @@ -0,0 +1,3 @@ +TAP_DANCE_ENABLE = yes +MOUSEKEY_ENABLE = yes +AUDIO_ENABLE = yes diff --git a/layouts/community/ergodox/choromanski/keymap.c b/layouts/community/ergodox/choromanski/keymap.c new file mode 100644 index 000000000000..8be3c7ea7ead --- /dev/null +++ b/layouts/community/ergodox/choromanski/keymap.c @@ -0,0 +1,284 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Keymap 0: Colemak + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` ~ | 1 ! | 2 @ | 3 # | 4 $ | 5 % | 6 ^ | | 7 & | 8 * | 9 ( | 0 ) | - _ | = + | BSPACE | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | TAB | Q | W | F | P | G | | | | J | L | U | Y | ; : | \ | | + * |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------| + * | ESC | A | R | S | T | D |------| |------| H | N | E | I | O | ' " | + * |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------| + * | Shift |CTR(Z)|GUI(X)|ALT(C)| V | B | [ | | ] | K | M | , < |ALT(.)|CTR(/)| Shift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |OSL(3)| TG(2)| TO(5)| TO(1)| CAPS | | LEFT | DOWN | UP |RIGHT |TG(4)| + * `----------------------------------' `---------------------------------' + * ,--------------. ,--------------. + * | LCTR | LALT | | RALT | RCTR | + * ,------|------|-------| |------+-------+------. + * | | | MUTE | |SCROLU| | | + * |BSPACE|DELETE|-------| |------| ENTER |SPACE | + * | | | GUI | |SCROLD| | | + * `---------------------' `---------------------' + */ + [0] = LAYOUT_ergodox( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_LPRN, + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, + KC_LSFT, CTL_T(KC_Z), GUI_T(KC_X), ALT_T(KC_C), KC_V, KC_B, KC_LBRC, + OSL(3), TG(2), TO(5), TO(1), KC_CAPS, + KC_LCTL, KC_LALT, + KC_MUTE, + KC_BSPC, KC_DEL, KC_LGUI, + + KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_RPRN, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, + KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_RBRC, KC_K, KC_M, KC_COMM, ALT_T(KC_DOT), CTL_T(KC_SLSH), KC_RSFT, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TG(4), + KC_RALT, KC_RCTL, + KC_WH_U, + KC_WH_D, KC_ENT, KC_SPC + ), + +/* Keymap 1: QWERTY + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | ESC | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | Q | W | E | R | T | | | | Y | U | I | O | P | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | CAPS | A | S | D | F | G |------| |------| H | J | K | L | ; | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |CTL(Z)|GUI(X)|ALT(C)| V | B | | | | N | M | , < |ALT(.)|CTL(/)| | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |OSL(3)| TG(2)| TO(5)| TO(0)| | | | | | | TG(4)| + * `----------------------------------' `----------------------------------' + * ,-------------. ,--------------. + * | | | | | | + * ,------|------|------| |------+-------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `---------------------' + */ + [1] = LAYOUT_ergodox( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_TRNS, CTL_T(KC_Z), GUI_T(KC_X), ALT_T(KC_C), KC_V, KC_B, KC_TRNS, + OSL(3), TG(2), TO(5), TO(0), KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ESC, + KC_RPRN, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_TRNS, + KC_RBRC, KC_N, KC_M, KC_COMM, ALT_T(KC_DOT), CTL_T(KC_SLSH), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(4), + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), + +/* Keymap 2: Function Row + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,--------------. + * | | | | | | + * ,------|------|------| |------+-------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `---------------------' + */ + [2] = LAYOUT_ergodox( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), + + /* Keymap 3: Symbols + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | + | < | > | # | | | | ~ | ( | ) | \ | : | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | ! | - | = | % | @ |------| |------| _ | { | } | / | ? | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | * | & | / | $ | ^ | | | | | | [ | ] | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,--------------. + * | | | | | | + * ,------|------|------| |------+-------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `---------------------' + */ + [3] = LAYOUT_ergodox( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_TRNS, KC_PIPE, KC_PLUS, KC_LABK, KC_RABK, KC_HASH, KC_TRNS, + KC_TRNS, KC_EXLM, KC_MINS, KC_EQL, KC_PERC, KC_AT, + KC_TRNS, KC_ASTR, KC_AMPR, KC_SLSH, KC_DLR, KC_CIRC, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS, KC_TRNS, + + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_TILD, KC_LPRN, KC_RPRN, KC_BSLS, KC_COLN, KC_TRNS, + KC_UNDS, KC_LCBR, KC_RCBR, KC_SLSH, KC_QUES, KC_TRNS, + KC_TRNS, KC_PIPE, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), + +/* Keymap 4: Numlock + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | POWER |SLEEP | |MOUSE3| | | RESET| |RESET |SCROL | NUML | / | * | - | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | |MOUSE1|MOUSEU|MOUSE2|SCROLU| | | | | 7 | 8 | 9 | + | ACCEL0 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MOUSEL|MOUSED|MOUSER|SCROLD|------| |------| | 4 | 5 | 6 | + | ACCEL1 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |ACCEL0|ACCEL1|ACCEL2| | | | | | 1 | 2 | 3 |ENTER | ACCEL2 | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | 0 | 0 | . |ENTER | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | VOL+ | VOL- | |MEDIA<|MEDIA>| + * ,------|------|------| |------+------+------. + * | | | MUTE | |Pause | | | + * | | |------| |------| | | + * | | |FILES | | CALC | | | + * `--------------------' `--------------------' + */ + [4] = LAYOUT_ergodox( + KC_PWR, KC_SLEP, KC_TRNS, KC_BTN3, KC_TRNS, KC_TRNS, RESET, + KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, + KC_TRNS, KC_TRNS, KC_ACL0, KC_ACL1, KC_ACL2, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_VOLD, KC_VOLU, + KC_MUTE, + KC_TRNS, KC_TRNS, KC_MYCM, + + RESET, KC_SLCK, KC_NLCK, KC_SLSH, KC_ASTR, KC_MINS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_7, KC_8, KC_9, KC_PLUS, KC_ACL2, + KC_TRNS, KC_4, KC_5, KC_6, KC_PLUS, KC_ACL1, + KC_TRNS, KC_TRNS, KC_1, KC_2, KC_3, KC_ENT, KC_ACL0, + KC_0, KC_0, KC_DOT, KC_ENT, KC_TRNS, + KC_MPRV, KC_MNXT, + KC_MPLY, + KC_CALC, KC_TRNS, KC_TRNS + ), + +/* Keymap 5: Gaming + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` ~ | 1 ! | 2 @ | 3 # | 4 $ | 5 % | 6 ^ | | 7 & | 8 * | 9 ( | 0 ) | - _ | = + | ESC | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | TAB | Q | W | E | R | T | | | | Y | U | I | O | P | \ | | + * |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------| + * | LCTR | A | S | D | F | G |------| |------| H | J | K | L | ; : | ' " | + * |--------+------+------+------+------+------| MEDIA| | } |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | P/P | | ] | K | M | UP | . > | / ? | Shift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | LCTR |ALTTAB| TO(0)| ALT | SPACE| | LEFT | DOWN | RIGHT| , < |TO(0) | + * `----------------------------------' `----------------------------------' + * ,--------------. ,--------------. + * |MEDIA<| MEDIA>| | RALT | RCTR | + * ,------|------|-------| |------+-------+------. + * | | | VOL+ | | PGUP | | | + * |SPACE |ENTER |-------| |------|BSPACE |DELETE| + * | | | VOL- | | PGDWN| | | + * `---------------------' `---------------------' + */ + [5] = LAYOUT_ergodox( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MPLY, + KC_LCTL, LALT(KC_TAB), TO(0), KC_LALT, KC_SPC, + KC_MPRV, KC_MNXT, + KC_VOLU, + KC_SPC, KC_ENT, KC_VOLD, + + KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_ESC, + KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOTE, + KC_TRNS, KC_N, KC_M, KC_UP, KC_DOT, KC_SLSH, KC_LSFT, + KC_LEFT, KC_DOWN, KC_RGHT, KC_COMM, TO(0), + KC_LALT, KC_LCTL, + KC_PGUP, + KC_PGDOWN, KC_BSPC, KC_DEL + ), +}; + +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + case 3: + ergodox_right_led_3_on(); + break; + case 4: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + break; + case 5: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + break; + case 6: + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + break; + default: + break; + } + +}; diff --git a/layouts/community/ergodox/choromanski/readme.md b/layouts/community/ergodox/choromanski/readme.md new file mode 100644 index 000000000000..848a6670c9e9 --- /dev/null +++ b/layouts/community/ergodox/choromanski/readme.md @@ -0,0 +1,138 @@ +# Choromanski + +## Features +* Colemak +* Qwerty +* Toggable function row +* Symbol layer programmer friendly +* Numpad/Mouse layer with media controls +* Gaming friendly layer + +## Layers + +### 0 Colemak +``` +,--------------------------------------------------. ,--------------------------------------------------. +| ` ~ | 1 ! | 2 @ | 3 # | 4 $ | 5 % | 6 ^ | | 7 & | 8 * | 9 ( | 0 ) | - _ | = + | BSPACE | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| TAB | Q | W | F | P | G | | | | J | L | U | Y | ; : | \ | | +|--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------| +| ESC | A | R | S | T | D |------| |------| H | N | E | I | O | ' " | +|--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------| +| Shift |CTR(Z)|GUI(X)|ALT(C)| V | B | [ | | ] | K | M | , < |ALT(.)|CTR(/)| Shift | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + |OSL(3)| TG(2)| TO(5)| TO(1)| CAPS | | LEFT | DOWN | UP |RIGHT |TG(4)| + `----------------------------------' `---------------------------------' + ,--------------. ,--------------. + | LCTR | LALT | | RALT | RCTR | + ,------|------|-------| |------+-------+------. + | | | MUTE | |SCROLU| | | + |BSPACE|DELETE|-------| |------| ENTER |SPACE | + | | | GUI | |SCROLD| | | + `---------------------' `---------------------' +``` +### 1 Qwerty +``` +,--------------------------------------------------. ,--------------------------------------------------. +| | | | | | | | | | | | | | | ESC | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| | Q | W | E | R | T | | | | Y | U | I | O | P | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| CAPS | A | S | D | F | G |------| |------| H | J | K | L | ; | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| |CTL(Z)|GUI(X)|ALT(C)| V | B | | | | N | M | , < |ALT(.)|CTL(/)| | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + |OSL(3)| TG(2)| TO(5)| TO(0)| | | | | | | TG(4)| + `----------------------------------' `----------------------------------' + ,-------------. ,--------------. + | | | | | | + ,------|------|------| |------+-------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + `--------------------' `---------------------' +``` +### 2 Function Lock +``` +,--------------------------------------------------. ,--------------------------------------------------. +| | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| | | | | | | | | | | | | | | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | | | | | |------| |------| | | | | | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | | | | | | | | | | | | | | | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' + ,-------------. ,--------------. + | | | | | | + ,------|------|------| |------+-------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + `--------------------' `---------------------' +``` +### 3 Symbols +``` +,--------------------------------------------------. ,--------------------------------------------------. +| | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| | | | + | < | > | # | | | | ~ | ( | ) | \ | : | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | ! | - | = | % | @ |------| |------| _ | { | } | / | ? | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | * | & | / | $ | ^ | | | | | | [ | ] | | | | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' + ,-------------. ,--------------. + | | | | | | + ,------|------|------| |------+-------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + `--------------------' `---------------------' +``` +### 4 Numpad/Mouse with Media Controls +``` +,--------------------------------------------------. ,--------------------------------------------------. +| POWER |SLEEP | |MOUSE3| | | RESET| |RESET |SCROL | NUML | / | | - | | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| | |MOUSE1|MOUSEU|MOUSE2|SCROLU| | | | | 7 | 8 | 9 | + | ACCEL0 | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | |MOUSEL|MOUSED|MOUSER|SCROLD|------| |------| | 4 | 5 | 6 | + | ACCEL1 | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | |ACCEL0|ACCEL1|ACCEL2| | | | | | 1 | 2 | 3 |ENTER | ACCEL2 | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | | | | 0 | 0 | . |ENTER | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | VOL+ | VOL- | |MEDIA<|MEDIA>| + ,------|------|------| |------+------+------. + | | | MUTE | |Pause | | | + | | |------| |------| | | + | | |FILES | | CALC | | | + `--------------------' `--------------------' +``` +### 5 Gaming +``` +,--------------------------------------------------. ,--------------------------------------------------. +| ` ~ | 1 ! | 2 @ | 3 # | 4 $ | 5 % | 6 ^ | | 7 & | 8 * | 9 ( | 0 ) | - _ | = + | ESC | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| TAB | Q | W | E | R | T | | | | Y | U | I | O | P | \ | | +|--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------| +| LCTR | A | S | D | F | G |------| |------| H | J | K | L | ; : | ' " | +|--------+------+------+------+------+------| MEDIA| | } |------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | P/P | | ] | K | M | UP | . > | / ? | Shift | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | LCTR |ALTTAB| TO(0)| ALT | SPACE| | LEFT | DOWN | RIGHT| , < |TO(0) | + `----------------------------------' `----------------------------------' + ,--------------. ,--------------. + |MEDIA<| MEDIA>| | RALT | RCTR | + ,------|------|-------| |------+-------+------. + | | | VOL+ | | PGUP | | | + |SPACE |ENTER |-------| |------|BSPACE |DELETE| + | | | VOL- | | PGDWN| | | + `---------------------' `---------------------' +``` \ No newline at end of file diff --git a/layouts/community/ergodox/choromanski/visualizer.c b/layouts/community/ergodox/choromanski/visualizer.c new file mode 100644 index 000000000000..e207c66822e0 --- /dev/null +++ b/layouts/community/ergodox/choromanski/visualizer.c @@ -0,0 +1,62 @@ +/* +Copyright 2017 Fred Sundvik + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "simple_visualizer.h" + +// This function should be implemented by the keymap visualizer +// Don't change anything else than state->target_lcd_color and state->layer_text as that's the only thing +// that the simple_visualizer assumes that you are updating +// Also make sure that the buffer passed to state->layer_text remains valid until the previous animation is +// stopped. This can be done by either double buffering it or by using constant strings +static void get_visualizer_layer_and_color(visualizer_state_t* state) { + + if (state->status.layer & 0x20) { + //GREEN + state->target_lcd_color = LCD_COLOR(85, 255, 128); + state->layer_text = "Gaming"; + } + else if (state->status.layer & 0x10) { + //ORANGE + state->target_lcd_color = LCD_COLOR(28, 255, 230); + state->layer_text = "Numpad & Mouse"; + } + else if (state->status.layer & 0x8) { + //YELLOW + state->target_lcd_color = LCD_COLOR(38, 255, 230); + state->layer_text = "Symbols"; + } + else if (state->status.layer & 0x4) { + //RED + state->target_lcd_color = LCD_COLOR(0, 255, 95); + if (state->status.layer & 0x2){ + state->layer_text = "Qwerty - Fn"; + }else{ + state->layer_text = "Colemak - Fn"; + } + } + else if (state->status.layer & 0x2) { + //BLUE + state->target_lcd_color = LCD_COLOR(149, 255, 192); + state->layer_text = "Qwerty"; + } + else { + //PURPLE + state->target_lcd_color = LCD_COLOR(200, 255, 192); + state->layer_text = "Colemak"; + } +} + From 4dc3a01fcb4401c110e10e3e4015ced856dc7055 Mon Sep 17 00:00:00 2001 From: Matthew Yee Date: Fri, 16 Mar 2018 13:36:17 -0700 Subject: [PATCH 072/578] Added my keymap (#2529) * Added my keymap * maybe that wasn't quite right. * Reduced the tap time to register layer * changed the tapping term that fits my typing speed a little better * Added retro tapping and reduced tapping term duration --- keyboards/amj40/keymaps/myee/build.sh | 42 ++++++++ keyboards/amj40/keymaps/myee/config.h | 10 ++ keyboards/amj40/keymaps/myee/keymap.c | 114 ++++++++++++++++++++ keyboards/amj40/keymaps/myee/readme.md | 11 ++ keyboards/amj40/keymaps/myee/rules.mk | 27 +++++ keyboards/amj40/keymaps/myee/updatemerge.sh | 4 + 6 files changed, 208 insertions(+) create mode 100644 keyboards/amj40/keymaps/myee/build.sh create mode 100644 keyboards/amj40/keymaps/myee/config.h create mode 100644 keyboards/amj40/keymaps/myee/keymap.c create mode 100644 keyboards/amj40/keymaps/myee/readme.md create mode 100644 keyboards/amj40/keymaps/myee/rules.mk create mode 100644 keyboards/amj40/keymaps/myee/updatemerge.sh diff --git a/keyboards/amj40/keymaps/myee/build.sh b/keyboards/amj40/keymaps/myee/build.sh new file mode 100644 index 000000000000..6b4b4568f54d --- /dev/null +++ b/keyboards/amj40/keymaps/myee/build.sh @@ -0,0 +1,42 @@ +#!/bin/bash +# adjust for cpu +# -j 16 gave best result on a hyperthreaded quad core core i7 + +LIMIT=10 +THREADS="-j 16" +KMAP=iso_split_rshift + +echo "We need sudo later" +sudo ls 2>&1 /dev/null + +function wait_bootloader { + echo "Waiting for Bootloader..." + local STARTTIME=$(date +"%s") + local REMIND=0 + local EXEC=dfu-programmer + local TARGET=atmega32u4 + while true + do + sudo $EXEC $TARGET get > /dev/null 2>&1 + [ $? -eq 0 ] && break + ENDTIME=$(date +"%s") + DURATION=$(($ENDTIME-$STARTTIME)) + if [ $REMIND -eq 0 -a $DURATION -gt $LIMIT ] + then + echo "Did you forget to press the reset button?" + REMIND=1 + fi + sleep 1 + done +} +make clean +make KEYMAP=${KMAP} ${THREADS} +if [[ $? -eq 0 ]] +then + echo "please trigger flashing!" + wait_bootloader + sudo make KEYMAP=${KMAP} dfu ${THREADS} +else + echo "make failed" + exit 77 +fi diff --git a/keyboards/amj40/keymaps/myee/config.h b/keyboards/amj40/keymaps/myee/config.h new file mode 100644 index 000000000000..8e6c4dfa4305 --- /dev/null +++ b/keyboards/amj40/keymaps/myee/config.h @@ -0,0 +1,10 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H +#include "../../config.h" + +#define TAPPING_TERM 25 +#define RETRO_TAPPING +#define PERMISSIVE_HOLD + + +#endif \ No newline at end of file diff --git a/keyboards/amj40/keymaps/myee/keymap.c b/keyboards/amj40/keymaps/myee/keymap.c new file mode 100644 index 000000000000..b36d6c61e1d2 --- /dev/null +++ b/keyboards/amj40/keymaps/myee/keymap.c @@ -0,0 +1,114 @@ + + + +#include "amj40.h" + +// Keymap myee +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _LOWER 1 +#define _RAISE 2 +#define _ADJUST 3 + + + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + ADJUST, +}; + +// increase readability +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = KEYMAP( \ + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,\ + F(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \ + KC_LCTL, KC_LGUI,KC_LALT, F(0), F(1), KC_RGUI,KC_RALT, KC_RCTL \ + ), + + [_LOWER] = KEYMAP( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_UP, KC_MINS, KC_EQL, KC_DEL, \ + _______, _______, KC_ASTR, KC_LBRC, KC_RBRC, KC_QUOT, KC_DQUO, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSLS, \ + _______, _______, _______, KC_LPRN, KC_RPRN, KC_HOME, KC_PGUP, KC_PGDN, KC_END, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______ \ + ), + + [_RAISE] = KEYMAP( \ + KC_GRV, KC_LPRN, KC_RPRN, KC_DQUO, KC_QUOT, KC_SCLN, KC_COLON,KC_UNDS, KC_PLUS, _______, _______, KC_BSPC, \ + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \ + _______, _______, _______, KC_LCBR, KC_RCBR, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, BL_INC, BL_DEC \ + ), + + [_ADJUST] = KEYMAP( \ + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + KC_SYSTEM_SLEEP, _______, _______, _______, _______, _______, _______, _______ \ + ), + +}; + +enum function_id { + LAUNCH, + RGBLED_TOGGLE, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_SPC), + [1] = ACTION_LAYER_TAP_KEY(_RAISE, KC_SPC), + [2] = ACTION_LAYER_TAP_KEY(_ADJUST,KC_TAB), + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + + return MACRO_NONE; +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + switch (keycode) { + + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + break; + } + return true; +} diff --git a/keyboards/amj40/keymaps/myee/readme.md b/keyboards/amj40/keymaps/myee/readme.md new file mode 100644 index 000000000000..2659292ae54f --- /dev/null +++ b/keyboards/amj40/keymaps/myee/readme.md @@ -0,0 +1,11 @@ +AMJ40 Default Layout +===================== + +##Quantum MK Firmware +For the full Quantum feature list, see the parent readme.md. + +# Features +* Based on a combination of the original AMJ40 keymap from the TMK firmware as well as the Planck Ortholinear keyboard's "Lower," "Raise," and "Adjust" layers. +* View the keymap.c file to understand they layout of the keymap. +* Has keys to toggle both the switch LEDs and underglow LEDs. + diff --git a/keyboards/amj40/keymaps/myee/rules.mk b/keyboards/amj40/keymaps/myee/rules.mk new file mode 100644 index 000000000000..034e697bc2f2 --- /dev/null +++ b/keyboards/amj40/keymaps/myee/rules.mk @@ -0,0 +1,27 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD + + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/amj40/keymaps/myee/updatemerge.sh b/keyboards/amj40/keymaps/myee/updatemerge.sh new file mode 100644 index 000000000000..da5457e19531 --- /dev/null +++ b/keyboards/amj40/keymaps/myee/updatemerge.sh @@ -0,0 +1,4 @@ +#!/bin/bash +git checkout amj60 # gets you on branch amj60 +git fetch origin # gets you up to date with origin +git merge origin/master From 04d72590afac2b34641e668b2c8a9f18636764f3 Mon Sep 17 00:00:00 2001 From: adiron Date: Fri, 16 Mar 2018 22:36:41 +0200 Subject: [PATCH 073/578] New keymap for XD75re ("adi") (#2530) * My XD75 keymap * Proper readme for `adi` keymap for xd75re --- keyboards/xd75/keymaps/adi/config.h | 25 ++++ keyboards/xd75/keymaps/adi/keymap.c | 205 +++++++++++++++++++++++++++ keyboards/xd75/keymaps/adi/readme.md | 21 +++ keyboards/xd75/keymaps/adi/rules.mk | 18 +++ 4 files changed, 269 insertions(+) create mode 100644 keyboards/xd75/keymaps/adi/config.h create mode 100644 keyboards/xd75/keymaps/adi/keymap.c create mode 100644 keyboards/xd75/keymaps/adi/readme.md create mode 100644 keyboards/xd75/keymaps/adi/rules.mk diff --git a/keyboards/xd75/keymaps/adi/config.h b/keyboards/xd75/keymaps/adi/config.h new file mode 100644 index 000000000000..244c75c77c45 --- /dev/null +++ b/keyboards/xd75/keymaps/adi/config.h @@ -0,0 +1,25 @@ +/* Copyright 2017 REPLACE_WITH_YOUR_NAME + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// Disable backlight +#undef BACKLIGHT_ENABLE + +#endif diff --git a/keyboards/xd75/keymaps/adi/keymap.c b/keyboards/xd75/keymaps/adi/keymap.c new file mode 100644 index 000000000000..d96a215073d5 --- /dev/null +++ b/keyboards/xd75/keymaps/adi/keymap.c @@ -0,0 +1,205 @@ +/* Copyright 2017 REPLACE_WITH_YOUR_NAME + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "xd75.h" + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define ___T___ KC_TRNS +#define XXXXXXX KC_NO + +// Layer shorthand +#define _QW 0 +#define _LW 1 +#define _RS 2 +#define _FN 3 +#define _ENTFN 4 +#define _MEDIA 5 +#define _MOUSE 6 + +#define M_BACK 0 +#define M_FWRD 1 +#define M_PTAB 2 +#define M_NTAB 3 +#define M_ZOUT 4 +#define M_ZOIN 5 +#define M_ENTR 6 +#define M_SCRN 7 +#define M_NSPC 8 +#define M_PSPC 9 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QW] = { /* QWERTY */ + { KC_GRAVE,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_BSPC, KC_BSPC }, + { 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_BSLS, KC_INSERT }, + { KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(_MOUSE, KC_SCLN), LT(_MEDIA, KC_QUOT), LT(_ENTFN, KC_ENT), LT(_ENTFN, KC_ENT), KC_PGUP }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, + { KC_LCTL, MO(_FN), KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), LT(_ENTFN, KC_ENT), KC_RGUI, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + }, + +/* LOWERED + */ + + [_LW] = { /* LOWERED */ + { _______, 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_DEL, KC_DEL }, + { _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS }, + { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, ___T___, ___T___, _______ }, + { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, KC_PGUP, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END }, + }, + +/* RAISED + */ + + [_RS] = { /* RAISED */ + { _______, 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_DEL, KC_DEL }, + { _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS }, + { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______ }, + { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, KC_PGUP, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END }, + }, + +/* FUNCTION + */ + + [_FN] = { /* FUNCTION */ + { RESET, 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_DEL, KC_DEL }, + { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR }, + { KC_CAPS, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, _______, _______ }, + { RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, ___T___, ___T___, KC_PGUP, KC_WH_D }, + { _______ , _______, AG_SWAP, AG_NORM, _______, KC_BTN1, KC_BTN1, _______, AG_NORM, AG_SWAP, _______, _______, KC_HOME, KC_PGDN, KC_END }, + }, + + [_ENTFN] = { /* Enter FN */ + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, M(M_PTAB), M(M_NTAB), M(M_PSPC), M(M_NSPC), _______, _______, _______, _______, M(M_ZOUT), M(M_ZOIN), _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, _______, _______ }, + { _______, M(M_BACK), M(M_FWRD), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______ , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + [_MEDIA] = { /* Media */ + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, KC_SLCK, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, KC_VOLU, _______, _______, _______, _______, _______, KC_MRWD, KC_MPLY, KC_MFFD, _______, _______, _______, _______, _______ }, + { _______, KC_VOLD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + [_MOUSE] = { /* Mouse */ + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_BTN2, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + keyevent_t event = record->event; + + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + bool use_cmd = true; // Use, for example, Cmd-Tab, Cmd-C, Cmd-V, etc. + // Compare to MAGIC_SWAP_ALT_GUI and MAGIC_UNSWAP_ALT_GUI configs, set in: + // quantum/quantum.c + if(keymap_config.swap_lalt_lgui == 1 && keymap_config.swap_ralt_rgui == 1) { + use_cmd = false; // ... or, Alt-Tab, Ctrl-C, Ctrl-V, etc. + } + switch(id) { + case M_BACK: + /* Command + [ or previous page */ + if (use_cmd) { + return (event.pressed ? MACRO( D(LGUI), T(LBRC), U(LGUI), END ) : MACRO(END)); + } else { + return (event.pressed ? MACRO( D(LALT), T(LEFT), U(LALT), END ) : MACRO(END)); + } + case M_FWRD: + /* Command + ] or next page */ + if (use_cmd) { + return (event.pressed ? MACRO( D(LGUI), T(RBRC), U(LGUI), END ) : MACRO(END)); + } else { + return (event.pressed ? MACRO( D(LALT), T(RIGHT), U(LALT), END ) : MACRO(END)); + } + case M_PTAB: + /* Command + { or prev tab. */ + if (use_cmd) { + return (event.pressed ? MACRO( D(LGUI), D(RSFT), T(LBRC), U(RSFT), U(LGUI), END ) : MACRO(END)); + } else { + return (event.pressed ? MACRO( D(LCTRL), D(RSFT), T(TAB), U(RSFT), U(LCTRL), END ) : MACRO(END)); + } + case M_NTAB: + /* Command + } or next tab*/ + if (use_cmd) { + return (event.pressed ? MACRO( D(LGUI), D(RSFT), T(RBRC), U(RSFT), U(LGUI), END ) : MACRO(END)); + } else { + return (event.pressed ? MACRO( D(LCTRL), T(TAB), U(LCTRL), END ) : MACRO(END)); + } + case M_ZOUT: + /* Command + - or Ctrl + -*/ + if (use_cmd) { + return (event.pressed ? MACRO( D(LGUI), T(MINS), U(LGUI), END ) : MACRO(END)); + } else { + return (event.pressed ? MACRO( D(LCTRL), T(MINS), U(LCTRL), END ) : MACRO(END)); + } + break; + case M_ZOIN: + /* Command + = or Ctrl + =*/ + if (use_cmd) { + return (event.pressed ? MACRO( D(LGUI), T(EQL), U(LGUI), END ) : MACRO(END)); + } else { + return (event.pressed ? MACRO( D(LCTRL), T(EQL), U(LCTRL), END ) : MACRO(END)); + } + break; + case M_ENTR: + /* Command + Enter or Ctrl + Enter*/ + if (use_cmd) { + return (event.pressed ? MACRO( D(LGUI), T(ENT), U(LGUI), END ) : MACRO(END)); + } else { + return (event.pressed ? MACRO( D(LCTRL), T(ENT), U(LCTRL), END ) : MACRO(END)); + } + case M_SCRN: + /* Command + Enter or Ctrl + Enter*/ + if (use_cmd) { + return (event.pressed ? MACRO( D(LGUI), D(LCTRL), D(LSFT), T(4), U(LSFT), U(LGUI), U(LCTRL), END ) : MACRO(END)); + } else { + return (event.pressed ? MACRO( T(PSCR) ) : MACRO(END)); + } + case M_NSPC: + /* Next space / desktop */ + if (use_cmd) { + return (event.pressed ? MACRO( D(LCTRL), T(RIGHT), U(LCTRL), END ) : MACRO(END)); + } else { + return (event.pressed ? MACRO( D(LGUI), T(RIGHT), U(LGUI), END ) : MACRO(END)); + } + break; + case M_PSPC: + /* Previous space / desktop */ + if (use_cmd) { + return (event.pressed ? MACRO( D(LCTRL), T(LEFT), U(LCTRL), END ) : MACRO(END)); + } else { + return (event.pressed ? MACRO( D(LGUI), T(LEFT), U(LGUI), END ) : MACRO(END)); + } + default: + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/xd75/keymaps/adi/readme.md b/keyboards/xd75/keymaps/adi/readme.md new file mode 100644 index 000000000000..0d481fa535a0 --- /dev/null +++ b/keyboards/xd75/keymaps/adi/readme.md @@ -0,0 +1,21 @@ +# Adi's XD75re Keymap + +This is my own (@adiron) keymap. It was originally made for the Planck. Since then a modified layout has expanded to encompass the XD75re as well, which I mostly use. + +Below is a summary of the important functions in the keymap. For more, consult the keymap file. + +## Multi-use keys + +Enter (thumb key) - HJKL become left, down, up, right (VIM movement keys). Q and W become previous and next tab, E and R switch spaces in macOS, A and Z go back and and forward in the browser. + +Semicolon - VIM movement keys become mouse. U left click. I right click. + +Quote key - JKL are back, pause/play and forward. AZ are volume up and down, Q and W are brightness down and up. + +## Misc + +Lower + Quote - a Hebrew maqaf (־) in macOS + +## AG swap + +Macros refer to AG_SWAP to check whether to send the macOS or the Windows shortcut. Very useful to me since I alternate between the two. diff --git a/keyboards/xd75/keymaps/adi/rules.mk b/keyboards/xd75/keymaps/adi/rules.mk new file mode 100644 index 000000000000..d4e08cfb26be --- /dev/null +++ b/keyboards/xd75/keymaps/adi/rules.mk @@ -0,0 +1,18 @@ +# Copyright 2013 Jun Wako +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif From 729e99961cb0df9ea172e4dd159a9889e9988ab4 Mon Sep 17 00:00:00 2001 From: Pittyolo Date: Wed, 14 Mar 2018 20:53:42 +0100 Subject: [PATCH 074/578] Updated keymap for my Nyquist layout --- keyboards/nyquist/keymaps/pitty/keymap.c | 50 ++++++++++++------------ 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/keyboards/nyquist/keymaps/pitty/keymap.c b/keyboards/nyquist/keymaps/pitty/keymap.c index fcdbc946d718..574f1e1a23d9 100644 --- a/keyboards/nyquist/keymaps/pitty/keymap.c +++ b/keyboards/nyquist/keymaps/pitty/keymap.c @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | Tab | Q | W | E | R | T | Z(Y)| U | I | O | P | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D |LTVIMF| G | H | J | K | L | É(;)| Á(") | + * | Esc | A | S | D | F | G | H | J | K | L | É(;)| Á(") | * |------+------+------+------+------+------|------+------+------+------+------+------| * |Í/Shft| Y(Z) | X | C | V | B | N | M | , | . | -(/)| Shift| * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -36,75 +36,75 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_QWERTY] = KEYMAP( \ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ - KC_ESC, KC_A, KC_S, KC_D, LT(_VIM, KC_F), KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ - MT(MOD_LSFT, KC_NUBS), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ - KC_LCTL, KC_LGUI, KC_LALT, TT(_LOWER), KC_SPC, KC_SPC, KC_BSPC, KC_ENT, KC_RALT, KC_AMPERSAND, TG(_GAME), KC_DEL \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + MT(MOD_LSFT, KC_NUBS), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ + KC_LCTL, KC_LGUI, KC_LALT, TT(_LOWER), LT(_VIM, KC_SPC), LT(_VIM, KC_SPC), KC_BSPC, KC_ENT, KC_RALT, KC_AMPERSAND, TG(_GAME), KC_DEL \ ), /* Gaming mode * ,-----------------------------------------------------------------------------------. * | | | | | | | | | | | |QWERTY| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | |Lower | + * | | | | | | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | F | | | | | | | | + * | | | | | | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Shift| | | | | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | Left | Down | Up | Right| + * | | | | | Spc | Spc | | | Left | Down | Up | Right| * `-----------------------------------------------------------------------------------' */ [_GAME] = KEYMAP( \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(_QWERTY), \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, OSL(_LOWER), \ - _______, _______, _______, _______, KC_F, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + _______, _______, _______, _______, KC_SPC, KC_SPC, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ ), /* Lower * ,-----------------------------------------------------------------------------------. * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | Up | | Del | Ins | | 7 | 8 | 9 | / | | + * | | | Up | | | | | 7 | 8 | 9 | / | | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | Left | Down | Right| Home | End | | 4 | 5 | 6 | * | | + * | | Left | Down | Right| | | | 4 | 5 | 6 | * | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| | | | PGUP | PGDN | | 1 | 2 | 3 | - | | + * | Shift| | | | | | | 1 | 2 | 3 | - | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | 0 | . | = | + | | * `-----------------------------------------------------------------------------------' */ [_LOWER] = KEYMAP( \ 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_UP, _______, KC_DEL , KC_INS , _______, KC_7, KC_8, KC_9, KC_KP_SLASH, _______, \ - _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_END , _______, KC_4, KC_5, KC_6, KC_KP_ASTERISK, _______, \ - KC_LSFT, _______, _______, _______, KC_PGUP, KC_PGDN, _______, KC_1, KC_2, KC_3, KC_KP_MINUS, _______, \ + _______, _______, KC_UP, _______, _______, _______, _______, KC_7, KC_8, KC_9, KC_KP_SLASH, _______, \ + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_4, KC_5, KC_6, KC_KP_ASTERISK, _______, \ + KC_LSFT, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, KC_KP_MINUS, _______, \ _______, _______, _______, _______, _______, _______, _______, KC_GRV, KC_KP_DOT, KC_KP_EQUAL, KC_KP_PLUS, _______ \ ), -/* Vim Movement (Hold down F) +/* Vim Movement (Hold down SPACE) * ,-----------------------------------------------------------------------------------. - * | | | | |DM_stp| | | | | | Ő | Ű | + * | Ins | Home | PGUP | |DM_stp| | | | | | Ő | Ű | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | |DM_REC| | | Ú | Í | Ó | | | + * | Del | End | PGDN | |DM_REC| | | Ú | Í | Ó | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | DLeft|DRight| LCTRL| | | Left | Down | Up | Right| | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | LShft| | | | | | | | + * | | | | LShft| | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_VIM] = KEYMAP( \ - RGB_MOD, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_NUHS, \ - _______, _______, _______, _______, _______, _______, _______, KC_RBRC, KC_NUBS, KC_EQL , _______, _______, \ + KC_INS, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_NUHS, \ + KC_DEL, KC_END, KC_PGDN, _______, _______, _______, _______, KC_RBRC, KC_NUBS, KC_EQL , _______, _______, \ _______, M(DLEFT), M(DRIGHT), KC_LCTL, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, KC_LSFT, _______, _______, _______, _______, _______, _______, _______ \ + _______, _______, _______, KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______ \ ) From a2e12faa198961ee865230dcba679061889cdb96 Mon Sep 17 00:00:00 2001 From: fauxpark Date: Thu, 15 Mar 2018 13:23:33 +1100 Subject: [PATCH 075/578] Add CMD and WIN aliases for KC_GUI, GUI(kc), GUI_T(kc), etc. --- docs/keycodes.md | 436 ++++++++++++++++++------------------- docs/keycodes_basic.md | 30 +-- quantum/quantum.h | 2 + quantum/quantum_keycodes.h | 10 + tmk_core/common/keycode.h | 5 + 5 files changed, 250 insertions(+), 233 deletions(-) diff --git a/docs/keycodes.md b/docs/keycodes.md index 21a722250e7f..0f7968e7d719 100644 --- a/docs/keycodes.md +++ b/docs/keycodes.md @@ -6,189 +6,189 @@ This is a reference only. Each group of keys links to the page documenting their ## [Basic Keycodes](keycodes_basic.md) -|Key |Aliases |Description | -|-----------------------|----------|-----------------------------------------------| -|`KC_1` | |`1` and `!` | -|`KC_2` | |`2` and `@` | -|`KC_3` | |`3` and `#` | -|`KC_4` | |`4` and `$` | -|`KC_5` | |`5` and `%` | -|`KC_6` | |`6` and `^` | -|`KC_7` | |`7` and `&` | -|`KC_8` | |`8` and `*` | -|`KC_9` | |`9` and `(` | -|`KC_0` | |`0` and `)` | -|`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_F13` | | | -|`KC_F14` | | | -|`KC_F15` | | | -|`KC_F16` | | | -|`KC_F17` | | | -|`KC_F18` | | | -|`KC_F19` | | | -|`KC_F20` | | | -|`KC_F21` | | | -|`KC_F22` | | | -|`KC_F23` | | | -|`KC_F24` | | | -|`KC_A` | |`a` and `A` | -|`KC_B` | |`b` and `B` | -|`KC_C` | |`c` and `C` | -|`KC_D` | |`d` and `D` | -|`KC_E` | |`e` and `E` | -|`KC_F` | |`f` and `F` | -|`KC_G` | |`g` and `G` | -|`KC_H` | |`h` and `H` | -|`KC_I` | |`i` and `I` | -|`KC_J` | |`j` and `J` | -|`KC_K` | |`k` and `K` | -|`KC_L` | |`l` and `L` | -|`KC_M` | |`m` and `M` | -|`KC_N` | |`n` and `N` | -|`KC_O` | |`o` and `O` | -|`KC_P` | |`p` and `P` | -|`KC_Q` | |`q` and `Q` | -|`KC_R` | |`r` and `R` | -|`KC_S` | |`s` and `S` | -|`KC_T` | |`t` and `T` | -|`KC_U` | |`u` and `U` | -|`KC_V` | |`v` and `V` | -|`KC_W` | |`w` and `W` | -|`KC_X` | |`x` and `X` | -|`KC_Y` | |`y` and `Y` | -|`KC_Z` | |`z` and `Z` | -|`KC_ENTER` |`KC_ENT` |Return (Enter) | -|`KC_ESCAPE` |`KC_ESC` |Escape | -|`KC_BSPACE` |`KC_BSPC` |Delete (Backspace) | -|`KC_TAB` | |Tab | -|`KC_SPACE` |`KC_SPC` |Spacebar | -|`KC_MINUS` |`KC_MINS` |`-` and `_` | -|`KC_EQUAL` |`KC_EQL` |`=` and `+` | -|`KC_LBRACKET` |`KC_LBRC` |`[` and `{` | -|`KC_RBRACKET` |`KC_RBRC` |`]` and `}` | -|`KC_BSLASH` |`KC_BSLS` |`\` and | | -|`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#` and `~` | -|`KC_NONUS_BSLASH` |`KC_NUBS` |Non-US `\` and | | -|`KC_INT1` |`KC_RO` |JIS `\` and | | -|`KC_INT2` |`KC_KANA` |JIS Katakana/Hiragana | -|`KC_INT3` |`KC_JYEN` |JIS `¥` | -|`KC_SCOLON` |`KC_SCLN` |`;` and `:` | -|`KC_QUOTE` |`KC_QUOT` |`'` and `"` | -|`KC_GRAVE` |`KC_GRV` |` and `~` | -|`KC_COMMA` |`KC_COMM` |`,` and `<` | -|`KC_DOT` | |`.` and `>` | -|`KC_SLASH` |`KC_SLSH` |`/` and `?` | -|`KC_CAPSLOCK` |`KC_CAPS` |Caps Lock | -|`KC_LCTRL` |`KC_LCTL` |Left Control | -|`KC_LSHIFT` |`KC_LSFT` |Left Shift | -|`KC_LALT` | |Left Alt | -|`KC_LGUI` | |Left GUI (Windows/Command/Meta key) | -|`KC_RCTRL` |`KC_RCTL` |Right Control | -|`KC_RSHIFT` |`KC_RSFT` |Right Shift | -|`KC_RALT` | |Right Alt | -|`KC_RGUI` | |Right GUI (Windows/Command/Meta key) | -|`KC_LOCKING_CAPS` |`KC_LCAP` |Locking Caps Lock | -|`KC_LOCKING_NUM` |`KC_LNUM` |Locking Num Lock | -|`KC_LOCKING_SCROLL` |`KC_LSCR` |Locking Scroll Lock | -|`KC_INT4` |`KC_HENK` |JIS Henkan | -|`KC_INT5` |`KC_MHEN` |JIS Muhenkan | -|`KC_PSCREEN` |`KC_PSCR` |Print Screen | -|`KC_SCROLLLOCK` |`KC_SLCK` |Scroll Lock | -|`KC_PAUSE` |`KC_PAUS` |Pause | -|`KC_INSERT` |`KC_INS` |Insert | -|`KC_HOME` | |Home | -|`KC_PGUP` | |Page Up | -|`KC_DELETE` |`KC_DEL` |Forward Delete | -|`KC_END` | |End | -|`KC_PGDOWN` |`KC_PGDN` |Page Down | -|`KC_RIGHT` |`KC_RGHT` |Right Arrow | -|`KC_LEFT` | |Left Arrow | -|`KC_DOWN` | |Down Arrow | -|`KC_UP` | |Up Arrow | -|`KC_APPLICATION` |`KC_APP` |Application (Windows Menu Key) | -|`KC_POWER` | |Deprecated by MS in favor of `KC_SYSTEM_POWER`.| -|`KC_EXECUTE` | |Execute | -|`KC_HELP` | |Help | -|`KC_MENU` | |Menu | -|`KC_SELECT` | |Select | -|`KC_AGAIN` | |Again | -|`KC_UNDO` | |Undo | -|`KC_CUT` | |Cut | -|`KC_COPY` | |Copy | -|`KC_PASTE` | |Paste | -|`KC_FIND` | |Find | -|`KC_ALT_ERASE` | |Alternate Erase | -|`KC_SYSREQ` | |SysReq/Attention | -|`KC_CANCEL` | |Cancel | -|`KC_CLEAR` | |Clear | -|`KC_PRIOR` | |Prior | -|`KC_RETURN` | |Return | -|`KC_SEPARATOR` | |Separator | -|`KC_OUT` | |Out | -|`KC_OPER` | |Oper | -|`KC_CLEAR_AGAIN` | |Clear/Again | -|`KC_CRSEL` | |CrSel/Props | -|`KC_EXSEL` | |ExSel | -|`KC_SYSTEM_POWER` |`KC_PWR` |System Power Down. Recommended over `KC_POWER`.| -|`KC_SYSTEM_SLEEP` |`KC_SLEP` |System Sleep | -|`KC_SYSTEM_WAKE` |`KC_WAKE` |System Wake | -|`KC_MAIL` |`KC_MAIL` | | -|`KC_CALCULATOR` |`KC_CALC` | | -|`KC_MY_COMPUTER` |`KC_MYCM` | | -|`KC_WWW_SEARCH` |`KC_WSCH` | | -|`KC_WWW_HOME` |`KC_WHOM` | | -|`KC_WWW_BACK` |`KC_WBAK` | | -|`KC_WWW_FORWARD` |`KC_WFWD` | | -|`KC_WWW_STOP` |`KC_WSTP` | | -|`KC_WWW_REFRESH` |`KC_WREF` | | -|`KC_WWW_FAVORITES` |`KC_WFAV` | | -|`KC_STOP` | |Stop | -|`KC__MUTE` | |Mute (macOS) | -|`KC__VOLUP` | |Volume Up (macOS) | -|`KC__VOLDOWN` | |Volume Down (macOS) | -|`KC_AUDIO_MUTE` |`KC_MUTE` |Mute (Windows/macOS/Linux) | -|`KC_AUDIO_VOL_UP` |`KC_VOLU` |Volume Up (Windows/macOS/Linux) | -|`KC_AUDIO_VOL_DOWN` |`KC_VOLD` |Volume Down (Windows/macOS/Linux) | -|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT` |Next Track (Windows) | -|`KC_MEDIA_PREV_TRACK` |`KC_MPRV` |Previous Track (Windows) | -|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD` |Next Track (macOS) | -|`KC_MEDIA_REWIND` |`KC_MRWD` |Previous Track (macOS) | -|`KC_MEDIA_STOP` |`KC_MSTP` |Stop Track | -|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY` |Play/Pause Track | -|`KC_MEDIA_SELECT` |`KC_MSEL` | | -|`KC_NUMLOCK` |`KC_NLCK` |Keypad Num Lock and Clear | -|`KC_KP_SLASH` |`KC_PSLS` |Keypad `/` | -|`KC_KP_ASTERISK` |`KC_PAST` |Keypad `*` | -|`KC_KP_MINUS` |`KC_PMNS` |Keypad `-` | -|`KC_KP_PLUS` |`KC_PPLS` |Keypad `+` | -|`KC_KP_ENTER` |`KC_PENT` |Keypad Enter | -|`KC_KP_1` |`KC_P1` |Keypad `1` and End | -|`KC_KP_2` |`KC_P2` |Keypad `2` and Down Arrow | -|`KC_KP_3` |`KC_P3` |Keypad `3` and Page Down | -|`KC_KP_4` |`KC_P4` |Keypad `4` and Left Arrow | -|`KC_KP_5` |`KC_P5` |Keypad `5` | -|`KC_KP_6` |`KC_P6` |Keypad `6` and Right Arrow | -|`KC_KP_7` |`KC_P7` |Keypad `7` and Home | -|`KC_KP_8` |`KC_P8` |Keypad `8` and Up Arrow | -|`KC_KP_9` |`KC_P9` |Keypad `9` and Page Up | -|`KC_KP_0` |`KC_P0` |Keypad `0` and Insert | -|`KC_KP_DOT` |`KC_PDOT` |Keypad `.` and Delete | -|`KC_KP_EQUAL` |`KC_PEQL` |Keypad `=` | -|`KC_KP_COMMA` |`KC_PCMM` |Keypad `,` | -|`KC_KP_EQUAL_AS400` | |Keypad `=` on AS/400 keyboards | -|`KC_NO` | |Ignore this key (NOOP) | -|`KC_TRANSPARENT` |`KC_TRNS` |Use the next lowest non-transparent key | +|Key |Aliases |Description | +|-----------------------|--------------------|-----------------------------------------------| +|`KC_1` | |`1` and `!` | +|`KC_2` | |`2` and `@` | +|`KC_3` | |`3` and `#` | +|`KC_4` | |`4` and `$` | +|`KC_5` | |`5` and `%` | +|`KC_6` | |`6` and `^` | +|`KC_7` | |`7` and `&` | +|`KC_8` | |`8` and `*` | +|`KC_9` | |`9` and `(` | +|`KC_0` | |`0` and `)` | +|`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_F13` | | | +|`KC_F14` | | | +|`KC_F15` | | | +|`KC_F16` | | | +|`KC_F17` | | | +|`KC_F18` | | | +|`KC_F19` | | | +|`KC_F20` | | | +|`KC_F21` | | | +|`KC_F22` | | | +|`KC_F23` | | | +|`KC_F24` | | | +|`KC_A` | |`a` and `A` | +|`KC_B` | |`b` and `B` | +|`KC_C` | |`c` and `C` | +|`KC_D` | |`d` and `D` | +|`KC_E` | |`e` and `E` | +|`KC_F` | |`f` and `F` | +|`KC_G` | |`g` and `G` | +|`KC_H` | |`h` and `H` | +|`KC_I` | |`i` and `I` | +|`KC_J` | |`j` and `J` | +|`KC_K` | |`k` and `K` | +|`KC_L` | |`l` and `L` | +|`KC_M` | |`m` and `M` | +|`KC_N` | |`n` and `N` | +|`KC_O` | |`o` and `O` | +|`KC_P` | |`p` and `P` | +|`KC_Q` | |`q` and `Q` | +|`KC_R` | |`r` and `R` | +|`KC_S` | |`s` and `S` | +|`KC_T` | |`t` and `T` | +|`KC_U` | |`u` and `U` | +|`KC_V` | |`v` and `V` | +|`KC_W` | |`w` and `W` | +|`KC_X` | |`x` and `X` | +|`KC_Y` | |`y` and `Y` | +|`KC_Z` | |`z` and `Z` | +|`KC_ENTER` |`KC_ENT` |Return (Enter) | +|`KC_ESCAPE` |`KC_ESC` |Escape | +|`KC_BSPACE` |`KC_BSPC` |Delete (Backspace) | +|`KC_TAB` | |Tab | +|`KC_SPACE` |`KC_SPC` |Spacebar | +|`KC_MINUS` |`KC_MINS` |`-` and `_` | +|`KC_EQUAL` |`KC_EQL` |`=` and `+` | +|`KC_LBRACKET` |`KC_LBRC` |`[` and `{` | +|`KC_RBRACKET` |`KC_RBRC` |`]` and `}` | +|`KC_BSLASH` |`KC_BSLS` |`\` and | | +|`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#` and `~` | +|`KC_NONUS_BSLASH` |`KC_NUBS` |Non-US `\` and | | +|`KC_INT1` |`KC_RO` |JIS `\` and | | +|`KC_INT2` |`KC_KANA` |JIS Katakana/Hiragana | +|`KC_INT3` |`KC_JYEN` |JIS `¥` | +|`KC_SCOLON` |`KC_SCLN` |`;` and `:` | +|`KC_QUOTE` |`KC_QUOT` |`'` and `"` | +|`KC_GRAVE` |`KC_GRV` |` and `~` | +|`KC_COMMA` |`KC_COMM` |`,` and `<` | +|`KC_DOT` | |`.` and `>` | +|`KC_SLASH` |`KC_SLSH` |`/` and `?` | +|`KC_CAPSLOCK` |`KC_CAPS` |Caps Lock | +|`KC_LCTRL` |`KC_LCTL` |Left Control | +|`KC_LSHIFT` |`KC_LSFT` |Left Shift | +|`KC_LALT` | |Left Alt | +|`KC_LGUI` |`KC_LCMD`, `KC_LWIN`|Left GUI (Windows/Command/Meta key) | +|`KC_RCTRL` |`KC_RCTL` |Right Control | +|`KC_RSHIFT` |`KC_RSFT` |Right Shift | +|`KC_RALT` | |Right Alt | +|`KC_RGUI` |`KC_RCMD`, `KC_RWIN`|Right GUI (Windows/Command/Meta key) | +|`KC_LOCKING_CAPS` |`KC_LCAP` |Locking Caps Lock | +|`KC_LOCKING_NUM` |`KC_LNUM` |Locking Num Lock | +|`KC_LOCKING_SCROLL` |`KC_LSCR` |Locking Scroll Lock | +|`KC_INT4` |`KC_HENK` |JIS Henkan | +|`KC_INT5` |`KC_MHEN` |JIS Muhenkan | +|`KC_PSCREEN` |`KC_PSCR` |Print Screen | +|`KC_SCROLLLOCK` |`KC_SLCK` |Scroll Lock | +|`KC_PAUSE` |`KC_PAUS` |Pause | +|`KC_INSERT` |`KC_INS` |Insert | +|`KC_HOME` | |Home | +|`KC_PGUP` | |Page Up | +|`KC_DELETE` |`KC_DEL` |Forward Delete | +|`KC_END` | |End | +|`KC_PGDOWN` |`KC_PGDN` |Page Down | +|`KC_RIGHT` |`KC_RGHT` |Right Arrow | +|`KC_LEFT` | |Left Arrow | +|`KC_DOWN` | |Down Arrow | +|`KC_UP` | |Up Arrow | +|`KC_APPLICATION` |`KC_APP` |Application (Windows Menu Key) | +|`KC_POWER` | |Deprecated by MS in favor of `KC_SYSTEM_POWER`.| +|`KC_EXECUTE` | |Execute | +|`KC_HELP` | |Help | +|`KC_MENU` | |Menu | +|`KC_SELECT` | |Select | +|`KC_AGAIN` | |Again | +|`KC_UNDO` | |Undo | +|`KC_CUT` | |Cut | +|`KC_COPY` | |Copy | +|`KC_PASTE` | |Paste | +|`KC_FIND` | |Find | +|`KC_ALT_ERASE` | |Alternate Erase | +|`KC_SYSREQ` | |SysReq/Attention | +|`KC_CANCEL` | |Cancel | +|`KC_CLEAR` | |Clear | +|`KC_PRIOR` | |Prior | +|`KC_RETURN` | |Return | +|`KC_SEPARATOR` | |Separator | +|`KC_OUT` | |Out | +|`KC_OPER` | |Oper | +|`KC_CLEAR_AGAIN` | |Clear/Again | +|`KC_CRSEL` | |CrSel/Props | +|`KC_EXSEL` | |ExSel | +|`KC_SYSTEM_POWER` |`KC_PWR` |System Power Down. Recommended over `KC_POWER`.| +|`KC_SYSTEM_SLEEP` |`KC_SLEP` |System Sleep | +|`KC_SYSTEM_WAKE` |`KC_WAKE` |System Wake | +|`KC_MAIL` |`KC_MAIL` | | +|`KC_CALCULATOR` |`KC_CALC` | | +|`KC_MY_COMPUTER` |`KC_MYCM` | | +|`KC_WWW_SEARCH` |`KC_WSCH` | | +|`KC_WWW_HOME` |`KC_WHOM` | | +|`KC_WWW_BACK` |`KC_WBAK` | | +|`KC_WWW_FORWARD` |`KC_WFWD` | | +|`KC_WWW_STOP` |`KC_WSTP` | | +|`KC_WWW_REFRESH` |`KC_WREF` | | +|`KC_WWW_FAVORITES` |`KC_WFAV` | | +|`KC_STOP` | |Stop | +|`KC__MUTE` | |Mute (macOS) | +|`KC__VOLUP` | |Volume Up (macOS) | +|`KC__VOLDOWN` | |Volume Down (macOS) | +|`KC_AUDIO_MUTE` |`KC_MUTE` |Mute (Windows/macOS/Linux) | +|`KC_AUDIO_VOL_UP` |`KC_VOLU` |Volume Up (Windows/macOS/Linux) | +|`KC_AUDIO_VOL_DOWN` |`KC_VOLD` |Volume Down (Windows/macOS/Linux) | +|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT` |Next Track (Windows) | +|`KC_MEDIA_PREV_TRACK` |`KC_MPRV` |Previous Track (Windows) | +|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD` |Next Track (macOS) | +|`KC_MEDIA_REWIND` |`KC_MRWD` |Previous Track (macOS) | +|`KC_MEDIA_STOP` |`KC_MSTP` |Stop Track | +|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY` |Play/Pause Track | +|`KC_MEDIA_SELECT` |`KC_MSEL` | | +|`KC_NUMLOCK` |`KC_NLCK` |Keypad Num Lock and Clear | +|`KC_KP_SLASH` |`KC_PSLS` |Keypad `/` | +|`KC_KP_ASTERISK` |`KC_PAST` |Keypad `*` | +|`KC_KP_MINUS` |`KC_PMNS` |Keypad `-` | +|`KC_KP_PLUS` |`KC_PPLS` |Keypad `+` | +|`KC_KP_ENTER` |`KC_PENT` |Keypad Enter | +|`KC_KP_1` |`KC_P1` |Keypad `1` and End | +|`KC_KP_2` |`KC_P2` |Keypad `2` and Down Arrow | +|`KC_KP_3` |`KC_P3` |Keypad `3` and Page Down | +|`KC_KP_4` |`KC_P4` |Keypad `4` and Left Arrow | +|`KC_KP_5` |`KC_P5` |Keypad `5` | +|`KC_KP_6` |`KC_P6` |Keypad `6` and Right Arrow | +|`KC_KP_7` |`KC_P7` |Keypad `7` and Home | +|`KC_KP_8` |`KC_P8` |Keypad `8` and Up Arrow | +|`KC_KP_9` |`KC_P9` |Keypad `9` and Page Up | +|`KC_KP_0` |`KC_P0` |Keypad `0` and Insert | +|`KC_KP_DOT` |`KC_PDOT` |Keypad `.` and Delete | +|`KC_KP_EQUAL` |`KC_PEQL` |Keypad `=` | +|`KC_KP_COMMA` |`KC_PCMM` |Keypad `,` | +|`KC_KP_EQUAL_AS400` | |Keypad `=` on AS/400 keyboards | +|`KC_NO` | |Ignore this key (NOOP) | +|`KC_TRANSPARENT` |`KC_TRNS` |Use the next lowest non-transparent key | ## [Mouse Keys](feature_mouse_keys.md) @@ -301,44 +301,44 @@ This is a reference only. Each group of keys links to the page documenting their ## [Modifiers](quantum_keycodes.md#modifiers) -|Key |Aliases |Description | -|----------|----------|----------------------------------------------------| -|`KC_HYPR` | |Hold Left Control, Shift, Alt and GUI | -|`KC_MEH` | |Hold Left Control, Shift and Alt | -|`LCTL(kc)`| |Hold Left Control and press `kc` | -|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` | -|`LALT(kc)`| |Hold Left Alt and press `kc` | -|`LGUI(kc)`| |Hold Left GUI and press `kc` | -|`RCTL(kc)`| |Hold Right Control and press `kc` | -|`RSFT(kc)`| |Hold Right Shift and press `kc` | -|`RALT(kc)`| |Hold Right Alt and press `kc` | -|`RGUI(kc)`| |Hold Right GUI and press `kc` | -|`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc`| -|`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` | -|`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` | -|`ALTG(kc)`| |Hold Right Control and Alt and press `kc` | -|`SCMD(kc)`|`SWIN(kc)`|Hold Left Shift and GUI and press `kc` | -|`LCA(kc)` | |Hold Left Control and Alt and press `kc` | +|Key |Aliases |Description | +|----------|---------- |----------------------------------------------------| +|`KC_HYPR` | |Hold Left Control, Shift, Alt and GUI | +|`KC_MEH` | |Hold Left Control, Shift and Alt | +|`LCTL(kc)`| |Hold Left Control and press `kc` | +|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` | +|`LALT(kc)`| |Hold Left Alt and press `kc` | +|`LGUI(kc)`|`LCMD(kc)`, `LWIN(kc)`|Hold Left GUI and press `kc` | +|`RCTL(kc)`| |Hold Right Control and press `kc` | +|`RSFT(kc)`| |Hold Right Shift and press `kc` | +|`RALT(kc)`| |Hold Right Alt and press `kc` | +|`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)`|Hold Right GUI and press `kc` | +|`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc`| +|`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` | +|`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` | +|`ALTG(kc)`| |Hold Right Control and Alt and press `kc` | +|`SGUI(kc)`|`SCMD(kc)`, `SWIN(kc)`|Hold Left Shift and GUI and press `kc` | +|`LCA(kc)` | |Hold Left Control and Alt and press `kc` | ## [Mod-Tap Keys](quantum_keycodes.md#mod-tap-keys) -|Key |Aliases |Description | -|------------|------------|-------------------------------------------------------| -|`LCTL_T(kc)`|`CTL_T(kc)` |Left Control when held, `kc` when tapped | -|`RCTL_T(kc)`| |Right Control when held, `kc` when tapped | -|`LSFT_T(kc)`|`SFT_T(kc)` |Left Shift when held, `kc` when tapped | -|`RSFT_T(kc)`| |Right Shift when held, `kc` when tapped | -|`LALT_T(kc)`|`ALT_T(kc)` |Left Alt when held, `kc` when tapped | -|`RALT_T(kc)`|`ALGR_T(kc)`|Right Alt when held, `kc` when tapped | -|`LGUI_T(kc)`|`GUI_T(kc)` |Left GUI when held, `kc` when tapped | -|`RGUI_T(kc)`| |Right GUI when held, `kc` when tapped | -|`C_S_T(kc)` | |Left Control and Shift when held, `kc` when tapped | -|`MEH_T(kc)` | |Left Control, Shift and Alt when held, `kc` when tapped| -|`LCAG_T(kc)`| |Left Control, Alt and GUI when held, `kc` when tapped | -|`RCAG_T(kc)`| |Right Control, Alt and GUI when held, `kc` when tapped | -|`ALL_T(kc)` | |Left Control, Shift, Alt and GUI when held, `kc` when tapped - more info [here](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)| -|`SCMD_T(kc)`|`SWIN_T(kc)`|Left Shift and GUI when held, `kc` when tapped | -|`LCA_T(kc)` | |Left Control and Alt when held, `kc` when tapped | +|Key |Aliases |Description | +|------------|---------------------------------------|-------------------------------------------------------| +|`LCTL_T(kc)`|`CTL_T(kc)` |Left Control when held, `kc` when tapped | +|`RCTL_T(kc)`| |Right Control when held, `kc` when tapped | +|`LSFT_T(kc)`|`SFT_T(kc)` |Left Shift when held, `kc` when tapped | +|`RSFT_T(kc)`| |Right Shift when held, `kc` when tapped | +|`LALT_T(kc)`|`ALT_T(kc)` |Left Alt when held, `kc` when tapped | +|`RALT_T(kc)`|`ALGR_T(kc)` |Right Alt when held, `kc` when tapped | +|`LGUI_T(kc)`|`LCMD_T(kc)`, `RWIN_T(kc)`, `GUI_T(kc)`|Left GUI when held, `kc` when tapped | +|`RGUI_T(kc)`|`RCMD_T(kc)`, `RWIN_T(kc)` |Right GUI when held, `kc` when tapped | +|`C_S_T(kc)` | |Left Control and Shift when held, `kc` when tapped | +|`MEH_T(kc)` | |Left Control, Shift and Alt when held, `kc` when tapped| +|`LCAG_T(kc)`| |Left Control, Alt and GUI when held, `kc` when tapped | +|`RCAG_T(kc)`| |Right Control, Alt and GUI when held, `kc` when tapped | +|`ALL_T(kc)` | |Left Control, Shift, Alt and GUI when held, `kc` when tapped - more info [here](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)| +|`SCMD_T(kc)`|`SWIN_T(kc)` |Left Shift and GUI when held, `kc` when tapped | +|`LCA_T(kc)` | |Left Control and Alt when held, `kc` when tapped | ## [US ANSI Shifted Keys](keycodes_us_ansi_shifted.md) diff --git a/docs/keycodes_basic.md b/docs/keycodes_basic.md index d4719ed4d4f5..57b0f92283f9 100644 --- a/docs/keycodes_basic.md +++ b/docs/keycodes_basic.md @@ -101,21 +101,21 @@ The basic set of keycodes are based on the [HID Keyboard/Keypad Usage Page (0x07 ## Modifiers -|Key |Aliases |Description | -|-------------------|---------|------------------------------------| -|`KC_LCTRL` |`KC_LCTL`|Left Control | -|`KC_LSHIFT` |`KC_LSFT`|Left Shift | -|`KC_LALT` | |Left Alt | -|`KC_LGUI` | |Left GUI (Windows/Command/Meta key) | -|`KC_RCTRL` |`KC_RCTL`|Right Control | -|`KC_RSHIFT` |`KC_RSFT`|Right Shift | -|`KC_RALT` | |Right Alt | -|`KC_RGUI` | |Right GUI (Windows/Command/Meta key)| -|`KC_LOCKING_CAPS` |`KC_LCAP`|Locking Caps Lock | -|`KC_LOCKING_NUM` |`KC_LNUM`|Locking Num Lock | -|`KC_LOCKING_SCROLL`|`KC_LSCR`|Locking Scroll Lock | -|`KC_INT4` |`KC_HENK`|JIS Henkan | -|`KC_INT5` |`KC_MHEN`|JIS Muhenkan | +|Key |Aliases |Description | +|-------------------|--------------------|------------------------------------| +|`KC_LCTRL` |`KC_LCTL` |Left Control | +|`KC_LSHIFT` |`KC_LSFT` |Left Shift | +|`KC_LALT` | |Left Alt | +|`KC_LGUI` |`KC_LCMD`, `KC_LWIN`|Left GUI (Windows/Command/Meta key) | +|`KC_RCTRL` |`KC_RCTL` |Right Control | +|`KC_RSHIFT` |`KC_RSFT` |Right Shift | +|`KC_RALT` | |Right Alt | +|`KC_RGUI` |`KC_RCMD`, `KC_RWIN`|Right GUI (Windows/Command/Meta key)| +|`KC_LOCKING_CAPS` |`KC_LCAP` |Locking Caps Lock | +|`KC_LOCKING_NUM` |`KC_LNUM` |Locking Num Lock | +|`KC_LOCKING_SCROLL`|`KC_LSCR` |Locking Scroll Lock | +|`KC_INT4` |`KC_HENK` |JIS Henkan | +|`KC_INT5` |`KC_MHEN` |JIS Muhenkan | ## Commands diff --git a/quantum/quantum.h b/quantum/quantum.h index e6d76015b0da..b9424d5cdd36 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -122,6 +122,8 @@ extern uint32_t default_layer_state; #define SS_LCTRL(string) SS_DOWN(X_LCTRL) string SS_UP(X_LCTRL) #define SS_LGUI(string) SS_DOWN(X_LGUI) string SS_UP(X_LGUI) +#define SS_LCMD(string) SS_LGUI(string) +#define SS_LWIN(string) SS_LGUI(string) #define SS_LALT(string) SS_DOWN(X_LALT) string SS_UP(X_LALT) #define SS_LSFT(string) SS_DOWN(X_LSHIFT) string SS_UP(X_LSHIFT) #define SS_RALT(string) SS_DOWN(X_RALT) string SS_UP(X_RALT) diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h index 9040299a7449..4a5681c7e66a 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h @@ -449,10 +449,14 @@ enum quantum_keycodes { #define LSFT(kc) (kc | QK_LSFT) #define LALT(kc) (kc | QK_LALT) #define LGUI(kc) (kc | QK_LGUI) +#define LCMD(kc) LGUI(kc) +#define LWIN(kc) LGUI(kc) #define RCTL(kc) (kc | QK_RCTL) #define RSFT(kc) (kc | QK_RSFT) #define RALT(kc) (kc | QK_RALT) #define RGUI(kc) (kc | QK_RGUI) +#define RCMD(kc) RGUI(kc) +#define RWIN(kc) RGUI(kc) #define HYPR(kc) (kc | QK_LCTL | QK_LSFT | QK_LALT | QK_LGUI) #define MEH(kc) (kc | QK_LCTL | QK_LSFT | QK_LALT) @@ -616,8 +620,14 @@ enum quantum_keycodes { #define ALGR_T(kc) MT(MOD_RALT, kc) // dual-function AltGR #define GUI_T(kc) MT(MOD_LGUI, kc) +#define CMD_T(kc) GUI_T(kc) +#define WIN_T(kc) GUI_T(kc) #define LGUI_T(kc) MT(MOD_LGUI, kc) +#define LCMD_T(kc) LGUI_T(kc) +#define LWIN_T(kc) LGUI_T(kc) #define RGUI_T(kc) MT(MOD_RGUI, kc) +#define RCMD_T(kc) RGUI_T(kc) +#define RWIN_T(kc) RGUI_T(kc) #define C_S_T(kc) MT((MOD_LCTL | MOD_LSFT), kc) // Control + Shift e.g. for gnome-terminal #define MEH_T(kc) MT((MOD_LCTL | MOD_LSFT | MOD_LALT), kc) // Meh is a less hyper version of the Hyper key -- doesn't include Win or Cmd, so just alt+shift+ctrl diff --git a/tmk_core/common/keycode.h b/tmk_core/common/keycode.h index a1e0bc9a47fe..e7e09e0988ef 100644 --- a/tmk_core/common/keycode.h +++ b/tmk_core/common/keycode.h @@ -167,6 +167,11 @@ along with this program. If not, see . /* Transparent */ #define KC_TRANSPARENT 1 #define KC_TRNS KC_TRANSPARENT +/* GUI key aliases */ +#define KC_LCMD KC_LGUI +#define KC_LWIN KC_LGUI +#define KC_RCMD KC_RGUI +#define KC_RWIN KC_RGUI From 682c8a260a24f78f3d04a77f74df4f795318d169 Mon Sep 17 00:00:00 2001 From: "U-LANDSRAAD\\drashna" Date: Wed, 14 Mar 2018 21:50:53 -0700 Subject: [PATCH 076/578] Fix audio issues with Split keyboards that missed previously --- keyboards/ergo42/rev1/rev1.c | 17 ----------------- keyboards/helix/rev1/rev1.c | 17 ----------------- keyboards/helix/rev2/rev2.c | 17 ----------------- keyboards/nyquist/rev1/rev1.c | 17 ----------------- 4 files changed, 68 deletions(-) diff --git a/keyboards/ergo42/rev1/rev1.c b/keyboards/ergo42/rev1/rev1.c index b4c51d5572f8..f2e8abb1a025 100644 --- a/keyboards/ergo42/rev1/rev1.c +++ b/keyboards/ergo42/rev1/rev1.c @@ -1,10 +1,5 @@ #include "ergo42.h" -#ifdef AUDIO_ENABLE - float tone_startup[][2] = SONG(STARTUP_SOUND); - float tone_goodbye[][2] = SONG(GOODBYE_SOUND); -#endif - #ifdef SSD1306OLED void led_set_kb(uint8_t usb_led) { // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here @@ -14,11 +9,6 @@ void led_set_kb(uint8_t usb_led) { void matrix_init_kb(void) { - #ifdef AUDIO_ENABLE - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); - #endif - // // green led on // DDRD |= (1<<5); // PORTD &= ~(1<<5); @@ -30,10 +20,3 @@ void matrix_init_kb(void) { matrix_init_user(); }; -void shutdown_user(void) { - #ifdef AUDIO_ENABLE - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); - #endif -} diff --git a/keyboards/helix/rev1/rev1.c b/keyboards/helix/rev1/rev1.c index 950e4eec35d5..d7ea9b723572 100644 --- a/keyboards/helix/rev1/rev1.c +++ b/keyboards/helix/rev1/rev1.c @@ -1,9 +1,5 @@ #include "helix.h" -#ifdef AUDIO_ENABLE - float tone_startup[][2] = SONG(STARTUP_SOUND); - float tone_goodbye[][2] = SONG(GOODBYE_SOUND); -#endif #ifdef SSD1306OLED void led_set_kb(uint8_t usb_led) { @@ -14,11 +10,6 @@ void led_set_kb(uint8_t usb_led) { void matrix_init_kb(void) { - #ifdef AUDIO_ENABLE - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); - #endif - // // green led on // DDRD |= (1<<5); // PORTD &= ~(1<<5); @@ -29,11 +20,3 @@ void matrix_init_kb(void) { matrix_init_user(); }; - -void shutdown_kb(void) { - #ifdef AUDIO_ENABLE - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); - #endif -} diff --git a/keyboards/helix/rev2/rev2.c b/keyboards/helix/rev2/rev2.c index 1b23edb792aa..75765f1d3575 100644 --- a/keyboards/helix/rev2/rev2.c +++ b/keyboards/helix/rev2/rev2.c @@ -1,11 +1,6 @@ #include "helix.h" -#ifdef AUDIO_ENABLE - float tone_startup[][2] = SONG(STARTUP_SOUND); - float tone_goodbye[][2] = SONG(GOODBYE_SOUND); -#endif - #ifdef SSD1306OLED void led_set_kb(uint8_t usb_led) { // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here @@ -15,18 +10,6 @@ void led_set_kb(uint8_t usb_led) { void matrix_init_kb(void) { - #ifdef AUDIO_ENABLE - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); - #endif - matrix_init_user(); }; -void shutdown_kb(void) { - #ifdef AUDIO_ENABLE - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); - #endif -} diff --git a/keyboards/nyquist/rev1/rev1.c b/keyboards/nyquist/rev1/rev1.c index 99bd781d5759..5f4cd32f695e 100644 --- a/keyboards/nyquist/rev1/rev1.c +++ b/keyboards/nyquist/rev1/rev1.c @@ -1,10 +1,5 @@ #include "rev1.h" -#ifdef AUDIO_ENABLE - float tone_startup[][2] = SONG(STARTUP_SOUND); - float tone_goodbye[][2] = SONG(GOODBYE_SOUND); -#endif - #ifdef SSD1306OLED void led_set_kb(uint8_t usb_led) { // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here @@ -14,11 +9,6 @@ void led_set_kb(uint8_t usb_led) { void matrix_init_kb(void) { - #ifdef AUDIO_ENABLE - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); - #endif - // // green led on // DDRD |= (1<<5); // PORTD &= ~(1<<5); @@ -30,10 +20,3 @@ void matrix_init_kb(void) { matrix_init_user(); }; -void shutdown_user(void) { - #ifdef AUDIO_ENABLE - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); - #endif -} From bb5c98699fe622a8978c6fc62dc5829d227fdec5 Mon Sep 17 00:00:00 2001 From: Kenny Hung Date: Fri, 16 Mar 2018 20:39:51 +0000 Subject: [PATCH 077/578] Duplicate KC space to UK (#2541) * Fix tilde in xd75 skewwhiffy * Small tidy up * Tidy up Colemak row * Tidy up navigation layer * Symbols layer redefined * Fix UK Quote issue * Use UK_QUOT rather than KC_QUOT --- keyboards/xd75/keymaps/skewwhiffy/keymap.c | 179 +++++++++++---------- quantum/keymap_extras/keymap_uk.h | 123 +++++++++++++- 2 files changed, 212 insertions(+), 90 deletions(-) diff --git a/keyboards/xd75/keymaps/skewwhiffy/keymap.c b/keyboards/xd75/keymaps/skewwhiffy/keymap.c index 887fbed728a3..f2a8418fe7af 100644 --- a/keyboards/xd75/keymaps/skewwhiffy/keymap.c +++ b/keyboards/xd75/keymaps/skewwhiffy/keymap.c @@ -17,115 +17,126 @@ #include "keymap_uk.h" // Fillers to make layering more clear #define _______ KC_TRNS -#define ___T___ KC_TRNS -#define XXXXXXX KC_NO // Layer shorthand #define _CM 0 // Colemak #define _NB 1 // Numbers -#define _FN 2 // Function -#define _SYL 3 // Symbols left -#define _SYR 4 // Symbols right -#define _NAV 5 // Navigation +#define _SYL 2 // Symbols left +#define _SYR 3 // Symbols right +#define _NAV 4 // Navigation + +// Layer buttons +#define _Z_SFT SFT_T(UK_Z) +#define _SLSH SFT_T(UK_SLSH) +#define _X_NB LT(_NB, UK_X) +#define _DOT_NB LT(_NB, UK_DOT) +#define _C_SY LT(_SYL, UK_C) +#define _COM_SY LT(_SYR, UK_COMM) +#define _B_NAV LT(_NAV, UK_B) +#define _K_NAV LT(_NAV, UK_K) +#define _F1_NB LT(_NB, UK_F1) +#define _3_NB LT(_NB, UK_3) + +// Custom hotkeys +#define _TERM LCTL(UK_QUOT) // Hotkey for Cmder or iTerm +#define _S_TAB S(UK_TAB) +#define _C_LEFT LCTL(UK_LEFT) +#define _C_RGHT LCTL(UK_RGHT) +#define _A_LEFT LALT(UK_LEFT) +#define _A_RGHT LALT(UK_RGHT) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Colemak _CM - * .------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+--------------+--------------+---------------+--------------+--------------+--------+--------+--------+----------------+--------+------------------+----------------+------------------------| - * | | Q | W | F | P | G | | | | J | L | U | Y | ; | | - * |--------+--------------+--------------+---------------+--------------+--------------+--------+--------+--------+----------------+--------+------------------+----------------+------------------------| - * | | A | R | S | T | D | | | | H | N | E | I | O | RETURN | - * |--------+--------------+--------------+---------------+--------------+--------------+--------+--------+--------+----------------+--------+------------------+----------------+------------------------| - * | | sft or Z | nb or X | sym or C | V | nav or B | | | | nav or K | M | sym or , | nb or . | sft or / | | - * |--------+--------------+--------------+---------------+--------------+--------------+--------+--------+--------+----------------+--------+------------------+----------------+------------------------| - * | LSHIFT | LCTRL | LALT | LGUI | CTRL ' | SPACE | LCTRL | DEL | LALT | BACKSP | RGUI | RGUI | RALT | RCTRL | RSHIFT | - * '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------' + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------------------------------------------------------------------------------------------------------------------------------------| + * | | Q | W | F | P | G | | | | J | L | U | Y | ; | | + * |--------------------------------------------------------------------------------------------------------------------------------------| + * | | A | R | S | T | D | | | | H | N | E | I | O | ENT | + * |--------------------------------------------------------------------------------------------------------------------------------------| + * | | Z | X | C | V | B | | | | K | M | , | . | / | | + * | | SHIFT | NUMBER | SYMBOL | | NAV | | | | NAV | | SYMBOL | FUNC | SHIFT | | + * |--------------------------------------------------------------------------------------------------------------------------------------| + * | LSHIFT | LCTRL | LALT | LGUI | TERM | SPACE | LCTRL | DEL | LALT | BACKSP | RGUI | RGUI | RALT | RCTRL | RSHIFT | + * |--------------------------------------------------------------------------------------------------------------------------------------| */ [_CM] = { - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, KC_Q, KC_W, KC_F, KC_P, KC_G, _______, _______, _______, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, _______ }, - { _______, KC_A, KC_R, KC_S, KC_T, KC_D, _______, _______, _______, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT }, - { _______, SFT_T(KC_Z), LT(_NB, KC_X), LT(_SYL, KC_C), KC_V, LT(_NAV, KC_B), _______, _______, _______, LT(_NAV, KC_K), KC_M, LT(_SYR, KC_COMM), LT(_FN, KC_DOT), SFT_T(KC_SLSH), _______ }, - { KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, LCTL(KC_QUOT), KC_SPC, KC_LCTL, KC_DEL , KC_LALT, KC_BSPC, KC_RGUI, KC_RGUI, KC_RALT, KC_RCTL, KC_RSFT }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, UK_Q, UK_W, UK_F, UK_P, UK_G, _______, _______, _______, UK_J, UK_L, UK_U, UK_Y, UK_SCLN, _______ }, + { _______, UK_A, UK_R, UK_S, UK_T, UK_D, _______, _______, _______, UK_H, UK_N, UK_E, UK_I, UK_O, UK_ENT }, + { _______, _Z_SFT, _X_NB, _C_SY, UK_V, _B_NAV, _______, _______, _______, _K_NAV, UK_M, _COM_SY, _DOT_NB, _SLSH, _______ }, + { UK_LSFT, UK_LCTL, UK_LALT, UK_LGUI, _TERM, UK_SPC, UK_LCTL, UK_DEL , UK_LALT, UK_BSPC, UK_RGUI, UK_RGUI, UK_RALT, UK_RCTL, UK_RSFT }, }, -/* Numbers _NB / Functions _FN - * .----------------------------------------------------------------------------------------------------------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+--------+--------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+----------------+-----------------| - * | | | F7 | F8 | F9 | F10 | | | | | 7 | 8 | 9 | | | - * |--------+--------+--------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+----------------+--------+--------| - * | | | F4 | F5 | F6 | F11 | | | | | 4 | 5 | 6 | | | - * |--------+--------+--------------+--------+--------+--------+--------+--------+--------+--------+--------+----------------------------------+--------| - * | | | F1 | F2 | F3 | F12 | | | | | 1 | 2 | 3 | | | - * |--------+--------+--------------+--------+--------+--------+--------+--------+--------+--------+--------+-------------------------+--------+--------| - * | | | | | | | | | | | 0 | 0 | . | | | - * '----------------------------------------------------------------------------------------------------------------------------------------------------' +/* Numbers _NB + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | | | F7 | F8 | F9 | F10 | | | | | 7 | 8 | 9 | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | F4 | F5 | F6 | F11 | | | | | 4 | 5 | 6 | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | | | F1 | F2 | F3 | F12 | | | | | 1 | 2 | 3 | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------+--------| + * | | | | | | | | | | | 0 | 0 | . | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' */ [_NB] = { - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, - { _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______ }, - { _______, _______, KC_F4, KC_F5, KC_F6, KC_F11, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______ }, - { _______, _______, LT(_NB, KC_X), KC_F2, KC_F3, KC_F12, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_0, KC_0, KC_DOT, _______, _______ }, - }, - [_FN] = { - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, - { _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______ }, - { _______, _______, KC_F4, KC_F5, KC_F6, KC_F11, _______, _______, _______, _______, KC_5, KC_5, KC_6, _______, _______ }, - { _______, _______, KC_F1, KC_F2, KC_F3, KC_F12, _______, _______, _______, _______, KC_1, KC_2, LT(_FN, KC_DOT), _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_0, KC_0, KC_DOT, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, UK_F7, UK_F8, UK_F9, UK_F10, _______, _______, _______, _______, UK_7, UK_8, UK_9, _______, _______ }, + { _______, _______, UK_F4, UK_F5, UK_F6, UK_F11, _______, _______, _______, _______, UK_4, UK_5, UK_6, _______, _______ }, + { _______, _______, _F1_NB, UK_F2, UK_F3, UK_F12, _______, _______, _______, _______, UK_1, UK_2, _3_NB, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UK_0, UK_0, UK_DOT, _______, _______ }, }, -/* Symbols _SYL and _SYR - * .-------------------------------------------------------------------------------------------------------------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+--------+--------+---------------+--------+--------+--------+--------+--------+--------+--------+------------------+--------+--------+--------| - * | | ! | £ | _ | - | ~ | | | | \ | { | } | / | # | | - * |--------+--------+--------+---------------+--------+--------+--------+--------+--------+--------+--------+------------------+--------+--------+--------| - * | | $ | % | + | = | | | | | " | ( | ) | ' | @ | | - * |--------+--------+--------+---------------+--------+--------+--------+--------+--------+--------+--------+------------------+--------+--------+--------| - * | | ^ | & | * | | | | | | | < | [ | ] | > | ` | | - * |--------+--------+--------+---------------+--------+--------+--------+--------+--------+--------+--------+------------------+--------+--------+--------| - * | | | | | | | | | | | | | | | | - * '-------------------------------------------------------------------------------------------------------------------------------------------------------' +/* Symbols _SYL and _SYR - For some reason, combining this into the same layer causes problems. + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | ! | £ | _ | - | ~ | | | | \ | { | } | / | # | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | $ | % | + | = | | | | | " | ( | ) | ' | @ | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | ^ | & | * | | | | | | | < | [ | ] | > | ` | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' */ [_SYL] = { - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, KC_EXLM, UK_PND, KC_UNDS, KC_MINS, KC_TILD, _______, _______, _______, UK_BSLS, KC_LCBR, KC_RCBR, KC_SLSH, UK_HASH, _______ }, - { _______, KC_DLR, KC_PERC, KC_PLUS, KC_EQL, _______, _______, _______, _______, UK_QUOT, KC_LPRN, KC_RPRN, KC_QUOT, UK_AT, _______ }, - { _______, KC_CIRC, KC_AMPR, LT(_SYL, KC_C), UK_PIPE, _______, _______, _______, _______, KC_LABK, KC_LBRC, KC_RBRC, KC_RABK, KC_GRV, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, UK_EXLM, UK_PND, UK_UNDS, UK_MINS, UK_TILD, _______, _______, _______, UK_BSLS, UK_LCBR, UK_RCBR, UK_SLSH, UK_HASH, _______ }, + { _______, UK_DLR, UK_PERC, UK_PLUS, UK_EQL, _______, _______, _______, _______, UK_DQUO, UK_LPRN, UK_RPRN, UK_QUOT, UK_AT, _______ }, + { _______, UK_CIRC, UK_AMPR, _C_SY, UK_PIPE, _______, _______, _______, _______, UK_LABK, UK_LBRC, UK_RBRC, UK_RABK, UK_GRV, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, }, [_SYR] = { - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, KC_EXLM, UK_PND, KC_UNDS, KC_MINS, KC_TILD, _______, _______, _______, KC_BSLS, KC_LCBR, KC_RCBR, KC_SLSH, UK_HASH, _______ }, - { _______, KC_DLR, KC_PERC, KC_PLUS, KC_EQL, _______, _______, _______, _______, UK_QUOT, KC_LPRN, KC_RPRN, KC_QUOT, UK_AT, _______ }, - { _______, KC_CIRC, KC_AMPR, KC_ASTR, UK_PIPE, _______, _______, _______, _______, KC_LABK, KC_LBRC, LT(_SYR, KC_COMM), KC_RABK, KC_GRV, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, UK_EXLM, UK_PND, UK_UNDS, UK_MINS, UK_TILD, _______, _______, _______, UK_BSLS, UK_LCBR, UK_RCBR, UK_SLSH, UK_HASH, _______ }, + { _______, UK_DLR, UK_PERC, UK_PLUS, UK_EQL, _______, _______, _______, _______, UK_DQUO, UK_LPRN, UK_RPRN, UK_QUOT, UK_AT, _______ }, + { _______, UK_CIRC, UK_AMPR, UK_ASTR, UK_PIPE, _______, _______, _______, _______, UK_LABK, UK_LBRC, _COM_SY, UK_RABK, UK_GRV, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, }, /* * Navigation - * .------------------------------------------------------------------------------------------------------------------------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+----------+--------------+--------+--------------+---------------+--------+--------+--------+---------------+--------+--------+--------+--------+--------| - * | | Esc | Ctrl L | Up | Ctrl R | | | | | | PtSn | ScLk | Pause | | | - * |--------+----------+--------------+--------+--------------+---------------+--------+--------+--------+---------------+--------+--------+--------+--------+--------| - * | | Tab | Left | Down | Right | | | | | | Insert | Home | PgUp | | | - * |--------+----------+--------------+--------+--------------+---------------+--------+--------+--------+---------------+--------+--------+--------+--------+--------| - * | | ShTab | | | | | | | | | ScLk | End | PgDn | | | - * |--------+----------+--------------+--------+--------------+---------------+--------+--------+--------+---------------+--------+--------+--------+--------+--------| - * | | | | | | | | | | | | | | | RESET | - * '------------------------------------------------------------------------------------------------------------------------------------------------------------------' + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | Esc | Ctrl L | Up | Ctrl R | | | | | | PtSn | ScLk | Pause | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | Tab | Left | Down | Right | | | | | | Insert | Home | PgUp | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | ShTab | Alt L | | Alt R | | | | | | ScLk | End | PgDn | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | RESET | + * '--------------------------------------------------------------------------------------------------------------------------------------' */ [_NAV] = { - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, KC_ESC, LCTL(KC_LEFT), KC_UP , LCTL(KC_RGHT), _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______ }, - { _______, KC_TAB, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, _______ }, - { _______, S(KC_TAB), _______, _______, _______, LT(_NAV, KC_B), _______, _______, _______, LT(_NAV, KC_K), KC_SLCK, KC_END, KC_PGDN, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, UK_ESC, _C_LEFT, UK_UP , _C_RGHT, _______, _______, _______, _______, _______, UK_PSCR, UK_SLCK, UK_PAUS, _______, _______ }, + { _______, UK_TAB, UK_LEFT, UK_DOWN, UK_RGHT, _______, _______, _______, _______, _______, UK_INS, UK_HOME, UK_PGUP, _______, _______ }, + { _______, _S_TAB, _A_LEFT, _______, _A_RGHT, _B_NAV, _______, _______, _______, _K_NAV, UK_SLCK, UK_END, UK_PGDN, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET }, }, }; diff --git a/quantum/keymap_extras/keymap_uk.h b/quantum/keymap_extras/keymap_uk.h index 9d02efe04a9a..1d1969a6a823 100644 --- a/quantum/keymap_extras/keymap_uk.h +++ b/quantum/keymap_extras/keymap_uk.h @@ -24,28 +24,139 @@ // Normal characters #define UK_HASH KC_NUHS - #define UK_BSLS KC_NUBS // Shifted characters #define UK_NOT LSFT(KC_GRV) -#define UK_QUOT LSFT(KC_2) +#define UK_DQUO LSFT(KC_2) #define UK_PND LSFT(KC_3) - #define UK_AT LSFT(KC_QUOT) #define UK_TILD LSFT(KC_NUHS) - #define UK_PIPE LSFT(KC_NUBS) // Alt Gr-ed characters #define UK_BRKP ALGR(KC_GRV) #define UK_EURO ALGR(KC_4) - #define UK_EACT ALGR(KC_E) #define UK_UACT ALGR(KC_U) #define UK_IACT ALGR(KC_I) #define UK_OACT ALGR(KC_O) - #define UK_AACT ALGR(KC_A) +// Duplicate US keyboard so that we don't have to use it +#define UK_A KC_A +#define UK_B KC_B +#define UK_C KC_C +#define UK_D KC_D +#define UK_E KC_E +#define UK_F KC_F +#define UK_G KC_G +#define UK_H KC_H +#define UK_I KC_I +#define UK_J KC_J +#define UK_K KC_K +#define UK_L KC_L +#define UK_M KC_M +#define UK_N KC_N +#define UK_O KC_O +#define UK_P KC_P +#define UK_Q KC_Q +#define UK_R KC_R +#define UK_S KC_S +#define UK_T KC_T +#define UK_U KC_U +#define UK_V KC_V +#define UK_W KC_W +#define UK_X KC_X +#define UK_Y KC_Y +#define UK_Z KC_Z + +#define UK_1 KC_1 +#define UK_2 KC_2 +#define UK_3 KC_3 +#define UK_4 KC_4 +#define UK_5 KC_5 +#define UK_6 KC_6 +#define UK_7 KC_7 +#define UK_8 KC_8 +#define UK_9 KC_9 +#define UK_0 KC_0 + +#define UK_F1 KC_F1 +#define UK_F2 KC_F2 +#define UK_F3 KC_F3 +#define UK_F4 KC_F4 +#define UK_F5 KC_F5 +#define UK_F6 KC_F6 +#define UK_F7 KC_F7 +#define UK_F8 KC_F8 +#define UK_F9 KC_F9 +#define UK_F10 KC_F10 +#define UK_F11 KC_F11 +#define UK_F12 KC_F12 +#define UK_F13 KC_F13 +#define UK_F14 KC_F14 +#define UK_F15 KC_F15 +#define UK_F16 KC_F16 +#define UK_F17 KC_F17 +#define UK_F18 KC_F18 +#define UK_F19 KC_F19 +#define UK_F20 KC_F20 +#define UK_F21 KC_F21 +#define UK_F22 KC_F22 +#define UK_F23 KC_F23 +#define UK_F24 KC_F24 + +#define UK_SCLN KC_SCLN +#define UK_COMM KC_COMM +#define UK_DOT KC_DOT +#define UK_SLSH KC_SLSH +#define UK_EXLM KC_EXLM +#define UK_UNDS KC_UNDS +#define UK_MINS KC_MINS +#define UK_LCBR KC_LCBR +#define UK_RCBR KC_RCBR +#define UK_DLR KC_DLR +#define UK_PERC KC_PERC +#define UK_PLUS KC_PLUS +#define UK_EQL KC_EQL +#define UK_LPRN KC_LPRN +#define UK_RPRN KC_RPRN +#define UK_CIRC KC_CIRC +#define UK_AMPR KC_AMPR +#define UK_LABK KC_LABK +#define UK_LBRC KC_LBRC +#define UK_RBRC KC_RBRC +#define UK_RABK KC_RABK +#define UK_GRV KC_GRV +#define UK_ASTR KC_ASTR +#define UK_QUOT KC_QUOT + +#define UK_TAB KC_TAB +#define UK_ENT KC_ENT +#define UK_LSFT KC_LSFT +#define UK_LCTL KC_LCTL +#define UK_LALT KC_LALT +#define UK_LGUI KC_LGUI +#define UK_SPC KC_SPC +#define UK_DEL KC_DEL +#define UK_BSPC KC_BSPC +#define UK_RSFT KC_RSFT +#define UK_RCTL KC_RCTL +#define UK_RALT KC_RALT +#define UK_RGUI KC_RGUI +#define UK_ESC KC_ESC +#define UK_PSCR KC_PSCR +#define UK_SLCK KC_SLCK +#define UK_PAUS KC_PAUS +#define UK_INS KC_INS +#define UK_HOME KC_HOME +#define UK_PGUP KC_PGUP +#define UK_END KC_END +#define UK_PGDN KC_PGDN +#define UK_LEFT KC_LEFT +#define UK_RGHT KC_RGHT +#define UK_UP KC_UP +#define UK_DOWN KC_DOWN + #endif From 00b4dce605bc44a2ee6babaf93dbe3640e735d2e Mon Sep 17 00:00:00 2001 From: Jason Stillwell Date: Fri, 16 Mar 2018 13:41:01 -0700 Subject: [PATCH 078/578] Rule to enable Modifiers with Auto-Shift (#2542) * Re-enable modifiers with auto-shift * Auto-shift modifiers rule * missed a line * Documentation * fixing whitespace --- common_features.mk | 3 +++ docs/feature_auto_shift.md | 17 +++++++++++++---- quantum/process_keycode/process_auto_shift.c | 4 ++++ 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/common_features.mk b/common_features.mk index 1c0b3546a1b5..9b99edd752f9 100644 --- a/common_features.mk +++ b/common_features.mk @@ -132,6 +132,9 @@ endif ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes) OPT_DEFS += -DAUTO_SHIFT_ENABLE SRC += $(QUANTUM_DIR)/process_keycode/process_auto_shift.c + ifeq ($(strip $(AUTO_SHIFT_MODIFIERS)), yes) + OPT_DEFS += -DAUTO_SHIFT_MODIFIERS + endif endif ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes) diff --git a/docs/feature_auto_shift.md b/docs/feature_auto_shift.md index ae821431de8b..9db4f11aa077 100644 --- a/docs/feature_auto_shift.md +++ b/docs/feature_auto_shift.md @@ -28,10 +28,7 @@ Yes, unfortunately. characters, you could press and hold the 'a' key for a second or two. This no longer works with Auto Shift because it is timing your depressed time instead of emitting a depressed key state to your operating system. -2. Auto Shift is disabled for any key press that is accompanied by one or more - modifiers. Thus, Ctrl+A that you hold for a really long time is not the same - as Ctrl+Shift+A. -3. You will have characters that are shifted when you did not intend on shifting, and +2. You will have characters that are shifted when you did not intend on shifting, and other characters you wanted shifted, but were not. This simply comes down to practice. As we get in a hurry, we think we have hit the key long enough for a shifted version, but we did not. On the other hand, we may think we are @@ -48,6 +45,18 @@ If no `rules.mk` exists, you can create one. Then compile and install your new firmware with Auto Key enabled! That's it! +## Modifiers + +By default, Auto Shift is disabled for any key press that is accompanied by one or more +modifiers. Thus, Ctrl+A that you hold for a really long time is not the same +as Ctrl+Shift+A. + +You can re-enable Auto Shift for modifiers by adding another rule to your `rules.mk` + + AUTO_SHIFT_MODIFIERS = yes + +In which case, Ctrl+A held past the `AUTO_SHIFT_TIMEOUT` will be sent as Ctrl+Shift+A + ## Configuring Auto Shift If desired, there is some configuration that can be done to change the diff --git a/quantum/process_keycode/process_auto_shift.c b/quantum/process_keycode/process_auto_shift.c index fcce91849cb3..098bdeaa7d5b 100644 --- a/quantum/process_keycode/process_auto_shift.c +++ b/quantum/process_keycode/process_auto_shift.c @@ -92,7 +92,9 @@ bool autoshift_state(void) { } bool process_auto_shift(uint16_t keycode, keyrecord_t *record) { +#ifndef AUTO_SHIFT_MODIFIERS static uint8_t any_mod_pressed; +#endif if (record->event.pressed) { switch (keycode) { @@ -175,6 +177,7 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) { autoshift_flush(); if (!autoshift_enabled) return true; +#ifndef AUTO_SHIFT_MODIFIERS any_mod_pressed = get_mods() & ( MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)| MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)| @@ -185,6 +188,7 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) { if (any_mod_pressed) { return true; } +#endif autoshift_on(keycode); return false; From 3acaad66005718ab50a46ae375636f328a93b100 Mon Sep 17 00:00:00 2001 From: Alexander Fougner Date: Wed, 14 Mar 2018 21:55:34 +0100 Subject: [PATCH 079/578] Initial support for The Unloved Bastard --- keyboards/unloved_bastard/config.h | 168 ++++++++++++++++++ .../unloved_bastard/keymaps/default/config.h | 24 +++ .../unloved_bastard/keymaps/default/keymap.c | 63 +++++++ .../unloved_bastard/keymaps/default/readme.md | 1 + keyboards/unloved_bastard/matrix.c | 138 ++++++++++++++ keyboards/unloved_bastard/readme.md | 15 ++ keyboards/unloved_bastard/rules.mk | 71 ++++++++ keyboards/unloved_bastard/unloved_bastard.c | 70 ++++++++ keyboards/unloved_bastard/unloved_bastard.h | 42 +++++ 9 files changed, 592 insertions(+) create mode 100644 keyboards/unloved_bastard/config.h create mode 100644 keyboards/unloved_bastard/keymaps/default/config.h create mode 100644 keyboards/unloved_bastard/keymaps/default/keymap.c create mode 100644 keyboards/unloved_bastard/keymaps/default/readme.md create mode 100644 keyboards/unloved_bastard/matrix.c create mode 100644 keyboards/unloved_bastard/readme.md create mode 100644 keyboards/unloved_bastard/rules.mk create mode 100644 keyboards/unloved_bastard/unloved_bastard.c create mode 100644 keyboards/unloved_bastard/unloved_bastard.h diff --git a/keyboards/unloved_bastard/config.h b/keyboards/unloved_bastard/config.h new file mode 100644 index 000000000000..d89e85862eb1 --- /dev/null +++ b/keyboards/unloved_bastard/config.h @@ -0,0 +1,168 @@ +/* +Copyright 2018 Alexander Fougner + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x1337 +#define DEVICE_VER 0x0001 +#define MANUFACTURER BathroomEpiphanies +#define PRODUCT Unloved Bastard +#define DESCRIPTION Unloved Bastard controller for CM Masterkeys S + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 18 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +//#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 1 + +#endif diff --git a/keyboards/unloved_bastard/keymaps/default/config.h b/keyboards/unloved_bastard/keymaps/default/config.h new file mode 100644 index 000000000000..c55f7f9f7d27 --- /dev/null +++ b/keyboards/unloved_bastard/keymaps/default/config.h @@ -0,0 +1,24 @@ +/* Copyright 2018 Alexander Fougner + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +// place overrides here + +#endif diff --git a/keyboards/unloved_bastard/keymaps/default/keymap.c b/keyboards/unloved_bastard/keymaps/default/keymap.c new file mode 100644 index 000000000000..f4dedc79911a --- /dev/null +++ b/keyboards/unloved_bastard/keymaps/default/keymap.c @@ -0,0 +1,63 @@ +/* Copyright 2018 Alexander Fougner + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "unloved_bastard.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP(\ + KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS, \ + KC_GRV, 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_BSPC, KC_INS, KC_HOME, KC_PGUP, \ + 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_BSLS, KC_DEL, KC_END, KC_PGDN, \ + KC_CAPS,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \ + KC_LSFT,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ + KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) +}; + + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/unloved_bastard/keymaps/default/readme.md b/keyboards/unloved_bastard/keymaps/default/readme.md new file mode 100644 index 000000000000..a2b5f1192fdf --- /dev/null +++ b/keyboards/unloved_bastard/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for unloved_bastard diff --git a/keyboards/unloved_bastard/matrix.c b/keyboards/unloved_bastard/matrix.c new file mode 100644 index 000000000000..65773879bcd7 --- /dev/null +++ b/keyboards/unloved_bastard/matrix.c @@ -0,0 +1,138 @@ +/* + Copyright 2017 Gabriel Young + Copyright 2018 Alexander Fougner + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include +#include +#include +#include +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" + +#ifndef DEBOUNCING_DELAY +# define DEBOUNCING_DELAY 5 +#endif +static uint8_t debouncing = DEBOUNCING_DELAY; + +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +static matrix_row_t scan_col(void) { + return ( + (PINC&(1<<7) ? 0 : ((matrix_row_t)1<<0)) | + (PINB&(1<<6) ? 0 : ((matrix_row_t)1<<1)) | + (PINB&(1<<1) ? 0 : ((matrix_row_t)1<<2)) | + (PINB&(1<<0) ? 0 : ((matrix_row_t)1<<3)) | + (PINB&(1<<5) ? 0 : ((matrix_row_t)1<<4)) | + (PINB&(1<<3) ? 0 : ((matrix_row_t)1<<5)) | + (PINB&(1<<4) ? 0 : ((matrix_row_t)1<<6)) | + (PINB&(1<<2) ? 0 : ((matrix_row_t)1<<7)) + ); +} + +static void select_col(uint8_t col) { + switch (col) { + case 0: PORTD = (PORTD & ~0b00111111) | 0b00110011; break; + case 1: PORTD = (PORTD & ~0b00111111) | 0b00100011; break; + case 2: PORTD = (PORTD & ~0b00111111) | 0b00010111; break; + case 3: PORTD = (PORTD & ~0b00111111) | 0b00110011; break; + case 4: PORTD = (PORTD & ~0b00111111) | 0b00010011; break; + case 5: PORTD = (PORTD & ~0b00111111) | 0b00011011; break; + case 6: PORTD = (PORTD & ~0b00111111) | 0b00110100; break; + case 7: PORTD = (PORTD & ~0b00111111) | 0b00111010; break; + case 8: PORTD = (PORTD & ~0b00111111) | 0b00111000; break; + case 9: PORTD = (PORTD & ~0b00111111) | 0b00111100; break; + case 10: PORTD = (PORTD & ~0b00111111) | 0b00110010; break; + case 11: PORTD = (PORTD & ~0b00111111) | 0b00011111; break; + case 12: PORTD = (PORTD & ~0b00111111) | 0b00001111; break; + case 13: PORTD = (PORTD & ~0b00111111) | 0b00100111; break; + case 14: PORTD = (PORTD & ~0b00111111) | 0b00000111; break; + case 15: PORTD = (PORTD & ~0b00111111) | 0b00110110; break; + case 16: PORTD = (PORTD & ~0b00111111) | 0b00001011; break; + case 17: PORTD = (PORTD & ~0b00111111) | 0b00000011; break; + } +} + +void matrix_init(void) { + /* Row output pins */ + DDRD |= 0b00111111; + /* Column input pins */ + DDRC &= ~0b10000000; + DDRB &= ~0b01111111; + PORTC |= 0b10000000; + PORTB |= 0b01111111; + + for (uint8_t i=0; i < MATRIX_ROWS; i++) + matrix[i] = matrix_debouncing[i] = 0; + + matrix_init_quantum(); +} + +uint8_t matrix_scan(void) { + for (uint8_t col = 0; col < MATRIX_COLS; col++) { + select_col(col); + _delay_us(3); + matrix_row_t col_scan = scan_col(); + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + bool prev_bit = matrix_debouncing[row] & ((matrix_row_t)1< + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "unloved_bastard.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + led_init_ports(); + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + return process_record_user(keycode, record); +} + +// C5 left +// C6 middle led +// B7 right led +void led_init_ports(void) { + DDRB |= (1<<7); + DDRC |= (1<<5); + DDRC |= (1<<6); + + PORTB |= (1<<7); + PORTC |= (1<<5); + PORTC |= (1<<6); +} + + +void led_set_kb(uint8_t usb_led) { + + if (usb_led & (1<. + */ +#ifndef UNLOVED_BASTARD_H +#define UNLOVED_BASTARD_H + +#include "quantum.h" + +#define KEYMAP( \ + KG6, KH4, KI4, KI2, KI6, KP5, KL6, KM2, KM4, KO4, KO5, KO6, KO0, KN5, KN7, KP7, \ + KG4, KG5, KH5, KI5, KJ5, KJ4, KK4, KK5, KL5, KM5, KF5, KF4, KL4, KO2, KR4, KC4, KE4, \ + KG2, KG7, KH7, KI7, KJ7, KJ2, KK2, KK7, KL7, KM7, KF7, KF2, KL2, KO3, KQ4, KC5, KE5, \ + KH2, KG3, KH3, KI3, KJ3, KJ6, KK6, KK3, KL3, KM3, KF3, KF6, KO1, \ + KB2, KH6, KG1, KH1, KI1, KJ1, KJ0, KK0, KK1, KL1, KM1, KF0, KB3, KC6, \ + KP4, KN2, KN6, KQ6, KN0, KN3, KM0, KP1, KC0, KQ0, KR0 \ +) \ +{ \ +/* Columns and rows need to be swapped in the below definition */ \ +/* A B C D E F G H I J K L M N O P Q R */ \ +/* 0 */ { KC_NO, KC_NO, KC0, KC_NO, KC_NO, KF0, KC_NO, KC_NO, KC_NO, KJ0, KK0, KC_NO, KM0, KN0, KO0, KC_NO, KQ0, KR0 }, \ +/* 1 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KG1, KH1, KI1, KJ1, KK1, KL1, KM1, KC_NO, KO1, KP1, KC_NO, KC_NO }, \ +/* 2 */ { KC_NO, KB2, KC_NO, KC_NO, KC_NO, KF2, KG2, KH2, KI2, KJ2, KK2, KL2, KM2, KN2, KO2, KC_NO, KC_NO, KC_NO }, \ +/* 3 */ { KC_NO, KB3, KC_NO, KC_NO, KC_NO, KF3, KG3, KH3, KI3, KJ3, KK3, KL3, KM3, KN3, KO3, KC_NO, KC_NO, KC_NO }, \ +/* 4 */ { KC_NO, KC_NO, KC4, KC_NO, KE4, KF4, KG4, KH4, KI4, KJ4, KK4, KL4, KM4, KC_NO, KO4, KP4, KQ4, KR4 }, \ +/* 5 */ { KC_NO, KC_NO, KC5, KC_NO, KE5, KF5, KG5, KH5, KI5, KJ5, KK5, KL5, KM5, KN5, KO5, KP5, KC_NO, KC_NO }, \ +/* 6 */ { KC_NO, KC_NO, KC6, KC_NO, KC_NO, KF6, KG6, KH6, KI6, KJ6, KK6, KL6, KC_NO,KN6, KO6, KC_NO, KQ6, KC_NO }, \ +/* 7 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KF7, KG7, KH7, KI7, KJ7, KK7, KL7, KM7, KN7, KC_NO, KP7, KC_NO, KC_NO } \ +} + +#endif From ce3adcd6e19ca2e3b537ab874487e9d022b8e88f Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 6 Mar 2018 20:42:38 +0100 Subject: [PATCH 080/578] Added a clean target to remove build artifacts This commit adds a new clean target to the makefile which deletes the .build directory which removes all build artifacts. --- Makefile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Makefile b/Makefile index 8350d5ce3443..9ef82bbd3c2e 100644 --- a/Makefile +++ b/Makefile @@ -124,6 +124,12 @@ generate-keyboards-file: $(foreach PRINTING_KEYBOARD,$(KEYBOARDS),$(eval $(call PRINT_KEYBOARD))) exit 0 +clean: + echo -n 'Deleting .build ... ' + rm -rf $(BUILD_DIR) + echo 'done' + exit 0 + #Compatibility with the old make variables, anything you specify directly on the command line # always overrides the detected folders ifdef keyboard From b6db61b922f4264803014cfa3def094a909acc2a Mon Sep 17 00:00:00 2001 From: Shayne Holmes Date: Fri, 16 Mar 2018 15:17:13 -0700 Subject: [PATCH 081/578] Fix logic in macos install Also fix mixed spaces/tabs --- util/macos_install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/macos_install.sh b/util/macos_install.sh index ec8502985a0f..f53f26694dba 100755 --- a/util/macos_install.sh +++ b/util/macos_install.sh @@ -15,7 +15,7 @@ if ! brew --version 2>&1 > /dev/null; then *) echo -n "Would you like to install homebrew now? [y/n] " ;; - esac + esac done fi From 4ca65bb6c6cc525b1cb65c5e2d3db73c00e111f9 Mon Sep 17 00:00:00 2001 From: dlaroe Date: Sun, 18 Mar 2018 00:21:01 -0400 Subject: [PATCH 082/578] retry of PR #2540 (#2554) * reforked, untarred keymaps, added CRS and renamed my keymap folders * Update readme.md corrected a typo --- .../keymaps/{dale => dlaroe}/config.h | 0 .../keymaps/{dale => dlaroe}/keymap.c | 59 +++- .../keymaps/{dale => dlaroe}/rules.mk | 0 keyboards/planck/keymaps/dale/readme.md | 6 - .../planck/keymaps/{dale => dlaroe}/config.h | 0 .../planck/keymaps/{dale => dlaroe}/keymap.c | 203 ++++++++------ keyboards/planck/keymaps/dlaroe/readme.md | 12 + .../dale => planck/keymaps/dlaroe}/rules.mk | 4 +- keyboards/preonic/keymaps/dale/readme.md | 2 - .../preonic/keymaps/{dale => dlaroe}/config.h | 0 .../preonic/keymaps/{dale => dlaroe}/keymap.c | 98 +++---- keyboards/preonic/keymaps/dlaroe/readme.md | 7 + .../dale => preonic/keymaps/dlaroe}/rules.mk | 6 +- keyboards/sweet16/keymaps/dlaroe/keymap.c | 38 +++ keyboards/sweet16/keymaps/dlaroe/readme.md | 3 + layouts/community/ortho_4x12/crs/config.h | 37 +++ layouts/community/ortho_4x12/crs/keymap.c | 257 ++++++++++++++++++ layouts/community/ortho_4x12/crs/readme.md | 15 + 18 files changed, 569 insertions(+), 178 deletions(-) rename keyboards/lets_split/keymaps/{dale => dlaroe}/config.h (100%) rename keyboards/lets_split/keymaps/{dale => dlaroe}/keymap.c (73%) rename keyboards/lets_split/keymaps/{dale => dlaroe}/rules.mk (100%) delete mode 100644 keyboards/planck/keymaps/dale/readme.md rename keyboards/planck/keymaps/{dale => dlaroe}/config.h (100%) rename keyboards/planck/keymaps/{dale => dlaroe}/keymap.c (59%) create mode 100644 keyboards/planck/keymaps/dlaroe/readme.md rename keyboards/{preonic/keymaps/dale => planck/keymaps/dlaroe}/rules.mk (88%) delete mode 100644 keyboards/preonic/keymaps/dale/readme.md rename keyboards/preonic/keymaps/{dale => dlaroe}/config.h (100%) rename keyboards/preonic/keymaps/{dale => dlaroe}/keymap.c (71%) create mode 100644 keyboards/preonic/keymaps/dlaroe/readme.md rename keyboards/{planck/keymaps/dale => preonic/keymaps/dlaroe}/rules.mk (82%) create mode 100644 keyboards/sweet16/keymaps/dlaroe/keymap.c create mode 100644 keyboards/sweet16/keymaps/dlaroe/readme.md create mode 100644 layouts/community/ortho_4x12/crs/config.h create mode 100644 layouts/community/ortho_4x12/crs/keymap.c create mode 100644 layouts/community/ortho_4x12/crs/readme.md diff --git a/keyboards/lets_split/keymaps/dale/config.h b/keyboards/lets_split/keymaps/dlaroe/config.h similarity index 100% rename from keyboards/lets_split/keymaps/dale/config.h rename to keyboards/lets_split/keymaps/dlaroe/config.h diff --git a/keyboards/lets_split/keymaps/dale/keymap.c b/keyboards/lets_split/keymaps/dlaroe/keymap.c similarity index 73% rename from keyboards/lets_split/keymaps/dale/keymap.c rename to keyboards/lets_split/keymaps/dlaroe/keymap.c index 519fbc4ae3a4..44e16d84041a 100644 --- a/keyboards/lets_split/keymaps/dale/keymap.c +++ b/keyboards/lets_split/keymaps/dlaroe/keymap.c @@ -18,17 +18,22 @@ extern keymap_config_t keymap_config; // Layer names don't all need to be of the same length, obviously, and you can also skip them // entirely and just use numbers. #define _QWERTY 0 -#define _GAME 1 +#define _ARROW 1 +#define _GAME 2 #define _LOWER 3 #define _RAISE 4 +#define _PLOVER 5 #define _ADJUST 16 enum custom_keycodes { QWERTY = SAFE_RANGE, + ARROW, GAME, LOWER, RAISE, BACKLIT, + PLOVER, + EXT_PLV }; // Fillers to make layering more clear @@ -55,6 +60,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_BSLS, KC_LALT, LOWER, LT(4, KC_SPC), KC_SPC, RAISE, LT(3, KC_LBRC), KC_MINS, KC_EQL, CTL_T(KC_RBRC) \ ), +/* Arrow + * ,-----------------------------------------------------------------------------------. + * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Tab | A | S | D | F | G | H | J | K | L | ; | ' | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | \ | Alt | Lower|SpcRse| Space|Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_ARROW] = KEYMAP( \ + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT), \ + KC_LCTL, KC_LGUI, KC_BSLS, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT \ +), + /* Game * ,-----------------------------------------------------------------------------------. * | 1 | Q | W | E | R | T | Y | U | I | O | P | Bksp | @@ -80,7 +103,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Tab | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | . | * | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | NumLk| F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | / |Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Esc | | | | | | 0 | | | | KP_+ | | * `-----------------------------------------------------------------------------------' @@ -98,7 +121,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | Wh Up|RightC| M-Up | LeftC|QWERTY| Left | Down | Up | Right| | | ` | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | Wh Dn| M-L | M-Dn | M-R | ACL0 | ACL1 | ACL2 | | | \ | | + * | | Wh Dn| M-L | M-Dn | M-R | | - | = | [ | ] | \ | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | App | | | | | Ins | | Home | PGDN | PGUP | End | * `-----------------------------------------------------------------------------------' @@ -106,26 +129,46 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_RAISE] = KEYMAP( \ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ KC_DEL, KC_WH_U, KC_BTN2, KC_MS_U, KC_BTN1, QWERTY, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_PIPE, KC_GRV, \ - _______, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, KC_BSLASH, _______, \ + _______, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLASH, _______, \ _______, KC_APP, _______, _______, _______, _______, KC_INS, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END \ ), +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_PLOVER] = KEYMAP ( \ + KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 , \ + XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, \ + XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX \ +), + + /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. * | C-A-I|Qwerty| | |Reset |Macro0| | | | | |C-A-D | * |------+------+------+------+------+-------------+------+------+------+------+------| * | | | |Aud on|Audoff| Game |AGswap|AGnorm| | | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * | |Voice-|Voice+|Mus on|Musoff| Prev | Next | Mute | VolDn| VolUp| | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| | | | | | | BL_T |BL_DEC|BL_INC|BL_ST | + * | Brite| | | | | Play/Pause | | BL_T |BL_DEC|BL_INC|BL_ST | * `-----------------------------------------------------------------------------------' */ [_ADJUST] = KEYMAP( \ LALT(LCTL(KC_INS)), QWERTY, _______, _______, RESET, M(0), _______, _______, _______, _______, _______, LALT(LCTL(KC_DEL)), \ _______, _______, _______, AU_ON, AU_OFF, GAME, AG_SWAP, AG_NORM, _______, _______, _______, _______, \ - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, \ - BACKLIT, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC , BL_INC , BL_STEP \ + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, \ + BACKLIT, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, BL_TOGG, BL_DEC , BL_INC , BL_STEP \ ) diff --git a/keyboards/lets_split/keymaps/dale/rules.mk b/keyboards/lets_split/keymaps/dlaroe/rules.mk similarity index 100% rename from keyboards/lets_split/keymaps/dale/rules.mk rename to keyboards/lets_split/keymaps/dlaroe/rules.mk diff --git a/keyboards/planck/keymaps/dale/readme.md b/keyboards/planck/keymaps/dale/readme.md deleted file mode 100644 index e5ab38756281..000000000000 --- a/keyboards/planck/keymaps/dale/readme.md +++ /dev/null @@ -1,6 +0,0 @@ -# Dales Planck Layout -Goals: -* Trying to fit as many characters as possible on the default layer - * its easier for me to remember logical functions than characters - * this also makes it easier to use the two US ISO keysets I had on hand -* A number pad AND a number row diff --git a/keyboards/planck/keymaps/dale/config.h b/keyboards/planck/keymaps/dlaroe/config.h similarity index 100% rename from keyboards/planck/keymaps/dale/config.h rename to keyboards/planck/keymaps/dlaroe/config.h diff --git a/keyboards/planck/keymaps/dale/keymap.c b/keyboards/planck/keymaps/dlaroe/keymap.c similarity index 59% rename from keyboards/planck/keymaps/dale/keymap.c rename to keyboards/planck/keymaps/dlaroe/keymap.c index 5682f0b4b8c7..a2d5573ae1f1 100644 --- a/keyboards/planck/keymaps/dale/keymap.c +++ b/keyboards/planck/keymaps/dlaroe/keymap.c @@ -1,8 +1,5 @@ // Can't Remember Sh*t Keymap for Planck -// Trying to fit as many characters as possible on the default layer -// as its easier for me to remember logical functions than characters -// Also, I like me some numpad - +// http://www.keyboard-layout-editor.com/#/gists/c6c0ac051b2b118a34ef84ebadab54c7 #include "planck.h" #include "action_layer.h" @@ -13,22 +10,27 @@ extern keymap_config_t keymap_config; -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QWERTY 0 -#define _GAME 1 -#define _LOWER 3 -#define _RAISE 4 -#define _ADJUST 16 + +enum planck_layers { + _QWERTY, + _ARROW, + _GAME, + _LOWER, + _RAISE, + _PLOVER, + _ADJUST +}; + enum planck_keycodes { QWERTY = SAFE_RANGE, + ARROW, GAME, LOWER, RAISE, BACKLIT, + PLOVER, + EXT_PLV }; // Fillers to make layering more clear @@ -52,9 +54,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT) }, - {KC_LCTL, KC_LGUI, KC_BSLS, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, LT(3, KC_LBRC), KC_MINS, KC_EQL, CTL_T(KC_RBRC)} + {KC_LCTL, KC_LGUI, KC_BSLS, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, LT(_LOWER, KC_LBRC), KC_MINS, KC_EQL, MT(MOD_RCTL, KC_RBRC)} }, + /* Arrow + * ,-----------------------------------------------------------------------------------. + * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Tab | A | S | D | F | G | H | J | K | L | ; | ' | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | \ | Alt | Lower| Space |Raise | Left | Down | Up | Right| + * `-----------------------------------------------------------------------------------' + */ +[_ARROW] = { + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT) }, + {KC_LCTL, KC_LGUI, KC_BSLS, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT} +}, + + /* Game * ,-----------------------------------------------------------------------------------. * | 1 | Q | W | E | R | T | Y | U | I | O | P | Bksp | @@ -80,7 +101,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Tab | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | . | * | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | NumLk| F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | / |Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Esc | | | | | 0 | | | | KP_+ | | * `-----------------------------------------------------------------------------------' @@ -98,7 +119,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | Wh Up|RightC| M-Up | LeftC|QWERTY| Left | Down | Up | Right| | | ` | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | Wh Dn| M-L | M-Dn | M-R | ACL0 | ACL1 | ACL2 | | | \ | | + * | | Wh Dn| M-L | M-Dn | M-R | | - | = | [ | ] | \ | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | App | | | | Ins | | Home | PGDN | PGUP | End | * `-----------------------------------------------------------------------------------' @@ -106,26 +127,45 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_RAISE] = { {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, { KC_DEL, KC_WH_U, KC_BTN2, KC_MS_U, KC_BTN1, QWERTY, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_PIPE, KC_GRV}, - {_______, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, KC_BSLASH, _______}, + {_______, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLASH, _______}, {_______, KC_APP, _______, _______, _______, KC_INS, KC_INS, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END} }, +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_PLOVER] = { + {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, + {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, + {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} +}, + /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. - * | C-A-I|Qwerty| | |Reset |Macro0| | | | | |C-A-D | + * | C-A-I|Qwerty| | |Reset |Macro0| | | | |PLOVER|C-A-D | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|Audoff| Game |AGswap|AGnorm| | | | | + * | Caps | Arrow| |Aud on|Audoff| Game |AGswap|AGnorm| PrtSc|ScrLck| Break| | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * | |Voice-|Voice+|Mus on|Musoff| Prev | Next | Mute | VolDn| VolUp| | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| | | | | | | BL_T |BL_DEC|BL_INC|BL_ST | + * | Brite| | | | | Play/Pause | | BL_T |BL_DEC|BL_INC|BL_ST | * `-----------------------------------------------------------------------------------' */ [_ADJUST] = { - {LALT(LCTL(KC_INS)), QWERTY, _______, _______, RESET, M(0), _______, _______, _______, _______, _______, LALT(LCTL(KC_DEL))}, - {_______, _______, _______, AU_ON, AU_OFF, GAME, AG_SWAP, AG_NORM, _______, _______, _______, _______}, - {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, - {BACKLIT, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC , BL_INC , BL_STEP} + {LALT(LCTL(KC_INS)), QWERTY, _______, _______, RESET, M(0), _______, _______, _______, _______, PLOVER, LALT(LCTL(KC_DEL))}, + {KC_CAPS, ARROW, _______, AU_ON, AU_OFF, GAME, AG_SWAP, AG_NORM, KC_PSCR, KC_SLCK, KC_PAUS, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______}, + {BACKLIT, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, BL_TOGG, BL_DEC , BL_INC , BL_STEP} } @@ -143,52 +183,40 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // return MACRO_NONE; }; - #ifdef AUDIO_ENABLE - -float tone_startup[][2] = SONG(STARTUP_SOUND); -float tone_qwerty[][2] = SONG(QWERTY_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); - -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); + float plover_song[][2] = SONG(PLOVER_SOUND); + float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); #endif - -void persistant_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); -} - bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QWERTY: if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_SONG(tone_qwerty); - #endif - persistant_default_layer_set(1UL<<_QWERTY); + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case ARROW: + if (record->event.pressed) { + set_single_persistent_default_layer(_ARROW); } return false; break; case GAME: if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_SONG(music_scale); - #endif - persistant_default_layer_set(1UL<<_GAME); + set_single_persistent_default_layer(_GAME); } return false; break; - - - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } return false; break; case RAISE: @@ -212,39 +240,34 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; - } + case PLOVER: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_SONG(plover_song); + #endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + break; + case EXT_PLV: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(plover_gb_song); + #endif + layer_off(_PLOVER); + } + return false; + break; + } return true; } - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user() -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user() -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/planck/keymaps/dlaroe/readme.md b/keyboards/planck/keymaps/dlaroe/readme.md new file mode 100644 index 000000000000..0fc89886fb35 --- /dev/null +++ b/keyboards/planck/keymaps/dlaroe/readme.md @@ -0,0 +1,12 @@ +# CRS Planck Layout +Goals: + +*Maximum compatibility with standard keyboards + * I have to work on other staggered Qwerty keyboards all the time so I wanted to keep essentially the same layout instead of optimizing too much. +* Trying to fit as many characters as possible on the default layer + * its easier for me to remember logical functions than characters + * Using the extra punctuation caps in place of arrows frees up some Row 4 caps + * however, I'm trying out an arrows layout with the other punctuation on the Raise layer and it is quite nice too +* A number pad AND a number row + +[Here is the layout in easily readable KLE form.](http://www.keyboard-layout-editor.com/#/gists/c6c0ac051b2b118a34ef84ebadab54c7) diff --git a/keyboards/preonic/keymaps/dale/rules.mk b/keyboards/planck/keymaps/dlaroe/rules.mk similarity index 88% rename from keyboards/preonic/keymaps/dale/rules.mk rename to keyboards/planck/keymaps/dlaroe/rules.mk index 156a3a0a9869..22a08c668baa 100644 --- a/keyboards/preonic/keymaps/dale/rules.mk +++ b/keyboards/planck/keymaps/dlaroe/rules.mk @@ -6,9 +6,9 @@ # BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = no # Audio control and System control(+450) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration +COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls diff --git a/keyboards/preonic/keymaps/dale/readme.md b/keyboards/preonic/keymaps/dale/readme.md deleted file mode 100644 index ea044cbfa9fe..000000000000 --- a/keyboards/preonic/keymaps/dale/readme.md +++ /dev/null @@ -1,2 +0,0 @@ -# Dale's Preonic layout - largely based on his Planck. -# The hardware number row is mostly to avoid inherent context switching delay while he is receiving auditory input. diff --git a/keyboards/preonic/keymaps/dale/config.h b/keyboards/preonic/keymaps/dlaroe/config.h similarity index 100% rename from keyboards/preonic/keymaps/dale/config.h rename to keyboards/preonic/keymaps/dlaroe/config.h diff --git a/keyboards/preonic/keymaps/dale/keymap.c b/keyboards/preonic/keymaps/dlaroe/keymap.c similarity index 71% rename from keyboards/preonic/keymaps/dale/keymap.c rename to keyboards/preonic/keymaps/dlaroe/keymap.c index 3c9fb558e478..95ff9792b19c 100644 --- a/keyboards/preonic/keymaps/dale/keymap.c +++ b/keyboards/preonic/keymaps/dlaroe/keymap.c @@ -1,3 +1,6 @@ +// Dale's Planck with a number row, I mean Preonic. +// I could have done something cooler with the top row I guess but I'm pretty much a Planck guy, that is the reason for the duplication of keys. + #include "preonic.h" #include "action_layer.h" #include "eeconfig.h" @@ -12,8 +15,7 @@ enum preonic_layers { _QWERTY, - _COLEMAK, - _DVORAK, + _ARROW, _LOWER, _RAISE, _ADJUST @@ -21,8 +23,7 @@ enum preonic_layers { enum preonic_keycodes { QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, + ARROW, LOWER, RAISE, BACKLIT @@ -55,53 +56,32 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_LCTL, KC_LGUI, KC_BSLS, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, LT(_LOWER, KC_LBRC), KC_MINS, KC_EQL, MT(MOD_RCTL, KC_RBRC)} }, -/* Colemak +/* Arrow * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | R | S | T | D | H | N | E | I | O | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_COLEMAK] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - -/* Dvorak - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Tab | " | , | . | P | Y | F | G | C | R | L | Del | + * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * | Tab | A | S | D | F | G | H | J | K | L | ; | " | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * | Ctrl | GUI | \ | Alt |Lower | Space |Raise | Left | Down | Up | Right | * `-----------------------------------------------------------------------------------' */ -[_DVORAK] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL}, - {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +[_ARROW] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_RSFT, KC_ENT) }, + {KC_LCTL, KC_LGUI, KC_BSLS, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, MT(MOD_RCTL, KC_RGHT)} }, /* Lower * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+------+------+------+------+------+------+------| * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | . | * | * |------+------+------+------+------+------|------+------+------+------+------+------| @@ -111,8 +91,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_LOWER] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, KC_DOT, KC_ASTR}, {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, _______, _______}, {_______, _______, _______, _______, _______, KC_0, KC_0, _______, _______, _______, KC_PLUS, _______} @@ -126,7 +106,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | Wh Up|RightC| M-Up | LeftC|QWERTY| Left | Down | Up | Right| | | ` | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | Wh Dn| M-L | M-Dn | M-R | PrScr| Sc Lk| Break| | | \ | | + * | | Wh Dn| M-L | M-Dn | M-R | | - | = | [ | ] | \ | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | App | | | | Ins | | Home | PGDN | PGUP | End | * `-----------------------------------------------------------------------------------' @@ -135,30 +115,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, { KC_DEL, KC_WH_U, KC_BTN2, KC_MS_U, KC_BTN1, QWERTY, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_PIPE, KC_GRV}, - {_______, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, KC_BSLASH, _______}, + {_______, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLASH, _______}, {_______, KC_APP, _______, _______, _______, KC_INS, KC_INS, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END} }, - /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | * |------+------+------+------+------+------+------+------+------+------+------+------| * | C-A-I|Qwerty| | |Reset |Macro0| | | | | |C-A-D | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|Audoff| |AGswap|AGnorm| | | | | + * | Caps | Arrow| |Aud on|Audoff| |AGswap|AGnorm| PrtSc|ScrLck| Break| | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * | |Voice-|Voice+|Mus on|Musoff| Prev | Next | Mute |VolUp |VolDn | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| | | | | | | BL_T |BL_DEC|BL_INC|BL_ST | + * | Brite| | | | | Play/Pause | | BL_T |BL_DEC|BL_INC|BL_ST | * `-----------------------------------------------------------------------------------' */ [_ADJUST] = { {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {LALT(LCTL(KC_INS)), QWERTY, _______, _______, RESET, M(0), _______, _______, _______, _______, _______, LALT(LCTL(KC_DEL))}, - {_______, _______, _______, AU_ON, AU_OFF, _______, AG_SWAP, AG_NORM, _______, _______, _______, _______}, - {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, - {BACKLIT, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC , BL_INC , BL_STEP} + {LALT(LCTL(KC_INS)), QWERTY, _______, _______, RESET, M(0), _______, MAGIC_TOGGLE_NKRO, _______, _______, _______, LALT(LCTL(KC_DEL))}, + {KC_CAPS, ARROW, _______, AU_ON, AU_OFF, _______, AG_SWAP, AG_NORM, KC_PSCR, KC_SLCK, KC_PAUS, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______}, + {BACKLIT, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, BL_TOGG, BL_DEC , BL_INC , BL_STEP} } @@ -185,8 +164,6 @@ float tone_startup[][2] = { }; float tone_qwerty[][2] = SONG(QWERTY_SOUND); -float tone_dvorak[][2] = SONG(DVORAK_SOUND); -float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_goodbye[][2] = SONG(GOODBYE_SOUND); @@ -209,21 +186,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; - case COLEMAK: + case ARROW: if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_SONG(tone_colemak); - #endif - persistent_default_layer_set(1UL<<_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_SONG(tone_dvorak); - #endif - persistent_default_layer_set(1UL<<_DVORAK); + persistent_default_layer_set(1UL<<_ARROW); } return false; break; @@ -292,5 +257,4 @@ void music_scale_user(void) { PLAY_SONG(music_scale); } - #endif diff --git a/keyboards/preonic/keymaps/dlaroe/readme.md b/keyboards/preonic/keymaps/dlaroe/readme.md new file mode 100644 index 000000000000..f0dfdbb106d5 --- /dev/null +++ b/keyboards/preonic/keymaps/dlaroe/readme.md @@ -0,0 +1,7 @@ +# Dale's Preonic layout + +Really just my Planck layout for the Preonic. + +The hardware number row is mostly to avoid context switching delay inherent in receiving auditory input while trying to type. Frankly I like my Planck Game layer more than I like using the number row. + +I cut most of the plate vertical supports on the left side to use the Rev. 1 Preonic PCB's alternate switch placement to allow the use of 1.25 mods. diff --git a/keyboards/planck/keymaps/dale/rules.mk b/keyboards/preonic/keymaps/dlaroe/rules.mk similarity index 82% rename from keyboards/planck/keymaps/dale/rules.mk rename to keyboards/preonic/keymaps/dlaroe/rules.mk index 156a3a0a9869..b356244713a1 100644 --- a/keyboards/planck/keymaps/dale/rules.mk +++ b/keyboards/preonic/keymaps/dlaroe/rules.mk @@ -4,11 +4,11 @@ # change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = no # Audio control and System control(+450) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration +COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls diff --git a/keyboards/sweet16/keymaps/dlaroe/keymap.c b/keyboards/sweet16/keymaps/dlaroe/keymap.c new file mode 100644 index 000000000000..ba947465e7d3 --- /dev/null +++ b/keyboards/sweet16/keymaps/dlaroe/keymap.c @@ -0,0 +1,38 @@ +#include "sweet16.h" + +enum layers { + num, + extra, + mouse +}; + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [num] = LAYOUT_numpad_4x4( + KC_P7, KC_P8, KC_P9, LT(extra, KC_PPLS), + KC_P4, KC_P5, KC_P6, + KC_P1, KC_P2, KC_P3, KC_PENT, + LT(mouse, KC_P0), KC_DOT + ) + + [extra] = LAYOUT_numpad_4x4( + KC_PSLS, KC_PAST, KC_PMNS, KC_TRNS, + KC_BSPC, KC_EXC, KC_DEL, + KC_LPRN, KC_RPRN, KC_PEQL, KC_PENT, + KC_TAB, KC_NLCK + ) + + +[mouse] = LAYOUT_numpad_4x4( + KC_MS_WH_D, KC_MS_U, KC_MS_WH_U, LT(extra, KC_PPLS), + KC_MS_L, KC_MS_D, KC_MS_R, + KC_BTN1, KC_BTN2, KC_BTN3, KC_PENT, + KC_TRNS, KC_DOT + ) + + + + +}; + diff --git a/keyboards/sweet16/keymaps/dlaroe/readme.md b/keyboards/sweet16/keymaps/dlaroe/readme.md new file mode 100644 index 000000000000..aabcf82c6115 --- /dev/null +++ b/keyboards/sweet16/keymaps/dlaroe/readme.md @@ -0,0 +1,3 @@ +# Dale's keymap for the Sweet16 + +I wanted to reuse a standard numpad keyset and have the full functionality of an larger numpad with a nod to Excel functionality. diff --git a/layouts/community/ortho_4x12/crs/config.h b/layouts/community/ortho_4x12/crs/config.h new file mode 100644 index 000000000000..3c3d9b8858c3 --- /dev/null +++ b/layouts/community/ortho_4x12/crs/config.h @@ -0,0 +1,37 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include QMK_KEYBOARD_CONFIG_H + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define _MASTER_RIGHT +// #define EE_HANDS + +#endif \ No newline at end of file diff --git a/layouts/community/ortho_4x12/crs/keymap.c b/layouts/community/ortho_4x12/crs/keymap.c new file mode 100644 index 000000000000..f9c72f25433b --- /dev/null +++ b/layouts/community/ortho_4x12/crs/keymap.c @@ -0,0 +1,257 @@ +// Can't Remember Sh*t Keymap for 4x12 ortho +// http://www.keyboard-layout-editor.com/#/gists/c6c0ac051b2b118a34ef84ebadab54c7 + +#include QMK_KEYBOARD_H +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _ARROW 1 +#define _GAME 2 +#define _LOWER 3 +#define _RAISE 4 +#define _PLOVER 5 +#define _ADJUST 16 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + ARROW, + GAME, + LOWER, + RAISE, + BACKLIT, + PLOVER, + EXT_PLV +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Tab | A | S | D | F | G | H | J | K | L | ; | ' | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | \ | Alt | Lower|SpcRse| Space|Raise | [ | - | = | ] | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = LAYOUT_ortho_4x12( \ + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT), \ + KC_LCTL, KC_LGUI, KC_BSLS, KC_LALT, LOWER, LT(4, KC_SPC), KC_SPC, RAISE, LT(3, KC_LBRC), KC_MINS, KC_EQL, CTL_T(KC_RBRC) \ +), + +/* Arrow + * ,-----------------------------------------------------------------------------------. + * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Tab | A | S | D | F | G | H | J | K | L | ; | ' | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | \ | Alt | Lower| Space| Space|Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_ARROW] = LAYOUT_ortho_4x12( \ + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT), \ + KC_LCTL, KC_LGUI, KC_BSLS, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT \ +), + +/* Game + * ,-----------------------------------------------------------------------------------. + * | 1 | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * |Shift | A | S | D | F | G | H | J | K | L | ; | ' | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Ctrl | Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Alt | 4 | 3 | 2 | Lower| Space |Raise | Left | Down | Up | Right| + * `-----------------------------------------------------------------------------------' + */ +[_GAME] = LAYOUT_ortho_4x12( \ + KC_1, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______ , \ + KC_LALT, KC_4, KC_3, KC_2, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT \ +), + + +/* Lower (switched to # because KP# were weird in terminal emulators) + * ,-----------------------------------------------------------------------------------. + * | Del | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Tab | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | . | * | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | | | | | | 0 | | | | KP_+ | | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT_ortho_4x12( \ + KC_DEL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, KC_DOT, KC_ASTR, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, KC_SLSH, _______, \ + KC_ESC, _______, _______, _______, _______, _______, KC_0, _______, _______, _______, KC_PLUS, _______ \ +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | Wh Up|RightC| M-Up | LeftC|QWERTY| Left | Down | Up | Right| | | ` | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | Wh Dn| M-L | M-Dn | M-R | | - | = | [ | ] | \ | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | App | | | | | Ins | | Home | PGDN | PGUP | End | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT_ortho_4x12( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ + KC_DEL, KC_WH_U, KC_BTN2, KC_MS_U, KC_BTN1, QWERTY, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_PIPE, KC_GRV, \ + _______, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLASH, _______, \ + _______, KC_APP, _______, _______, _______, _______, KC_INS, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END \ +), + +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_PLOVER] = LAYOUT_ortho_4x12 ( \ + KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 , \ + XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, \ + XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX \ +), + + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | C-A-I|Qwerty| | |Reset |Macro0| | | | |PLOVER|C-A-D | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Caps | Arrow| |Aud on|Audoff| Game |AGswap|AGnorm| PrtSc|ScrLck| Break| | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff| Prev | Next | Mute | VolDn| VolUp| | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| | | | | Play/Pause | | BL_T |BL_DEC|BL_INC|BL_ST | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT_ortho_4x12( \ + LALT(LCTL(KC_INS)), QWERTY, _______, _______, RESET, M(0), _______, _______, _______, _______, PLOVER, LALT(LCTL(KC_DEL)), \ + KC_CAPS, ARROW, _______, AU_ON, AU_OFF, GAME, AG_SWAP, AG_NORM, KC_PSCR, KC_SLCK, KC_PAUS, _______, \ + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, \ + BACKLIT, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, BL_TOGG, BL_DEC , BL_INC , BL_STEP \ +) + + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. +{ + switch(id) { + case 0: // this would trigger when you hit a key mapped as M(0) + if (record->event.pressed) { + return MACRO( D(LSFT), T(LEFT), U(LSFT), D(LCTL), T(X), U(LCTL), T(RIGHT), D(LCTL), T(V), U(LCTL), T(LEFT), END ); // this swaps the characters on either side of the cursor when the macro executes + } + break; + } + return MACRO_NONE; +}; + + +#ifdef AUDIO_ENABLE +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); +#endif + + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_qwerty); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case GAME: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(music_scale); + #endif + persistant_default_layer_set(1UL<<_GAME); + } + return false; + break; + + + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + return false; + break; + } + return true; +} + +void matrix_init_user(void) { + +} diff --git a/layouts/community/ortho_4x12/crs/readme.md b/layouts/community/ortho_4x12/crs/readme.md new file mode 100644 index 000000000000..66b03cfd4313 --- /dev/null +++ b/layouts/community/ortho_4x12/crs/readme.md @@ -0,0 +1,15 @@ +# CRS 4x12 Ortholinear Layout + +Since I started with a Planck and a 2u space, it's not as optimal on a split or grid but it's what I'm used to using. + +Goals: + +* Maximum compatibility with standard keyboards + * I have to work on other staggered Qwerty keyboards all the time so I wanted to keep essentially the same layout instead of optimizing too much. +* Trying to fit as many characters as possible on the default layer + * its easier for me to remember logical functions than characters + * Using the extra punctuation caps in place of arrows frees up some Row 4 caps + * however, I'm trying out an arrows layout with the other punctuation on the Raise layer and it is quite nice too +* A number pad AND a number row + +[Here is the layout in easily readable KLE form.](http://www.keyboard-layout-editor.com/#/gists/c6c0ac051b2b118a34ef84ebadab54c7) From 500b060e3d9b6d2d5b38a6afc802225de8086764 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Mon, 19 Mar 2018 19:43:06 -0700 Subject: [PATCH 083/578] Fix info.json issues to display properly in config.qmk.fm (#2552) * Fix info.json issues to display properly in config.qmk.fm * rename LAYOUT to KEYMAP to match .h file --- keyboards/v60_type_r/info.json | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/keyboards/v60_type_r/info.json b/keyboards/v60_type_r/info.json index e73cb02ff8d4..0ba579c15649 100644 --- a/keyboards/v60_type_r/info.json +++ b/keyboards/v60_type_r/info.json @@ -1,13 +1,16 @@ { - "keyboard_name": "V60 Type R", - "manufacturer": "KBParadise", - "processor": "atmega32u4", - "bootloader": "atmel-dfu", - "width": 15, - "height": 5, - "layouts": { - "KEYMAP": { - "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":14, "y":0, "w":2}, {"x":0.5, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":14, "y":1, "w":1.5}, {"x":0.75, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":14, "y":2, "w":2.25}, {"x":1.25, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":14, "y":3, "w":2.75}, {"x":0.25, "y":4, "w":1.25}, {"x":1.5, "y":4, "w":1.25}, {"x":2.75, "y":4, "w":1.25}, {"x":9, "y":4, "w":6.25}, {"x":10.25, "y":4, "w":1.25}, {"x":11.5, "y":4, "w":1.25}, {"x":12.75, "y":4, "w":1.25}, {"x":14, "y":4, "w":1.25}] - } - } + "keyboard_name": "V60 Type R", + "manufacturer": "KBParadise", + "identifier": "", + "url": "", + "maintainer": "qmk", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "width": 15, + "height": 5, + "layouts": { + "KEYMAP": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + } + } } From 37cc08848615c2efa8c291b561f8c33048360fb5 Mon Sep 17 00:00:00 2001 From: mechmerlin Date: Mon, 19 Mar 2018 20:14:40 -0700 Subject: [PATCH 084/578] Add info.json file to work with qmk_configurator --- keyboards/1up60rgb/info.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 keyboards/1up60rgb/info.json diff --git a/keyboards/1up60rgb/info.json b/keyboards/1up60rgb/info.json new file mode 100644 index 000000000000..a3b218dceb98 --- /dev/null +++ b/keyboards/1up60rgb/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "1up60rgb", + "manufacturer": "1UP Keyboards", + "identifier": "", + "url": "", + "maintainer": "qmk", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "width": 15, + "height": 5, + "layouts": { + "KEYMAP": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + } + } +} From ff728a8a01c1aa81e86f38dfd1753bd49ce39e88 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Mon, 19 Mar 2018 20:59:58 -0700 Subject: [PATCH 085/578] [Proposal?] Allow RGB Underglow to turn off when host is idle/asleep (#2104) * Add RGB Underglow Sleeping * Add RGBLIGHT_SLEEP to toggle/control RGB light behavior * Update rgb docs * Update for RGB disable command --- docs/feature_rgblight.md | 2 ++ keyboards/ergodox_ez/keymaps/drashna/config.h | 1 + .../handwired/woodpad/keymaps/drashna/config.h | 1 + keyboards/orthodox/keymaps/drashna/config.h | 1 + keyboards/viterbi/keymaps/drashna/config.h | 1 + tmk_core/common/avr/suspend.c | 16 +++++++++++++++- 6 files changed, 21 insertions(+), 1 deletion(-) diff --git a/docs/feature_rgblight.md b/docs/feature_rgblight.md index f96fa87736bd..17097f4bca46 100644 --- a/docs/feature_rgblight.md +++ b/docs/feature_rgblight.md @@ -42,6 +42,8 @@ You can change the behavior of the RGB Lighting by setting these configuration v | `RGBLIGHT_SAT_STEP` | 17 | How many steps of saturation you'd like. | | `RGBLIGHT_VAL_STEP` | 17 | The number of levels of brightness you want. | | `RGBLIGHT_LIMIT_VAL` | 255 | Limit the val of HSV to limit the maximum brightness simply. | +| `RGBLIGHT_SLEEP` | | `#define` this will shut off the lights when the host goes to sleep | + ### Animations diff --git a/keyboards/ergodox_ez/keymaps/drashna/config.h b/keyboards/ergodox_ez/keymaps/drashna/config.h index d543379a37b1..71c7de466f64 100644 --- a/keyboards/ergodox_ez/keymaps/drashna/config.h +++ b/keyboards/ergodox_ez/keymaps/drashna/config.h @@ -10,6 +10,7 @@ #define RGBLIGHT_EFFECT_KNIGHT_LENGTH 7 #define RGBLIGHT_EFFECT_SNAKE_LENGTH 7 #define RGBLIGHT_EFFECT_BREATHE_CENTER 1 +#define RGBLIGHT_SLEEP #endif // RGBLIGHT_ENABLE #ifdef TAPPING_TERM diff --git a/keyboards/handwired/woodpad/keymaps/drashna/config.h b/keyboards/handwired/woodpad/keymaps/drashna/config.h index a35b60d369f6..c83a1ac37940 100644 --- a/keyboards/handwired/woodpad/keymaps/drashna/config.h +++ b/keyboards/handwired/woodpad/keymaps/drashna/config.h @@ -37,6 +37,7 @@ #define RGBLIGHT_EFFECT_KNIGHT_LENGTH 4 #define RGBLIGHT_EFFECT_SNAKE_LENGTH 3 #define RGBLIGHT_EFFECT_BREATHE_CENTER 1 +#define RGBLIGHT_SLEEP #endif // RGBLIGHT_ENABLE #define FORCE_NKRO diff --git a/keyboards/orthodox/keymaps/drashna/config.h b/keyboards/orthodox/keymaps/drashna/config.h index 107f16d58c04..dd8439a44bf4 100644 --- a/keyboards/orthodox/keymaps/drashna/config.h +++ b/keyboards/orthodox/keymaps/drashna/config.h @@ -64,6 +64,7 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 #define RGBLIGHT_EFFECT_SNAKE_LENGTH 2 #define RGBLIGHT_EFFECT_BREATHE_CENTER 1 +#define RGBLIGHT_SLEEP #endif // RGBLIGHT_ENABLE #ifdef AUDIO_ENABLE diff --git a/keyboards/viterbi/keymaps/drashna/config.h b/keyboards/viterbi/keymaps/drashna/config.h index 8fabe72f8770..02786cfc7d22 100644 --- a/keyboards/viterbi/keymaps/drashna/config.h +++ b/keyboards/viterbi/keymaps/drashna/config.h @@ -31,6 +31,7 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 #define RGBLIGHT_EFFECT_SNAKE_LENGTH 2 #define RGBLIGHT_EFFECT_BREATHE_CENTER 1 +#define RGBLIGHT_SLEEP #define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 300 #define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1 diff --git a/tmk_core/common/avr/suspend.c b/tmk_core/common/avr/suspend.c index 1c7618ff51dd..213f03f6fa5c 100644 --- a/tmk_core/common/avr/suspend.c +++ b/tmk_core/common/avr/suspend.c @@ -19,6 +19,9 @@ #include "audio.h" #endif /* AUDIO_ENABLE */ +#ifdef RGBLIGHT_ANIMATIONS + #include "rgblight.h" +#endif #define wdt_intr_enable(value) \ @@ -85,7 +88,12 @@ static void power_down(uint8_t wdto) // This sometimes disables the start-up noise, so it's been disabled // stop_all_notes(); #endif /* AUDIO_ENABLE */ - +#ifdef RGBLIGHT_SLEEP +#ifdef RGBLIGHT_ANIMATIONS + rgblight_timer_disable(); +#endif + rgblight_disable(); +#endif // TODO: more power saving // See PicoPower application note // - I/O port input with pullup @@ -132,6 +140,12 @@ void suspend_wakeup_init(void) backlight_init(); #endif led_set(host_keyboard_leds()); +#ifdef RGBLIGHT_SLEEP + rgblight_enable(); +#ifdef RGBLIGHT_ANIMATIONS + rgblight_timer_enable(); +#endif +#endif } #ifndef NO_SUSPEND_POWER_DOWN From 6268656e01d2b8257fda9677223f27d628deee3d Mon Sep 17 00:00:00 2001 From: mechmerlin Date: Mon, 19 Mar 2018 21:42:37 -0700 Subject: [PATCH 086/578] add info.json to support both layouts on the contra --- keyboards/contra/info.json | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 keyboards/contra/info.json diff --git a/keyboards/contra/info.json b/keyboards/contra/info.json new file mode 100644 index 000000000000..97b7cddf468d --- /dev/null +++ b/keyboards/contra/info.json @@ -0,0 +1,20 @@ +{ + "keyboard_name": "Contra", + "manufacturer": "Cartel Keyboards", + "identifier": "", + "url": "", + "maintainer": "qmk", + "processor": "atmega32u4", + "bootloader": "caterina", + "width": 12, + "height": 4, + "layouts": { + "LAYOUT_mit": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"Super", "x":3, "y":3}, {"label":"⇓", "x":4, "y":3}, {"x":5, "y":3, "w":2}, {"label":"⇑", "x":7, "y":3}, {"label":"←", "x":8, "y":3}, {"label":"↓", "x":9, "y":3}, {"label":"↑", "x":10, "y":3}, {"label":"→", "x":11, "y":3}] + }, + + "LAYOUT_ortho_4x12": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"Super", "x":3, "y":3}, {"label":"⇓", "x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"label":"⇑", "x":7, "y":3}, {"label":"←", "x":8, "y":3}, {"label":"↓", "x":9, "y":3}, {"label":"↑", "x":10, "y":3}, {"label":"→", "x":11, "y":3}] + } + } +} From 6d66fe0c0ca3b6b5f9ea6e76fa295ac9262f4b60 Mon Sep 17 00:00:00 2001 From: Merlin04 Date: Sun, 18 Mar 2018 08:43:39 -0700 Subject: [PATCH 087/578] Added bootloader options I think I got all of them, so I removed the "FIXME". --- docs/hardware_keyboard_guidelines.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/hardware_keyboard_guidelines.md b/docs/hardware_keyboard_guidelines.md index 0892f85cb640..3435c24d12af 100644 --- a/docs/hardware_keyboard_guidelines.md +++ b/docs/hardware_keyboard_guidelines.md @@ -63,7 +63,9 @@ The `info.json` file is a JSON formatted dictionary with the following keys avai * `lufa-dfu` * `qmk-dfu` * `stm32-dfu-util` - * (FIXME: This list is incomplete.) + * `caterina` + * `halfkay` + * `bootloadHID` * `maintainer` * GitHub username of the maintainer, or `qmk` for community maintained boards * `width` From 2d8fda614e0078b4a7f8c696807ff8f6a958b10b Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Tue, 20 Mar 2018 08:50:04 -0700 Subject: [PATCH 088/578] Configurator/dz60 support for info.json (#2568) * Add info.json file for qmk_configurator Unfortunately none of these keymaps look like a board I've seen in the wild. Some further tweaks will have to be done to the keymaps directly. * add comment indicating need to edit info.json when keymap changes --- keyboards/dz60/dz60.h | 2 ++ keyboards/dz60/info.json | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 keyboards/dz60/info.json diff --git a/keyboards/dz60/dz60.h b/keyboards/dz60/dz60.h index 664aaaaab6d9..ad0026846003 100644 --- a/keyboards/dz60/dz60.h +++ b/keyboards/dz60/dz60.h @@ -3,6 +3,8 @@ #include "quantum.h" +// Corresponding changes to the layout names and/or definitions must also be made to info.json + // 标准配列 #define KEYMAP( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ diff --git a/keyboards/dz60/info.json b/keyboards/dz60/info.json new file mode 100644 index 000000000000..dfb0bbbdfeaa --- /dev/null +++ b/keyboards/dz60/info.json @@ -0,0 +1,32 @@ +{ + "keyboard_name": "DZ60", + "manufacturer": "KBDFans", + "identifier": "", + "url": "", + "maintainer": "qmk", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "width": 15, + "height": 5, + "layouts": { + "KEYMAP": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] + }, + + "KEYMAP_HHKB": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Ctrl", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Alt", "x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":6}, {"x":10, "y":4, "w":1.5}, {"label":"Alt", "x":11.5, "y":4}] + }, + + "KEYMAP_TRUE_HHKB": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Ctrl", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Alt", "x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":6}, {"x":10, "y":4, "w":1.5}, {"label":"Alt", "x":11.5, "y":4}] + }, + + "KEYMAP_2_SHIFTS": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] + }, + + "KEYMAP_DIRECTIONAL": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] + } + } +} \ No newline at end of file From 1fbddc6613f7d5e7fa426215b71bfff34b0f0741 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Tue, 20 Mar 2018 17:22:42 -0700 Subject: [PATCH 089/578] Configurator Support(info.json) for 1up Keyboards Sweet16 (#2570) * Configurator Support - Add info.json to support existing layouts - Add comment in sweet16.h to remind people to change info.json if the layout changes. * Fix dlaroe's keymap --- keyboards/sweet16/info.json | 20 ++++++++++++++++++++ keyboards/sweet16/keymaps/dlaroe/keymap.c | 22 +++++++++++----------- keyboards/sweet16/sweet16.h | 8 +++++--- 3 files changed, 36 insertions(+), 14 deletions(-) create mode 100644 keyboards/sweet16/info.json diff --git a/keyboards/sweet16/info.json b/keyboards/sweet16/info.json new file mode 100644 index 000000000000..b43197c8cf82 --- /dev/null +++ b/keyboards/sweet16/info.json @@ -0,0 +1,20 @@ +{ + "keyboard_name": "Sweet 16", + "manufacturer": "1UP Keyboards", + "identifier": "", + "url": "", + "maintainer": "qmk", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "width": 4, + "height": 4, + "layouts": { + "LAYOUT_ortho_4x4": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}] + }, + + "LAYOUT_numpad_4x4": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0, "h":2}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2, "h":2}, {"x":0, "y":3, "w":2}, {"x":2, "y":3}] + } + } +} diff --git a/keyboards/sweet16/keymaps/dlaroe/keymap.c b/keyboards/sweet16/keymaps/dlaroe/keymap.c index ba947465e7d3..b42c34edb747 100644 --- a/keyboards/sweet16/keymaps/dlaroe/keymap.c +++ b/keyboards/sweet16/keymaps/dlaroe/keymap.c @@ -10,24 +10,24 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [num] = LAYOUT_numpad_4x4( - KC_P7, KC_P8, KC_P9, LT(extra, KC_PPLS), - KC_P4, KC_P5, KC_P6, - KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P7, KC_P8, KC_P9, LT(extra, KC_PPLS), + KC_P4, KC_P5, KC_P6, + KC_P1, KC_P2, KC_P3, KC_PENT, LT(mouse, KC_P0), KC_DOT - ) + ), [extra] = LAYOUT_numpad_4x4( - KC_PSLS, KC_PAST, KC_PMNS, KC_TRNS, - KC_BSPC, KC_EXC, KC_DEL, - KC_LPRN, KC_RPRN, KC_PEQL, KC_PENT, + KC_PSLS, KC_PAST, KC_PMNS, KC_TRNS, + KC_BSPC, KC_EXECUTE, KC_DEL, + KC_LPRN, KC_RPRN, KC_PEQL, KC_PENT, KC_TAB, KC_NLCK - ) + ), [mouse] = LAYOUT_numpad_4x4( - KC_MS_WH_D, KC_MS_U, KC_MS_WH_U, LT(extra, KC_PPLS), - KC_MS_L, KC_MS_D, KC_MS_R, - KC_BTN1, KC_BTN2, KC_BTN3, KC_PENT, + KC_WH_D, KC_MS_U, KC_WH_U, LT(extra, KC_PPLS), + KC_MS_L, KC_MS_D, KC_MS_R, + KC_BTN1, KC_BTN2, KC_BTN3, KC_PENT, KC_TRNS, KC_DOT ) diff --git a/keyboards/sweet16/sweet16.h b/keyboards/sweet16/sweet16.h index 23d411a89b29..879f51fae66a 100644 --- a/keyboards/sweet16/sweet16.h +++ b/keyboards/sweet16/sweet16.h @@ -3,6 +3,8 @@ #include "quantum.h" +// Any changes to the layout names and/or definitions must also be made to info.json + #define LAYOUT_ortho_4x4( \ K00, K01, K02, K03, \ K10, K11, K12, K13, \ @@ -22,9 +24,9 @@ K31, K32 \ ) { \ { K00, K01, K02, K03 }, \ - { K10, K11, K12, K13 }, \ + { K10, K11, K12, KC_NO }, \ { K20, K21, K22, K23 }, \ - { K30, K31, K32, K33 } \ + { KC_NO, K31, K32, KC_NO } \ } -#endif \ No newline at end of file +#endif From 4ec03111cc0dd8cb365aaa43a6aaf2c626d72a61 Mon Sep 17 00:00:00 2001 From: "U-LANDSRAAD\\drashna" Date: Tue, 20 Mar 2018 13:57:53 -0700 Subject: [PATCH 090/578] Add Pretty Keymaps to Ergodox EZ --- keyboards/ergodox_ez/ergodox_ez.h | 61 +++++ keyboards/ergodox_ez/keymaps/drashna/keymap.c | 251 ++++++------------ users/drashna/drashna.h | 1 + 3 files changed, 147 insertions(+), 166 deletions(-) diff --git a/keyboards/ergodox_ez/ergodox_ez.h b/keyboards/ergodox_ez/ergodox_ez.h index 4433dbe6dbbb..d6fa30bb20cb 100644 --- a/keyboards/ergodox_ez/ergodox_ez.h +++ b/keyboards/ergodox_ez/ergodox_ez.h @@ -188,6 +188,67 @@ inline void ergodox_led_all_set(uint8_t n) { k0D, k1D, k2D, k3D, k4D, KC_NO } \ } +#define KEYMAP_PRETTY( \ + /* left hand, spatial positions */ /* right hand, spatial positions */ \ + L00,L01,L02,L03,L04,L05,L06, R00,R01,R02,R03,R04,R05,R06, \ + L10,L11,L12,L13,L14,L15,L16, R10,R11,R12,R13,R14,R15,R16, \ + L20,L21,L22,L23,L24,L25, R21,R22,R23,R24,R25,R26, \ + L30,L31,L32,L33,L34,L35,L36, R30,R31,R32,R33,R34,R35,R36, \ + L40,L41,L42,L43,L44, R42,R43,R44,R45,R46, \ + L55,L56, R50,R51, \ + L54, R52, \ + L53,L52,L51, R55,R54,R53 ) \ + \ + /* matrix positions */ \ + { \ + { L00, L10, L20, L30, L40, KC_NO }, \ + { L01, L11, L21, L31, L41, L51 }, \ + { L02, L12, L22, L32, L42, L52 }, \ + { L03, L13, L23, L33, L43, L53 }, \ + { L04, L14, L24, L34, L44, L54 }, \ + { L05, L15, L25, L35, KC_NO, L55 }, \ + { L06, L16, KC_NO, L36, KC_NO, L56 }, \ + \ + { R00, R10, KC_NO, R30,KC_NO, R50 }, \ + { R01, R11, R21, R31,KC_NO, R51 }, \ + { R02, R12, R22, R32, R42, R52 }, \ + { R03, R13, R23, R33, R43, R53 }, \ + { R04, R14, R24, R34, R44, R54 }, \ + { R05, R15, R25, R35, R45, R55 }, \ + { R06, R16, R26, R36, R46, KC_NO } \ + } + +#define KEYMAP_PRETTY_80( \ + /* left hand, spatial positions */ /* right hand, spatial positions */ \ + L00,L01,L02,L03,L04,L05,L06, R00,R01,R02,R03,R04,R05,R06, \ + L10,L11,L12,L13,L14,L15,L16, R10,R11,R12,R13,R14,R15,R16, \ + L20,L21,L22,L23,L24,L25, R21,R22,R23,R24,R25,R26, \ + L30,L31,L32,L33,L34,L35,L36, R30,R31,R32,R33,R34,R35,R36, \ + L40,L41,L42,L43,L44, R42,R43,R44,R45,R46, \ + L55,L56, R50,R51, \ + L45,L46,L54, R52,R40,R41, \ + L53,L52,L51, R55,R54,R53 ) \ + \ + /* matrix positions */ \ + { \ + { L00, L10, L20, L30, L40, KC_NO }, \ + { L01, L11, L21, L31, L41, L51 }, \ + { L02, L12, L22, L32, L42, L52 }, \ + { L03, L13, L23, L33, L43, L53 }, \ + { L04, L14, L24, L34, L44, L54 }, \ + { L05, L15, L25, L35, L45, L55 }, \ + { L06, L16, KC_NO, L36, L46, L56 }, \ + \ + { R00, R10, KC_NO, R30, R40, R50 }, \ + { R01, R11, R21, R31, R41, R51 }, \ + { R02, R12, R22, R32, R42, R52 }, \ + { R03, R13, R23, R33, R43, R53 }, \ + { R04, R14, R24, R34, R44, R54 }, \ + { R05, R15, R25, R35, R45, R55 }, \ + { R06, R16, R26, R36, R46, KC_NO } \ + } + #define LAYOUT_ergodox KEYMAP +#define LAYOUT_ergodox_pretty KEYMAP_PRETTY #endif diff --git a/keyboards/ergodox_ez/keymaps/drashna/keymap.c b/keyboards/ergodox_ez/keymaps/drashna/keymap.c index aeadbb1fc44c..1b30196eca34 100644 --- a/keyboards/ergodox_ez/keymaps/drashna/keymap.c +++ b/keyboards/ergodox_ez/keymaps/drashna/keymap.c @@ -52,25 +52,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | End | | PgDn | | | * `---------------------' `---------------------' */ - [_QWERTY] = LAYOUT_ergodox_wrapper( - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), - KC_TAB, _________________QWERTY_L1_________________, TG(_DIABLO), - KC_BSPC, _________________QWERTY_L2_________________, - KC_MLSF, _________________QWERTY_L3_________________, TG(_GAMEPAD), - LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, - - ALT_T(KC_APP), KC_LGUI, - KC_HOME, - KC_SPACE,KC_BSPC, KC_END, + [_QWERTY] = LAYOUT_ergodox_pretty_wrapper( + // left hand // right hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, _________________QWERTY_L1_________________, TG(_DIABLO), TG(_DIABLO), _________________QWERTY_R1_________________, KC_BSLS, + TG(_MODS), _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, GUI_T(KC_QUOT), + KC_MLSF, _________________QWERTY_L3_________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________QWERTY_R3_________________, KC_MRSF, + LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), + ALT_T(KC_APP), KC_LGUI, KC_RGUI, CTL_T(KC_ESCAPE), + KC_HOME, KC_PGUP, + KC_SPACE,KC_BSPC, KC_END, KC_PGDN, KC_DEL, KC_ENTER + - OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - TG(_DIABLO), _________________QWERTY_R1_________________, KC_BSLS, - _________________QWERTY_R2_________________, GUI_T(KC_QUOT), - TG(_GAMEPAD), _________________QWERTY_R3_________________, KC_MRSF, - ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), - KC_RGUI, CTL_T(KC_ESCAPE), - KC_PGUP, - KC_PGDOWN, KC_DELETE, KC_ENTER ), /* Keymap 0: Basic layer * @@ -95,25 +88,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ // If it accepts an argument (i.e, is a function), it doesn't need KC_. // Otherwise, it needs KC_* -[_COLEMAK] = LAYOUT_ergodox_wrapper( - // left hand - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), - KC_TAB, _________________COLEMAK_L1________________, TG(_DIABLO), - KC_BSPC, _________________COLEMAK_L2________________, - KC_MLSF, _________________COLEMAK_L3________________, TG(_GAMEPAD), - LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, - ALT_T(KC_APP), KC_LGUI, - KC_HOME, - KC_SPACE,KC_BSPC, KC_END, - // right hand - OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - TG(_DIABLO), _________________COLEMAK_R1________________, KC_BSLS, - _________________COLEMAK_R2________________, GUI_T(KC_QUOT), - TG(_GAMEPAD), _________________COLEMAK_R3________________, KC_MRSF, - ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), - KC_RGUI, CTL_T(KC_ESCAPE), - KC_PGUP, - KC_PGDOWN, KC_DELETE, KC_ENTER +[_COLEMAK] = LAYOUT_ergodox_pretty_wrapper( + // left hand // right hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, _________________COLEMAK_L1________________, TG(_DIABLO), TG(_DIABLO), _________________COLEMAK_R1________________, KC_BSLS, + TG(_MODS), _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, GUI_T(KC_QUOT), + KC_MLSF, _________________COLEMAK_L3________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________COLEMAK_R3________________, KC_MRSF, + LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), + ALT_T(KC_APP), KC_LGUI, KC_RGUI, CTL_T(KC_ESCAPE), + KC_HOME, KC_PGUP, + KC_SPACE,KC_BSPC, KC_END, KC_PGDN, KC_DEL, KC_ENTER ), /* Keymap 0: Basic layer * @@ -138,25 +122,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ // If it accepts an argument (i.e, is a function), it doesn't need KC_. // Otherwise, it needs KC_* -[_DVORAK] = LAYOUT_ergodox_wrapper( - // left hand - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), - KC_TAB, _________________DVORAK_L1_________________, TG(_DIABLO), - KC_BSPC, _________________DVORAK_L2_________________, - KC_MLSF, _________________DVORAK_L3_________________, TG(_GAMEPAD), - LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, - ALT_T(KC_APP), KC_LGUI, - KC_HOME, - KC_SPACE,KC_BSPC, KC_END, - // right hand - OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, - TG(_DIABLO), _________________DVORAK_R1_________________, KC_SLSH, - _________________DVORAK_R2_________________, GUI_T(KC_MINS), - TG(_GAMEPAD), _________________DVORAK_R3_________________, KC_MRSF, - ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), - KC_RGUI, CTL_T(KC_ESCAPE), - KC_PGUP, - KC_PGDOWN, KC_DELETE, KC_ENTER +[_DVORAK] = LAYOUT_ergodox_pretty_wrapper( + // left hand // right hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_TAB, _________________DVORAK_L1_________________, TG(_DIABLO), TG(_DIABLO), _________________DVORAK_R1_________________, KC_SLSH, + TG(_MODS), _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, GUI_T(KC_MINS), + KC_MLSF, _________________DVORAK_L3_________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________DVORAK_R3_________________, KC_MRSF, + LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), + ALT_T(KC_APP), KC_LGUI, KC_RGUI, CTL_T(KC_ESCAPE), + KC_HOME, KC_PGUP, + KC_SPACE,KC_BSPC, KC_END, KC_PGDN, KC_DEL, KC_ENTER ), /* Keymap 0: Basic layer * @@ -181,45 +156,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ // If it accepts an argument (i.e, is a function), it doesn't need KC_. // Otherwise, it needs KC_* -[_WORKMAN] = LAYOUT_ergodox_wrapper( +[_WORKMAN] = LAYOUT_ergodox_pretty_wrapper( // left hand - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), - KC_TAB, _________________WORKMAN_L1________________, TG(_DIABLO), - KC_BSPC, _________________WORKMAN_L2________________, - KC_MLSF, _________________WORKMAN_L3________________, TG(_GAMEPAD), - LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, - ALT_T(KC_APP), KC_LGUI, - KC_HOME, - KC_SPACE,KC_BSPC, KC_END, - // right hand - OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - TG(_DIABLO), _________________WORKMAN_R1________________, KC_BSLS, - _________________WORKMAN_R2________________, GUI_T(KC_QUOT), - TG(_GAMEPAD), _________________WORKMAN_R3________________, KC_MRSF, - ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), - KC_RGUI, CTL_T(KC_ESCAPE), - KC_PGUP, - KC_PGDOWN, KC_DELETE, KC_ENTER + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, _________________WORKMAN_L1________________, TG(_DIABLO), TG(_DIABLO), _________________WORKMAN_R1________________, KC_BSLS, + TG(_MODS), _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, GUI_T(KC_QUOT), + KC_MLSF, _________________WORKMAN_L3________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________WORKMAN_R3________________, KC_MRSF, + LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), + ALT_T(KC_APP), KC_LGUI, KC_RGUI, CTL_T(KC_ESCAPE), + KC_HOME, KC_PGUP, + KC_SPACE,KC_BSPC, KC_END, KC_PGDN, KC_DEL, KC_ENTER ), - [_MODS] = LAYOUT_ergodox( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LSFT,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS + [_MODS] = LAYOUT_ergodox_pretty( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, + _______, _______, _______, _______, _______, _______ ), /* Keymap 3: Symbol Layer @@ -243,24 +200,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | DARK |BRITE | BLUE | | | | | * `--------------------' `--------------------' */ - [_SYMB] = LAYOUT_ergodox( - EPRM, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, TG(_MODS), - KC_RESET, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_WORKMAN, - KC_MAKE, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRAVE, - VRSN, KC_PERC, KC_CIRC, KC_LBRACKET,KC_RBRACKET,KC_TILD, KC_COLEMAK, - KC_TRNS, KC_AMPR, KC_ASTR, KC_COLN, KC_SCOLON, - RGB_SMOD, KC_RGB_T, - RGB_HUI, - RGB_M_R, RGB_M_SW, RGB_HUD, - - KC_QWERTY, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_DVORAK, KC_KP_PLUS, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_ASTERISK, KC_F12, - KC_KP_MINUS,KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_SLASH, KC_PSCREEN, - KC_COLEMAK, KC_NUMLOCK, KC_KP_1, KC_KP_2, KC_KP_3, KC_EQUAL, KC_PAUSE, - KC_KP_0, KC_KP_0, KC_KP_DOT, KC_KP_ENTER, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_KP_DOT, KC_KP_0, KC_KP_ENTER + [_SYMB] = LAYOUT_ergodox_pretty( + EPRM, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_QWERTY, KC_QWERTY, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_RESET, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_WORKMAN, KC_DVORAK, KC_PPLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PAST, KC_F12, + KC_MAKE, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRAVE, KC_PMNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_PSLS, KC_PSCREEN, + VRSN, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_COLEMAK, KC_COLEMAK, KC_NLCK, KC_KP_1, KC_KP_2, KC_KP_3, KC_PEQL, KC_PAUSE, + KC_TRNS, KC_AMPR, KC_ASTR, KC_COLN, KC_SCLN, KC_KP_0, KC_KP_0, KC_PDOT, KC_PENT, KC_TRNS, + RGB_SMOD, KC_RGB_T, KC_TRNS, KC_TRNS, + RGB_HUI, KC_TRNS, + RGB_M_R, RGB_M_SW, RGB_HUD, KC_PDOT, KC_KP_0, KC_PENT ), /* Keymap 4: Customized Overwatch Layout @@ -284,24 +232,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | H | | | | | * `--------------------' `--------------------' */ - [_GAMEPAD] = LAYOUT_ergodox( - KC_ESCAPE, KC_TRNS, KC_TRNS, KC_TRNS, HYPR(KC_D), HYPR(KC_Q), HYPR(KC_GRV), - KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, KC_T, - KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, - KC_LCTL, KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_TRNS, - KC_G, KC_U, KC_I, KC_Y, KC_T, - KC_O, KC_P, - KC_LGUI, - KC_V, KC_SPACE, KC_H, - - KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_I, KC_O, KC_NO, KC_NO, KC_NO, KC_NO, - TG(_GAMEPAD), KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO, - KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_NO, - KC_HYPR, MAGIC_TOGGLE_NKRO, - KC_NO, - KC_PGDOWN, KC_DELETE, KC_ENTER + [_GAMEPAD] = LAYOUT_ergodox_pretty( + KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, HYPR(KC_D), HYPR(KC_Q), HYPR(KC_GRV), KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, + KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, KC_I, KC_O, KC_NO, KC_NO, KC_NO, KC_NO, + KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_TRNS, TG(_GAMEPAD), KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO, + KC_G, KC_U, KC_I, KC_Y, KC_T, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, + KC_O, KC_P, KC_HYPR, MAGIC_TOGGLE_NKRO, + KC_LGUI, KC_NO, + KC_V, KC_SPC, KC_H, KC_PGDN, KC_DEL, KC_ENTER ), /* Keymap 3: @@ -325,26 +264,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | SHIFT| ALT | 0MAC | | | | | * `--------------------' `--------------------' */ - [_DIABLO] = LAYOUT_ergodox( - KC_ESCAPE, KC_V, KC_D, KC_LALT, KC_NO, KC_NO, KC_NO, - KC_TAB, KC_S, KC_I, KC_F, KC_M, KC_T, KC_TRNS, - KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, - KC_LCTL, KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, KC_Z, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_L, KC_J, - KC_F, - SFT_T(KC_SPACE), ALT_T(KC_Q), KC_DIABLO_CLEAR, - - - - KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, - KC_NO, - KC_PGDOWN, KC_DELETE, KC_ENTER + [_DIABLO] = LAYOUT_ergodox_pretty( + KC_ESC, KC_V, KC_D, KC_LALT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, + KC_TAB, KC_S, KC_I, KC_F, KC_M, KC_T, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_LCTL, KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, KC_Z, KC_NO, KC_NO, KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_L, KC_J, KC_NO, KC_NO, + KC_F, KC_NO, + SFT_T(KC_SPACE), ALT_T(KC_Q), KC_DIABLO_CLEAR, KC_PGDN, KC_DEL, KC_ENT ), /* Keymap 4: Media and mouse keys @@ -368,24 +296,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | MWDn | | Mclk | | | * `--------------------' `--------------------' */ - [_MOUS] = LAYOUT_ergodox( - KC_NO, KC_SECRET_1,KC_SECRET_2,KC_SECRET_3,KC_SECRET_4,KC_SECRET_5,KC_TRNS, - KC_NO, KC_NO, KC_MS_U, KC_NO, KC_NO, KC_NO, KC_TRNS, - KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO, - KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_NO, KC_NO, KC_TRNS, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, - KC_WH_U, - KC_BTN1, KC_BTN2, KC_WH_D, - - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_NO, KC_NO, - KC_TRNS, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO,KC_NO, - KC_NO, - KC_MS_BTN3,KC_MS_BTN4,KC_MS_BTN5 + [_MOUS] = LAYOUT_ergodox_pretty( + KC_NO, KC_SECRET_1,KC_SECRET_2,KC_SECRET_3,KC_SECRET_4,KC_SECRET_5,KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_MS_U, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO, KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_NO, KC_NO, + KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, + KC_WH_U, KC_NO, + KC_BTN1, KC_BTN2, KC_WH_D, KC_BTN3, KC_BTN4, KC_BTN5 ), }; diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h index 8d32a5f9892f..8a022cd14bd0 100644 --- a/users/drashna/drashna.h +++ b/users/drashna/drashna.h @@ -181,6 +181,7 @@ enum { // arguments, we need a wrapper in order for these definitions to be // expanded before being used as arguments to the LAYOUT_xxx macro. #define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__) +#define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__) #define KEYMAP_wrapper(...) KEYMAP(__VA_ARGS__) From 7a5ce36f23624b29b548f9e8f8e3a0b165cdf2a4 Mon Sep 17 00:00:00 2001 From: snyman Date: Tue, 20 Mar 2018 22:59:54 -0400 Subject: [PATCH 091/578] Add macro for momentarily switching to a layer while some mods are active (#2460) * Macro for a momentary layer switch with mods Passes through to the existing ACTION_LAYER_MODS macro, albeit with more limited options due to lack of space in the quantum_keycodes enum. * Add documentation for LM layer-mod macro * Clean up Tap Toggle documentation --- docs/feature_advanced_keycodes.md | 3 ++- docs/keycodes.md | 17 +++++++++-------- quantum/keymap_common.c | 5 +++++ quantum/quantum_keycodes.h | 5 +++++ 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/docs/feature_advanced_keycodes.md b/docs/feature_advanced_keycodes.md index ceee7fad1836..f61d78d501f4 100644 --- a/docs/feature_advanced_keycodes.md +++ b/docs/feature_advanced_keycodes.md @@ -25,7 +25,8 @@ These functions allow you to activate layers in various ways. * `LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped. * `TG(layer)` - toggles a layer on or off. * `TO(layer)` - Goes to a layer. This code is special, because it lets you go either up or down the stack -- just goes directly to the layer you want. So while other codes only let you go _up_ the stack (from layer 0 to layer 3, for example), `TO(2)` is going to get you to layer 2, no matter where you activate it from -- even if you're currently on layer 5. This gets activated on keydown (as soon as the key is pressed). -* `TT(layer)` - Layer Tap-Toggle. If you hold the key down, the layer becomes active, and then deactivates when you let go. And if you tap it, the layer simply becomes active (toggles on). It needs 5 taps by default, but you can set it by defining `TAPPING_TOGGLE`, for example, `#define TAPPING_TOGGLE 2` for just two taps. +* `TT(layer)` - Layer Tap-Toggle. If you hold the key down, the layer becomes active, and then deactivates when you let go. And if you repeatedly tap it, the layer simply becomes active (toggles on). It needs 5 taps by default, but you can set it by defining `TAPPING_TOGGLE`, for example, `#define TAPPING_TOGGLE 2` for just two taps. +* `LM(layer, mod)` - Momentary switch to *layer* (like MO), but with modifier(s) *mod* active. Only supports layers 0-15 and the left modifiers. # Working with Layers diff --git a/docs/keycodes.md b/docs/keycodes.md index 0f7968e7d719..dad645cf085e 100644 --- a/docs/keycodes.md +++ b/docs/keycodes.md @@ -368,14 +368,15 @@ This is a reference only. Each group of keys links to the page documenting their ## [Switching and Toggling Layers](feature_advanced_keycodes.md#switching-and-toggling-layers) -|Key |Description | -|---------------|----------------------------------------------------------------------------------| -|`LT(layer, kc)`|Turn on `layer` when held, `kc` when tapped | -|`TO(layer)` |Turn on `layer` when pressed | -|`MO(layer)` |Momentarily turn on `layer` when pressed (requires `KC_TRNS` on destination layer)| -|`DF(layer)` |Set the base (default) layer | -|`TG(layer)` |Toggle `layer` on or off | -|`TT(layer)` |Tap toggle? idk FIXME | +|Key |Description | +|----------------|----------------------------------------------------------------------------------| +|`LT(layer, kc)` |Turn on `layer` when held, `kc` when tapped | +|`TO(layer)` |Turn on `layer` when pressed | +|`MO(layer)` |Momentarily turn on `layer` when pressed (requires `KC_TRNS` on destination layer)| +|`DF(layer)` |Set the base (default) layer | +|`TG(layer)` |Toggle `layer` on or off | +|`TT(layer)` |Normally acts like MO unless it's tapped multiple times, which toggles `layer` on | +|`LM(layer, mod)`|Momentarily turn on `layer` (like MO) with `mod` active as well. | ## [One Shot Keys](quantum_keycodes.md#one-shot-keys) diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 8b09f93fced6..9a412b66ade7 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -122,6 +122,11 @@ action_t action_for_key(uint8_t layer, keypos_t key) case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: action.code = ACTION_LAYER_TAP_TOGGLE(keycode & 0xFF); break; + case QK_LAYER_MOD ... QK_LAYER_MOD_MAX: + mod = keycode & 0xF; + action_layer = (keycode >> 4) & 0xF; + action.code = ACTION_LAYER_MODS(action_layer, mod); + break; case QK_MOD_TAP ... QK_MOD_TAP_MAX: mod = mod_config((keycode >> 0x8) & 0x1F); action.code = ACTION_MODS_TAP_KEY(mod, keycode & 0xFF); diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h index 4a5681c7e66a..8122bfe7397d 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h @@ -71,6 +71,8 @@ enum quantum_keycodes { QK_TAP_DANCE_MAX = 0x57FF, QK_LAYER_TAP_TOGGLE = 0x5800, QK_LAYER_TAP_TOGGLE_MAX = 0x58FF, + QK_LAYER_MOD = 0x5900, + QK_LAYER_MOD_MAX = 0x59FF, #ifdef STENO_ENABLE QK_STENO = 0x5A00, QK_STENO_BOLT = 0x5A30, @@ -597,6 +599,9 @@ enum quantum_keycodes { // One-shot layer - 256 layer max #define OSL(layer) (layer | QK_ONE_SHOT_LAYER) +// L-ayer M-od: Momentary switch layer with modifiers active - 16 layer max, left mods only +#define LM(layer, mod) (QK_LAYER_MOD | (((layer) & 0xF) << 4) | ((mod) & 0xF)) + // One-shot mod #define OSM(mod) ((mod) | QK_ONE_SHOT_MOD) From 004df55d7f6b0884e357d728fafe8b887c6a0a7c Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Tue, 20 Mar 2018 20:00:17 -0700 Subject: [PATCH 092/578] Add configurator support (info.json) for Input Club K-Type (#2571) * Add configurator support for Input Club K-Type * update info.json to remove bootloader and add mcu --- keyboards/k_type/info.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 keyboards/k_type/info.json diff --git a/keyboards/k_type/info.json b/keyboards/k_type/info.json new file mode 100644 index 000000000000..efdbec2b0bb4 --- /dev/null +++ b/keyboards/k_type/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "K-Type", + "manufacturer": "Input Club", + "identifier": "", + "url": "", + "maintainer": "qmk", + "processor": "cortex-m4", + "width": 18.25, + "height": 6.5, + "layouts": { + "LAYOUT": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] + } + } +} From 780ff68674fddc82437b593e924532d153d516ce Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Tue, 20 Mar 2018 20:00:47 -0700 Subject: [PATCH 093/578] Create info.json for Ergodox EZ (#2572) * Create info.json for Ergodox EZ * Add Orthodox info.json too --- keyboards/ergodox_ez/info.json | 25 ++++++++++++++++++++++++ keyboards/orthodox/rev1/info.json | 15 ++++++++++++++ keyboards/orthodox/rev3/info.json | 15 ++++++++++++++ keyboards/orthodox/rev3_teensy/info.json | 15 ++++++++++++++ 4 files changed, 70 insertions(+) create mode 100644 keyboards/ergodox_ez/info.json create mode 100644 keyboards/orthodox/rev1/info.json create mode 100644 keyboards/orthodox/rev3/info.json create mode 100644 keyboards/orthodox/rev3_teensy/info.json diff --git a/keyboards/ergodox_ez/info.json b/keyboards/ergodox_ez/info.json new file mode 100644 index 000000000000..6226fca1ad79 --- /dev/null +++ b/keyboards/ergodox_ez/info.json @@ -0,0 +1,25 @@ +{ + "keyboard_name": "ErgoDox EZ", + "manufacturer": "ErgoDox EZ", + "identifier": "FEED:1307:0001", + "url": "ergodox-ez.com", + "maintainer": "erez", + "processor": "atmega32u4", + "bootloader": "halfkay", + "width": 19.5, + "height": 9.375, + "layouts": { + "LAYOUT_ergodox": { + "layout": [{"label":"#", "x":3.5, "y":0}, {"label":"*", "x":15, "y":0}, {"label":"@", "x":2.5, "y":0.125}, {"label":"$", "x":4.5, "y":0.125}, {"label":"&", "x":14, "y":0.125}, {"label":"(", "x":16, "y":0.125}, {"label":"%", "x":5.5, "y":0.25}, {"x":6.5, "y":0.25}, {"x":12, "y":0.25}, {"label":"^", "x":13, "y":0.25}, {"x":0, "y":0.375, "w":1.5}, {"label":"!", "x":1.5, "y":0.375}, {"label":")", "x":17, "y":0.375}, {"x":18, "y":0.375, "w":1.5}, {"label":"E", "x":3.5, "y":1}, {"label":"I", "x":15, "y":1}, {"label":"W", "x":2.5, "y":1.125}, {"label":"R", "x":4.5, "y":1.125}, {"label":"U", "x":14, "y":1.125}, {"label":"O", "x":16, "y":1.125}, {"label":"T", "x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5}, {"x":12, "y":1.25, "h":1.5}, {"label":"Y", "x":13, "y":1.25}, {"x":0, "y":1.375, "w":1.5}, {"label":"Q", "x":1.5, "y":1.375}, {"label":"P", "x":17, "y":1.375}, {"x":18, "y":1.375, "w":1.5}, {"label":"D", "x":3.5, "y":2}, {"label":"K", "x":15, "y":2}, {"label":"S", "x":2.5, "y":2.125}, {"label":"F", "x":4.5, "y":2.125}, {"label":"J", "x":14, "y":2.125}, {"label":"L", "x":16, "y":2.125}, {"label":"G", "x":5.5, "y":2.25}, {"label":"H", "x":13, "y":2.25}, {"x":0, "y":2.375, "w":1.5}, {"label":"A", "x":1.5, "y":2.375}, {"label":":", "x":17, "y":2.375}, {"x":18, "y":2.375, "w":1.5}, {"x":6.5, "y":2.75, "h":1.5}, {"x":12, "y":2.75, "h":1.5}, {"label":"C", "x":3.5, "y":3}, {"label":"<", "x":15, "y":3}, {"label":"X", "x":2.5, "y":3.125}, {"label":"V", "x":4.5, "y":3.125}, {"label":"M", "x":14, "y":3.125}, {"label":">", "x":16, "y":3.125}, {"label":"B", "x":5.5, "y":3.25}, {"label":"N", "x":13, "y":3.25}, {"x":0, "y":3.375, "w":1.5}, {"label":"Z", "x":1.5, "y":3.375}, {"label":"?", "x":17, "y":3.375}, {"x":18, "y":3.375, "w":1.5}, {"x":3.5, "y":4}, {"x":15, "y":4}, {"x":2.5, "y":4.125}, {"x":4.5, "y":4.125}, {"x":14, "y":4.125}, {"x":16, "y":4.125}, {"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":17, "y":4.375}, {"x":18, "y":4.375}, {"x":1, "y":4.375}, {"x":2, "y":4.375}, {"x":0, "y":5.375, "h":2}, {"x":1, "y":5.375, "h":2}, {"x":2, "y":5.375}, {"x":2, "y":6.375}, {"x":-3.0, "y":6.375}, {"x":-2, "y":6.375}, {"x":-3.0, "y":7.375}, {"x":-2, "y":7.375, "h":2}, {"x":-1.0, "y":7.375, "h":2}, {"x":-3.0, "y":8.375}] + } + "LAYOUT_ergodox_pretty": { + "layout": [{"label":"#", "x":3.5, "y":0}, {"label":"*", "x":15, "y":0}, {"label":"@", "x":2.5, "y":0.125}, {"label":"$", "x":4.5, "y":0.125}, {"label":"&", "x":14, "y":0.125}, {"label":"(", "x":16, "y":0.125}, {"label":"%", "x":5.5, "y":0.25}, {"x":6.5, "y":0.25}, {"x":12, "y":0.25}, {"label":"^", "x":13, "y":0.25}, {"x":0, "y":0.375, "w":1.5}, {"label":"!", "x":1.5, "y":0.375}, {"label":")", "x":17, "y":0.375}, {"x":18, "y":0.375, "w":1.5}, {"label":"E", "x":3.5, "y":1}, {"label":"I", "x":15, "y":1}, {"label":"W", "x":2.5, "y":1.125}, {"label":"R", "x":4.5, "y":1.125}, {"label":"U", "x":14, "y":1.125}, {"label":"O", "x":16, "y":1.125}, {"label":"T", "x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5}, {"x":12, "y":1.25, "h":1.5}, {"label":"Y", "x":13, "y":1.25}, {"x":0, "y":1.375, "w":1.5}, {"label":"Q", "x":1.5, "y":1.375}, {"label":"P", "x":17, "y":1.375}, {"x":18, "y":1.375, "w":1.5}, {"label":"D", "x":3.5, "y":2}, {"label":"K", "x":15, "y":2}, {"label":"S", "x":2.5, "y":2.125}, {"label":"F", "x":4.5, "y":2.125}, {"label":"J", "x":14, "y":2.125}, {"label":"L", "x":16, "y":2.125}, {"label":"G", "x":5.5, "y":2.25}, {"label":"H", "x":13, "y":2.25}, {"x":0, "y":2.375, "w":1.5}, {"label":"A", "x":1.5, "y":2.375}, {"label":":", "x":17, "y":2.375}, {"x":18, "y":2.375, "w":1.5}, {"x":6.5, "y":2.75, "h":1.5}, {"x":12, "y":2.75, "h":1.5}, {"label":"C", "x":3.5, "y":3}, {"label":"<", "x":15, "y":3}, {"label":"X", "x":2.5, "y":3.125}, {"label":"V", "x":4.5, "y":3.125}, {"label":"M", "x":14, "y":3.125}, {"label":">", "x":16, "y":3.125}, {"label":"B", "x":5.5, "y":3.25}, {"label":"N", "x":13, "y":3.25}, {"x":0, "y":3.375, "w":1.5}, {"label":"Z", "x":1.5, "y":3.375}, {"label":"?", "x":17, "y":3.375}, {"x":18, "y":3.375, "w":1.5}, {"x":3.5, "y":4}, {"x":15, "y":4}, {"x":2.5, "y":4.125}, {"x":4.5, "y":4.125}, {"x":14, "y":4.125}, {"x":16, "y":4.125}, {"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":17, "y":4.375}, {"x":18, "y":4.375}, {"x":1, "y":4.375}, {"x":2, "y":4.375}, {"x":0, "y":5.375, "h":2}, {"x":1, "y":5.375, "h":2}, {"x":2, "y":5.375}, {"x":2, "y":6.375}, {"x":-3.0, "y":6.375}, {"x":-2, "y":6.375}, {"x":-3.0, "y":7.375}, {"x":-2, "y":7.375, "h":2}, {"x":-1.0, "y":7.375, "h":2}, {"x":-3.0, "y":8.375}] + } + "KEYMAP_80": { + "layout": [{"label":"#", "x":3.5, "y":0}, {"label":"*", "x":15, "y":0}, {"label":"@", "x":2.5, "y":0.125}, {"label":"$", "x":4.5, "y":0.125}, {"label":"&", "x":14, "y":0.125}, {"label":"(", "x":16, "y":0.125}, {"label":"%", "x":5.5, "y":0.25}, {"x":6.5, "y":0.25}, {"x":12, "y":0.25}, {"label":"^", "x":13, "y":0.25}, {"x":0, "y":0.375, "w":1.5}, {"label":"!", "x":1.5, "y":0.375}, {"label":")", "x":17, "y":0.375}, {"x":18, "y":0.375, "w":1.5}, {"label":"E", "x":3.5, "y":1}, {"label":"I", "x":15, "y":1}, {"label":"W", "x":2.5, "y":1.125}, {"label":"R", "x":4.5, "y":1.125}, {"label":"U", "x":14, "y":1.125}, {"label":"O", "x":16, "y":1.125}, {"label":"T", "x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5}, {"x":12, "y":1.25, "h":1.5}, {"label":"Y", "x":13, "y":1.25}, {"x":0, "y":1.375, "w":1.5}, {"label":"Q", "x":1.5, "y":1.375}, {"label":"P", "x":17, "y":1.375}, {"x":18, "y":1.375, "w":1.5}, {"label":"D", "x":3.5, "y":2}, {"label":"K", "x":15, "y":2}, {"label":"S", "x":2.5, "y":2.125}, {"label":"F", "x":4.5, "y":2.125}, {"label":"J", "x":14, "y":2.125}, {"label":"L", "x":16, "y":2.125}, {"label":"G", "x":5.5, "y":2.25}, {"label":"H", "x":13, "y":2.25}, {"x":0, "y":2.375, "w":1.5}, {"label":"A", "x":1.5, "y":2.375}, {"label":":", "x":17, "y":2.375}, {"x":18, "y":2.375, "w":1.5}, {"x":6.5, "y":2.75, "h":1.5}, {"x":12, "y":2.75, "h":1.5}, {"label":"C", "x":3.5, "y":3}, {"label":"<", "x":15, "y":3}, {"label":"X", "x":2.5, "y":3.125}, {"label":"V", "x":4.5, "y":3.125}, {"label":"M", "x":14, "y":3.125}, {"label":">", "x":16, "y":3.125}, {"label":"B", "x":5.5, "y":3.25}, {"label":"N", "x":13, "y":3.25}, {"x":0, "y":3.375, "w":1.5}, {"label":"Z", "x":1.5, "y":3.375}, {"label":"?", "x":17, "y":3.375}, {"x":18, "y":3.375, "w":1.5}, {"x":3.5, "y":4}, {"x":15, "y":4}, {"x":2.5, "y":4.125}, {"x":4.5, "y":4.125}, {"x":14, "y":4.125}, {"x":16, "y":4.125}, {"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":17, "y":4.375}, {"x":18, "y":4.375}, {"x":1, "y":4.375}, {"x":2, "y":4.375}, {"x":0, "y":5.375}, {"x":1, "y":5.375}, {"x":2, "y":5.375}, {"x":0, "y":6.375}, {"x":1, "y":6.375}, {"x":2, "y":6.375}, {"x":-3.0, "y":6.375}, {"x":-2, "y":6.375}, {"x":-3.0, "y":7.375}, {"x":-2, "y":7.375}, {"x":-1.0, "y":7.375}, {"x":-3.0, "y":8.375}, {"x":-2, "y":8.375}, {"x":-1.0, "y":8.375}] + } + "KEYMAP_PRETTY_80": { + "layout": [{"label":"#", "x":3.5, "y":0}, {"label":"*", "x":15, "y":0}, {"label":"@", "x":2.5, "y":0.125}, {"label":"$", "x":4.5, "y":0.125}, {"label":"&", "x":14, "y":0.125}, {"label":"(", "x":16, "y":0.125}, {"label":"%", "x":5.5, "y":0.25}, {"x":6.5, "y":0.25}, {"x":12, "y":0.25}, {"label":"^", "x":13, "y":0.25}, {"x":0, "y":0.375, "w":1.5}, {"label":"!", "x":1.5, "y":0.375}, {"label":")", "x":17, "y":0.375}, {"x":18, "y":0.375, "w":1.5}, {"label":"E", "x":3.5, "y":1}, {"label":"I", "x":15, "y":1}, {"label":"W", "x":2.5, "y":1.125}, {"label":"R", "x":4.5, "y":1.125}, {"label":"U", "x":14, "y":1.125}, {"label":"O", "x":16, "y":1.125}, {"label":"T", "x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5}, {"x":12, "y":1.25, "h":1.5}, {"label":"Y", "x":13, "y":1.25}, {"x":0, "y":1.375, "w":1.5}, {"label":"Q", "x":1.5, "y":1.375}, {"label":"P", "x":17, "y":1.375}, {"x":18, "y":1.375, "w":1.5}, {"label":"D", "x":3.5, "y":2}, {"label":"K", "x":15, "y":2}, {"label":"S", "x":2.5, "y":2.125}, {"label":"F", "x":4.5, "y":2.125}, {"label":"J", "x":14, "y":2.125}, {"label":"L", "x":16, "y":2.125}, {"label":"G", "x":5.5, "y":2.25}, {"label":"H", "x":13, "y":2.25}, {"x":0, "y":2.375, "w":1.5}, {"label":"A", "x":1.5, "y":2.375}, {"label":":", "x":17, "y":2.375}, {"x":18, "y":2.375, "w":1.5}, {"x":6.5, "y":2.75, "h":1.5}, {"x":12, "y":2.75, "h":1.5}, {"label":"C", "x":3.5, "y":3}, {"label":"<", "x":15, "y":3}, {"label":"X", "x":2.5, "y":3.125}, {"label":"V", "x":4.5, "y":3.125}, {"label":"M", "x":14, "y":3.125}, {"label":">", "x":16, "y":3.125}, {"label":"B", "x":5.5, "y":3.25}, {"label":"N", "x":13, "y":3.25}, {"x":0, "y":3.375, "w":1.5}, {"label":"Z", "x":1.5, "y":3.375}, {"label":"?", "x":17, "y":3.375}, {"x":18, "y":3.375, "w":1.5}, {"x":3.5, "y":4}, {"x":15, "y":4}, {"x":2.5, "y":4.125}, {"x":4.5, "y":4.125}, {"x":14, "y":4.125}, {"x":16, "y":4.125}, {"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":17, "y":4.375}, {"x":18, "y":4.375}, {"x":1, "y":4.375}, {"x":2, "y":4.375}, {"x":0, "y":5.375}, {"x":1, "y":5.375}, {"x":2, "y":5.375}, {"x":0, "y":6.375}, {"x":1, "y":6.375}, {"x":2, "y":6.375}, {"x":-3.0, "y":6.375}, {"x":-2, "y":6.375}, {"x":-3.0, "y":7.375}, {"x":-2, "y":7.375}, {"x":-1.0, "y":7.375}, {"x":-3.0, "y":8.375}, {"x":-2, "y":8.375}, {"x":-1.0, "y":8.375}] + } + } +} diff --git a/keyboards/orthodox/rev1/info.json b/keyboards/orthodox/rev1/info.json new file mode 100644 index 000000000000..e95502fd1802 --- /dev/null +++ b/keyboards/orthodox/rev1/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "Monkeebs Orthodox Rev.1", + "manufacturer": "deductivemonkee", + "identifier": "FEED:3060:0001", + "maintainer": "qmk", + "processor": "atmega32u4", + "bootloader": "caterina", + "width": 17, + "height": 17.24, + "layouts": { + "KEYMAP": { + "layout": [{"label":"", "x":0, "y":0}, {"label":"", "x":1, "y":0}, {"label":"", "x":2, "y":0}, {"label":"", "x":3, "y":0}, {"label":"", "x":4, "y":0}, {"label":"", "x":5, "y":0}, {"label":"", "x":11, "y":0}, {"label":"", "x":12, "y":0}, {"label":"", "x":13, "y":0}, {"label":"", "x":14, "y":0}, {"label":"", "x":15, "y":0}, {"label":"Back Space", "x":16, "y":0}, {"label":"", "x":0, "y":1}, {"label":"", "x":1, "y":1}, {"label":"", "x":2, "y":1}, {"label":"", "x":3, "y":1}, {"label":"", "x":4, "y":1}, {"label":"", "x":5, "y":1}, {"label":"", "x":11, "y":1}, {"label":"", "x":12, "y":1}, {"label":"", "x":13, "y":1}, {"label":"", "x":14, "y":1}, {"label":"", "x":15, "y":1}, {"label":"", "x":16, "y":1}, {"label":"Ctrl_L", "x":0, "y":2}, {"label":"", "x":1, "y":2}, {"label":"", "x":2, "y":2}, {"label":"", "x":3, "y":2}, {"label":"", "x":4, "y":2}, {"label":"", "x":5, "y":2}, {"label":"", "x":11, "y":2}, {"label":"", "x":12, "y":2}, {"label":",", "x":13, "y":2}, {"label":".", "x":14, "y":2}, {"label":"", "x":15, "y":2}, {"label":"GUI_L", "x":16, "y":2}, {"label":"RAISE", "x":-0.25, "y":7.12, "w":1.25}, {"label":"", "x":-1.25, "y":8.12, "w":1.25}, {"label":"Shift_L Space", "x":0, "y":8.12}, {"label":"up ↑", "x":-1.25, "y":9.12, "w":1.25}, {"label":"Alt_R", "x":0, "y":9.12}, {"label":"LOWER", "x":-1.0, "y":14.24, "w":1.25}, {"label":"Back Space", "x":-1.0, "y":15.24}, {"label":"", "x":0, "y":15.24, "w":1.25}, {"label":"Enter", "x":-1.0, "y":16.24}, {"label":"↓ down", "x":0, "y":16.24, "w":1.25}] + } + } +} diff --git a/keyboards/orthodox/rev3/info.json b/keyboards/orthodox/rev3/info.json new file mode 100644 index 000000000000..d34e74d3ae03 --- /dev/null +++ b/keyboards/orthodox/rev3/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "Monkeebs Orthodox Rev.3", + "manufacturer": "deductivemonkee", + "identifier": "FEED:3060:0001", + "maintainer": "qmk", + "processor": "atmega32u4", + "bootloader": "caterina", + "width": 17, + "height": 17.24, + "layouts": { + "KEYMAP": { + "layout": [{"label":"", "x":0, "y":0}, {"label":"", "x":1, "y":0}, {"label":"", "x":2, "y":0}, {"label":"", "x":3, "y":0}, {"label":"", "x":4, "y":0}, {"label":"", "x":5, "y":0}, {"label":"", "x":11, "y":0}, {"label":"", "x":12, "y":0}, {"label":"", "x":13, "y":0}, {"label":"", "x":14, "y":0}, {"label":"", "x":15, "y":0}, {"label":"Back Space", "x":16, "y":0}, {"label":"", "x":0, "y":1}, {"label":"", "x":1, "y":1}, {"label":"", "x":2, "y":1}, {"label":"", "x":3, "y":1}, {"label":"", "x":4, "y":1}, {"label":"", "x":5, "y":1}, {"label":"", "x":11, "y":1}, {"label":"", "x":12, "y":1}, {"label":"", "x":13, "y":1}, {"label":"", "x":14, "y":1}, {"label":"", "x":15, "y":1}, {"label":"", "x":16, "y":1}, {"label":"Ctrl_L", "x":0, "y":2}, {"label":"", "x":1, "y":2}, {"label":"", "x":2, "y":2}, {"label":"", "x":3, "y":2}, {"label":"", "x":4, "y":2}, {"label":"", "x":5, "y":2}, {"label":"", "x":11, "y":2}, {"label":"", "x":12, "y":2}, {"label":",", "x":13, "y":2}, {"label":".", "x":14, "y":2}, {"label":"", "x":15, "y":2}, {"label":"GUI_L", "x":16, "y":2}, {"label":"RAISE", "x":-0.25, "y":7.12, "w":1.25}, {"label":"", "x":-1.25, "y":8.12, "w":1.25}, {"label":"Shift_L Space", "x":0, "y":8.12}, {"label":"up ↑", "x":-1.25, "y":9.12, "w":1.25}, {"label":"Alt_R", "x":0, "y":9.12}, {"label":"LOWER", "x":-1.0, "y":14.24, "w":1.25}, {"label":"Back Space", "x":-1.0, "y":15.24}, {"label":"", "x":0, "y":15.24, "w":1.25}, {"label":"Enter", "x":-1.0, "y":16.24}, {"label":"↓ down", "x":0, "y":16.24, "w":1.25}] + } + } +} diff --git a/keyboards/orthodox/rev3_teensy/info.json b/keyboards/orthodox/rev3_teensy/info.json new file mode 100644 index 000000000000..d85298fe2732 --- /dev/null +++ b/keyboards/orthodox/rev3_teensy/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "Monkeebs Orthodox Rev.3", + "manufacturer": "deductivemonkee", + "identifier": "FEED:3060:0001", + "maintainer": "qmk", + "processor": "atmega32u4", + "bootloader": "halfkay", + "width": 17, + "height": 17.24, + "layouts": { + "KEYMAP": { + "layout": [{"label":"", "x":0, "y":0}, {"label":"", "x":1, "y":0}, {"label":"", "x":2, "y":0}, {"label":"", "x":3, "y":0}, {"label":"", "x":4, "y":0}, {"label":"", "x":5, "y":0}, {"label":"", "x":11, "y":0}, {"label":"", "x":12, "y":0}, {"label":"", "x":13, "y":0}, {"label":"", "x":14, "y":0}, {"label":"", "x":15, "y":0}, {"label":"Back Space", "x":16, "y":0}, {"label":"", "x":0, "y":1}, {"label":"", "x":1, "y":1}, {"label":"", "x":2, "y":1}, {"label":"", "x":3, "y":1}, {"label":"", "x":4, "y":1}, {"label":"", "x":5, "y":1}, {"label":"", "x":11, "y":1}, {"label":"", "x":12, "y":1}, {"label":"", "x":13, "y":1}, {"label":"", "x":14, "y":1}, {"label":"", "x":15, "y":1}, {"label":"", "x":16, "y":1}, {"label":"Ctrl_L", "x":0, "y":2}, {"label":"", "x":1, "y":2}, {"label":"", "x":2, "y":2}, {"label":"", "x":3, "y":2}, {"label":"", "x":4, "y":2}, {"label":"", "x":5, "y":2}, {"label":"", "x":11, "y":2}, {"label":"", "x":12, "y":2}, {"label":",", "x":13, "y":2}, {"label":".", "x":14, "y":2}, {"label":"", "x":15, "y":2}, {"label":"GUI_L", "x":16, "y":2}, {"label":"RAISE", "x":-0.25, "y":7.12, "w":1.25}, {"label":"", "x":-1.25, "y":8.12, "w":1.25}, {"label":"Shift_L Space", "x":0, "y":8.12}, {"label":"up ↑", "x":-1.25, "y":9.12, "w":1.25}, {"label":"Alt_R", "x":0, "y":9.12}, {"label":"LOWER", "x":-1.0, "y":14.24, "w":1.25}, {"label":"Back Space", "x":-1.0, "y":15.24}, {"label":"", "x":0, "y":15.24, "w":1.25}, {"label":"Enter", "x":-1.0, "y":16.24}, {"label":"↓ down", "x":0, "y":16.24, "w":1.25}] + } + } +} From 63b1946bfe0c66482b63ce78ff18f6be4e147bdf Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Tue, 20 Mar 2018 20:01:03 -0700 Subject: [PATCH 094/578] Configurator support for minivan (tv44) (#2573) Support all 4 layouts supported by the tv44 pcb. --- keyboards/tv44/info.json | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 keyboards/tv44/info.json diff --git a/keyboards/tv44/info.json b/keyboards/tv44/info.json new file mode 100644 index 000000000000..9065f2c2c208 --- /dev/null +++ b/keyboards/tv44/info.json @@ -0,0 +1,28 @@ +{ + "keyboard_name": "tv44", + "manufacturer": "The Van Keyboards", + "identifier": "", + "url": "", + "maintainer": "qmk", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "width": 12.75, + "height": 4, + "layouts": { + "KEYMAP": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"|", "x":11, "y":0, "w":1.75}, {"label":"Caps Lock", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":":", "x":10.25, "y":1}, {"label":"\"", "x":11.25, "y":1, "w":1.5}, {"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"?", "x":10.75, "y":2}, {"x":11.75, "y":2}, {"label":"Ctrl", "x":0, "y":3, "w":1.25}, {"label":"Win", "x":1.25, "y":3, "w":1.5}, {"label":"Alt", "x":2.75, "y":3, "w":1.25}, {"x":4, "y":3, "w":2.25}, {"x":6.25, "y":3, "w":2}, {"label":"Alt", "x":8.25, "y":3, "w":1.25}, {"label":"Win", "x":9.5, "y":3, "w":1.5}, {"label":"Menu", "x":11, "y":3, "w":1.75}] + }, + + "KEYMAP_ARROW": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"|", "x":11, "y":0, "w":1.75}, {"label":"Caps Lock", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":":", "x":10.25, "y":1}, {"label":"\"", "x":11.25, "y":1, "w":1.5}, {"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"?", "x":10.75, "y":2}, {"x":11.75, "y":2}, {"label":"Ctrl", "x":0, "y":3, "w":1.25}, {"label":"Win", "x":1.25, "y":3, "w":1.5}, {"label":"Alt", "x":2.75, "y":3, "w":1.25}, {"x":4, "y":3, "w":2.25}, {"x":6.25, "y":3, "w":2}, {"x":8.25, "y":3, "w":1.5}, {"label":"Alt", "x":9.75, "y":3}, {"label":"Win", "x":10.75, "y":3}, {"label":"Menu", "x":11.75, "y":3}] + }, + + "KEYMAP_COMMAND": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"|", "x":11, "y":0, "w":1.75}, {"label":"Caps Lock", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":":", "x":10.25, "y":1}, {"label":"\"", "x":11.25, "y":1, "w":1.5}, {"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"?", "x":10.75, "y":2}, {"x":11.75, "y":2}, {"label":"Ctrl", "x":0, "y":3}, {"label":"Win", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3, "w":2.25}, {"x":6.25, "y":3, "w":2}, {"x":8.25, "y":3, "w":1.5}, {"label":"Alt", "x":9.75, "y":3, "w":1.5}, {"label":"Win", "x":11.25, "y":3, "w":1.5}] + }, + + "KEYMAP_ARROW_COMMAND": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"|", "x":11, "y":0, "w":1.75}, {"label":"Caps Lock", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":":", "x":10.25, "y":1}, {"label":"\"", "x":11.25, "y":1, "w":1.5}, {"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"?", "x":10.75, "y":2}, {"x":11.75, "y":2}, {"label":"Ctrl", "x":0, "y":3}, {"label":"Win", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3, "w":2.25}, {"x":6.25, "y":3, "w":2}, {"x":8.25, "y":3, "w":1.5}, {"label":"Alt", "x":9.75, "y":3}, {"label":"Win", "x":10.75, "y":3}, {"label":"Menu", "x":11.75, "y":3}] + } + } +} From e021f4437876dfa6a88acf4c14e5acc069aab617 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Wed, 21 Mar 2018 00:08:54 -0700 Subject: [PATCH 095/578] Update info.json (#2574) Change name from LAYOUT to KEYMAP. --- keyboards/k_type/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/k_type/info.json b/keyboards/k_type/info.json index efdbec2b0bb4..a168f63d2a23 100644 --- a/keyboards/k_type/info.json +++ b/keyboards/k_type/info.json @@ -8,7 +8,7 @@ "width": 18.25, "height": 6.5, "layouts": { - "LAYOUT": { + "KEYMAP": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] } } From 971b8370095018947ed991e3a6a4be66c48382b4 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Wed, 21 Mar 2018 00:09:12 -0700 Subject: [PATCH 096/578] Edit info.json (#2575) GH60 had the ansi layout taken care of. This commit adds hhkb, iso, and the "basic" KEYMAP layout. --- keyboards/gh60/info.json | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/keyboards/gh60/info.json b/keyboards/gh60/info.json index aed31f751eb2..04206aa182b9 100644 --- a/keyboards/gh60/info.json +++ b/keyboards/gh60/info.json @@ -1,17 +1,29 @@ { - "keyboard_name": "GH60", - "identifier": "FEED:6060:0001", + "keyboard_name": "GH60", + "identifier": "FEED:6060:0001", "layouts": { + "KEYMAP": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"label":"Menu", "x":12, "y":4}, {"label":"Ctrl", "x":13, "y":4}, {"x":14, "y":4}] + }, + "LAYOUT_60_ansi": { "layout": [{"x":0, "y":0, "label":"~"}, {"x":1, "y":0, "label":"!"}, {"x":2, "y":0, "label":"@"}, {"x":3, "y":0, "label":"#"}, {"x":4, "y":0, "label":"$"}, {"x":5, "y":0, "label":"%"}, {"x":6, "y":0, "label":"^"}, {"x":7, "y":0, "label":"&"}, {"x":8, "y":0, "label":"*"}, {"x":9, "y":0, "label":"("}, {"x":10, "y":0, "label":")"}, {"x":11, "y":0, "label":"_"}, {"x":12, "y":0, "label":"+"}, {"x":13, "y":0, "label":"Backspace", "w":2}, {"x":0, "y":1, "label":"Tab", "w":1.5}, {"x":1.5, "y":1, "label":"Q"}, {"x":2.5, "y":1, "label":"W"}, {"x":3.5, "y":1, "label":"E"}, {"x":4.5, "y":1, "label":"R"}, {"x":5.5, "y":1, "label":"T"}, {"x":6.5, "y":1, "label":"Y"}, {"x":7.5, "y":1, "label":"U"}, {"x":8.5, "y":1, "label":"I"}, {"x":9.5, "y":1, "label":"O"}, {"x":10.5, "y":1, "label":"P"}, {"x":11.5, "y":1, "label":"{"}, {"x":12.5, "y":1, "label":"}"}, {"x":13.5, "y":1, "label":"|", "w":1.5}, {"x":0, "y":2, "label":"Caps Lock", "w":1.75}, {"x":1.75, "y":2, "label":"A"}, {"x":2.75, "y":2, "label":"S"}, {"x":3.75, "y":2, "label":"D"}, {"x":4.75, "y":2, "label":"F"}, {"x":5.75, "y":2, "label":"G"}, {"x":6.75, "y":2, "label":"H"}, {"x":7.75, "y":2, "label":"J"}, {"x":8.75, "y":2, "label":"K"}, {"x":9.75, "y":2, "label":"L"}, {"x":10.75, "y":2, "label":":"}, {"x":11.75, "y":2, "label":"\""}, {"x":12.75, "y":2, "label":"Enter", "w":2.25}, {"x":0, "y":3, "label":"Shift", "w":2.25}, {"x":2.25, "y":3, "label":"Z"}, {"x":3.25, "y":3, "label":"X"}, {"x":4.25, "y":3, "label":"C"}, {"x":5.25, "y":3, "label":"V"}, {"x":6.25, "y":3, "label":"B"}, {"x":7.25, "y":3, "label":"N"}, {"x":8.25, "y":3, "label":"M"}, {"x":9.25, "y":3, "label":"<"}, {"x":10.25, "y":3, "label":">"}, {"x":11.25, "y":3, "label":"?"}, {"x":12.25, "y":3, "label":"Shift", "w":2.75}, {"x":0, "y":4, "label":"Ctrl", "w":1.25}, {"x":1.25, "y":4, "label":"Win", "w":1.25}, {"x":2.5, "y":4, "label":"Alt", "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "label":"Alt", "w":1.25}, {"x":11.25, "y":4, "label":"Win", "w":1.25}, {"x":12.5, "y":4, "label":"Menu", "w":1.25}, {"x":13.75, "y":4, "label":"Ctrl", "w":1.25}] + }, + + "LAYOUT_60_iso": { + "layout": [{"label":"\u00ac", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + }, + + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":6}, {"label":"Alt", "x":10, "y":4, "w":1.5}, {"label":"Win", "x":11.5, "y":4}, {"label":"Menu", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] } - }, - "maintainer": "qmk", - "keyboard_folder": "gh60", - "width": 15, - "bootloader": "atmel-dfu", - "processor": "atmega32u4", - "height": 5, - "url": "http://qmk.fm/keyboards/gh60", + }, + "maintainer": "qmk", + "keyboard_folder": "gh60", + "width": 15, + "bootloader": "atmel-dfu", + "processor": "atmega32u4", + "height": 5, + "url": "http://qmk.fm/keyboards/gh60", "manufacturer": "geekhack" } From f7505ef67c10235e158c408f22b8991ddde72773 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Wed, 21 Mar 2018 00:09:28 -0700 Subject: [PATCH 097/578] Update info.json for orthodox (#2576) --- keyboards/orthodox/rev1/info.json | 2 +- keyboards/orthodox/rev3/info.json | 2 +- keyboards/orthodox/rev3_teensy/info.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/orthodox/rev1/info.json b/keyboards/orthodox/rev1/info.json index e95502fd1802..becc295d5275 100644 --- a/keyboards/orthodox/rev1/info.json +++ b/keyboards/orthodox/rev1/info.json @@ -9,7 +9,7 @@ "height": 17.24, "layouts": { "KEYMAP": { - "layout": [{"label":"", "x":0, "y":0}, {"label":"", "x":1, "y":0}, {"label":"", "x":2, "y":0}, {"label":"", "x":3, "y":0}, {"label":"", "x":4, "y":0}, {"label":"", "x":5, "y":0}, {"label":"", "x":11, "y":0}, {"label":"", "x":12, "y":0}, {"label":"", "x":13, "y":0}, {"label":"", "x":14, "y":0}, {"label":"", "x":15, "y":0}, {"label":"Back Space", "x":16, "y":0}, {"label":"", "x":0, "y":1}, {"label":"", "x":1, "y":1}, {"label":"", "x":2, "y":1}, {"label":"", "x":3, "y":1}, {"label":"", "x":4, "y":1}, {"label":"", "x":5, "y":1}, {"label":"", "x":11, "y":1}, {"label":"", "x":12, "y":1}, {"label":"", "x":13, "y":1}, {"label":"", "x":14, "y":1}, {"label":"", "x":15, "y":1}, {"label":"", "x":16, "y":1}, {"label":"Ctrl_L", "x":0, "y":2}, {"label":"", "x":1, "y":2}, {"label":"", "x":2, "y":2}, {"label":"", "x":3, "y":2}, {"label":"", "x":4, "y":2}, {"label":"", "x":5, "y":2}, {"label":"", "x":11, "y":2}, {"label":"", "x":12, "y":2}, {"label":",", "x":13, "y":2}, {"label":".", "x":14, "y":2}, {"label":"", "x":15, "y":2}, {"label":"GUI_L", "x":16, "y":2}, {"label":"RAISE", "x":-0.25, "y":7.12, "w":1.25}, {"label":"", "x":-1.25, "y":8.12, "w":1.25}, {"label":"Shift_L Space", "x":0, "y":8.12}, {"label":"up ↑", "x":-1.25, "y":9.12, "w":1.25}, {"label":"Alt_R", "x":0, "y":9.12}, {"label":"LOWER", "x":-1.0, "y":14.24, "w":1.25}, {"label":"Back Space", "x":-1.0, "y":15.24}, {"label":"", "x":0, "y":15.24, "w":1.25}, {"label":"Enter", "x":-1.0, "y":16.24}, {"label":"↓ down", "x":0, "y":16.24, "w":1.25}] + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":16, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":15, "y":1}, {"x":16, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":15, "y":2}, {"x":16, "y":2}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}] } } } diff --git a/keyboards/orthodox/rev3/info.json b/keyboards/orthodox/rev3/info.json index d34e74d3ae03..6c4c4c611c8e 100644 --- a/keyboards/orthodox/rev3/info.json +++ b/keyboards/orthodox/rev3/info.json @@ -9,7 +9,7 @@ "height": 17.24, "layouts": { "KEYMAP": { - "layout": [{"label":"", "x":0, "y":0}, {"label":"", "x":1, "y":0}, {"label":"", "x":2, "y":0}, {"label":"", "x":3, "y":0}, {"label":"", "x":4, "y":0}, {"label":"", "x":5, "y":0}, {"label":"", "x":11, "y":0}, {"label":"", "x":12, "y":0}, {"label":"", "x":13, "y":0}, {"label":"", "x":14, "y":0}, {"label":"", "x":15, "y":0}, {"label":"Back Space", "x":16, "y":0}, {"label":"", "x":0, "y":1}, {"label":"", "x":1, "y":1}, {"label":"", "x":2, "y":1}, {"label":"", "x":3, "y":1}, {"label":"", "x":4, "y":1}, {"label":"", "x":5, "y":1}, {"label":"", "x":11, "y":1}, {"label":"", "x":12, "y":1}, {"label":"", "x":13, "y":1}, {"label":"", "x":14, "y":1}, {"label":"", "x":15, "y":1}, {"label":"", "x":16, "y":1}, {"label":"Ctrl_L", "x":0, "y":2}, {"label":"", "x":1, "y":2}, {"label":"", "x":2, "y":2}, {"label":"", "x":3, "y":2}, {"label":"", "x":4, "y":2}, {"label":"", "x":5, "y":2}, {"label":"", "x":11, "y":2}, {"label":"", "x":12, "y":2}, {"label":",", "x":13, "y":2}, {"label":".", "x":14, "y":2}, {"label":"", "x":15, "y":2}, {"label":"GUI_L", "x":16, "y":2}, {"label":"RAISE", "x":-0.25, "y":7.12, "w":1.25}, {"label":"", "x":-1.25, "y":8.12, "w":1.25}, {"label":"Shift_L Space", "x":0, "y":8.12}, {"label":"up ↑", "x":-1.25, "y":9.12, "w":1.25}, {"label":"Alt_R", "x":0, "y":9.12}, {"label":"LOWER", "x":-1.0, "y":14.24, "w":1.25}, {"label":"Back Space", "x":-1.0, "y":15.24}, {"label":"", "x":0, "y":15.24, "w":1.25}, {"label":"Enter", "x":-1.0, "y":16.24}, {"label":"↓ down", "x":0, "y":16.24, "w":1.25}] + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":16, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":15, "y":1}, {"x":16, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":15, "y":2}, {"x":16, "y":2}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}] } } } diff --git a/keyboards/orthodox/rev3_teensy/info.json b/keyboards/orthodox/rev3_teensy/info.json index d85298fe2732..1720b43d526a 100644 --- a/keyboards/orthodox/rev3_teensy/info.json +++ b/keyboards/orthodox/rev3_teensy/info.json @@ -9,7 +9,7 @@ "height": 17.24, "layouts": { "KEYMAP": { - "layout": [{"label":"", "x":0, "y":0}, {"label":"", "x":1, "y":0}, {"label":"", "x":2, "y":0}, {"label":"", "x":3, "y":0}, {"label":"", "x":4, "y":0}, {"label":"", "x":5, "y":0}, {"label":"", "x":11, "y":0}, {"label":"", "x":12, "y":0}, {"label":"", "x":13, "y":0}, {"label":"", "x":14, "y":0}, {"label":"", "x":15, "y":0}, {"label":"Back Space", "x":16, "y":0}, {"label":"", "x":0, "y":1}, {"label":"", "x":1, "y":1}, {"label":"", "x":2, "y":1}, {"label":"", "x":3, "y":1}, {"label":"", "x":4, "y":1}, {"label":"", "x":5, "y":1}, {"label":"", "x":11, "y":1}, {"label":"", "x":12, "y":1}, {"label":"", "x":13, "y":1}, {"label":"", "x":14, "y":1}, {"label":"", "x":15, "y":1}, {"label":"", "x":16, "y":1}, {"label":"Ctrl_L", "x":0, "y":2}, {"label":"", "x":1, "y":2}, {"label":"", "x":2, "y":2}, {"label":"", "x":3, "y":2}, {"label":"", "x":4, "y":2}, {"label":"", "x":5, "y":2}, {"label":"", "x":11, "y":2}, {"label":"", "x":12, "y":2}, {"label":",", "x":13, "y":2}, {"label":".", "x":14, "y":2}, {"label":"", "x":15, "y":2}, {"label":"GUI_L", "x":16, "y":2}, {"label":"RAISE", "x":-0.25, "y":7.12, "w":1.25}, {"label":"", "x":-1.25, "y":8.12, "w":1.25}, {"label":"Shift_L Space", "x":0, "y":8.12}, {"label":"up ↑", "x":-1.25, "y":9.12, "w":1.25}, {"label":"Alt_R", "x":0, "y":9.12}, {"label":"LOWER", "x":-1.0, "y":14.24, "w":1.25}, {"label":"Back Space", "x":-1.0, "y":15.24}, {"label":"", "x":0, "y":15.24, "w":1.25}, {"label":"Enter", "x":-1.0, "y":16.24}, {"label":"↓ down", "x":0, "y":16.24, "w":1.25}] + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":16, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":15, "y":1}, {"x":16, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":15, "y":2}, {"x":16, "y":2}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}] } } } From f0932a8716dc946322c5ebae7f75eaa275c6220c Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Wed, 21 Mar 2018 00:09:51 -0700 Subject: [PATCH 098/578] Update info.json for Ergodox EZ (#2577) --- keyboards/ergodox_ez/info.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/ergodox_ez/info.json b/keyboards/ergodox_ez/info.json index 6226fca1ad79..731108853dee 100644 --- a/keyboards/ergodox_ez/info.json +++ b/keyboards/ergodox_ez/info.json @@ -10,16 +10,16 @@ "height": 9.375, "layouts": { "LAYOUT_ergodox": { - "layout": [{"label":"#", "x":3.5, "y":0}, {"label":"*", "x":15, "y":0}, {"label":"@", "x":2.5, "y":0.125}, {"label":"$", "x":4.5, "y":0.125}, {"label":"&", "x":14, "y":0.125}, {"label":"(", "x":16, "y":0.125}, {"label":"%", "x":5.5, "y":0.25}, {"x":6.5, "y":0.25}, {"x":12, "y":0.25}, {"label":"^", "x":13, "y":0.25}, {"x":0, "y":0.375, "w":1.5}, {"label":"!", "x":1.5, "y":0.375}, {"label":")", "x":17, "y":0.375}, {"x":18, "y":0.375, "w":1.5}, {"label":"E", "x":3.5, "y":1}, {"label":"I", "x":15, "y":1}, {"label":"W", "x":2.5, "y":1.125}, {"label":"R", "x":4.5, "y":1.125}, {"label":"U", "x":14, "y":1.125}, {"label":"O", "x":16, "y":1.125}, {"label":"T", "x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5}, {"x":12, "y":1.25, "h":1.5}, {"label":"Y", "x":13, "y":1.25}, {"x":0, "y":1.375, "w":1.5}, {"label":"Q", "x":1.5, "y":1.375}, {"label":"P", "x":17, "y":1.375}, {"x":18, "y":1.375, "w":1.5}, {"label":"D", "x":3.5, "y":2}, {"label":"K", "x":15, "y":2}, {"label":"S", "x":2.5, "y":2.125}, {"label":"F", "x":4.5, "y":2.125}, {"label":"J", "x":14, "y":2.125}, {"label":"L", "x":16, "y":2.125}, {"label":"G", "x":5.5, "y":2.25}, {"label":"H", "x":13, "y":2.25}, {"x":0, "y":2.375, "w":1.5}, {"label":"A", "x":1.5, "y":2.375}, {"label":":", "x":17, "y":2.375}, {"x":18, "y":2.375, "w":1.5}, {"x":6.5, "y":2.75, "h":1.5}, {"x":12, "y":2.75, "h":1.5}, {"label":"C", "x":3.5, "y":3}, {"label":"<", "x":15, "y":3}, {"label":"X", "x":2.5, "y":3.125}, {"label":"V", "x":4.5, "y":3.125}, {"label":"M", "x":14, "y":3.125}, {"label":">", "x":16, "y":3.125}, {"label":"B", "x":5.5, "y":3.25}, {"label":"N", "x":13, "y":3.25}, {"x":0, "y":3.375, "w":1.5}, {"label":"Z", "x":1.5, "y":3.375}, {"label":"?", "x":17, "y":3.375}, {"x":18, "y":3.375, "w":1.5}, {"x":3.5, "y":4}, {"x":15, "y":4}, {"x":2.5, "y":4.125}, {"x":4.5, "y":4.125}, {"x":14, "y":4.125}, {"x":16, "y":4.125}, {"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":17, "y":4.375}, {"x":18, "y":4.375}, {"x":1, "y":4.375}, {"x":2, "y":4.375}, {"x":0, "y":5.375, "h":2}, {"x":1, "y":5.375, "h":2}, {"x":2, "y":5.375}, {"x":2, "y":6.375}, {"x":-3.0, "y":6.375}, {"x":-2, "y":6.375}, {"x":-3.0, "y":7.375}, {"x":-2, "y":7.375, "h":2}, {"x":-1.0, "y":7.375, "h":2}, {"x":-3.0, "y":8.375}] + "layout": [{"x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0, "w":1.5}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1, "h":1.5}, {"x":9.5, "y":1, "h":1.5}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1}, {"x":15.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2}, {"x":14.5, "y":2}, {"x":15.5, "y":2, "w":1.5}, {"x":6.5, "y":2.5, "h":1.5}, {"x":9.5, "y":2.5, "h":1.5}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.5, "y":3, "w":1.5}, {"x":0.5, "y":4}, {"x":1.5, "y":4}, {"x":2.5, "y":4}, {"x":3.5, "y":4}, {"x":4.5, "y":4}, {"x":11.5, "y":4}, {"x":12.5, "y":4}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}, {"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, {"x":5, "y":6, "h":2}, {"x":6, "y":6, "h":2}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6, "h":2}, {"x":11, "y":6, "h":2}, {"x":7, "y":7}, {"x":9, "y":7}] } "LAYOUT_ergodox_pretty": { - "layout": [{"label":"#", "x":3.5, "y":0}, {"label":"*", "x":15, "y":0}, {"label":"@", "x":2.5, "y":0.125}, {"label":"$", "x":4.5, "y":0.125}, {"label":"&", "x":14, "y":0.125}, {"label":"(", "x":16, "y":0.125}, {"label":"%", "x":5.5, "y":0.25}, {"x":6.5, "y":0.25}, {"x":12, "y":0.25}, {"label":"^", "x":13, "y":0.25}, {"x":0, "y":0.375, "w":1.5}, {"label":"!", "x":1.5, "y":0.375}, {"label":")", "x":17, "y":0.375}, {"x":18, "y":0.375, "w":1.5}, {"label":"E", "x":3.5, "y":1}, {"label":"I", "x":15, "y":1}, {"label":"W", "x":2.5, "y":1.125}, {"label":"R", "x":4.5, "y":1.125}, {"label":"U", "x":14, "y":1.125}, {"label":"O", "x":16, "y":1.125}, {"label":"T", "x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5}, {"x":12, "y":1.25, "h":1.5}, {"label":"Y", "x":13, "y":1.25}, {"x":0, "y":1.375, "w":1.5}, {"label":"Q", "x":1.5, "y":1.375}, {"label":"P", "x":17, "y":1.375}, {"x":18, "y":1.375, "w":1.5}, {"label":"D", "x":3.5, "y":2}, {"label":"K", "x":15, "y":2}, {"label":"S", "x":2.5, "y":2.125}, {"label":"F", "x":4.5, "y":2.125}, {"label":"J", "x":14, "y":2.125}, {"label":"L", "x":16, "y":2.125}, {"label":"G", "x":5.5, "y":2.25}, {"label":"H", "x":13, "y":2.25}, {"x":0, "y":2.375, "w":1.5}, {"label":"A", "x":1.5, "y":2.375}, {"label":":", "x":17, "y":2.375}, {"x":18, "y":2.375, "w":1.5}, {"x":6.5, "y":2.75, "h":1.5}, {"x":12, "y":2.75, "h":1.5}, {"label":"C", "x":3.5, "y":3}, {"label":"<", "x":15, "y":3}, {"label":"X", "x":2.5, "y":3.125}, {"label":"V", "x":4.5, "y":3.125}, {"label":"M", "x":14, "y":3.125}, {"label":">", "x":16, "y":3.125}, {"label":"B", "x":5.5, "y":3.25}, {"label":"N", "x":13, "y":3.25}, {"x":0, "y":3.375, "w":1.5}, {"label":"Z", "x":1.5, "y":3.375}, {"label":"?", "x":17, "y":3.375}, {"x":18, "y":3.375, "w":1.5}, {"x":3.5, "y":4}, {"x":15, "y":4}, {"x":2.5, "y":4.125}, {"x":4.5, "y":4.125}, {"x":14, "y":4.125}, {"x":16, "y":4.125}, {"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":17, "y":4.375}, {"x":18, "y":4.375}, {"x":1, "y":4.375}, {"x":2, "y":4.375}, {"x":0, "y":5.375, "h":2}, {"x":1, "y":5.375, "h":2}, {"x":2, "y":5.375}, {"x":2, "y":6.375}, {"x":-3.0, "y":6.375}, {"x":-2, "y":6.375}, {"x":-3.0, "y":7.375}, {"x":-2, "y":7.375, "h":2}, {"x":-1.0, "y":7.375, "h":2}, {"x":-3.0, "y":8.375}] + "layout": [{"x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0, "w":1.5}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1, "h":1.5}, {"x":9.5, "y":1, "h":1.5}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1}, {"x":15.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2}, {"x":14.5, "y":2}, {"x":15.5, "y":2, "w":1.5}, {"x":6.5, "y":2.5, "h":1.5}, {"x":9.5, "y":2.5, "h":1.5}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.5, "y":3, "w":1.5}, {"x":0.5, "y":4}, {"x":1.5, "y":4}, {"x":2.5, "y":4}, {"x":3.5, "y":4}, {"x":4.5, "y":4}, {"x":11.5, "y":4}, {"x":12.5, "y":4}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}, {"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, {"x":5, "y":6, "h":2}, {"x":6, "y":6, "h":2}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6, "h":2}, {"x":11, "y":6, "h":2}, {"x":7, "y":7}, {"x":9, "y":7}] } "KEYMAP_80": { - "layout": [{"label":"#", "x":3.5, "y":0}, {"label":"*", "x":15, "y":0}, {"label":"@", "x":2.5, "y":0.125}, {"label":"$", "x":4.5, "y":0.125}, {"label":"&", "x":14, "y":0.125}, {"label":"(", "x":16, "y":0.125}, {"label":"%", "x":5.5, "y":0.25}, {"x":6.5, "y":0.25}, {"x":12, "y":0.25}, {"label":"^", "x":13, "y":0.25}, {"x":0, "y":0.375, "w":1.5}, {"label":"!", "x":1.5, "y":0.375}, {"label":")", "x":17, "y":0.375}, {"x":18, "y":0.375, "w":1.5}, {"label":"E", "x":3.5, "y":1}, {"label":"I", "x":15, "y":1}, {"label":"W", "x":2.5, "y":1.125}, {"label":"R", "x":4.5, "y":1.125}, {"label":"U", "x":14, "y":1.125}, {"label":"O", "x":16, "y":1.125}, {"label":"T", "x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5}, {"x":12, "y":1.25, "h":1.5}, {"label":"Y", "x":13, "y":1.25}, {"x":0, "y":1.375, "w":1.5}, {"label":"Q", "x":1.5, "y":1.375}, {"label":"P", "x":17, "y":1.375}, {"x":18, "y":1.375, "w":1.5}, {"label":"D", "x":3.5, "y":2}, {"label":"K", "x":15, "y":2}, {"label":"S", "x":2.5, "y":2.125}, {"label":"F", "x":4.5, "y":2.125}, {"label":"J", "x":14, "y":2.125}, {"label":"L", "x":16, "y":2.125}, {"label":"G", "x":5.5, "y":2.25}, {"label":"H", "x":13, "y":2.25}, {"x":0, "y":2.375, "w":1.5}, {"label":"A", "x":1.5, "y":2.375}, {"label":":", "x":17, "y":2.375}, {"x":18, "y":2.375, "w":1.5}, {"x":6.5, "y":2.75, "h":1.5}, {"x":12, "y":2.75, "h":1.5}, {"label":"C", "x":3.5, "y":3}, {"label":"<", "x":15, "y":3}, {"label":"X", "x":2.5, "y":3.125}, {"label":"V", "x":4.5, "y":3.125}, {"label":"M", "x":14, "y":3.125}, {"label":">", "x":16, "y":3.125}, {"label":"B", "x":5.5, "y":3.25}, {"label":"N", "x":13, "y":3.25}, {"x":0, "y":3.375, "w":1.5}, {"label":"Z", "x":1.5, "y":3.375}, {"label":"?", "x":17, "y":3.375}, {"x":18, "y":3.375, "w":1.5}, {"x":3.5, "y":4}, {"x":15, "y":4}, {"x":2.5, "y":4.125}, {"x":4.5, "y":4.125}, {"x":14, "y":4.125}, {"x":16, "y":4.125}, {"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":17, "y":4.375}, {"x":18, "y":4.375}, {"x":1, "y":4.375}, {"x":2, "y":4.375}, {"x":0, "y":5.375}, {"x":1, "y":5.375}, {"x":2, "y":5.375}, {"x":0, "y":6.375}, {"x":1, "y":6.375}, {"x":2, "y":6.375}, {"x":-3.0, "y":6.375}, {"x":-2, "y":6.375}, {"x":-3.0, "y":7.375}, {"x":-2, "y":7.375}, {"x":-1.0, "y":7.375}, {"x":-3.0, "y":8.375}, {"x":-2, "y":8.375}, {"x":-1.0, "y":8.375}] + "layout": [{"x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0, "w":1.5}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1, "h":1.5}, {"x":9.5, "y":1, "h":1.5}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1}, {"x":15.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2}, {"x":14.5, "y":2}, {"x":15.5, "y":2, "w":1.5}, {"x":6.5, "y":2.5, "h":1.5}, {"x":9.5, "y":2.5, "h":1.5}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.5, "y":3, "w":1.5}, {"x":0.5, "y":4}, {"x":1.5, "y":4}, {"x":2.5, "y":4}, {"x":3.5, "y":4}, {"x":4.5, "y":4}, {"x":11.5, "y":4}, {"x":12.5, "y":4}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}, {"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, {"x":5, "y":6}, {"x":6, "y":6}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6}, {"x":11, "y":6}, {"x":5, "y":7}, {"x":6, "y":7}, {"x":7, "y":7}, {"x":9, "y":7}, {"x":10, "y":7}, {"x":11, "y":7}] } "KEYMAP_PRETTY_80": { - "layout": [{"label":"#", "x":3.5, "y":0}, {"label":"*", "x":15, "y":0}, {"label":"@", "x":2.5, "y":0.125}, {"label":"$", "x":4.5, "y":0.125}, {"label":"&", "x":14, "y":0.125}, {"label":"(", "x":16, "y":0.125}, {"label":"%", "x":5.5, "y":0.25}, {"x":6.5, "y":0.25}, {"x":12, "y":0.25}, {"label":"^", "x":13, "y":0.25}, {"x":0, "y":0.375, "w":1.5}, {"label":"!", "x":1.5, "y":0.375}, {"label":")", "x":17, "y":0.375}, {"x":18, "y":0.375, "w":1.5}, {"label":"E", "x":3.5, "y":1}, {"label":"I", "x":15, "y":1}, {"label":"W", "x":2.5, "y":1.125}, {"label":"R", "x":4.5, "y":1.125}, {"label":"U", "x":14, "y":1.125}, {"label":"O", "x":16, "y":1.125}, {"label":"T", "x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5}, {"x":12, "y":1.25, "h":1.5}, {"label":"Y", "x":13, "y":1.25}, {"x":0, "y":1.375, "w":1.5}, {"label":"Q", "x":1.5, "y":1.375}, {"label":"P", "x":17, "y":1.375}, {"x":18, "y":1.375, "w":1.5}, {"label":"D", "x":3.5, "y":2}, {"label":"K", "x":15, "y":2}, {"label":"S", "x":2.5, "y":2.125}, {"label":"F", "x":4.5, "y":2.125}, {"label":"J", "x":14, "y":2.125}, {"label":"L", "x":16, "y":2.125}, {"label":"G", "x":5.5, "y":2.25}, {"label":"H", "x":13, "y":2.25}, {"x":0, "y":2.375, "w":1.5}, {"label":"A", "x":1.5, "y":2.375}, {"label":":", "x":17, "y":2.375}, {"x":18, "y":2.375, "w":1.5}, {"x":6.5, "y":2.75, "h":1.5}, {"x":12, "y":2.75, "h":1.5}, {"label":"C", "x":3.5, "y":3}, {"label":"<", "x":15, "y":3}, {"label":"X", "x":2.5, "y":3.125}, {"label":"V", "x":4.5, "y":3.125}, {"label":"M", "x":14, "y":3.125}, {"label":">", "x":16, "y":3.125}, {"label":"B", "x":5.5, "y":3.25}, {"label":"N", "x":13, "y":3.25}, {"x":0, "y":3.375, "w":1.5}, {"label":"Z", "x":1.5, "y":3.375}, {"label":"?", "x":17, "y":3.375}, {"x":18, "y":3.375, "w":1.5}, {"x":3.5, "y":4}, {"x":15, "y":4}, {"x":2.5, "y":4.125}, {"x":4.5, "y":4.125}, {"x":14, "y":4.125}, {"x":16, "y":4.125}, {"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":17, "y":4.375}, {"x":18, "y":4.375}, {"x":1, "y":4.375}, {"x":2, "y":4.375}, {"x":0, "y":5.375}, {"x":1, "y":5.375}, {"x":2, "y":5.375}, {"x":0, "y":6.375}, {"x":1, "y":6.375}, {"x":2, "y":6.375}, {"x":-3.0, "y":6.375}, {"x":-2, "y":6.375}, {"x":-3.0, "y":7.375}, {"x":-2, "y":7.375}, {"x":-1.0, "y":7.375}, {"x":-3.0, "y":8.375}, {"x":-2, "y":8.375}, {"x":-1.0, "y":8.375}] + "layout": [{"x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0, "w":1.5}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1, "h":1.5}, {"x":9.5, "y":1, "h":1.5}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1}, {"x":15.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2}, {"x":14.5, "y":2}, {"x":15.5, "y":2, "w":1.5}, {"x":6.5, "y":2.5, "h":1.5}, {"x":9.5, "y":2.5, "h":1.5}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.5, "y":3, "w":1.5}, {"x":0.5, "y":4}, {"x":1.5, "y":4}, {"x":2.5, "y":4}, {"x":3.5, "y":4}, {"x":4.5, "y":4}, {"x":11.5, "y":4}, {"x":12.5, "y":4}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}, {"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, {"x":5, "y":6}, {"x":6, "y":6}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6}, {"x":11, "y":6}, {"x":5, "y":7}, {"x":6, "y":7}, {"x":7, "y":7}, {"x":9, "y":7}, {"x":10, "y":7}, {"x":11, "y":7}] } } } From 7c9d5ace143d3cc6d767a354acde814926d566fd Mon Sep 17 00:00:00 2001 From: skullydazed Date: Wed, 21 Mar 2018 23:50:38 -0700 Subject: [PATCH 099/578] Generate API docs from source code comments (#2491) * Generate api docs from source code * Add a bunch of doxygen comments * more doxygen comments * Add the in-progress api docs * script to generate docs from travis * Add doc generation to the travis job * make travis_docs.sh commit the work it does * make sure the docs script exits cleanly --- .gitignore | 3 +- .travis.yml | 3 + Doxyfile | 266 ++++++++++++++++++++++++++ docs/_summary.md | 9 + docs/api_defines.md | 78 ++++++++ docs/api_input_callback_reg.md | 169 ++++++++++++++++ docs/api_midi_device.md | 143 ++++++++++++++ docs/api_midi_device_setup_process.md | 31 +++ docs/api_midi_util.md | 54 ++++++ docs/api_send_functions.md | 241 +++++++++++++++++++++++ docs/api_sysex_tools.md | 61 ++++++ doxygen-todo | 32 ++++ tmk_core/common/action.c | 63 +++++- tmk_core/common/action_code.h | 34 ++-- tmk_core/common/action_layer.c | 101 +++++++++- tmk_core/common/action_macro.c | 4 + tmk_core/common/action_tapping.c | 37 +++- tmk_core/common/action_util.c | 113 +++++++++-- tmk_core/common/avr/bootloader.c | 15 +- tmk_core/common/avr/sleep_led.c | 19 +- tmk_core/common/avr/suspend.c | 20 +- tmk_core/common/avr/timer.c | 24 +++ tmk_core/common/backlight.c | 28 +++ tmk_core/common/bootmagic.c | 14 +- tmk_core/common/bootmagic.h | 2 + tmk_core/common/chibios/bootloader.c | 8 + tmk_core/common/chibios/eeprom.c | 44 +++++ tmk_core/common/chibios/suspend.c | 18 +- tmk_core/common/command.h | 4 +- tmk_core/common/eeconfig.c | 56 ++++++ tmk_core/common/keyboard.c | 32 +++- tmk_core/common/keycode.h | 1 + tmk_core/common/led.h | 3 +- tmk_core/common/magic.c | 4 + tmk_core/common/report.c | 36 ++++ tmk_core/protocol/lufa/lufa.c | 106 +++++++++- tmk_core/protocol/lufa/outputselect.c | 16 ++ util/generate_api_docs.sh | 31 +++ util/travis_compiled_push.sh | 35 +--- util/travis_docs.sh | 14 ++ util/travis_push.sh | 17 ++ 41 files changed, 1892 insertions(+), 97 deletions(-) create mode 100644 Doxyfile create mode 100644 docs/api_defines.md create mode 100644 docs/api_input_callback_reg.md create mode 100644 docs/api_midi_device.md create mode 100644 docs/api_midi_device_setup_process.md create mode 100644 docs/api_midi_util.md create mode 100644 docs/api_send_functions.md create mode 100644 docs/api_sysex_tools.md create mode 100644 doxygen-todo create mode 100755 util/generate_api_docs.sh create mode 100644 util/travis_docs.sh create mode 100644 util/travis_push.sh diff --git a/.gitignore b/.gitignore index a8dd97eff368..971e90453ba0 100644 --- a/.gitignore +++ b/.gitignore @@ -23,6 +23,7 @@ quantum/version.h .idea/ CMakeLists.txt cmake-build-debug +doxygen/ .DS_STORE /util/wsl_downloaded /util/win_downloaded @@ -65,4 +66,4 @@ util/Win_Check_Output.txt # things travis sees secrets.tar id_rsa_* -/.vs \ No newline at end of file +/.vs diff --git a/.travis.yml b/.travis.yml index 125e8f3334cd..7ff4060ab7c6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,11 +15,13 @@ before_install: install: - tar -zxf avr8-gnu-toolchain-3.5.4.1709-linux.any.x86_64.tar.gz - export PATH="$PATH:$TRAVIS_BUILD_DIR/avr8-gnu-toolchain-linux_x86_64/bin" + - npm install -g moxygen before_script: - avr-gcc --version script: - make test:all AUTOGEN=false - bash util/travis_build.sh +- bash util/travis_docs.sh addons: apt: packages: @@ -30,6 +32,7 @@ addons: - libnewlib-arm-none-eabi - diffutils - dos2unix + - doxygen after_success: bash util/travis_compiled_push.sh notifications: diff --git a/Doxyfile b/Doxyfile new file mode 100644 index 000000000000..218d77b4dda8 --- /dev/null +++ b/Doxyfile @@ -0,0 +1,266 @@ +# Doxyfile 1.8.14 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for qmk_firmware (github.com/qmk/qmk_firmware) +# +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +DOXYFILE_ENCODING = UTF-8 +PROJECT_NAME = "QMK Firmware" +PROJECT_NUMBER = https://github.com/qmk/qmk_firmware +PROJECT_BRIEF = "Keyboard controller firmware for Atmel AVR and ARM USB families" +OUTPUT_DIRECTORY = doxygen +ALLOW_UNICODE_NAMES = NO +OUTPUT_LANGUAGE = English +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = YES +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = NO +QT_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 4 +ALIASES = +TCL_SUBST = +OPTIMIZE_OUTPUT_FOR_C = YES +OPTIMIZE_OUTPUT_JAVA = NO +OPTIMIZE_FOR_FORTRAN = NO +OPTIMIZE_OUTPUT_VHDL = NO +EXTENSION_MAPPING = +MARKDOWN_SUPPORT = YES +TOC_INCLUDE_HEADINGS = 2 +AUTOLINK_SUPPORT = YES +BUILTIN_STL_SUPPORT = NO +CPP_CLI_SUPPORT = NO +SIP_SUPPORT = NO +IDL_PROPERTY_SUPPORT = YES +DISTRIBUTE_GROUP_DOC = NO +GROUP_NESTED_COMPOUNDS = NO +SUBGROUPING = YES +INLINE_GROUPED_CLASSES = NO +INLINE_SIMPLE_STRUCTS = NO +TYPEDEF_HIDES_STRUCT = NO +LOOKUP_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +EXTRACT_ALL = NO +EXTRACT_PRIVATE = NO +EXTRACT_PACKAGE = NO +EXTRACT_STATIC = NO +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +EXTRACT_ANON_NSPACES = NO +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = NO +HIDE_SCOPE_NAMES = YES +HIDE_COMPOUND_REFERENCE= NO +SHOW_INCLUDE_FILES = YES +SHOW_GROUPED_MEMB_INC = NO +FORCE_LOCAL_INCLUDES = NO +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = NO +SORT_MEMBERS_CTORS_1ST = NO +SORT_GROUP_NAMES = NO +SORT_BY_SCOPE_NAME = NO +STRICT_PROTO_MATCHING = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_FILES = YES +SHOW_NAMESPACES = YES +FILE_VERSION_FILTER = +LAYOUT_FILE = +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_AS_ERROR = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +INPUT = tmk_core quantum drivers +INPUT_ENCODING = UTF-8 +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ +RECURSIVE = YES +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXCLUDE_SYMBOLS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = * +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +FILTER_SOURCE_PATTERNS = +USE_MDFILE_AS_MAINPAGE = + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = NO +REFERENCES_RELATION = NO +REFERENCES_LINK_SOURCE = YES +SOURCE_TOOLTIPS = YES +USE_HTAGS = NO +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to disabled outputs +#--------------------------------------------------------------------------- + +GENERATE_HTML = NO +GENERATE_LATEX = NO +GENERATE_RTF = NO +GENERATE_MAN = NO +GENERATE_DOCBOOK = NO +GENERATE_AUTOGEN_DEF = NO +GENERATE_PERLMOD = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the XML output +#--------------------------------------------------------------------------- + +GENERATE_XML = YES +XML_OUTPUT = xml +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration options related to external references +#--------------------------------------------------------------------------- + +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +EXTERNAL_PAGES = YES +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +CLASS_DIAGRAMS = YES +MSCGEN_PATH = +DIA_PATH = +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = NO +DOT_NUM_THREADS = 0 +DOT_FONTNAME = Helvetica +DOT_FONTSIZE = 10 +DOT_FONTPATH = +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +UML_LIMIT_NUM_FIELDS = 10 +TEMPLATE_RELATIONS = NO +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +CALLER_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +INTERACTIVE_SVG = NO +DOT_PATH = +DOTFILE_DIRS = +MSCFILE_DIRS = +DIAFILE_DIRS = +PLANTUML_JAR_PATH = +PLANTUML_CFG_FILE = +PLANTUML_INCLUDE_PATH = +DOT_GRAPH_MAX_NODES = 50 +MAX_DOT_GRAPH_DEPTH = 0 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES diff --git a/docs/_summary.md b/docs/_summary.md index 50d9a37ae28c..e7a32959e8ef 100644 --- a/docs/_summary.md +++ b/docs/_summary.md @@ -87,3 +87,12 @@ * Other Topics * [Using Eclipse with QMK](eclipse.md) + +* QMK API (In Progress) + * [Defines](api_defines.md) + * [Input Callback Reg](api_input_callback_reg.md) + * [Midi Device](api_midi_device.md) + * [Midi Device Setup Process](api_midi_device_setup_process.md) + * [Midi Util](api_midi_util.md) + * [Send Functions](api_send_functions.md) + * [Sysex Tools](api_sysex_tools.md) diff --git a/docs/api_defines.md b/docs/api_defines.md new file mode 100644 index 000000000000..fdcb553589bd --- /dev/null +++ b/docs/api_defines.md @@ -0,0 +1,78 @@ +# group `defines` {#group__defines} + +## Summary + + Members | Descriptions +--------------------------------|--------------------------------------------- +`define `[`SYSEX_BEGIN`](#group__defines_1ga1a3c39bb790dda8a368c4247caabcf79) | +`define `[`SYSEX_END`](#group__defines_1ga753706d1d28e6f96d7caf1973e80feed) | +`define `[`MIDI_STATUSMASK`](#group__defines_1gab78a1c818a5f5dab7a8946543f126c69) | +`define `[`MIDI_CHANMASK`](#group__defines_1ga239edc0a6f8405d3a8f2804f1590b909) | +`define `[`MIDI_CC`](#group__defines_1ga45f116a1daab76b3c930c2cecfaef215) | +`define `[`MIDI_NOTEON`](#group__defines_1gafd416f27bf3590868c0c1f55c30be4c7) | +`define `[`MIDI_NOTEOFF`](#group__defines_1gabed24bea2d989fd655e2ef2ad0765adc) | +`define `[`MIDI_AFTERTOUCH`](#group__defines_1ga3a322d8cfd53576a2e167c1840551b0f) | +`define `[`MIDI_PITCHBEND`](#group__defines_1gabcc799504e8064679bca03f232223af4) | +`define `[`MIDI_PROGCHANGE`](#group__defines_1gaefb3f1595ffbb9db66b46c2c919a3d42) | +`define `[`MIDI_CHANPRESSURE`](#group__defines_1gaeb3281cc7fcd0daade8ed3d2dfc33dbe) | +`define `[`MIDI_CLOCK`](#group__defines_1gafa5e4e295aafd15ab7893344599b3b89) | +`define `[`MIDI_TICK`](#group__defines_1ga3b99408ff864613765d4c3c2ceb52aa7) | +`define `[`MIDI_START`](#group__defines_1ga8233631c85823aa546f932ad8975caa4) | +`define `[`MIDI_CONTINUE`](#group__defines_1gab24430f0081e27215b0da84dd0ee745c) | +`define `[`MIDI_STOP`](#group__defines_1ga3af9271d4b1f0d22904a0b055f48cf62) | +`define `[`MIDI_ACTIVESENSE`](#group__defines_1gacd88ed42dba52bb4b2052c5656362677) | +`define `[`MIDI_RESET`](#group__defines_1ga02947f30ca62dc332fdeb10c5868323b) | +`define `[`MIDI_TC_QUARTERFRAME`](#group__defines_1gaaa072f33590e236d1bfd8f28e833ae31) | +`define `[`MIDI_SONGPOSITION`](#group__defines_1ga412f6ed33a2150051374bee334ee1705) | +`define `[`MIDI_SONGSELECT`](#group__defines_1gafcab254838b028365ae0259729e72c4e) | +`define `[`MIDI_TUNEREQUEST`](#group__defines_1ga8100b907b8c0a84e58b1c53dcd9bd795) | +`define `[`SYSEX_EDUMANUFID`](#group__defines_1ga5ef855ed955b00a2239ca16afbeb164f) | + +## Members + +#### `define `[`SYSEX_BEGIN`](#group__defines_1ga1a3c39bb790dda8a368c4247caabcf79) {#group__defines_1ga1a3c39bb790dda8a368c4247caabcf79} + +#### `define `[`SYSEX_END`](#group__defines_1ga753706d1d28e6f96d7caf1973e80feed) {#group__defines_1ga753706d1d28e6f96d7caf1973e80feed} + +#### `define `[`MIDI_STATUSMASK`](#group__defines_1gab78a1c818a5f5dab7a8946543f126c69) {#group__defines_1gab78a1c818a5f5dab7a8946543f126c69} + +#### `define `[`MIDI_CHANMASK`](#group__defines_1ga239edc0a6f8405d3a8f2804f1590b909) {#group__defines_1ga239edc0a6f8405d3a8f2804f1590b909} + +#### `define `[`MIDI_CC`](#group__defines_1ga45f116a1daab76b3c930c2cecfaef215) {#group__defines_1ga45f116a1daab76b3c930c2cecfaef215} + +#### `define `[`MIDI_NOTEON`](#group__defines_1gafd416f27bf3590868c0c1f55c30be4c7) {#group__defines_1gafd416f27bf3590868c0c1f55c30be4c7} + +#### `define `[`MIDI_NOTEOFF`](#group__defines_1gabed24bea2d989fd655e2ef2ad0765adc) {#group__defines_1gabed24bea2d989fd655e2ef2ad0765adc} + +#### `define `[`MIDI_AFTERTOUCH`](#group__defines_1ga3a322d8cfd53576a2e167c1840551b0f) {#group__defines_1ga3a322d8cfd53576a2e167c1840551b0f} + +#### `define `[`MIDI_PITCHBEND`](#group__defines_1gabcc799504e8064679bca03f232223af4) {#group__defines_1gabcc799504e8064679bca03f232223af4} + +#### `define `[`MIDI_PROGCHANGE`](#group__defines_1gaefb3f1595ffbb9db66b46c2c919a3d42) {#group__defines_1gaefb3f1595ffbb9db66b46c2c919a3d42} + +#### `define `[`MIDI_CHANPRESSURE`](#group__defines_1gaeb3281cc7fcd0daade8ed3d2dfc33dbe) {#group__defines_1gaeb3281cc7fcd0daade8ed3d2dfc33dbe} + +#### `define `[`MIDI_CLOCK`](#group__defines_1gafa5e4e295aafd15ab7893344599b3b89) {#group__defines_1gafa5e4e295aafd15ab7893344599b3b89} + +#### `define `[`MIDI_TICK`](#group__defines_1ga3b99408ff864613765d4c3c2ceb52aa7) {#group__defines_1ga3b99408ff864613765d4c3c2ceb52aa7} + +#### `define `[`MIDI_START`](#group__defines_1ga8233631c85823aa546f932ad8975caa4) {#group__defines_1ga8233631c85823aa546f932ad8975caa4} + +#### `define `[`MIDI_CONTINUE`](#group__defines_1gab24430f0081e27215b0da84dd0ee745c) {#group__defines_1gab24430f0081e27215b0da84dd0ee745c} + +#### `define `[`MIDI_STOP`](#group__defines_1ga3af9271d4b1f0d22904a0b055f48cf62) {#group__defines_1ga3af9271d4b1f0d22904a0b055f48cf62} + +#### `define `[`MIDI_ACTIVESENSE`](#group__defines_1gacd88ed42dba52bb4b2052c5656362677) {#group__defines_1gacd88ed42dba52bb4b2052c5656362677} + +#### `define `[`MIDI_RESET`](#group__defines_1ga02947f30ca62dc332fdeb10c5868323b) {#group__defines_1ga02947f30ca62dc332fdeb10c5868323b} + +#### `define `[`MIDI_TC_QUARTERFRAME`](#group__defines_1gaaa072f33590e236d1bfd8f28e833ae31) {#group__defines_1gaaa072f33590e236d1bfd8f28e833ae31} + +#### `define `[`MIDI_SONGPOSITION`](#group__defines_1ga412f6ed33a2150051374bee334ee1705) {#group__defines_1ga412f6ed33a2150051374bee334ee1705} + +#### `define `[`MIDI_SONGSELECT`](#group__defines_1gafcab254838b028365ae0259729e72c4e) {#group__defines_1gafcab254838b028365ae0259729e72c4e} + +#### `define `[`MIDI_TUNEREQUEST`](#group__defines_1ga8100b907b8c0a84e58b1c53dcd9bd795) {#group__defines_1ga8100b907b8c0a84e58b1c53dcd9bd795} + +#### `define `[`SYSEX_EDUMANUFID`](#group__defines_1ga5ef855ed955b00a2239ca16afbeb164f) {#group__defines_1ga5ef855ed955b00a2239ca16afbeb164f} + diff --git a/docs/api_input_callback_reg.md b/docs/api_input_callback_reg.md new file mode 100644 index 000000000000..4ea132a83a84 --- /dev/null +++ b/docs/api_input_callback_reg.md @@ -0,0 +1,169 @@ +# group `input_callback_reg` {#group__input__callback__reg} + +These are the functions you use to register your input callbacks. + +The functions are called when the appropriate midi message is matched on the associated device's input. + +## Summary + + Members | Descriptions +--------------------------------|--------------------------------------------- +`public void `[`midi_register_cc_callback`](#group__input__callback__reg_1ga64ab672abbbe393c9c4a83110c8df718)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` | Register a control change message (cc) callback. +`public void `[`midi_register_noteon_callback`](#group__input__callback__reg_1ga3962f276c17618923f1152779552103e)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` | Register a note on callback. +`public void `[`midi_register_noteoff_callback`](#group__input__callback__reg_1gac847b66051bd6d53b762958be0ec4c6d)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` | Register a note off callback. +`public void `[`midi_register_aftertouch_callback`](#group__input__callback__reg_1gaa95bc901bd9edff956a667c9a69dd01f)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` | Register an after touch callback. +`public void `[`midi_register_pitchbend_callback`](#group__input__callback__reg_1ga071a28f02ba14f53de219be70ebd9a48)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` | Register a pitch bend callback. +`public void `[`midi_register_songposition_callback`](#group__input__callback__reg_1gaf2adfd79637f3553d8f26deb1ca22ed6)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` | Register a song position callback. +`public void `[`midi_register_progchange_callback`](#group__input__callback__reg_1gae6ba1a35a4cde9bd15dd42f87401d127)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` | Register a program change callback. +`public void `[`midi_register_chanpressure_callback`](#group__input__callback__reg_1ga39b31f1f4fb93917ce039b958f21b4f5)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` | Register a channel pressure callback. +`public void `[`midi_register_songselect_callback`](#group__input__callback__reg_1gaf9aafc76a2dc4b9fdbb4106cbda6ce72)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` | Register a song select callback. +`public void `[`midi_register_tc_quarterframe_callback`](#group__input__callback__reg_1ga0a119fada2becc628cb15d753b257e6e)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` | Register a tc quarter frame callback. +`public void `[`midi_register_realtime_callback`](#group__input__callback__reg_1ga764f440e857b89084b1a07f9da2ff93a)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_one_byte_func_t func)` | Register a realtime callback. +`public void `[`midi_register_tunerequest_callback`](#group__input__callback__reg_1gae40ff3ce20bda79fef87da24b8321cb1)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_one_byte_func_t func)` | Register a tune request callback. +`public void `[`midi_register_sysex_callback`](#group__input__callback__reg_1ga63ce9631b025785c1848d0122d4c4c48)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_sysex_func_t func)` | Register a sysex callback. +`public void `[`midi_register_fallthrough_callback`](#group__input__callback__reg_1ga7ed189164aa9682862b3181153afbd94)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_var_byte_func_t func)` | Register fall through callback. +`public void `[`midi_register_catchall_callback`](#group__input__callback__reg_1ga9dbfed568d047a6cd05708f11fe39e99)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_var_byte_func_t func)` | Register a catch all callback. + +## Members + +#### `public void `[`midi_register_cc_callback`](#group__input__callback__reg_1ga64ab672abbbe393c9c4a83110c8df718)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` {#group__input__callback__reg_1ga64ab672abbbe393c9c4a83110c8df718} + +Register a control change message (cc) callback. + +#### Parameters +* `device` the device associate with + +* `func` the callback function to register + +#### `public void `[`midi_register_noteon_callback`](#group__input__callback__reg_1ga3962f276c17618923f1152779552103e)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` {#group__input__callback__reg_1ga3962f276c17618923f1152779552103e} + +Register a note on callback. + +#### Parameters +* `device` the device associate with + +* `func` the callback function to register + +#### `public void `[`midi_register_noteoff_callback`](#group__input__callback__reg_1gac847b66051bd6d53b762958be0ec4c6d)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` {#group__input__callback__reg_1gac847b66051bd6d53b762958be0ec4c6d} + +Register a note off callback. + +#### Parameters +* `device` the device associate with + +* `func` the callback function to register + +#### `public void `[`midi_register_aftertouch_callback`](#group__input__callback__reg_1gaa95bc901bd9edff956a667c9a69dd01f)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` {#group__input__callback__reg_1gaa95bc901bd9edff956a667c9a69dd01f} + +Register an after touch callback. + +#### Parameters +* `device` the device associate with + +* `func` the callback function to register + +#### `public void `[`midi_register_pitchbend_callback`](#group__input__callback__reg_1ga071a28f02ba14f53de219be70ebd9a48)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` {#group__input__callback__reg_1ga071a28f02ba14f53de219be70ebd9a48} + +Register a pitch bend callback. + +#### Parameters +* `device` the device associate with + +* `func` the callback function to register + +#### `public void `[`midi_register_songposition_callback`](#group__input__callback__reg_1gaf2adfd79637f3553d8f26deb1ca22ed6)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` {#group__input__callback__reg_1gaf2adfd79637f3553d8f26deb1ca22ed6} + +Register a song position callback. + +#### Parameters +* `device` the device associate with + +* `func` the callback function to register + +#### `public void `[`midi_register_progchange_callback`](#group__input__callback__reg_1gae6ba1a35a4cde9bd15dd42f87401d127)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` {#group__input__callback__reg_1gae6ba1a35a4cde9bd15dd42f87401d127} + +Register a program change callback. + +#### Parameters +* `device` the device associate with + +* `func` the callback function to register + +#### `public void `[`midi_register_chanpressure_callback`](#group__input__callback__reg_1ga39b31f1f4fb93917ce039b958f21b4f5)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` {#group__input__callback__reg_1ga39b31f1f4fb93917ce039b958f21b4f5} + +Register a channel pressure callback. + +#### Parameters +* `device` the device associate with + +* `func` the callback function to register + +#### `public void `[`midi_register_songselect_callback`](#group__input__callback__reg_1gaf9aafc76a2dc4b9fdbb4106cbda6ce72)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` {#group__input__callback__reg_1gaf9aafc76a2dc4b9fdbb4106cbda6ce72} + +Register a song select callback. + +#### Parameters +* `device` the device associate with + +* `func` the callback function to register + +#### `public void `[`midi_register_tc_quarterframe_callback`](#group__input__callback__reg_1ga0a119fada2becc628cb15d753b257e6e)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` {#group__input__callback__reg_1ga0a119fada2becc628cb15d753b257e6e} + +Register a tc quarter frame callback. + +#### Parameters +* `device` the device associate with + +* `func` the callback function to register + +#### `public void `[`midi_register_realtime_callback`](#group__input__callback__reg_1ga764f440e857b89084b1a07f9da2ff93a)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_one_byte_func_t func)` {#group__input__callback__reg_1ga764f440e857b89084b1a07f9da2ff93a} + +Register a realtime callback. + +The callback will be called for all of the real time message types. + +#### Parameters +* `device` the device associate with + +* `func` the callback function to register + +#### `public void `[`midi_register_tunerequest_callback`](#group__input__callback__reg_1gae40ff3ce20bda79fef87da24b8321cb1)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_one_byte_func_t func)` {#group__input__callback__reg_1gae40ff3ce20bda79fef87da24b8321cb1} + +Register a tune request callback. + +#### Parameters +* `device` the device associate with + +* `func` the callback function to register + +#### `public void `[`midi_register_sysex_callback`](#group__input__callback__reg_1ga63ce9631b025785c1848d0122d4c4c48)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_sysex_func_t func)` {#group__input__callback__reg_1ga63ce9631b025785c1848d0122d4c4c48} + +Register a sysex callback. + +#### Parameters +* `device` the device associate with + +* `func` the callback function to register + +#### `public void `[`midi_register_fallthrough_callback`](#group__input__callback__reg_1ga7ed189164aa9682862b3181153afbd94)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_var_byte_func_t func)` {#group__input__callback__reg_1ga7ed189164aa9682862b3181153afbd94} + +Register fall through callback. + +This is only called if a more specific callback is not matched and called. For instance, if you don't register a note on callback but you get a note on message the fall through callback will be called, if it is registered. + +#### Parameters +* `device` the device associate with + +* `func` the callback function to register + +#### `public void `[`midi_register_catchall_callback`](#group__input__callback__reg_1ga9dbfed568d047a6cd05708f11fe39e99)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_var_byte_func_t func)` {#group__input__callback__reg_1ga9dbfed568d047a6cd05708f11fe39e99} + +Register a catch all callback. + +If registered, the catch all callback is called for every message that is matched, even if a more specific or the fallthrough callback is registered. + +#### Parameters +* `device` the device associate with + +* `func` the callback function to register + diff --git a/docs/api_midi_device.md b/docs/api_midi_device.md new file mode 100644 index 000000000000..5b57abd45469 --- /dev/null +++ b/docs/api_midi_device.md @@ -0,0 +1,143 @@ +# group `midi_device` {#group__midi__device} + +You use the functions when you are implementing your own midi device. + +You set a send function to actually send bytes via your device, this method is called when you call a send function with this device, for instance midi_send_cc + +You use the midi_device_input to process input data from the device and pass it through the device's associated callbacks. + +You use the midi_device_set_pre_input_process_func if you want to have a function called at the beginning of the device's process function, generally to poll for input and pass that into midi_device_input + +## Summary + + Members | Descriptions +--------------------------------|--------------------------------------------- +`define `[`MIDI_INPUT_QUEUE_LENGTH`](#group__midi__device_1ga4aaa419caebdca2bbdfc1331e79781a8) | +`enum `[`input_state_t`](#group__midi__device_1gac203e877d3df4275ceb8e7180a61f621) | +`public void `[`midi_device_input`](#group__midi__device_1gad8d3db8eb35d9cfa51ef036a0a9d70db)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t cnt,uint8_t * input)` | Process input bytes. This function parses bytes and calls the appropriate callbacks associated with the given device. You use this function if you are creating a custom device and you want to have midi input. +`public void `[`midi_device_set_send_func`](#group__midi__device_1ga59f5a46bdd4452f186cc73d9e96d4673)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_var_byte_func_t send_func)` | Set the callback function that will be used for sending output data bytes. This is only used if you're creating a custom device. You'll most likely want the callback function to disable interrupts so that you can call the various midi send functions without worrying about locking. +`public void `[`midi_device_set_pre_input_process_func`](#group__midi__device_1ga4de0841b87c04fc23cb56b6451f33b69)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_no_byte_func_t pre_process_func)` | Set a callback which is called at the beginning of the midi_device_process call. This can be used to poll for input data and send the data through the midi_device_input function. You'll probably only use this if you're creating a custom device. +`struct `[`_midi_device`](docs/api_midi_device.md#struct__midi__device) | This structure represents the input and output functions and processing data for a midi device. + +## Members + +#### `define `[`MIDI_INPUT_QUEUE_LENGTH`](#group__midi__device_1ga4aaa419caebdca2bbdfc1331e79781a8) {#group__midi__device_1ga4aaa419caebdca2bbdfc1331e79781a8} + +#### `enum `[`input_state_t`](#group__midi__device_1gac203e877d3df4275ceb8e7180a61f621) {#group__midi__device_1gac203e877d3df4275ceb8e7180a61f621} + + Values | Descriptions +--------------------------------|--------------------------------------------- +IDLE | +ONE_BYTE_MESSAGE | +TWO_BYTE_MESSAGE | +THREE_BYTE_MESSAGE | +SYSEX_MESSAGE | + +#### `public void `[`midi_device_input`](#group__midi__device_1gad8d3db8eb35d9cfa51ef036a0a9d70db)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t cnt,uint8_t * input)` {#group__midi__device_1gad8d3db8eb35d9cfa51ef036a0a9d70db} + +Process input bytes. This function parses bytes and calls the appropriate callbacks associated with the given device. You use this function if you are creating a custom device and you want to have midi input. + +#### Parameters +* `device` the midi device to associate the input with + +* `cnt` the number of bytes you are processing + +* `input` the bytes to process + +#### `public void `[`midi_device_set_send_func`](#group__midi__device_1ga59f5a46bdd4452f186cc73d9e96d4673)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_var_byte_func_t send_func)` {#group__midi__device_1ga59f5a46bdd4452f186cc73d9e96d4673} + +Set the callback function that will be used for sending output data bytes. This is only used if you're creating a custom device. You'll most likely want the callback function to disable interrupts so that you can call the various midi send functions without worrying about locking. + +#### Parameters +* `device` the midi device to associate this callback with + +* `send_func` the callback function that will do the sending + +#### `public void `[`midi_device_set_pre_input_process_func`](#group__midi__device_1ga4de0841b87c04fc23cb56b6451f33b69)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_no_byte_func_t pre_process_func)` {#group__midi__device_1ga4de0841b87c04fc23cb56b6451f33b69} + +Set a callback which is called at the beginning of the midi_device_process call. This can be used to poll for input data and send the data through the midi_device_input function. You'll probably only use this if you're creating a custom device. + +#### Parameters +* `device` the midi device to associate this callback with + +* `midi_no_byte_func_t` the actual callback function + +# struct `_midi_device` {#struct__midi__device} + +This structure represents the input and output functions and processing data for a midi device. + +A device can represent an actual physical device [serial port, usb port] or something virtual. You should not need to modify this structure directly. + +## Summary + + Members | Descriptions +--------------------------------|--------------------------------------------- +`public midi_var_byte_func_t `[`send_func`](docs/api_midi_device.md#struct__midi__device_1a25d4c94b4bbccd5b98f1032b469f3ff9) | +`public midi_three_byte_func_t `[`input_cc_callback`](docs/api_midi_device.md#struct__midi__device_1a6da5236c1bc73877728df92d213a78d1) | +`public midi_three_byte_func_t `[`input_noteon_callback`](docs/api_midi_device.md#struct__midi__device_1aa10b15cf1a7fb825a5df0d2abbe34a1c) | +`public midi_three_byte_func_t `[`input_noteoff_callback`](docs/api_midi_device.md#struct__midi__device_1aaf290043078534d3a5a0ea4c840eba84) | +`public midi_three_byte_func_t `[`input_aftertouch_callback`](docs/api_midi_device.md#struct__midi__device_1acb0b4901c545cec4b28b126f2d8c315f) | +`public midi_three_byte_func_t `[`input_pitchbend_callback`](docs/api_midi_device.md#struct__midi__device_1a305fea672caeb996f2233bf8cd2bef18) | +`public midi_three_byte_func_t `[`input_songposition_callback`](docs/api_midi_device.md#struct__midi__device_1a5f3f13638b3fef3fc561ed1bf301d586) | +`public midi_two_byte_func_t `[`input_progchange_callback`](docs/api_midi_device.md#struct__midi__device_1adaf1da617c9a10a9dcad00ab1959d3da) | +`public midi_two_byte_func_t `[`input_chanpressure_callback`](docs/api_midi_device.md#struct__midi__device_1ab7ca2925c539915d43974eff604d85f7) | +`public midi_two_byte_func_t `[`input_songselect_callback`](docs/api_midi_device.md#struct__midi__device_1a89bed8a5a55376120cfc0a62b42f057f) | +`public midi_two_byte_func_t `[`input_tc_quarterframe_callback`](docs/api_midi_device.md#struct__midi__device_1ad9813e75d22e284f9f65a907d20600f0) | +`public midi_one_byte_func_t `[`input_realtime_callback`](docs/api_midi_device.md#struct__midi__device_1a9448eba4afb7e43650434748db3777be) | +`public midi_one_byte_func_t `[`input_tunerequest_callback`](docs/api_midi_device.md#struct__midi__device_1a0cb8fd53e00cf1d4202d4fa04d038e8d) | +`public midi_sysex_func_t `[`input_sysex_callback`](docs/api_midi_device.md#struct__midi__device_1afff9a0ce641762aaef24c1e6953ec9a2) | +`public midi_var_byte_func_t `[`input_fallthrough_callback`](docs/api_midi_device.md#struct__midi__device_1abb974ec6d734001b4a0e370f292be503) | +`public midi_var_byte_func_t `[`input_catchall_callback`](docs/api_midi_device.md#struct__midi__device_1aae0d535129d4fd650edc98eb3f7584f8) | +`public midi_no_byte_func_t `[`pre_input_process_callback`](docs/api_midi_device.md#struct__midi__device_1aeb0bb8923d66c23d874e177dc4265754) | +`public uint8_t `[`input_buffer`](docs/api_midi_device.md#struct__midi__device_1a7c5684857d6af4ebc4dc12da27bd6b2a) | +`public input_state_t `[`input_state`](docs/api_midi_device.md#struct__midi__device_1a69a687d2d1c449ec15a11c07a5722e39) | +`public uint16_t `[`input_count`](docs/api_midi_device.md#struct__midi__device_1a68dea8e7b6151e89c85c95caa612ee5d) | +`public uint8_t `[`input_queue_data`](docs/api_midi_device.md#struct__midi__device_1ada41de021135dc423abedcbb30f366ff) | +`public `[`byteQueue_t`](#structbyte_queue__t)` `[`input_queue`](#struct__midi__device_1a49c8538a8a02193c58e28a56eb695d8f) | + +## Members + +#### `public midi_var_byte_func_t `[`send_func`](docs/api_midi_device.md#struct__midi__device_1a25d4c94b4bbccd5b98f1032b469f3ff9) {#struct__midi__device_1a25d4c94b4bbccd5b98f1032b469f3ff9} + +#### `public midi_three_byte_func_t `[`input_cc_callback`](docs/api_midi_device.md#struct__midi__device_1a6da5236c1bc73877728df92d213a78d1) {#struct__midi__device_1a6da5236c1bc73877728df92d213a78d1} + +#### `public midi_three_byte_func_t `[`input_noteon_callback`](docs/api_midi_device.md#struct__midi__device_1aa10b15cf1a7fb825a5df0d2abbe34a1c) {#struct__midi__device_1aa10b15cf1a7fb825a5df0d2abbe34a1c} + +#### `public midi_three_byte_func_t `[`input_noteoff_callback`](docs/api_midi_device.md#struct__midi__device_1aaf290043078534d3a5a0ea4c840eba84) {#struct__midi__device_1aaf290043078534d3a5a0ea4c840eba84} + +#### `public midi_three_byte_func_t `[`input_aftertouch_callback`](docs/api_midi_device.md#struct__midi__device_1acb0b4901c545cec4b28b126f2d8c315f) {#struct__midi__device_1acb0b4901c545cec4b28b126f2d8c315f} + +#### `public midi_three_byte_func_t `[`input_pitchbend_callback`](docs/api_midi_device.md#struct__midi__device_1a305fea672caeb996f2233bf8cd2bef18) {#struct__midi__device_1a305fea672caeb996f2233bf8cd2bef18} + +#### `public midi_three_byte_func_t `[`input_songposition_callback`](docs/api_midi_device.md#struct__midi__device_1a5f3f13638b3fef3fc561ed1bf301d586) {#struct__midi__device_1a5f3f13638b3fef3fc561ed1bf301d586} + +#### `public midi_two_byte_func_t `[`input_progchange_callback`](docs/api_midi_device.md#struct__midi__device_1adaf1da617c9a10a9dcad00ab1959d3da) {#struct__midi__device_1adaf1da617c9a10a9dcad00ab1959d3da} + +#### `public midi_two_byte_func_t `[`input_chanpressure_callback`](docs/api_midi_device.md#struct__midi__device_1ab7ca2925c539915d43974eff604d85f7) {#struct__midi__device_1ab7ca2925c539915d43974eff604d85f7} + +#### `public midi_two_byte_func_t `[`input_songselect_callback`](docs/api_midi_device.md#struct__midi__device_1a89bed8a5a55376120cfc0a62b42f057f) {#struct__midi__device_1a89bed8a5a55376120cfc0a62b42f057f} + +#### `public midi_two_byte_func_t `[`input_tc_quarterframe_callback`](docs/api_midi_device.md#struct__midi__device_1ad9813e75d22e284f9f65a907d20600f0) {#struct__midi__device_1ad9813e75d22e284f9f65a907d20600f0} + +#### `public midi_one_byte_func_t `[`input_realtime_callback`](docs/api_midi_device.md#struct__midi__device_1a9448eba4afb7e43650434748db3777be) {#struct__midi__device_1a9448eba4afb7e43650434748db3777be} + +#### `public midi_one_byte_func_t `[`input_tunerequest_callback`](docs/api_midi_device.md#struct__midi__device_1a0cb8fd53e00cf1d4202d4fa04d038e8d) {#struct__midi__device_1a0cb8fd53e00cf1d4202d4fa04d038e8d} + +#### `public midi_sysex_func_t `[`input_sysex_callback`](docs/api_midi_device.md#struct__midi__device_1afff9a0ce641762aaef24c1e6953ec9a2) {#struct__midi__device_1afff9a0ce641762aaef24c1e6953ec9a2} + +#### `public midi_var_byte_func_t `[`input_fallthrough_callback`](docs/api_midi_device.md#struct__midi__device_1abb974ec6d734001b4a0e370f292be503) {#struct__midi__device_1abb974ec6d734001b4a0e370f292be503} + +#### `public midi_var_byte_func_t `[`input_catchall_callback`](docs/api_midi_device.md#struct__midi__device_1aae0d535129d4fd650edc98eb3f7584f8) {#struct__midi__device_1aae0d535129d4fd650edc98eb3f7584f8} + +#### `public midi_no_byte_func_t `[`pre_input_process_callback`](docs/api_midi_device.md#struct__midi__device_1aeb0bb8923d66c23d874e177dc4265754) {#struct__midi__device_1aeb0bb8923d66c23d874e177dc4265754} + +#### `public uint8_t `[`input_buffer`](docs/api_midi_device.md#struct__midi__device_1a7c5684857d6af4ebc4dc12da27bd6b2a) {#struct__midi__device_1a7c5684857d6af4ebc4dc12da27bd6b2a} + +#### `public input_state_t `[`input_state`](docs/api_midi_device.md#struct__midi__device_1a69a687d2d1c449ec15a11c07a5722e39) {#struct__midi__device_1a69a687d2d1c449ec15a11c07a5722e39} + +#### `public uint16_t `[`input_count`](docs/api_midi_device.md#struct__midi__device_1a68dea8e7b6151e89c85c95caa612ee5d) {#struct__midi__device_1a68dea8e7b6151e89c85c95caa612ee5d} + +#### `public uint8_t `[`input_queue_data`](docs/api_midi_device.md#struct__midi__device_1ada41de021135dc423abedcbb30f366ff) {#struct__midi__device_1ada41de021135dc423abedcbb30f366ff} + +#### `public `[`byteQueue_t`](#structbyte_queue__t)` `[`input_queue`](#struct__midi__device_1a49c8538a8a02193c58e28a56eb695d8f) {#struct__midi__device_1a49c8538a8a02193c58e28a56eb695d8f} + diff --git a/docs/api_midi_device_setup_process.md b/docs/api_midi_device_setup_process.md new file mode 100644 index 000000000000..ae82197c5c83 --- /dev/null +++ b/docs/api_midi_device_setup_process.md @@ -0,0 +1,31 @@ +# group `midi_device_setup_process` {#group__midi__device__setup__process} + +These are method that you must use to initialize and run a device. + +## Summary + + Members | Descriptions +--------------------------------|--------------------------------------------- +`public void `[`midi_device_init`](#group__midi__device__setup__process_1gaf29deddc94ea98a59daa0bde1aefd9d9)`(`[`MidiDevice`](#struct__midi__device)` * device)` | Initialize a device. +`public void `[`midi_device_process`](#group__midi__device__setup__process_1gaa3d5993d0e998a1b59bbf5ab9c7b492b)`(`[`MidiDevice`](#struct__midi__device)` * device)` | Process input data. + +## Members + +#### `public void `[`midi_device_init`](#group__midi__device__setup__process_1gaf29deddc94ea98a59daa0bde1aefd9d9)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__midi__device__setup__process_1gaf29deddc94ea98a59daa0bde1aefd9d9} + +Initialize a device. + +You must call this before using the device in question. + +#### Parameters +* `device` the device to initialize + +#### `public void `[`midi_device_process`](#group__midi__device__setup__process_1gaa3d5993d0e998a1b59bbf5ab9c7b492b)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__midi__device__setup__process_1gaa3d5993d0e998a1b59bbf5ab9c7b492b} + +Process input data. + +This method drives the input processing, you must call this method frequently if you expect to have your input callbacks called. + +#### Parameters +* `device` the device to process + diff --git a/docs/api_midi_util.md b/docs/api_midi_util.md new file mode 100644 index 000000000000..97821bd18063 --- /dev/null +++ b/docs/api_midi_util.md @@ -0,0 +1,54 @@ +# group `midi_util` {#group__midi__util} + +## Summary + + Members | Descriptions +--------------------------------|--------------------------------------------- +`enum `[`midi_packet_length_t`](#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e) | An enumeration of the possible packet length values. +`public bool `[`midi_is_statusbyte`](#group__midi__util_1ga12e3b42ff9cbb4b4f2bc455fc8743ee5)`(uint8_t theByte)` | Test to see if the byte given is a status byte. +`public bool `[`midi_is_realtime`](#group__midi__util_1gad2f52c363e34a8000d80c983c324e2d7)`(uint8_t theByte)` | Test to see if the byte given is a realtime message. +`public `[`midi_packet_length_t`](#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e)` `[`midi_packet_length`](#group__midi__util_1gaa168b43af6ae9de0debce1625e4b8175)`(uint8_t status)` | Find the length of the packet associated with the status byte given. + +## Members + +#### `enum `[`midi_packet_length_t`](#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e) {#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e} + + Values | Descriptions +--------------------------------|--------------------------------------------- +UNDEFINED | +ONE | +TWO | +THREE | + +An enumeration of the possible packet length values. + +#### `public bool `[`midi_is_statusbyte`](#group__midi__util_1ga12e3b42ff9cbb4b4f2bc455fc8743ee5)`(uint8_t theByte)` {#group__midi__util_1ga12e3b42ff9cbb4b4f2bc455fc8743ee5} + +Test to see if the byte given is a status byte. + +#### Parameters +* `theByte` the byte to test + +#### Returns +true if the byte given is a midi status byte + +#### `public bool `[`midi_is_realtime`](#group__midi__util_1gad2f52c363e34a8000d80c983c324e2d7)`(uint8_t theByte)` {#group__midi__util_1gad2f52c363e34a8000d80c983c324e2d7} + +Test to see if the byte given is a realtime message. + +#### Parameters +* `theByte` the byte to test + +#### Returns +true if it is a realtime message, false otherwise + +#### `public `[`midi_packet_length_t`](#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e)` `[`midi_packet_length`](#group__midi__util_1gaa168b43af6ae9de0debce1625e4b8175)`(uint8_t status)` {#group__midi__util_1gaa168b43af6ae9de0debce1625e4b8175} + +Find the length of the packet associated with the status byte given. + +#### Parameters +* `status` the status byte + +#### Returns +the length of the packet, will return UNDEFINED if the byte is not a status byte or if it is a sysex status byte + diff --git a/docs/api_send_functions.md b/docs/api_send_functions.md new file mode 100644 index 000000000000..b331508008a5 --- /dev/null +++ b/docs/api_send_functions.md @@ -0,0 +1,241 @@ +# group `send_functions` {#group__send__functions} + +These are the functions you use to send midi data through a device. + +## Summary + + Members | Descriptions +--------------------------------|--------------------------------------------- +`public void `[`midi_send_cc`](#group__send__functions_1gaaf884811c92df405ca8fe1a00082f960)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t val)` | Send a control change message (cc) via the given device. +`public void `[`midi_send_noteon`](#group__send__functions_1ga467bcf46dbf03ec269ce565b46bc2775)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t vel)` | Send a note on message via the given device. +`public void `[`midi_send_noteoff`](#group__send__functions_1gaedb7d8805425eef5d47d57ddcb4c7a49)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t vel)` | Send a note off message via the given device. +`public void `[`midi_send_aftertouch`](#group__send__functions_1ga0014847571317a0e34b2ef46a6bc584f)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t note_num,uint8_t amt)` | Send an after touch message via the given device. +`public void `[`midi_send_pitchbend`](#group__send__functions_1gae5a4a1e71611e7534be80af9ce3d3491)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,int16_t amt)` | Send a pitch bend message via the given device. +`public void `[`midi_send_programchange`](#group__send__functions_1ga7b15588ef25e5e1ff09c2afc3151ce86)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num)` | Send a program change message via the given device. +`public void `[`midi_send_channelpressure`](#group__send__functions_1gaf23e69fdf812e89c0036f51f88ab2e1b)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t amt)` | Send a channel pressure message via the given device. +`public void `[`midi_send_clock`](#group__send__functions_1ga4e1b11a7cdb0875f6e03ce7c79c581aa)`(`[`MidiDevice`](#struct__midi__device)` * device)` | Send a clock message via the given device. +`public void `[`midi_send_tick`](#group__send__functions_1ga2b43c7d433d940c5b907595aac947972)`(`[`MidiDevice`](#struct__midi__device)` * device)` | Send a tick message via the given device. +`public void `[`midi_send_start`](#group__send__functions_1ga1569749a8d58ccc56789289d7c7245cc)`(`[`MidiDevice`](#struct__midi__device)` * device)` | Send a start message via the given device. +`public void `[`midi_send_continue`](#group__send__functions_1gaed5dc29d754a27372e89ab8bc20ee120)`(`[`MidiDevice`](#struct__midi__device)` * device)` | Send a continue message via the given device. +`public void `[`midi_send_stop`](#group__send__functions_1ga026e1a620276cb653ac501aa0d12a988)`(`[`MidiDevice`](#struct__midi__device)` * device)` | Send a stop message via the given device. +`public void `[`midi_send_activesense`](#group__send__functions_1ga9b6e4c6ce4719d2604187b325620db37)`(`[`MidiDevice`](#struct__midi__device)` * device)` | Send an active sense message via the given device. +`public void `[`midi_send_reset`](#group__send__functions_1ga3671e39a6d93ca9568fc493001af1b1b)`(`[`MidiDevice`](#struct__midi__device)` * device)` | Send a reset message via the given device. +`public void `[`midi_send_tcquarterframe`](#group__send__functions_1ga5b85639910eec280bb744c934d0fd45a)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t time)` | Send a tc quarter frame message via the given device. +`public void `[`midi_send_songposition`](#group__send__functions_1gab1c9eeef3b57a8cd2e6128d18e85eb7f)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t pos)` | Send a song position message via the given device. +`public void `[`midi_send_songselect`](#group__send__functions_1ga42de7838ba70d949af9a50f9facc3c50)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t song)` | Send a song select message via the given device. +`public void `[`midi_send_tunerequest`](#group__send__functions_1ga8db6c7e04d48e4d2266dd59118ca0656)`(`[`MidiDevice`](#struct__midi__device)` * device)` | Send a tune request message via the given device. +`public void `[`midi_send_byte`](#group__send__functions_1ga857e85eb90b288385642d4d991e09881)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t b)` | Send a byte via the given device. +`public void `[`midi_send_data`](#group__send__functions_1ga36e2f2e45369d911b76969361679054b)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t count,uint8_t byte0,uint8_t byte1,uint8_t byte2)` | Send up to 3 bytes of data. +`public void `[`midi_send_array`](#group__send__functions_1ga245243cb1da18d2cea18d4b18d846ead)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t count,uint8_t * array)` | Send an array of formatted midi data. + +## Members + +#### `public void `[`midi_send_cc`](#group__send__functions_1gaaf884811c92df405ca8fe1a00082f960)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t val)` {#group__send__functions_1gaaf884811c92df405ca8fe1a00082f960} + +Send a control change message (cc) via the given device. + +#### Parameters +* `device` the device to use for sending + +* `chan` the channel to send on, 0-15 + +* `num` the cc num + +* `val` the value of that cc num + +#### `public void `[`midi_send_noteon`](#group__send__functions_1ga467bcf46dbf03ec269ce565b46bc2775)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t vel)` {#group__send__functions_1ga467bcf46dbf03ec269ce565b46bc2775} + +Send a note on message via the given device. + +#### Parameters +* `device` the device to use for sending + +* `chan` the channel to send on, 0-15 + +* `num` the note number + +* `vel` the note velocity + +#### `public void `[`midi_send_noteoff`](#group__send__functions_1gaedb7d8805425eef5d47d57ddcb4c7a49)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t vel)` {#group__send__functions_1gaedb7d8805425eef5d47d57ddcb4c7a49} + +Send a note off message via the given device. + +#### Parameters +* `device` the device to use for sending + +* `chan` the channel to send on, 0-15 + +* `num` the note number + +* `vel` the note velocity + +#### `public void `[`midi_send_aftertouch`](#group__send__functions_1ga0014847571317a0e34b2ef46a6bc584f)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t note_num,uint8_t amt)` {#group__send__functions_1ga0014847571317a0e34b2ef46a6bc584f} + +Send an after touch message via the given device. + +#### Parameters +* `device` the device to use for sending + +* `chan` the channel to send on, 0-15 + +* `note_num` the note number + +* `amt` the after touch amount + +#### `public void `[`midi_send_pitchbend`](#group__send__functions_1gae5a4a1e71611e7534be80af9ce3d3491)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,int16_t amt)` {#group__send__functions_1gae5a4a1e71611e7534be80af9ce3d3491} + +Send a pitch bend message via the given device. + +#### Parameters +* `device` the device to use for sending + +* `chan` the channel to send on, 0-15 + +* `amt` the bend amount range: -8192..8191, 0 means no bend + +#### `public void `[`midi_send_programchange`](#group__send__functions_1ga7b15588ef25e5e1ff09c2afc3151ce86)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num)` {#group__send__functions_1ga7b15588ef25e5e1ff09c2afc3151ce86} + +Send a program change message via the given device. + +#### Parameters +* `device` the device to use for sending + +* `chan` the channel to send on, 0-15 + +* `num` the program to change to + +#### `public void `[`midi_send_channelpressure`](#group__send__functions_1gaf23e69fdf812e89c0036f51f88ab2e1b)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t amt)` {#group__send__functions_1gaf23e69fdf812e89c0036f51f88ab2e1b} + +Send a channel pressure message via the given device. + +#### Parameters +* `device` the device to use for sending + +* `chan` the channel to send on, 0-15 + +* `amt` the amount of channel pressure + +#### `public void `[`midi_send_clock`](#group__send__functions_1ga4e1b11a7cdb0875f6e03ce7c79c581aa)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga4e1b11a7cdb0875f6e03ce7c79c581aa} + +Send a clock message via the given device. + +#### Parameters +* `device` the device to use for sending + +#### `public void `[`midi_send_tick`](#group__send__functions_1ga2b43c7d433d940c5b907595aac947972)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga2b43c7d433d940c5b907595aac947972} + +Send a tick message via the given device. + +#### Parameters +* `device` the device to use for sending + +#### `public void `[`midi_send_start`](#group__send__functions_1ga1569749a8d58ccc56789289d7c7245cc)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga1569749a8d58ccc56789289d7c7245cc} + +Send a start message via the given device. + +#### Parameters +* `device` the device to use for sending + +#### `public void `[`midi_send_continue`](#group__send__functions_1gaed5dc29d754a27372e89ab8bc20ee120)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1gaed5dc29d754a27372e89ab8bc20ee120} + +Send a continue message via the given device. + +#### Parameters +* `device` the device to use for sending + +#### `public void `[`midi_send_stop`](#group__send__functions_1ga026e1a620276cb653ac501aa0d12a988)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga026e1a620276cb653ac501aa0d12a988} + +Send a stop message via the given device. + +#### Parameters +* `device` the device to use for sending + +#### `public void `[`midi_send_activesense`](#group__send__functions_1ga9b6e4c6ce4719d2604187b325620db37)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga9b6e4c6ce4719d2604187b325620db37} + +Send an active sense message via the given device. + +#### Parameters +* `device` the device to use for sending + +#### `public void `[`midi_send_reset`](#group__send__functions_1ga3671e39a6d93ca9568fc493001af1b1b)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga3671e39a6d93ca9568fc493001af1b1b} + +Send a reset message via the given device. + +#### Parameters +* `device` the device to use for sending + +#### `public void `[`midi_send_tcquarterframe`](#group__send__functions_1ga5b85639910eec280bb744c934d0fd45a)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t time)` {#group__send__functions_1ga5b85639910eec280bb744c934d0fd45a} + +Send a tc quarter frame message via the given device. + +#### Parameters +* `device` the device to use for sending + +* `time` the time of this quarter frame, range 0..16383 + +#### `public void `[`midi_send_songposition`](#group__send__functions_1gab1c9eeef3b57a8cd2e6128d18e85eb7f)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t pos)` {#group__send__functions_1gab1c9eeef3b57a8cd2e6128d18e85eb7f} + +Send a song position message via the given device. + +#### Parameters +* `device` the device to use for sending + +* `pos` the song position + +#### `public void `[`midi_send_songselect`](#group__send__functions_1ga42de7838ba70d949af9a50f9facc3c50)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t song)` {#group__send__functions_1ga42de7838ba70d949af9a50f9facc3c50} + +Send a song select message via the given device. + +#### Parameters +* `device` the device to use for sending + +* `song` the song to select + +#### `public void `[`midi_send_tunerequest`](#group__send__functions_1ga8db6c7e04d48e4d2266dd59118ca0656)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga8db6c7e04d48e4d2266dd59118ca0656} + +Send a tune request message via the given device. + +#### Parameters +* `device` the device to use for sending + +#### `public void `[`midi_send_byte`](#group__send__functions_1ga857e85eb90b288385642d4d991e09881)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t b)` {#group__send__functions_1ga857e85eb90b288385642d4d991e09881} + +Send a byte via the given device. + +This is a generic method for sending data via the given midi device. This would be useful for sending sysex data or messages that are not implemented in this API, if there are any. Please contact the author if you find some so we can add them. + +#### Parameters +* `device` the device to use for sending + +* `b` the byte to send + +#### `public void `[`midi_send_data`](#group__send__functions_1ga36e2f2e45369d911b76969361679054b)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t count,uint8_t byte0,uint8_t byte1,uint8_t byte2)` {#group__send__functions_1ga36e2f2e45369d911b76969361679054b} + +Send up to 3 bytes of data. + +% 4 is applied to count so that you can use this to pass sysex through + +#### Parameters +* `device` the device to use for sending + +* `count` the count of bytes to send, %4 is applied + +* `byte0` the first byte + +* `byte1` the second byte, ignored if cnt % 4 != 2 + +* `byte2` the third byte, ignored if cnt % 4 != 3 + +#### `public void `[`midi_send_array`](#group__send__functions_1ga245243cb1da18d2cea18d4b18d846ead)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t count,uint8_t * array)` {#group__send__functions_1ga245243cb1da18d2cea18d4b18d846ead} + +Send an array of formatted midi data. + +Can be used for sysex. + +#### Parameters +* `device` the device to use for sending + +* `count` the count of bytes to send + +* `array` the array of bytes + diff --git a/docs/api_sysex_tools.md b/docs/api_sysex_tools.md new file mode 100644 index 000000000000..55dbe9e16443 --- /dev/null +++ b/docs/api_sysex_tools.md @@ -0,0 +1,61 @@ +# group `sysex_tools` {#group__sysex__tools} + +## Summary + + Members | Descriptions +--------------------------------|--------------------------------------------- +`public uint16_t `[`sysex_encoded_length`](#group__sysex__tools_1ga061e5607030412d6e62e2390d8013f0a)`(uint16_t decoded_length)` | Compute the length of a message after it is encoded. +`public uint16_t `[`sysex_decoded_length`](#group__sysex__tools_1ga121fc227d3acc1c0ea08c9a5c26fa3b0)`(uint16_t encoded_length)` | Compute the length of a message after it is decoded. +`public uint16_t `[`sysex_encode`](#group__sysex__tools_1ga54d77f8d32f92a6f329daefa2b314742)`(uint8_t * encoded,const uint8_t * source,uint16_t length)` | Encode data so that it can be transmitted safely in a sysex message. +`public uint16_t `[`sysex_decode`](#group__sysex__tools_1gaaad1d9ba2d5eca709a0ab4ba40662229)`(uint8_t * decoded,const uint8_t * source,uint16_t length)` | Decode encoded data. + +## Members + +#### `public uint16_t `[`sysex_encoded_length`](#group__sysex__tools_1ga061e5607030412d6e62e2390d8013f0a)`(uint16_t decoded_length)` {#group__sysex__tools_1ga061e5607030412d6e62e2390d8013f0a} + +Compute the length of a message after it is encoded. + +#### Parameters +* `decoded_length` The length, in bytes, of the message to encode. + +#### Returns +The length, in bytes, of the message after encodeing. + +#### `public uint16_t `[`sysex_decoded_length`](#group__sysex__tools_1ga121fc227d3acc1c0ea08c9a5c26fa3b0)`(uint16_t encoded_length)` {#group__sysex__tools_1ga121fc227d3acc1c0ea08c9a5c26fa3b0} + +Compute the length of a message after it is decoded. + +#### Parameters +* `encoded_length` The length, in bytes, of the encoded message. + +#### Returns +The length, in bytes, of the message after it is decoded. + +#### `public uint16_t `[`sysex_encode`](#group__sysex__tools_1ga54d77f8d32f92a6f329daefa2b314742)`(uint8_t * encoded,const uint8_t * source,uint16_t length)` {#group__sysex__tools_1ga54d77f8d32f92a6f329daefa2b314742} + +Encode data so that it can be transmitted safely in a sysex message. + +#### Parameters +* `encoded` The output data buffer, must be at least sysex_encoded_length(length) bytes long. + +* `source` The input buffer of data to be encoded. + +* `length` The number of bytes from the input buffer to encode. + +#### Returns +number of bytes encoded. + +#### `public uint16_t `[`sysex_decode`](#group__sysex__tools_1gaaad1d9ba2d5eca709a0ab4ba40662229)`(uint8_t * decoded,const uint8_t * source,uint16_t length)` {#group__sysex__tools_1gaaad1d9ba2d5eca709a0ab4ba40662229} + +Decode encoded data. + +#### Parameters +* `decoded` The output data buffer, must be at least sysex_decoded_length(length) bytes long. + +* `source` The input buffer of data to be decoded. + +* `length` The number of bytes from the input buffer to decode. + +#### Returns +number of bytes decoded. + diff --git a/doxygen-todo b/doxygen-todo new file mode 100644 index 000000000000..d5ae84058a23 --- /dev/null +++ b/doxygen-todo @@ -0,0 +1,32 @@ +tmk_core/protocol +tmk_core/protocol/bluefruit +tmk_core/protocol/chibios +tmk_core/protocol/iwrap +tmk_core/protocol/lufa +tmk_core/protocol/mbed +tmk_core/protocol/midi +tmk_core/protocol/midi/bytequeue +tmk_core/protocol/midi/Config +tmk_core/protocol/pjrc +tmk_core/protocol/usb_hid +tmk_core/protocol/vusb +tmk_core/tool +tmk_core/tool/chibios +quantum +quantum/api +quantum/audio +quantum/keymap_extras +quantum/process_keycode +quantum/serial_link +quantum/serial_link/protocol +quantum/serial_link/system +quantum/serial_link/tests +quantum/tools +quantum/visualizer +quantum/visualizer/resources +drivers +drivers/avr +drivers/ugfx +drivers/ugfx/gdisp +drivers/ugfx/gdisp/is31fl3731c +drivers/ugfx/gdisp/st7565 diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index 33d920554fac..fff834791552 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -44,6 +44,10 @@ int retro_tapping_counter = 0; #include #endif +/** \brief Called to execute an action. + * + * FIXME: Needs documentation. + */ void action_exec(keyevent_t event) { if (!IS_NOEVENT(event)) { @@ -95,6 +99,10 @@ void action_exec(keyevent_t event) bool swap_hands = false; bool swap_held = false; +/** \brief Process Hand Swap + * + * FIXME: Needs documentation. + */ void process_hand_swap(keyevent_t *event) { static swap_state_row_t swap_state[MATRIX_ROWS]; @@ -134,7 +142,10 @@ bool process_record_quantum(keyrecord_t *record) { } #ifndef NO_ACTION_TAPPING -// Allows for handling tap-hold actions immediately instead of waiting for TAPPING_TERM or another keypress. +/** \brief Allows for handling tap-hold actions immediately instead of waiting for TAPPING_TERM or another keypress. + * + * FIXME: Needs documentation. + */ void process_record_tap_hint(keyrecord_t *record) { action_t action = layer_switch_get_action(record->event.key); @@ -154,6 +165,10 @@ void process_record_tap_hint(keyrecord_t *record) } #endif +/** \brief Take a key event (key press or key release) and processes it. + * + * FIXME: Needs documentation. + */ void process_record(keyrecord_t *record) { if (IS_NOEVENT(record->event)) { return; } @@ -172,6 +187,10 @@ void process_record(keyrecord_t *record) process_action(record, action); } +/** \brief Take an action and processes it. + * + * FIXME: Needs documentation. + */ void process_action(keyrecord_t *record, action_t action) { keyevent_t event = record->event; @@ -674,8 +693,9 @@ void process_action(keyrecord_t *record, action_t action) -/* - * Utilities for actions. +/** \brief Utilities for actions. (FIXME: Needs better description) + * + * FIXME: Needs documentation. */ void register_code(uint8_t code) { @@ -755,6 +775,10 @@ void register_code(uint8_t code) } } +/** \brief Utilities for actions. (FIXME: Needs better description) + * + * FIXME: Needs documentation. + */ void unregister_code(uint8_t code) { if (code == KC_NO) { @@ -810,6 +834,10 @@ void unregister_code(uint8_t code) } } +/** \brief Utilities for actions. (FIXME: Needs better description) + * + * FIXME: Needs documentation. + */ void register_mods(uint8_t mods) { if (mods) { @@ -818,6 +846,10 @@ void register_mods(uint8_t mods) } } +/** \brief Utilities for actions. (FIXME: Needs better description) + * + * FIXME: Needs documentation. + */ void unregister_mods(uint8_t mods) { if (mods) { @@ -826,12 +858,20 @@ void unregister_mods(uint8_t mods) } } +/** \brief Utilities for actions. (FIXME: Needs better description) + * + * FIXME: Needs documentation. + */ void clear_keyboard(void) { clear_mods(); clear_keyboard_but_mods(); } +/** \brief Utilities for actions. (FIXME: Needs better description) + * + * FIXME: Needs documentation. + */ void clear_keyboard_but_mods(void) { clear_weak_mods(); @@ -848,6 +888,10 @@ void clear_keyboard_but_mods(void) #endif } +/** \brief Utilities for actions. (FIXME: Needs better description) + * + * FIXME: Needs documentation. + */ bool is_tap_key(keypos_t key) { action_t action = layer_switch_get_action(key); @@ -880,14 +924,19 @@ bool is_tap_key(keypos_t key) } -/* - * debug print +/** \brief Debug print (FIXME: Needs better description) + * + * FIXME: Needs documentation. */ void debug_event(keyevent_t event) { dprintf("%04X%c(%u)", (event.key.row<<8 | event.key.col), (event.pressed ? 'd' : 'u'), event.time); } +/** \brief Debug print (FIXME: Needs better description) + * + * FIXME: Needs documentation. + */ void debug_record(keyrecord_t record) { debug_event(record.event); @@ -896,6 +945,10 @@ void debug_record(keyrecord_t record) #endif } +/** \brief Debug print (FIXME: Needs better description) + * + * FIXME: Needs documentation. + */ void debug_action(action_t action) { switch (action.kind.id) { diff --git a/tmk_core/common/action_code.h b/tmk_core/common/action_code.h index fe2735b97390..d836b7a8a39f 100644 --- a/tmk_core/common/action_code.h +++ b/tmk_core/common/action_code.h @@ -17,10 +17,9 @@ along with this program. If not, see . #ifndef ACTION_CODE_H #define ACTION_CODE_H -/* Action codes - * ============ - * 16bit code: action_kind(4bit) + action_parameter(12bit) +/** \brief Action codes * + * 16bit code: action_kind(4bit) + action_parameter(12bit) * * Key Actions(00xx) * ----------------- @@ -38,7 +37,6 @@ along with this program. If not, see . * 001r|mods|0000 00xx (reserved) * 001r|mods| keycode Modifiers with Tap Key(Dual role) * - * * Other Keys(01xx) * ---------------- * ACT_USAGE(0100): TODO: Not needed? @@ -47,17 +45,14 @@ along with this program. If not, see . * 0100|10| usage(10) (reserved) * 0100|11| usage(10) (reserved) * - * * ACT_MOUSEKEY(0101): TODO: Merge these two actions to conserve space? * 0101|xxxx| keycode Mouse key * * ACT_SWAP_HANDS(0110): * 0110|xxxx| keycode Swap hands (keycode on tap, or options) * - * * 0111|xxxx xxxx xxxx (reserved) * - * * Layer Actions(10xx) * ------------------- * ACT_LAYER(1000): @@ -84,7 +79,6 @@ along with this program. If not, see . * 101E|LLLL|1111 xxxx Reserved (0xF5-FF) * ELLLL: layer 0-31(E: extra bit for layer 16-31) * - * * Extensions(11xx) * ---------------- * ACT_MACRO(1100): @@ -126,7 +120,7 @@ enum action_kind_id { }; -/* Action Code Struct +/** \brief Action Code Struct * * NOTE: * In avr-gcc bit field seems to be assigned from LSB(bit0) to MSB(bit15). @@ -198,10 +192,9 @@ typedef union { #define ACTION(kind, param) ((kind)<<12 | (param)) -/* - * Key Actions - */ -/* Mod bits: 43210 +/** \brief Key Actions + * + * Mod bits: 43210 * bit 0 ||||+- Control * bit 1 |||+-- Shift * bit 2 ||+--- Alt @@ -230,8 +223,7 @@ enum mods_codes { #define ACTION_MODS_TAP_TOGGLE(mods) ACTION(ACT_MODS_TAP, ((mods)&0x1f)<<8 | MODS_TAP_TOGGLE) -/* - * Other Keys +/** \brief Other Keys */ enum usage_pages { PAGE_SYSTEM, @@ -243,20 +235,25 @@ enum usage_pages { -/* - * Layer Actions +/** \brief Layer Actions */ enum layer_param_on { ON_PRESS = 1, ON_RELEASE = 2, ON_BOTH = 3, }; + +/** \brief Layer Actions + */ enum layer_param_bit_op { OP_BIT_AND = 0, OP_BIT_OR = 1, OP_BIT_XOR = 2, OP_BIT_SET = 3, }; + +/** \brief Layer Actions + */ enum layer_param_tap_op { OP_TAP_TOGGLE = 0xF0, OP_ON_OFF, @@ -296,8 +293,7 @@ enum layer_param_tap_op { #define ACTION_DEFAULT_LAYER_BIT_SET(part, bits) ACTION_LAYER_BITOP(OP_BIT_SET, (part), (bits), 0) -/* - * Extensions +/** \brief Extensions */ enum backlight_opt { BACKLIGHT_INCREASE = 0, diff --git a/tmk_core/common/action_layer.c b/tmk_core/common/action_layer.c index 22331376aab7..f3cd381ab0b3 100644 --- a/tmk_core/common/action_layer.c +++ b/tmk_core/common/action_layer.c @@ -11,16 +11,23 @@ #endif -/* - * Default Layer State +/** \brief Default Layer State */ uint32_t default_layer_state = 0; +/** \brief Default Layer State Set At Keyboard Level + * + * FIXME: Needs docs + */ __attribute__((weak)) uint32_t default_layer_state_set_kb(uint32_t state) { return state; } +/** \brief Default Layer State Set + * + * FIXME: Needs docs + */ static void default_layer_state_set(uint32_t state) { state = default_layer_state_set_kb(state); @@ -31,25 +38,45 @@ static void default_layer_state_set(uint32_t state) clear_keyboard_but_mods(); // To avoid stuck keys } +/** \brief Default Layer Print + * + * FIXME: Needs docs + */ void default_layer_debug(void) { dprintf("%08lX(%u)", default_layer_state, biton32(default_layer_state)); } +/** \brief Default Layer Set + * + * FIXME: Needs docs + */ void default_layer_set(uint32_t state) { default_layer_state_set(state); } #ifndef NO_ACTION_LAYER +/** \brief Default Layer Or + * + * FIXME: Needs docs + */ void default_layer_or(uint32_t state) { default_layer_state_set(default_layer_state | state); } +/** \brief Default Layer And + * + * FIXME: Needs docs + */ void default_layer_and(uint32_t state) { default_layer_state_set(default_layer_state & state); } +/** \brief Default Layer Xor + * + * FIXME: Needs docs + */ void default_layer_xor(uint32_t state) { default_layer_state_set(default_layer_state ^ state); @@ -58,21 +85,32 @@ void default_layer_xor(uint32_t state) #ifndef NO_ACTION_LAYER -/* - * Keymap Layer State +/** \brief Keymap Layer State */ uint32_t layer_state = 0; +/** \brief Layer state set user + * + * FIXME: Needs docs + */ __attribute__((weak)) uint32_t layer_state_set_user(uint32_t state) { return state; } +/** \brief Layer state set keyboard + * + * FIXME: Needs docs + */ __attribute__((weak)) uint32_t layer_state_set_kb(uint32_t state) { return layer_state_set_user(state); } +/** \brief Layer state set + * + * FIXME: Needs docs + */ void layer_state_set(uint32_t state) { state = layer_state_set_kb(state); @@ -83,54 +121,98 @@ void layer_state_set(uint32_t state) clear_keyboard_but_mods(); // To avoid stuck keys } +/** \brief Layer clear + * + * FIXME: Needs docs + */ void layer_clear(void) { layer_state_set(0); } +/** \brief Layer state is + * + * FIXME: Needs docs + */ bool layer_state_is(uint8_t layer) { return layer_state_cmp(layer_state, layer); } +/** \brief Layer state compare + * + * FIXME: Needs docs + */ bool layer_state_cmp(uint32_t cmp_layer_state, uint8_t layer) { if (!cmp_layer_state) { return layer == 0; } return (cmp_layer_state & (1UL<. #ifndef NO_ACTION_MACRO #define MACRO_READ() (macro = MACRO_GET(macro_p++)) +/** \brief Action Macro Play + * + * FIXME: Needs doc + */ void action_macro_play(const macro_t *macro_p) { macro_t macro = END; diff --git a/tmk_core/common/action_tapping.c b/tmk_core/common/action_tapping.c index 6280c6c36f87..8adf013e16ca 100644 --- a/tmk_core/common/action_tapping.c +++ b/tmk_core/common/action_tapping.c @@ -36,6 +36,10 @@ static void debug_tapping_key(void); static void debug_waiting_buffer(void); +/** \brief Action Tapping Process + * + * FIXME: Needs doc + */ void action_tapping_process(keyrecord_t record) { if (process_tapping(&record)) { @@ -70,7 +74,7 @@ void action_tapping_process(keyrecord_t record) } -/* Tapping +/** \brief Tapping * * Rule: Tap key is typed(pressed and released) within TAPPING_TERM. * (without interfering by typing other key) @@ -289,8 +293,9 @@ bool process_tapping(keyrecord_t *keyp) } -/* - * Waiting buffer +/** \brief Waiting buffer enq + * + * FIXME: Needs docs */ bool waiting_buffer_enq(keyrecord_t record) { @@ -310,12 +315,20 @@ bool waiting_buffer_enq(keyrecord_t record) return true; } +/** \brief Waiting buffer clear + * + * FIXME: Needs docs + */ void waiting_buffer_clear(void) { waiting_buffer_head = 0; waiting_buffer_tail = 0; } +/** \brief Waiting buffer typed + * + * FIXME: Needs docs + */ bool waiting_buffer_typed(keyevent_t event) { for (uint8_t i = waiting_buffer_tail; i != waiting_buffer_head; i = (i + 1) % WAITING_BUFFER_SIZE) { @@ -326,6 +339,10 @@ bool waiting_buffer_typed(keyevent_t event) return false; } +/** \brief Waiting buffer has anykey pressed + * + * FIXME: Needs docs + */ __attribute__((unused)) bool waiting_buffer_has_anykey_pressed(void) { @@ -335,7 +352,10 @@ bool waiting_buffer_has_anykey_pressed(void) return false; } -/* scan buffer for tapping */ +/** \brief Scan buffer for tapping + * + * FIXME: Needs docs + */ void waiting_buffer_scan_tap(void) { // tapping already is settled @@ -359,14 +379,19 @@ void waiting_buffer_scan_tap(void) } -/* - * debug print +/** \brief Tapping key debug print + * + * FIXME: Needs docs */ static void debug_tapping_key(void) { debug("TAPPING_KEY="); debug_record(tapping_key); debug("\n"); } +/** \brief Waiting buffer debug print + * + * FIXME: Needs docs + */ static void debug_waiting_buffer(void) { debug("{ "); diff --git a/tmk_core/common/action_util.c b/tmk_core/common/action_util.c index 148162a5102e..afd4ae8b2559 100644 --- a/tmk_core/common/action_util.c +++ b/tmk_core/common/action_util.c @@ -67,12 +67,12 @@ bool has_oneshot_mods_timed_out(void) { /* oneshot layer */ #ifndef NO_ACTION_ONESHOT -/* oneshot_layer_data bits -* LLLL LSSS -* where: -* L => are layer bits -* S => oneshot state bits -*/ +/** \brief oneshot_layer_data bits + * LLLL LSSS + * where: + * L => are layer bits + * S => oneshot state bits + */ static int8_t oneshot_layer_data = 0; inline uint8_t get_oneshot_layer(void) { return oneshot_layer_data >> 3; } @@ -86,7 +86,10 @@ inline bool has_oneshot_layer_timed_out() { } #endif -/* Oneshot layer */ +/** \brief Set oneshot layer + * + * FIXME: needs doc + */ void set_oneshot_layer(uint8_t layer, uint8_t state) { oneshot_layer_data = layer << 3 | state; @@ -95,12 +98,20 @@ void set_oneshot_layer(uint8_t layer, uint8_t state) oneshot_layer_time = timer_read(); #endif } +/** \brief Reset oneshot layer + * + * FIXME: needs doc + */ void reset_oneshot_layer(void) { oneshot_layer_data = 0; #if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0)) oneshot_layer_time = 0; #endif } +/** \brief Clear oneshot layer + * + * FIXME: needs doc + */ void clear_oneshot_layer_state(oneshot_fullfillment_t state) { uint8_t start_state = oneshot_layer_data; @@ -112,12 +123,20 @@ void clear_oneshot_layer_state(oneshot_fullfillment_t state) #endif } } +/** \brief Is oneshot layer active + * + * FIXME: needs doc + */ bool is_oneshot_layer_active(void) { return get_oneshot_layer_state(); } #endif +/** \brief Send keyboard report + * + * FIXME: needs doc + */ void send_keyboard_report(void) { keyboard_report->mods = real_mods; keyboard_report->mods |= weak_mods; @@ -140,29 +159,90 @@ void send_keyboard_report(void) { host_keyboard_send(keyboard_report); } -/* modifier */ +/** \brief Get mods + * + * FIXME: needs doc + */ uint8_t get_mods(void) { return real_mods; } +/** \brief add mods + * + * FIXME: needs doc + */ void add_mods(uint8_t mods) { real_mods |= mods; } +/** \brief del mods + * + * FIXME: needs doc + */ void del_mods(uint8_t mods) { real_mods &= ~mods; } +/** \brief set mods + * + * FIXME: needs doc + */ void set_mods(uint8_t mods) { real_mods = mods; } +/** \brief clear mods + * + * FIXME: needs doc + */ void clear_mods(void) { real_mods = 0; } -/* weak modifier */ +/** \brief get weak mods + * + * FIXME: needs doc + */ uint8_t get_weak_mods(void) { return weak_mods; } +/** \brief add weak mods + * + * FIXME: needs doc + */ void add_weak_mods(uint8_t mods) { weak_mods |= mods; } +/** \brief del weak mods + * + * FIXME: needs doc + */ void del_weak_mods(uint8_t mods) { weak_mods &= ~mods; } +/** \brief set weak mods + * + * FIXME: needs doc + */ void set_weak_mods(uint8_t mods) { weak_mods = mods; } +/** \brief clear weak mods + * + * FIXME: needs doc + */ void clear_weak_mods(void) { weak_mods = 0; } /* macro modifier */ +/** \brief get macro mods + * + * FIXME: needs doc + */ uint8_t get_macro_mods(void) { return macro_mods; } +/** \brief add macro mods + * + * FIXME: needs doc + */ void add_macro_mods(uint8_t mods) { macro_mods |= mods; } +/** \brief del macro mods + * + * FIXME: needs doc + */ void del_macro_mods(uint8_t mods) { macro_mods &= ~mods; } +/** \brief set macro mods + * + * FIXME: needs doc + */ void set_macro_mods(uint8_t mods) { macro_mods = mods; } +/** \brief clear macro mods + * + * FIXME: needs doc + */ void clear_macro_mods(void) { macro_mods = 0; } -/* Oneshot modifier */ #ifndef NO_ACTION_ONESHOT +/** \brief set oneshot mods + * + * FIXME: needs doc + */ void set_oneshot_mods(uint8_t mods) { oneshot_mods = mods; @@ -170,6 +250,10 @@ void set_oneshot_mods(uint8_t mods) oneshot_time = timer_read(); #endif } +/** \brief clear oneshot mods + * + * FIXME: needs doc + */ void clear_oneshot_mods(void) { oneshot_mods = 0; @@ -177,14 +261,19 @@ void clear_oneshot_mods(void) oneshot_time = 0; #endif } +/** \brief get oneshot mods + * + * FIXME: needs doc + */ uint8_t get_oneshot_mods(void) { return oneshot_mods; } #endif -/* - * inspect keyboard state +/** \brief inspect keyboard state + * + * FIXME: needs doc */ uint8_t has_anymod(void) { diff --git a/tmk_core/common/avr/bootloader.c b/tmk_core/common/avr/bootloader.c index ee150817c36f..d89c8d768db5 100644 --- a/tmk_core/common/avr/bootloader.c +++ b/tmk_core/common/avr/bootloader.c @@ -13,12 +13,11 @@ #endif -/* Bootloader Size in *bytes* +/** \brief Bootloader Size in *bytes* * * AVR Boot section size are defined by setting BOOTSZ fuse in fact. Consult with your MCU datasheet. * Note that 'Word'(2 bytes) size and address are used in datasheet while TMK uses 'Byte'. * - * * Size of Bootloaders in bytes: * Atmel DFU loader(ATmega32U4) 4096 * Atmel DFU loader(AT90USB128) 8192 @@ -28,10 +27,8 @@ * Teensy halfKay(ATmega32U4) 512 * Teensy++ halfKay(AT90USB128) 1024 * - * * AVR Boot section is located at the end of Flash memory like the followings. * - * * byte Atmel/LUFA(ATMega32u4) byte Atmel(AT90SUB128) * 0x0000 +---------------+ 0x00000 +---------------+ * | | | | @@ -57,7 +54,6 @@ * | Bootloader | 512B | Bootloader | 1KB * 0x7FFF +---------------+ 0x1FFFF +---------------+ */ - #define FLASH_SIZE (FLASHEND + 1L) #if !defined(BOOTLOADER_SIZE) @@ -69,14 +65,17 @@ #define BOOT_SIZE_1024 0b010 #define BOOT_SIZE_2048 0b000 -/* - * Entering the Bootloader via Software +/** \brief Entering the Bootloader via Software + * * http://www.fourwalledcubicle.com/files/LUFA/Doc/120730/html/_page__software_bootloader_start.html */ #define BOOTLOADER_RESET_KEY 0xB007B007 uint32_t reset_key __attribute__ ((section (".noinit"))); -/* initialize MCU status by watchdog reset */ +/** \brief initialize MCU status by watchdog reset + * + * FIXME: needs doc + */ void bootloader_jump(void) { #if !defined(BOOTLOADER_SIZE) diff --git a/tmk_core/common/avr/sleep_led.c b/tmk_core/common/avr/sleep_led.c index dab3eb0f3cea..0cb774c81f53 100644 --- a/tmk_core/common/avr/sleep_led.c +++ b/tmk_core/common/avr/sleep_led.c @@ -18,6 +18,10 @@ */ #define SLEEP_LED_TIMER_TOP F_CPU/(256*64) +/** \brief Sleep LED initialization + * + * FIXME: needs doc + */ void sleep_led_init(void) { /* Timer1 setup */ @@ -33,18 +37,30 @@ void sleep_led_init(void) SREG = sreg; } +/** \brief Sleep LED enable + * + * FIXME: needs doc + */ void sleep_led_enable(void) { /* Enable Compare Match Interrupt */ TIMSK1 |= _BV(OCIE1A); } +/** \brief Sleep LED disable + * + * FIXME: needs doc + */ void sleep_led_disable(void) { /* Disable Compare Match Interrupt */ TIMSK1 &= ~_BV(OCIE1A); } +/** \brief Sleep LED toggle + * + * FIXME: needs doc + */ void sleep_led_toggle(void) { /* Disable Compare Match Interrupt */ @@ -52,7 +68,8 @@ void sleep_led_toggle(void) } -/* Breathing Sleep LED brighness(PWM On period) table +/** \brief Breathing Sleep LED brighness(PWM On period) table + * * (64[steps] * 4[duration]) / 64[PWM periods/s] = 4 second breath cycle * * http://www.wolframalpha.com/input/?i=%28sin%28+x%2F64*pi%29**8+*+255%2C+x%3D0+to+63 diff --git a/tmk_core/common/avr/suspend.c b/tmk_core/common/avr/suspend.c index 213f03f6fa5c..4cdd6a420e78 100644 --- a/tmk_core/common/avr/suspend.c +++ b/tmk_core/common/avr/suspend.c @@ -41,6 +41,10 @@ __asm__ __volatile__ ( \ ) +/** \brief Suspend idle + * + * FIXME: needs doc + */ void suspend_idle(uint8_t time) { cli(); @@ -52,7 +56,8 @@ void suspend_idle(uint8_t time) } #ifndef NO_SUSPEND_POWER_DOWN -/* Power down MCU with watchdog timer +/** \brief Power down MCU with watchdog timer + * * wdto: watchdog timer timeout defined in * WDTO_15MS * WDTO_30MS @@ -67,6 +72,10 @@ void suspend_idle(uint8_t time) */ static uint8_t wdt_timeout = 0; +/** \brief Power down + * + * FIXME: needs doc + */ static void power_down(uint8_t wdto) { #ifdef PROTOCOL_LUFA @@ -111,6 +120,10 @@ static void power_down(uint8_t wdto) } #endif +/** \brief Suspend power down + * + * FIXME: needs doc + */ void suspend_power_down(void) { #ifndef NO_SUSPEND_POWER_DOWN @@ -131,7 +144,10 @@ bool suspend_wakeup_condition(void) return false; } -// run immediately after wakeup +/** \brief run immediately after wakeup + * + * FIXME: needs doc + */ void suspend_wakeup_init(void) { // clear keyboard state diff --git a/tmk_core/common/avr/timer.c b/tmk_core/common/avr/timer.c index 369015200de5..b7d4f060ef09 100644 --- a/tmk_core/common/avr/timer.c +++ b/tmk_core/common/avr/timer.c @@ -27,6 +27,10 @@ along with this program. If not, see . // NOTE: union { uint32_t timer32; struct { uint16_t dummy; uint16_t timer16; }} volatile uint32_t timer_count; +/** \brief timer initialization + * + * FIXME: needs doc + */ void timer_init(void) { #if TIMER_PRESCALER == 1 @@ -60,6 +64,10 @@ void timer_init(void) #endif } +/** \brief timer clear + * + * FIXME: needs doc + */ inline void timer_clear(void) { @@ -68,6 +76,10 @@ void timer_clear(void) } } +/** \brief timer read + * + * FIXME: needs doc + */ inline uint16_t timer_read(void) { @@ -80,6 +92,10 @@ uint16_t timer_read(void) return (t & 0xFFFF); } +/** \brief timer read32 + * + * FIXME: needs doc + */ inline uint32_t timer_read32(void) { @@ -92,6 +108,10 @@ uint32_t timer_read32(void) return t; } +/** \brief timer elapsed + * + * FIXME: needs doc + */ inline uint16_t timer_elapsed(uint16_t last) { @@ -104,6 +124,10 @@ uint16_t timer_elapsed(uint16_t last) return TIMER_DIFF_16((t & 0xFFFF), last); } +/** \brief timer elapsed32 + * + * FIXME: needs doc + */ inline uint32_t timer_elapsed32(uint32_t last) { diff --git a/tmk_core/common/backlight.c b/tmk_core/common/backlight.c index 12f75b38ac87..3e29aacc499c 100644 --- a/tmk_core/common/backlight.c +++ b/tmk_core/common/backlight.c @@ -21,6 +21,10 @@ along with this program. If not, see . backlight_config_t backlight_config; +/** \brief Backlight initialization + * + * FIXME: needs doc + */ void backlight_init(void) { /* check signature */ @@ -34,6 +38,10 @@ void backlight_init(void) backlight_set(backlight_config.enable ? backlight_config.level : 0); } +/** \brief Backlight increase + * + * FIXME: needs doc + */ void backlight_increase(void) { if(backlight_config.level < BACKLIGHT_LEVELS) @@ -46,6 +54,10 @@ void backlight_increase(void) backlight_set(backlight_config.level); } +/** \brief Backlight decrease + * + * FIXME: needs doc + */ void backlight_decrease(void) { if(backlight_config.level > 0) @@ -58,6 +70,10 @@ void backlight_decrease(void) backlight_set(backlight_config.level); } +/** \brief Backlight toggle + * + * FIXME: needs doc + */ void backlight_toggle(void) { backlight_config.enable ^= 1; @@ -68,6 +84,10 @@ void backlight_toggle(void) backlight_set(backlight_config.enable ? backlight_config.level : 0); } +/** \brief Backlight step through levels + * + * FIXME: needs doc + */ void backlight_step(void) { backlight_config.level++; @@ -81,6 +101,10 @@ void backlight_step(void) backlight_set(backlight_config.level); } +/** \brief Backlight set level + * + * FIXME: needs doc + */ void backlight_level(uint8_t level) { if (level > BACKLIGHT_LEVELS) @@ -91,6 +115,10 @@ void backlight_level(uint8_t level) backlight_set(backlight_config.level); } +/** \brief Get backlight level + * + * FIXME: needs doc + */ uint8_t get_backlight_level(void) { return backlight_config.level; diff --git a/tmk_core/common/bootmagic.c b/tmk_core/common/bootmagic.c index 2c6bcbae56fc..9f79fb8eedba 100644 --- a/tmk_core/common/bootmagic.c +++ b/tmk_core/common/bootmagic.c @@ -12,6 +12,10 @@ keymap_config_t keymap_config; +/** \brief Bootmagic + * + * FIXME: needs doc + */ void bootmagic(void) { /* check signature */ @@ -102,6 +106,10 @@ void bootmagic(void) } } +/** \brief Scan Keycode + * + * FIXME: needs doc + */ static bool scan_keycode(uint8_t keycode) { for (uint8_t r = 0; r < MATRIX_ROWS; r++) { @@ -117,9 +125,13 @@ static bool scan_keycode(uint8_t keycode) return false; } +/** \brief Bootmagic Scan Keycode + * + * FIXME: needs doc + */ bool bootmagic_scan_keycode(uint8_t keycode) { if (!scan_keycode(BOOTMAGIC_KEY_SALT)) return false; return scan_keycode(keycode); -} \ No newline at end of file +} diff --git a/tmk_core/common/bootmagic.h b/tmk_core/common/bootmagic.h index 8f6618f4bd0d..f3ea6a24d422 100644 --- a/tmk_core/common/bootmagic.h +++ b/tmk_core/common/bootmagic.h @@ -2,6 +2,8 @@ #define BOOTMAGIC_H +/* FIXME: Add special doxygen comments for defines here. */ + /* bootmagic salt key */ #ifndef BOOTMAGIC_KEY_SALT #define BOOTMAGIC_KEY_SALT KC_SPACE diff --git a/tmk_core/common/chibios/bootloader.c b/tmk_core/common/chibios/bootloader.c index 2dd3ade34ea0..f9895237b9bc 100644 --- a/tmk_core/common/chibios/bootloader.c +++ b/tmk_core/common/chibios/bootloader.c @@ -13,11 +13,19 @@ extern uint32_t __ram0_end__; #define MAGIC_ADDR (unsigned long*)(SYMVAL(__ram0_end__) - 4) +/** \brief Jump to the bootloader + * + * FIXME: needs doc + */ void bootloader_jump(void) { *MAGIC_ADDR = BOOTLOADER_MAGIC; // set magic flag => reset handler will jump into boot loader NVIC_SystemReset(); } +/** \brief Enter bootloader mode if requested + * + * FIXME: needs doc + */ void enter_bootloader_mode_if_requested(void) { unsigned long* check = MAGIC_ADDR; if(*check == BOOTLOADER_MAGIC) { diff --git a/tmk_core/common/chibios/eeprom.c b/tmk_core/common/chibios/eeprom.c index 5ff8ee86f4fd..9061b790c442 100644 --- a/tmk_core/common/chibios/eeprom.c +++ b/tmk_core/common/chibios/eeprom.c @@ -79,6 +79,10 @@ #define EEESIZE 0x39 #endif +/** \brief eeprom initialization + * + * FIXME: needs doc + */ void eeprom_initialize(void) { uint32_t count=0; @@ -111,6 +115,10 @@ void eeprom_initialize(void) #define FlexRAM ((uint8_t *)0x14000000) +/** \brief eeprom read byte + * + * FIXME: needs doc + */ uint8_t eeprom_read_byte(const uint8_t *addr) { uint32_t offset = (uint32_t)addr; @@ -119,6 +127,10 @@ uint8_t eeprom_read_byte(const uint8_t *addr) return FlexRAM[offset]; } +/** \brief eeprom read word + * + * FIXME: needs doc + */ uint16_t eeprom_read_word(const uint16_t *addr) { uint32_t offset = (uint32_t)addr; @@ -127,6 +139,10 @@ uint16_t eeprom_read_word(const uint16_t *addr) return *(uint16_t *)(&FlexRAM[offset]); } +/** \brief eeprom read dword + * + * FIXME: needs doc + */ uint32_t eeprom_read_dword(const uint32_t *addr) { uint32_t offset = (uint32_t)addr; @@ -135,6 +151,10 @@ uint32_t eeprom_read_dword(const uint32_t *addr) return *(uint32_t *)(&FlexRAM[offset]); } +/** \brief eeprom read block + * + * FIXME: needs doc + */ void eeprom_read_block(void *buf, const void *addr, uint32_t len) { uint32_t offset = (uint32_t)addr; @@ -148,11 +168,19 @@ void eeprom_read_block(void *buf, const void *addr, uint32_t len) } } +/** \brief eeprom is ready + * + * FIXME: needs doc + */ int eeprom_is_ready(void) { return (FTFL->FCNFG & FTFL_FCNFG_EEERDY) ? 1 : 0; } +/** \brief flexram wait + * + * FIXME: needs doc + */ static void flexram_wait(void) { while (!(FTFL->FCNFG & FTFL_FCNFG_EEERDY)) { @@ -160,6 +188,10 @@ static void flexram_wait(void) } } +/** \brief eeprom_write_byte + * + * FIXME: needs doc + */ void eeprom_write_byte(uint8_t *addr, uint8_t value) { uint32_t offset = (uint32_t)addr; @@ -172,6 +204,10 @@ void eeprom_write_byte(uint8_t *addr, uint8_t value) } } +/** \brief eeprom write word + * + * FIXME: needs doc + */ void eeprom_write_word(uint16_t *addr, uint16_t value) { uint32_t offset = (uint32_t)addr; @@ -199,6 +235,10 @@ void eeprom_write_word(uint16_t *addr, uint16_t value) #endif } +/** \brief eeprom write dword + * + * FIXME: needs doc + */ void eeprom_write_dword(uint32_t *addr, uint32_t value) { uint32_t offset = (uint32_t)addr; @@ -242,6 +282,10 @@ void eeprom_write_dword(uint32_t *addr, uint32_t value) #endif } +/** \brief eeprom write block + * + * FIXME: needs doc + */ void eeprom_write_block(const void *buf, void *addr, uint32_t len) { uint32_t offset = (uint32_t)addr; diff --git a/tmk_core/common/chibios/suspend.c b/tmk_core/common/chibios/suspend.c index 7c3c75387d97..32ef773e2e45 100644 --- a/tmk_core/common/chibios/suspend.c +++ b/tmk_core/common/chibios/suspend.c @@ -12,11 +12,19 @@ #include "suspend.h" #include "wait.h" +/** \brief suspend idle + * + * FIXME: needs doc + */ void suspend_idle(uint8_t time) { // TODO: this is not used anywhere - what units is 'time' in? wait_ms(time); } +/** \brief suspend power down + * + * FIXME: needs doc + */ void suspend_power_down(void) { // TODO: figure out what to power down and how // shouldn't power down TPM/FTM if we want a breathing LED @@ -28,6 +36,10 @@ void suspend_power_down(void) { wait_ms(17); } +/** \brief suspend wakeup condition + * + * FIXME: needs doc + */ __attribute__ ((weak)) void matrix_power_up(void) {} __attribute__ ((weak)) void matrix_power_down(void) {} bool suspend_wakeup_condition(void) @@ -41,7 +53,11 @@ bool suspend_wakeup_condition(void) return false; } -// run immediately after wakeup +/** \brief suspend wakeup condition + * + * run immediately after wakeup + * FIXME: needs doc + */ void suspend_wakeup_init(void) { // clear keyboard state diff --git a/tmk_core/common/command.h b/tmk_core/common/command.h index a729e4b1e438..d9d89ba0f1ec 100644 --- a/tmk_core/common/command.h +++ b/tmk_core/common/command.h @@ -18,6 +18,8 @@ along with this program. If not, see . #ifndef COMMAND_H #define COMMAND +/* FIXME: Add doxygen comments for the behavioral defines in here. */ + /* TODO: Refactoring */ typedef enum { ONESHOT, CONSOLE, MOUSEKEY } command_state_t; extern command_state_t command_state; @@ -154,4 +156,4 @@ bool command_proc(uint8_t code); #define XMAGIC_KC(key) KC_##key #define MAGIC_KC(key) XMAGIC_KC(key) -#endif \ No newline at end of file +#endif diff --git a/tmk_core/common/eeconfig.c b/tmk_core/common/eeconfig.c index e2eb4a38e3d2..91c18e2e6e61 100644 --- a/tmk_core/common/eeconfig.c +++ b/tmk_core/common/eeconfig.c @@ -3,6 +3,10 @@ #include "eeprom.h" #include "eeconfig.h" +/** \brief eeconfig initialization + * + * FIXME: needs doc + */ void eeconfig_init(void) { eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); @@ -24,36 +28,88 @@ void eeconfig_init(void) #endif } +/** \brief eeconfig enable + * + * FIXME: needs doc + */ void eeconfig_enable(void) { eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); } +/** \brief eeconfig disable + * + * FIXME: needs doc + */ void eeconfig_disable(void) { eeprom_update_word(EECONFIG_MAGIC, 0xFFFF); } +/** \brief eeconfig is enabled + * + * FIXME: needs doc + */ bool eeconfig_is_enabled(void) { return (eeprom_read_word(EECONFIG_MAGIC) == EECONFIG_MAGIC_NUMBER); } +/** \brief eeconfig read debug + * + * FIXME: needs doc + */ uint8_t eeconfig_read_debug(void) { return eeprom_read_byte(EECONFIG_DEBUG); } +/** \brief eeconfig update debug + * + * FIXME: needs doc + */ void eeconfig_update_debug(uint8_t val) { eeprom_update_byte(EECONFIG_DEBUG, val); } +/** \brief eeconfig read default layer + * + * FIXME: needs doc + */ uint8_t eeconfig_read_default_layer(void) { return eeprom_read_byte(EECONFIG_DEFAULT_LAYER); } +/** \brief eeconfig update default layer + * + * FIXME: needs doc + */ void eeconfig_update_default_layer(uint8_t val) { eeprom_update_byte(EECONFIG_DEFAULT_LAYER, val); } +/** \brief eeconfig read keymap + * + * FIXME: needs doc + */ uint8_t eeconfig_read_keymap(void) { return eeprom_read_byte(EECONFIG_KEYMAP); } +/** \brief eeconfig update keymap + * + * FIXME: needs doc + */ void eeconfig_update_keymap(uint8_t val) { eeprom_update_byte(EECONFIG_KEYMAP, val); } #ifdef BACKLIGHT_ENABLE +/** \brief eeconfig read backlight + * + * FIXME: needs doc + */ uint8_t eeconfig_read_backlight(void) { return eeprom_read_byte(EECONFIG_BACKLIGHT); } +/** \brief eeconfig update backlight + * + * FIXME: needs doc + */ void eeconfig_update_backlight(uint8_t val) { eeprom_update_byte(EECONFIG_BACKLIGHT, val); } #endif #ifdef AUDIO_ENABLE +/** \brief eeconfig read audio + * + * FIXME: needs doc + */ uint8_t eeconfig_read_audio(void) { return eeprom_read_byte(EECONFIG_AUDIO); } +/** \brief eeconfig update audio + * + * FIXME: needs doc + */ void eeconfig_update_audio(uint8_t val) { eeprom_update_byte(EECONFIG_AUDIO, val); } #endif diff --git a/tmk_core/common/keyboard.c b/tmk_core/common/keyboard.c index 001fb00ce52f..4eff764e2d85 100644 --- a/tmk_core/common/keyboard.c +++ b/tmk_core/common/keyboard.c @@ -117,19 +117,35 @@ static inline bool has_ghost_in_row(uint8_t row, matrix_row_t rowdata) #endif +/** \brief matrix_setup + * + * FIXME: needs doc + */ __attribute__ ((weak)) void matrix_setup(void) { } +/** \brief keyboard_setup + * + * FIXME: needs doc + */ void keyboard_setup(void) { matrix_setup(); } +/** \brief is_keyboard_master + * + * FIXME: needs doc + */ __attribute__((weak)) bool is_keyboard_master(void) { return true; } +/** \brief keyboard_init + * + * FIXME: needs doc + */ void keyboard_init(void) { timer_init(); matrix_init(); @@ -167,8 +183,16 @@ void keyboard_init(void) { #endif } -/* - * Do keyboard routine jobs: scan matrix, light LEDs, ... +/** \brief Keyboard task: Do keyboard routine jobs + * + * Do routine keyboard jobs: + * + * * scan matrix + * * handle mouse movements + * * run visualizer code + * * handle midi commands + * * light LEDs + * * This is repeatedly called as fast as possible. */ void keyboard_task(void) @@ -274,6 +298,10 @@ void keyboard_task(void) } } +/** \brief keyboard set leds + * + * FIXME: needs doc + */ void keyboard_set_leds(uint8_t leds) { if (debug_keyboard) { debug("keyboard_set_led: "); debug_hex8(leds); debug("\n"); } diff --git a/tmk_core/common/keycode.h b/tmk_core/common/keycode.h index e7e09e0988ef..734c9fbff050 100644 --- a/tmk_core/common/keycode.h +++ b/tmk_core/common/keycode.h @@ -22,6 +22,7 @@ along with this program. If not, see . #ifndef KEYCODE_H #define KEYCODE_H +/* FIXME: Add doxygen comments here */ #define IS_ERROR(code) (KC_ROLL_OVER <= (code) && (code) <= KC_UNDEFINED) #define IS_ANY(code) (KC_A <= (code) && (code) <= 0xFF) diff --git a/tmk_core/common/led.h b/tmk_core/common/led.h index 61c971c1073c..c16305129b9f 100644 --- a/tmk_core/common/led.h +++ b/tmk_core/common/led.h @@ -19,6 +19,7 @@ along with this program. If not, see . #define LED_H #include "stdint.h" +/* FIXME: Add doxygen comments here. */ /* keyboard LEDs */ #define USB_LED_NUM_LOCK 0 @@ -40,4 +41,4 @@ void led_init_ports(void); } #endif -#endif \ No newline at end of file +#endif diff --git a/tmk_core/common/magic.c b/tmk_core/common/magic.c index 49617a3d103f..714acc0f5443 100644 --- a/tmk_core/common/magic.c +++ b/tmk_core/common/magic.c @@ -14,6 +14,10 @@ keymap_config_t keymap_config; +/** \brief Magic + * + * FIXME: Needs doc + */ void magic(void) { /* check signature */ diff --git a/tmk_core/common/report.c b/tmk_core/common/report.c index 4b25f4428c17..eb3b44312ffd 100644 --- a/tmk_core/common/report.c +++ b/tmk_core/common/report.c @@ -20,6 +20,10 @@ #include "debug.h" #include "util.h" +/** \brief has_anykey + * + * FIXME: Needs doc + */ uint8_t has_anykey(report_keyboard_t* keyboard_report) { uint8_t cnt = 0; @@ -30,6 +34,10 @@ uint8_t has_anykey(report_keyboard_t* keyboard_report) return cnt; } +/** \brief get_first_key + * + * FIXME: Needs doc + */ uint8_t get_first_key(report_keyboard_t* keyboard_report) { #ifdef NKRO_ENABLE @@ -54,6 +62,10 @@ uint8_t get_first_key(report_keyboard_t* keyboard_report) #endif } +/** \brief add key byte + * + * FIXME: Needs doc + */ void add_key_byte(report_keyboard_t* keyboard_report, uint8_t code) { #ifdef USB_6KRO_ENABLE @@ -120,6 +132,10 @@ void add_key_byte(report_keyboard_t* keyboard_report, uint8_t code) #endif } +/** \brief del key byte + * + * FIXME: Needs doc + */ void del_key_byte(report_keyboard_t* keyboard_report, uint8_t code) { #ifdef USB_6KRO_ENABLE @@ -157,6 +173,10 @@ void del_key_byte(report_keyboard_t* keyboard_report, uint8_t code) } #ifdef NKRO_ENABLE +/** \brief add key bit + * + * FIXME: Needs doc + */ void add_key_bit(report_keyboard_t* keyboard_report, uint8_t code) { if ((code>>3) < KEYBOARD_REPORT_BITS) { @@ -166,6 +186,10 @@ void add_key_bit(report_keyboard_t* keyboard_report, uint8_t code) } } +/** \brief del key bit + * + * FIXME: Needs doc + */ void del_key_bit(report_keyboard_t* keyboard_report, uint8_t code) { if ((code>>3) < KEYBOARD_REPORT_BITS) { @@ -176,6 +200,10 @@ void del_key_bit(report_keyboard_t* keyboard_report, uint8_t code) } #endif +/** \brief add key to report + * + * FIXME: Needs doc + */ void add_key_to_report(report_keyboard_t* keyboard_report, uint8_t key) { #ifdef NKRO_ENABLE @@ -187,6 +215,10 @@ void add_key_to_report(report_keyboard_t* keyboard_report, uint8_t key) add_key_byte(keyboard_report, key); } +/** \brief del key from report + * + * FIXME: Needs doc + */ void del_key_from_report(report_keyboard_t* keyboard_report, uint8_t key) { #ifdef NKRO_ENABLE @@ -198,6 +230,10 @@ void del_key_from_report(report_keyboard_t* keyboard_report, uint8_t key) del_key_byte(keyboard_report, key); } +/** \brief clear key from report + * + * FIXME: Needs doc + */ void clear_keys_from_report(report_keyboard_t* keyboard_report) { // not clear mods diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index a1cab98a66ab..cb918d3dce14 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -141,6 +141,10 @@ USB_ClassInfo_CDC_Device_t cdc_device = #ifdef RAW_ENABLE +/** \brief Raw HID Send + * + * FIXME: Needs doc + */ void raw_hid_send( uint8_t *data, uint8_t length ) { // TODO: implement variable size packet @@ -172,6 +176,10 @@ void raw_hid_send( uint8_t *data, uint8_t length ) Endpoint_SelectEndpoint(ep); } +/** \brief Raw HID Receive + * + * FIXME: Needs doc + */ __attribute__ ((weak)) void raw_hid_receive( uint8_t *data, uint8_t length ) { @@ -180,6 +188,10 @@ void raw_hid_receive( uint8_t *data, uint8_t length ) // so users can opt to not handle data coming in. } +/** \brief Raw HID Task + * + * FIXME: Needs doc + */ static void raw_hid_task(void) { // Create a temporary buffer to hold the read in data from the host @@ -218,6 +230,10 @@ static void raw_hid_task(void) * Console ******************************************************************************/ #ifdef CONSOLE_ENABLE +/** \brief Console Task + * + * FIXME: Needs doc + */ static void Console_Task(void) { /* Device must be connected and configured for the task to run */ @@ -282,6 +298,10 @@ static void Console_Task(void) * 2) EVENT_USB_Device_Reset * 3) EVENT_USB_Device_Wake */ +/** \brief Event USB Device Connect + * + * FIXME: Needs doc + */ void EVENT_USB_Device_Connect(void) { print("[C]"); @@ -293,6 +313,10 @@ void EVENT_USB_Device_Connect(void) } } +/** \brief Event USB Device Connect + * + * FIXME: Needs doc + */ void EVENT_USB_Device_Disconnect(void) { print("[D]"); @@ -307,11 +331,19 @@ void EVENT_USB_Device_Disconnect(void) */ } +/** \brief Event USB Device Connect + * + * FIXME: Needs doc + */ void EVENT_USB_Device_Reset(void) { print("[R]"); } +/** \brief Event USB Device Connect + * + * FIXME: Needs doc + */ void EVENT_USB_Device_Suspend() { print("[S]"); @@ -320,6 +352,10 @@ void EVENT_USB_Device_Suspend() #endif } +/** \brief Event USB Device Connect + * + * FIXME: Needs doc + */ void EVENT_USB_Device_WakeUp() { print("[W]"); @@ -342,7 +378,11 @@ static bool console_flush = false; } \ } while (0) -// called every 1ms +/** \brief Event USB Device Start Of Frame + * + * FIXME: Needs doc + * called every 1ms + */ void EVENT_USB_Device_StartOfFrame(void) { static uint8_t count; @@ -356,11 +396,12 @@ void EVENT_USB_Device_StartOfFrame(void) #endif -/** Event handler for the USB_ConfigurationChanged event. +/** \brief Event handler for the USB_ConfigurationChanged event. + * * This is fired when the host sets the current configuration of the USB device after enumeration. * * ATMega32u2 supports dual bank(ping-pong mode) only on endpoint 3 and 4, - * it is safe to use singl bank for all endpoints. + * it is safe to use single bank for all endpoints. */ void EVENT_USB_Device_ConfigurationChanged(void) { @@ -418,7 +459,7 @@ void EVENT_USB_Device_ConfigurationChanged(void) #endif } -/* +/* FIXME: Expose this table in the docs somehow Appendix G: HID Request Support Requirements The following table enumerates the requests that need to be supported by various types of HID class devices. @@ -431,7 +472,8 @@ Boot Keyboard Required Optional Required Required Required Requ Non-Boot Keybrd Required Optional Required Required Optional Optional Other Device Required Optional Optional Optional Optional Optional */ -/** Event handler for the USB_ControlRequest event. +/** \brief Event handler for the USB_ControlRequest event. + * * This is fired before passing along unhandled control requests to the library for processing internally. */ void EVENT_USB_Device_ControlRequest(void) @@ -546,11 +588,19 @@ void EVENT_USB_Device_ControlRequest(void) /******************************************************************************* * Host driver ******************************************************************************/ +/** \brief Keyboard LEDs + * + * FIXME: Needs doc + */ static uint8_t keyboard_leds(void) { return keyboard_led_stats; } +/** \brief Send Keyboard + * + * FIXME: Needs doc + */ static void send_keyboard(report_keyboard_t *report) { uint8_t timeout = 255; @@ -612,7 +662,11 @@ static void send_keyboard(report_keyboard_t *report) keyboard_report_sent = *report; } - + +/** \brief Send Mouse + * + * FIXME: Needs doc + */ static void send_mouse(report_mouse_t *report) { #ifdef MOUSE_ENABLE @@ -657,6 +711,10 @@ static void send_mouse(report_mouse_t *report) #endif } +/** \brief Send System + * + * FIXME: Needs doc + */ static void send_system(uint16_t data) { uint8_t timeout = 255; @@ -678,6 +736,10 @@ static void send_system(uint16_t data) Endpoint_ClearIN(); } +/** \brief Send Consumer + * + * FIXME: Needs doc + */ static void send_consumer(uint16_t data) { uint8_t timeout = 255; @@ -739,6 +801,10 @@ static void send_consumer(uint16_t data) ******************************************************************************/ #ifdef CONSOLE_ENABLE #define SEND_TIMEOUT 5 +/** \brief Send Char + * + * FIXME: Needs doc + */ int8_t sendchar(uint8_t c) { // Not wait once timeouted. @@ -842,18 +908,30 @@ bool recv_midi_packet(MIDI_EventPacket_t* const event) { ******************************************************************************/ #ifdef VIRTSER_ENABLE +/** \brief Virtual Serial Init + * + * FIXME: Needs doc + */ void virtser_init(void) { cdc_device.State.ControlLineStates.DeviceToHost = CDC_CONTROL_LINE_IN_DSR ; CDC_Device_SendControlLineStateChange(&cdc_device); } +/** \brief Virtual Serial Receive + * + * FIXME: Needs doc + */ void virtser_recv(uint8_t c) __attribute__ ((weak)); void virtser_recv(uint8_t c) { // Ignore by default } +/** \brief Virtual Serial Task + * + * FIXME: Needs doc + */ void virtser_task(void) { uint16_t count = CDC_Device_BytesReceived(&cdc_device); @@ -864,6 +942,10 @@ void virtser_task(void) virtser_recv(ch); } } +/** \brief Virtual Serial Send + * + * FIXME: Needs doc + */ void virtser_send(const uint8_t byte) { uint8_t timeout = 255; @@ -896,6 +978,10 @@ void virtser_send(const uint8_t byte) /******************************************************************************* * main ******************************************************************************/ +/** \brief Setup MCU + * + * FIXME: Needs doc + */ static void setup_mcu(void) { /* Disable watchdog if enabled by bootloader/fuses */ @@ -909,6 +995,10 @@ static void setup_mcu(void) CLKPR = (0 << CLKPS3) | (0 << CLKPS2) | (0 << CLKPS1) | (0 << CLKPS0); } +/** \brief Setup USB + * + * FIXME: Needs doc + */ static void setup_usb(void) { // Leonardo needs. Without this USB device is not recognized. @@ -921,6 +1011,10 @@ static void setup_usb(void) print_set_sendchar(sendchar); } +/** \brief Main + * + * FIXME: Needs doc + */ int main(void) __attribute__ ((weak)); int main(void) { diff --git a/tmk_core/protocol/lufa/outputselect.c b/tmk_core/protocol/lufa/outputselect.c index 0df5d3b75a01..42de806120e2 100644 --- a/tmk_core/protocol/lufa/outputselect.c +++ b/tmk_core/protocol/lufa/outputselect.c @@ -20,15 +20,27 @@ along with this program. If not, see . uint8_t desired_output = OUTPUT_DEFAULT; +/** \brief Set Output + * + * FIXME: Needs doc + */ void set_output(uint8_t output) { set_output_user(output); desired_output = output; } +/** \brief Set Output User + * + * FIXME: Needs doc + */ __attribute__((weak)) void set_output_user(uint8_t output) { } +/** \brief Auto Detect Output + * + * FIXME: Needs doc + */ uint8_t auto_detect_output(void) { if (USB_DeviceState == DEVICE_STATE_Configured) { return OUTPUT_USB; @@ -47,6 +59,10 @@ uint8_t auto_detect_output(void) { return OUTPUT_NONE; } +/** \brief Where To Send + * + * FIXME: Needs doc + */ uint8_t where_to_send(void) { if (desired_output == OUTPUT_AUTO) { return auto_detect_output(); diff --git a/util/generate_api_docs.sh b/util/generate_api_docs.sh new file mode 100755 index 000000000000..8d7ec3101f9a --- /dev/null +++ b/util/generate_api_docs.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +set -x + +if ! doxygen -v 2>&1 > /dev/null; then + echo "doxygen not found! Please install it!" + exit 1 +elif ! moxygen -V 2>&1 > /dev/null; then + echo -n "moxygen not found! Would you like to install it? [y/n] " + read ANSWER + case $ANSWER in + y|Y|yes|YES|Yes) + npm install -g moxygen + ;; + *) + exit 1 + ;; + esac +fi + +if [ ! -e Doxyfile ]; then + echo "Error: You must run this from the top-level qmk_firmware directory!" + exit 1 +fi + +# Generate the doxygen XML files +rm -rf doxygen +doxygen Doxyfile + +# Generate the moxygen Markdown files +moxygen -a -g -o docs/api_%s.md doxygen/xml diff --git a/util/travis_compiled_push.sh b/util/travis_compiled_push.sh index b3554b50797c..6be124122057 100644 --- a/util/travis_compiled_push.sh +++ b/util/travis_compiled_push.sh @@ -1,26 +1,13 @@ #!/bin/bash -TRAVIS_BRANCH="${TRAVIS_BRANCH:master}" -TRAVIS_PULL_REQUEST="${TRAVIS_PULL_REQUEST:false}" -TRAVIS_COMMIT_MESSAGE="${TRAVIS_COMMIT_MESSAGE:-none}" -TRAVIS_COMMIT_RANGE="${TRAVIS_COMMIT_RANGE:-HEAD~1..HEAD}" - set -o errexit -o nounset +source util/travis_push.sh rev=$(git rev-parse --short HEAD) -if [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_PULL_REQUEST" == "false" ]] ; then - -git config --global user.name "QMK Bot" -git config --global user.email "hello@qmk.fm" - -openssl aes-256-cbc -K $encrypted_b0ee987fd0fc_key -iv $encrypted_b0ee987fd0fc_iv -in secrets.tar.enc -out secrets.tar -d -tar xvf secrets.tar - -chmod 600 id_rsa_qmk_firmware -chmod 600 id_rsa_qmk.fm -eval `ssh-agent -s` -ssh-add id_rsa_qmk_firmware +if ! [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_PULL_REQUEST" == "false" ]] ; then + exit 0 +fi # convert to unix line-endings git checkout master @@ -28,12 +15,11 @@ git diff --diff-filter=M --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} | xargs -0 d git diff --diff-filter=M --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} | xargs -0 git add git commit -m "convert to unix line-endings [skip ci]" && git push git@github.com:qmk/qmk_firmware.git master -increment_version () -{ - declare -a part=( ${1//\./ } ) - part[2]=$((part[2] + 1)) - new="${part[*]}" - echo -e "${new// /.}" +increment_version () { + declare -a part=( ${1//\./ } ) + part[2]=$((part[2] + 1)) + new="${part[*]}" + echo -e "${new// /.}" } git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} @@ -76,7 +62,4 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then git add -A git commit -m "generated from qmk/qmk_firmware@${rev}" git push git@github.com:qmk/qmk.fm.git - fi - -fi \ No newline at end of file diff --git a/util/travis_docs.sh b/util/travis_docs.sh new file mode 100644 index 000000000000..ec553952c945 --- /dev/null +++ b/util/travis_docs.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +source util/travis_push.sh + +if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip docs]"* ]] ; then + if git diff --name-only ${TRAVIS_COMMIT_RANGE} | grep -e '^quantum/' -e '^tmk_core/' -e '^docs/api_.*'; then + echo "Generating API docs..." + rm -rf doxygen + doxygen Doxyfile + moxygen -a -g -o -q docs/api_%s.md doxygen/xml + git add docs/api_* + git commit -m'autogenerated api docs for ${TRAVIS_COMMIT_RANGE}' || true + fi +fi diff --git a/util/travis_push.sh b/util/travis_push.sh new file mode 100644 index 000000000000..7eea88b14820 --- /dev/null +++ b/util/travis_push.sh @@ -0,0 +1,17 @@ +# Use this by sourcing it in your script. + +TRAVIS_BRANCH="${TRAVIS_BRANCH:master}" +TRAVIS_PULL_REQUEST="${TRAVIS_PULL_REQUEST:false}" +TRAVIS_COMMIT_MESSAGE="${TRAVIS_COMMIT_MESSAGE:-none}" +TRAVIS_COMMIT_RANGE="${TRAVIS_COMMIT_RANGE:-HEAD~1..HEAD}" + +git config --global user.name "QMK Bot" +git config --global user.email "hello@qmk.fm" + +openssl aes-256-cbc -K $encrypted_b0ee987fd0fc_key -iv $encrypted_b0ee987fd0fc_iv -in secrets.tar.enc -out secrets.tar -d +tar xvf secrets.tar + +chmod 600 id_rsa_qmk_firmware +chmod 600 id_rsa_qmk.fm +eval `ssh-agent -s` +ssh-add id_rsa_qmk_firmware From c808680436e6c62029e2d890f1cebc22d349f8f1 Mon Sep 17 00:00:00 2001 From: Florian Date: Fri, 23 Mar 2018 23:51:32 +0100 Subject: [PATCH 100/578] initial branch (#2379) * initial branch * lazy-push * Fix schema Updated README, readded DVORAK to keymap. Updated dir name to lowercase. * removed executable bit * testing switched L_GUI position --- keyboards/lets_split/keymaps/waples/README.md | 58 ++++++++ keyboards/lets_split/keymaps/waples/config.h | 17 +++ keyboards/lets_split/keymaps/waples/keymap.c | 132 ++++++++++++++++++ keyboards/lets_split/keymaps/waples/rules.mk | 3 + 4 files changed, 210 insertions(+) create mode 100644 keyboards/lets_split/keymaps/waples/README.md create mode 100644 keyboards/lets_split/keymaps/waples/config.h create mode 100644 keyboards/lets_split/keymaps/waples/keymap.c create mode 100644 keyboards/lets_split/keymaps/waples/rules.mk diff --git a/keyboards/lets_split/keymaps/waples/README.md b/keyboards/lets_split/keymaps/waples/README.md new file mode 100644 index 000000000000..6e171d964f74 --- /dev/null +++ b/keyboards/lets_split/keymaps/waples/README.md @@ -0,0 +1,58 @@ +# Waples Let's Split keymap +[Waples](https://www.github.com/Waples) + +## My (forever) Work-In-Progress keymap for my Let's Split keyboard. +My keymap is much like the default, I just personally like to have my Enter and Escape key to be on my home row. The Escape key doubles as a Control key when held down, my Enter key functions as (right)Shift when held down. +Everything you see below here is constantly *under construction*, so there may be some dumb things in this, which are already gotten taken out, or are still in there :P. + +### Layers +I currently have the following layers in my keymap: +* Qwerty (as default) +* Dvorak (still learning this type of layout, so not really used much) +* Gaming (WIP! I tried some I found, but didn't like them, so I'm in the progress of making my own) +* Lefty (lower) +* Righty (raise) +* Dual (adjust) + +#### QWERTY + | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bsp | + |C_Esc| A | S | D | F | G | | H | J | K | L | ; |S_Ent| + | Sft | Z | X | C | V | B | | N | M | , | . | / | " | + |P_SCR| GUI | Alt | Cps | ^L^ | Bsp | | Spc | ^R^ | Lft | Dwn | Up! | Rgt | + + +#### DVORAK + | Tab | " | , | . | P | Y | | F | G | C | R | L | Bsp | + |C_Esc| A | O | E | U | I | | D | H | T | N | S |S_Ent| + | Sft | ; | Q | J | K | X | | B | M | W | V | Z | / | + |P_SCR| GUI | Alt | Cps | ^L^ | Bsp | | Spc | ^R^ | Lft | Dwn | Up! | Rgt | + + +#### GAMING + | Tab | Q | W | E | R | T | | | | | | |QWERT| + | Esc | A | S | D | F | G | | | | | | | | + | Sft | Z | X | C | V | B | | | | | | | | + | Ctl | 1 | 2 | 3 | ^L^ | Spc | | Bsp | ^R^ | Lft | Dwn | Up | Rgt | + + +#### LEFTY (lower) + | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | Bsp | + | Del | | | | | | | | ( | ) | [ | ] | | + | | | | | | | | | | | | | | + | | | | | | | | Ins | | Hme | PgD | PgU | End | + + +#### RIGHTY (raise) + | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Bsp | + | Del | F1 | F2 | F3 | F4 | | | = | - | \ | / | | | + | | F5 | F6 | F7 | F8 | | | | | | | | | + | | F9 | F10 | F11 | | | | | | | | | | + + +#### DUAL + |Reset| | | | |QWERT| | GAME| | | | |Reset| + | | Prv | Stp | Tog | Nxt | Nrm | | Swp | | | | | | + | | | Mte | Vol-| Vol+| | | NKRO| | | | | | + | | | | | | | |DVORK| | | | | | + + diff --git a/keyboards/lets_split/keymaps/waples/config.h b/keyboards/lets_split/keymaps/waples/config.h new file mode 100644 index 000000000000..98ebeff45580 --- /dev/null +++ b/keyboards/lets_split/keymaps/waples/config.h @@ -0,0 +1,17 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +/* Use I2C or Serial, not both */ +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ +// #define MASTER_LEFT +// #define MASTER_RIGHT +#define EE_HANDS // We like to have choices I guess + +#define PREVENT_STUCK_MODIFIERS // When switching layers, this will release all mods + +#endif diff --git a/keyboards/lets_split/keymaps/waples/keymap.c b/keyboards/lets_split/keymaps/waples/keymap.c new file mode 100644 index 000000000000..baf2df323ad2 --- /dev/null +++ b/keyboards/lets_split/keymaps/waples/keymap.c @@ -0,0 +1,132 @@ +// Waples layout for Let's Split (rev2) +// Made changes from the default + +#include "lets_split.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +#define _QWERTY 0 +#define _DVORAK 1 +#define _GAME 2 +#define _LEFTY 3 +#define _RIGHTY 4 +#define _DUAL 5 + +enum letssplit_keycodes { + QWERTY = SAFE_RANGE, + DVORAK, + GAME, + LEFTY, + RIGHTY, + DUAL, +}; + +#define TG_NKRO MAGIC_TOGGLE_NKRO // Toggle NKRO +#define CTLESC MT(MOD_LCTL, KC_ESC) // Hold for left Ctrl, tap for Esc +#define SHFTENT MT(MOD_RSFT, KC_ENT) // Hold for right Shift, tap for Enter +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_QWERTY] = KEYMAP( \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + CTLESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, SHFTENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, \ + KC_PSCR, KC_BSPC, KC_LALT, KC_CAPS, LEFTY, KC_LGUI, KC_SPC, RIGHTY, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +[_DVORAK] = KEYMAP( \ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ + CTLESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, SHFTENT, \ + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_SLSH, \ + KC_PSCR, KC_LGUI, KC_LALT, KC_CAPS, LEFTY, KC_BSPC, KC_SPC, RIGHTY, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +[_GAME] = KEYMAP( \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, _______, _______, _______, _______, QWERTY, \ + CTLESC, KC_A, KC_S, KC_D, KC_F, KC_G, _______, _______, _______, _______, _______, _______, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, _______, _______, _______, _______, \ + KC_LCTL, KC_1, KC_2, KC_3, LEFTY, KC_SPC, KC_BSPC, RIGHTY, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT \ +), + +[_LEFTY] = KEYMAP( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ + KC_DEL, _______, _______, _______, _______, _______, _______, KC_LPRN, KC_RPRN, KC_LBRC, KC_RBRC, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, KC_INS, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END \ +), + +[_RIGHTY] = KEYMAP( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, _______, KC_EQL, KC_MINS, KC_BSLS, KC_SLSH, _______, _______, \ + _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F9, KC_F10, KC_F11, _______, _______, _______, _______, _______, _______, _______, _______ \ +), + +[_DUAL] = KEYMAP( \ + RESET, _______, _______, _______, _______, QWERTY, GAME, _______, _______, _______, _______, RESET, \ + _______, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, \ + _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, TG_NKRO, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, DVORAK, _______, _______, _______, _______, _______ \ +) +}; + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + persistent_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + persistent_default_layer_set(1UL<<_DVORAK); + } + return false; + break; + case GAME: + if (record->event.pressed) { + persistent_default_layer_set(1UL<<_GAME); + } + return false; + break; + case LEFTY: + if (record->event.pressed) { + layer_on(_LEFTY); + update_tri_layer(_LEFTY, _RIGHTY, _DUAL); + } else { + layer_off(_LEFTY); + update_tri_layer(_LEFTY, _RIGHTY, _DUAL); + } + return false; + break; + case RIGHTY: + if (record->event.pressed) { + layer_on(_RIGHTY); + update_tri_layer(_LEFTY, _RIGHTY, _DUAL); + } else { + layer_off(_RIGHTY); + update_tri_layer(_LEFTY, _RIGHTY, _DUAL); + } + return false; + break; + case DUAL: + if (record->event.pressed) { + layer_on(_DUAL); + } else { + layer_off(_DUAL); + } + return false; + break; + } + return true; +} diff --git a/keyboards/lets_split/keymaps/waples/rules.mk b/keyboards/lets_split/keymaps/waples/rules.mk new file mode 100644 index 000000000000..457a3d01d4a4 --- /dev/null +++ b/keyboards/lets_split/keymaps/waples/rules.mk @@ -0,0 +1,3 @@ +ifndef QUANTUM_DIR + include ../../../../Makefile +endif From c3c4164faf002c838e00bb4cc3d81a2c819c58c3 Mon Sep 17 00:00:00 2001 From: That-Canadian Date: Fri, 23 Mar 2018 15:54:02 -0700 Subject: [PATCH 101/578] That-Canadian Preonic layout (#2462) * Line ending stuff again * Added my own person keymap to preonic folder * Updated my preonic keymap * Updated my preonic keymap --- .../preonic/keymaps/that_canadian/Makefile | 25 ++ .../preonic/keymaps/that_canadian/config.h | 8 + .../preonic/keymaps/that_canadian/keymap.c | 244 ++++++++++++++++++ .../preonic/keymaps/that_canadian/readme.md | 1 + 4 files changed, 278 insertions(+) create mode 100644 keyboards/preonic/keymaps/that_canadian/Makefile create mode 100644 keyboards/preonic/keymaps/that_canadian/config.h create mode 100644 keyboards/preonic/keymaps/that_canadian/keymap.c create mode 100644 keyboards/preonic/keymaps/that_canadian/readme.md diff --git a/keyboards/preonic/keymaps/that_canadian/Makefile b/keyboards/preonic/keymaps/that_canadian/Makefile new file mode 100644 index 000000000000..507bd77d2d12 --- /dev/null +++ b/keyboards/preonic/keymaps/that_canadian/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/preonic/keymaps/that_canadian/config.h b/keyboards/preonic/keymaps/that_canadian/config.h new file mode 100644 index 000000000000..11cafbefcb0c --- /dev/null +++ b/keyboards/preonic/keymaps/that_canadian/config.h @@ -0,0 +1,8 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +#define PREVENT_STUCK_MODIFIERS + +#endif diff --git a/keyboards/preonic/keymaps/that_canadian/keymap.c b/keyboards/preonic/keymaps/that_canadian/keymap.c new file mode 100644 index 000000000000..41e71697a874 --- /dev/null +++ b/keyboards/preonic/keymaps/that_canadian/keymap.c @@ -0,0 +1,244 @@ +#include "preonic.h" +#include "action_layer.h" +#include "eeconfig.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 + +#define _LOWER 3 +#define _RAISE 4 + +#define _FUNCTION 15 +#define _ADJUST 16 + +enum preonic_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + BACKLIT +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Func | A | S | D | F | G | H | J | K | L | ; | Enter| + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / | ' | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | ` | GUI | ALT |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = { + {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {MO(_FUNCTION), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT}, + {OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT}, + {KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } |Enter | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | Mute | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | |Lower | Bksp |Raise | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11}, + {KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, + {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MUTE, _______, KC_PIPE}, + {_______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | 4 | 5 | 6 | + | F5 | F6 | - | = | [ | ] |Enter | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |Enter | 7 | 8 | 9 | - | F11 | F12 |ISO # |ISO / | Mute | | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | , | 0 | . |Lower | Bksp |Raise | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11}, + {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, + {_______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______}, + {KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS}, + {_______, KC_COMM, KC_0, KC_DOT, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | ESC | F1 | F2 | F3 |ALTF4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Taskmg| | | | | | | | | | |caltde| + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty| | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | |RESET | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {KC_ESC, KC_F1, KC_F2, KC_F3, LALT(KC_F4), KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11}, + {TSKMGR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CALTDEL}, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET} +}, + +/* Function + * ,-----------------------------------------------------------------------------------. + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | up | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | Left | Down |Right | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Caps | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_FUNCTION] = { + {KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______}, + {KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + + +}; + +#ifdef AUDIO_ENABLE +float tone_startup[][2] = { + {NOTE_B5, 20}, + {NOTE_B6, 8}, + {NOTE_DS6, 20}, + {NOTE_B6, 8} +}; + +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); + +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); + +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); +#endif + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + return false; + break; + } + return true; +}; + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + startup_user(); + #endif +} + +#ifdef AUDIO_ENABLE + +void startup_user() +{ + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); +} + +void shutdown_user() +{ + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); +} + +void music_on_user(void) +{ + music_scale_user(); +} + +void music_scale_user(void) +{ + PLAY_NOTE_ARRAY(music_scale, false, 0); +} + +#endif diff --git a/keyboards/preonic/keymaps/that_canadian/readme.md b/keyboards/preonic/keymaps/that_canadian/readme.md new file mode 100644 index 000000000000..5d62a0a714e0 --- /dev/null +++ b/keyboards/preonic/keymaps/that_canadian/readme.md @@ -0,0 +1 @@ +# My personal Preonic layout, based on my Planck layout \ No newline at end of file From b3e7149a65ac7855a9a56f34b213048326280a78 Mon Sep 17 00:00:00 2001 From: David Collom Date: Fri, 23 Mar 2018 15:55:46 -0700 Subject: [PATCH 102/578] yet another keymap (#2356) * added keymap * added readme --- keyboards/planck/keymaps/dc/config.h | 9 ++ keyboards/planck/keymaps/dc/keymap.c | 174 ++++++++++++++++++++++++++ keyboards/planck/keymaps/dc/readme.md | 2 + keyboards/planck/keymaps/dc/rules.mk | 24 ++++ 4 files changed, 209 insertions(+) create mode 100644 keyboards/planck/keymaps/dc/config.h create mode 100644 keyboards/planck/keymaps/dc/keymap.c create mode 100644 keyboards/planck/keymaps/dc/readme.md create mode 100644 keyboards/planck/keymaps/dc/rules.mk diff --git a/keyboards/planck/keymaps/dc/config.h b/keyboards/planck/keymaps/dc/config.h new file mode 100644 index 000000000000..07d8533b830e --- /dev/null +++ b/keyboards/planck/keymaps/dc/config.h @@ -0,0 +1,9 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +#define TAPPING_TERM 200 +#define TAPPING_TOGGLE 3 + +#endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/dc/keymap.c b/keyboards/planck/keymaps/dc/keymap.c new file mode 100644 index 000000000000..6ac9c30a64a0 --- /dev/null +++ b/keyboards/planck/keymaps/dc/keymap.c @@ -0,0 +1,174 @@ +#include "planck.h" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif + +enum planck_layers { + _DVORAK, + _NUMBERS, + _SYMBOLS, + _ACTIONS, + _SPECIAL + }; + +enum planck_keycodes { + DVORAK, + NUMBERS, + SYMBOLS, + ACTIONS, + SPECIAL +}; + +enum tap_dance_codes { + CT_SC_LP = 0, + CT_Q_LBRC, + CT_J_LBRK, + CT_W_RBRK, + CT_V_RBRC, + CT_Z_RP, + CT_DEL_ESC +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + //keyevent_t event = record->event; + + switch (id) { + + } + return MACRO_NONE; +} + +qk_tap_dance_action_t tap_dance_actions[] = { + [0] = ACTION_TAP_DANCE_DOUBLE(KC_SCLN, KC_LPRN), + [1] = ACTION_TAP_DANCE_DOUBLE(KC_Q, KC_LCBR), + [2] = ACTION_TAP_DANCE_DOUBLE(KC_J, KC_LBRC), + [3] = ACTION_TAP_DANCE_DOUBLE(KC_W, KC_RBRC), + [4] = ACTION_TAP_DANCE_DOUBLE(KC_V, KC_RCBR), + [5] = ACTION_TAP_DANCE_DOUBLE(KC_Z, KC_RPRN) +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | '" | ,< | .> | P | Y | F | G | C | R | L | BS | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | /? | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |LShift| ;:/( | Q/{ | J/[ | K | X | B | M | W/] | V/} | Z/) |RS/Ent| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Action| Ctrl | GUI | Alt |Number| Space/Enter |Symbol| Left | Down | Up | Right| + * `-----------------------------------------------------------------------------------' + */ + [_DVORAK] = { + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPACE}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLASH}, + {KC_LSFT, TD(0), TD(1), TD(2), KC_K, KC_X, KC_B, KC_M, TD(3), TD(4), TD(5), MT(MOD_RSFT, KC_ENT)}, + {MO(ACTIONS), KC_LCTRL, KC_LGUI, KC_LALT, NUMBERS, KC_SPACE, KC_SPACE, SYMBOLS,KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT}, + }, + + /* Numbers + * ,-----------------------------------------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | 7 | 8 | 9 | * | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | 4 | 5 | 6 | - | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | 0 | 1 | 2 | 3 | + | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_NUMBERS] = { + {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_7, KC_8, KC_9, KC_KP_ASTERISK, _______}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_4, KC_5, KC_6, KC_KP_MINUS, _______}, + {_______, _______, _______, _______, _______, _______, KC_0, KC_1, KC_2, KC_3, KC_KP_PLUS, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + }, + + /* Symbols + * ,-----------------------------------------------------------------------------------. + * | `~ | ! | @ | # | $ | % | ^ | & | * | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Caps | | Ins | Pgup | | | | _ | + | | | \| | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | Home | End | Pgdn | | | | - | = | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_SYMBOLS] = { + {KC_GRV, KC_EXCLAIM, KC_AT, KC_HASH, KC_DOLLAR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, _______, _______, KC_DEL}, + {KC_CAPS, _______, KC_INS, KC_PGUP, _______, _______, _______, KC_UNDS, KC_PLUS, _______, _______, KC_BSLS}, + {_______, KC_HOME, KC_END, KC_PGDN, _______, _______, _______, KC_MINUS, KC_EQL, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + }, + + /* Actions + * ,-----------------------------------------------------------------------------------. + * | LED | | | | | Sleep|Reset | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | Redo | | | | | | Play | << | >> | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | Undo | Cut | Copy | Paste| | | Mute | Vol- | Vol+ | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_ACTIONS] = { + {BL_STEP, _______, _______, _______, _______, KC_SLEP, RESET, _______, _______, _______, _______, KC_DEL}, + {_______, LCTL(KC_Y), _______, _______, _______, _______, _______, KC_MPLY, KC_MPRV, KC_MNXT, _______, _______}, + {_______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + }, + + /* Special + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_SPECIAL] = { + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + } +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; + case SYMBOLS: + if (record->event.pressed) { + layer_on(_SYMBOLS); + update_tri_layer(_NUMBERS, _SYMBOLS, _SPECIAL); + } else { + layer_off(_SYMBOLS); + update_tri_layer(_NUMBERS, _SYMBOLS, _SPECIAL); + } + return false; + break; + case NUMBERS: + if (record->event.pressed) { + layer_on(_NUMBERS); + update_tri_layer(_NUMBERS, _SYMBOLS, _SPECIAL); + } else { + layer_off(_NUMBERS); + update_tri_layer(_NUMBERS, _SYMBOLS, _SPECIAL); + } + return false; + break; + } + return true; +} \ No newline at end of file diff --git a/keyboards/planck/keymaps/dc/readme.md b/keyboards/planck/keymaps/dc/readme.md new file mode 100644 index 000000000000..58dd1eb6e692 --- /dev/null +++ b/keyboards/planck/keymaps/dc/readme.md @@ -0,0 +1,2 @@ +# Practical keymap for Planck Ortholinear 40% Mechanical Keyboard +A custom Dvorak keymap with layers for numbers, symbols, and media keys. \ No newline at end of file diff --git a/keyboards/planck/keymaps/dc/rules.mk b/keyboards/planck/keymaps/dc/rules.mk new file mode 100644 index 000000000000..6106b40e1449 --- /dev/null +++ b/keyboards/planck/keymaps/dc/rules.mk @@ -0,0 +1,24 @@ +ifndef QUANTUM_DIR + include ../../../../Makefile +endif + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +TAP_DANCE_ENABLE = yes + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend \ No newline at end of file From 426c71de74147e302ecd0130922d980d0beb7ca1 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Fri, 23 Mar 2018 15:56:36 -0700 Subject: [PATCH 103/578] Add new bfake "FaceW" keymap (#2360) * Add mechmerlin keymap and readme for facew board * Fix keymap - Backspace as on the wrong key - HHKB backspace changed to backslash * Update keymap.c Change TO to TG for toggle. --- keyboards/bfake/keymaps/mechmerlin/keymap.c | 51 ++++++++++++++++++++ keyboards/bfake/keymaps/mechmerlin/readme.md | 18 +++++++ 2 files changed, 69 insertions(+) create mode 100644 keyboards/bfake/keymaps/mechmerlin/keymap.c create mode 100644 keyboards/bfake/keymaps/mechmerlin/readme.md diff --git a/keyboards/bfake/keymaps/mechmerlin/keymap.c b/keyboards/bfake/keymaps/mechmerlin/keymap.c new file mode 100644 index 000000000000..705339b9939b --- /dev/null +++ b/keyboards/bfake/keymaps/mechmerlin/keymap.c @@ -0,0 +1,51 @@ +/* +Copyright 2017 Luiz Ribeiro + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "bfake.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = KEYMAP( + KC_GESC, 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_NO, KC_BSPC, + 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_BSLS, + 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_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TG(2), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(1), KC_RALT, KC_RGUI, KC_RCTL + ), + [1] = KEYMAP( + KC_GRV, 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_NO, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + MO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [3] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + diff --git a/keyboards/bfake/keymaps/mechmerlin/readme.md b/keyboards/bfake/keymaps/mechmerlin/readme.md new file mode 100644 index 000000000000..b85b6537c1c6 --- /dev/null +++ b/keyboards/bfake/keymaps/mechmerlin/readme.md @@ -0,0 +1,18 @@ +MechMerlin's FaceW Sprit Edition Layout +====================== + +This is the preferred 60% layout used by u/merlin36, host of the [MechMerlin YouTube channel](www.youtube.com/mechmerlin). + +## Keyboard Notes +- The FaceW Sprit Edition can be purchased on [mechanicalkeyboards.com](www.mechanicalkeyboards.com) +- Uses ps2avru instead of ps2avrgb +- To put in reset mode hold `q` while inserting the USB cable +- Use flashing instructions from ps2avrgb QMK port + +## Keymap Notes +- Does not support any form of inswitch lighting as Merlin hates them. +- Arrow toggle switch to the right of right shift +- Reset is FN + Left Shift + R + +### Build +To build this keymap, simply run `make bfake:mechmerlin` from the qmk_firmware directory. From 6706e1af6cedca8cc77ef995a098752dc5e94205 Mon Sep 17 00:00:00 2001 From: akrob Date: Fri, 23 Mar 2018 16:57:22 -0600 Subject: [PATCH 104/578] Add new keymap for iris transmogrified (#2361) * Create config.h * Create rules.mk * Create keymap.c --- .../iris/keymaps/transmogrified/config.h | 42 +++ .../iris/keymaps/transmogrified/keymap.c | 297 ++++++++++++++++++ .../iris/keymaps/transmogrified/rules.mk | 6 + 3 files changed, 345 insertions(+) create mode 100644 keyboards/iris/keymaps/transmogrified/config.h create mode 100644 keyboards/iris/keymaps/transmogrified/keymap.c create mode 100644 keyboards/iris/keymaps/transmogrified/rules.mk diff --git a/keyboards/iris/keymaps/transmogrified/config.h b/keyboards/iris/keymaps/transmogrified/config.h new file mode 100644 index 000000000000..8df0824b7a71 --- /dev/null +++ b/keyboards/iris/keymaps/transmogrified/config.h @@ -0,0 +1,42 @@ +/* +Copyright 2017 Danny Nguyen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ + +// #define MASTER_LEFT +#define MASTER_RIGHT +// #define EE_HANDS + +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 12 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +#endif diff --git a/keyboards/iris/keymaps/transmogrified/keymap.c b/keyboards/iris/keymaps/transmogrified/keymap.c new file mode 100644 index 000000000000..7260f0c66fa2 --- /dev/null +++ b/keyboards/iris/keymaps/transmogrified/keymap.c @@ -0,0 +1,297 @@ +#include "iris.h" +#include "action_layer.h" +#include "eeconfig.h" + +// config settings +#define TAPPING_TERM 250 +#define ONESHOT_TAP_TOGGLE 1 +#define ONESHOT_TIMEOUT 10000 + +extern keymap_config_t keymap_config; + +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _ONEHANDR 3 +#define _ONEHANDL 4 +#define _RLAYER 5 +#define _LLAYER 6 +#define _DUAL 7 +#define _CONFIG 8 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + ONEHANDR, + ONEHANDL, + RLAYER, + LLAYER, + DUAL, + CONFIG, +}; + +/* Tap Dance */ +enum { + TD_LGUIAPP, + TD_SHIFTCAPS, +}; + +/* NOOP Key and Transparent */ +#define KC_ KC_TRNS +#define KC_XXXX KC_NO + +/* LAYERS */ +#define KC_LLAY LLAYER +#define KC_RLAY RLAYER +#define KC_QWER QWERTY +#define KC_DVOR DVORAK +#define KC_COLE COLEMAK +#define KC_ONER ONEHANDR +#define KC_ONEL ONEHANDL +#define KC_DUAL DUAL +#define KC_CONF OSL(_CONFIG) + +/* Custom Shortened Keys */ +#define KC_MCTB LCTL(KC_TAB) +#define KC_MCST LCTL(LSFT(KC_TAB)) +#define KC_MCAD LALT(LCTL(KC_DEL)) +#define KC_CTEC CTL_T(KC_ESC) +#define KC_SINS LSFT(KC_INS) +#define KC_LGU1 LGUI(KC_1) +#define KC_LGU2 LGUI(KC_2) +#define KC_LGU3 LGUI(KC_3) +#define KC_LGU4 LGUI(KC_4) +#define KC_LGU5 LGUI(KC_5) +#define KC_LGU6 LGUI(KC_6) +#define KC_LGU7 LGUI(KC_7) +#define KC_LGU8 LGUI(KC_8) +#define KC_LGU9 LGUI(KC_9) +#define KC_LGU0 LGUI(KC_0) +#define KC_BLUP BL_INC +#define KC_BLDN BL_DEC +#define KC_SYSR KC_SYSREQ +#define KC_FLASH RESET + +/* Tap Dance */ +#define KC_LGUA TD(TD_LGUIAPP) +#define KC_SHCL TD(TD_SHIFTCAPS) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + LEAD, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + TAB , Q , W , E , R , T , Y , U , I , O , P ,DEL , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + CTEC, A , S , D , F , G , H , J , K , L ,SCLN,ENT , + //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + SHCL, Z , X , C , V , B ,XXXX, XXXX, N , M ,COMM,DOT ,SLSH,RSFT, + //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + LALT,LLAY,TAB , SPC ,RLAY,LGUA + // `----+----+----' `----+----+----' + ), + + [_COLEMAK] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + LEAD, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + TAB , Q , W , F , P , G , J , L , U , Y ,SCLN,DEL , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + CTEC, A , R , S , T , D , H , N , E , I ,SCLN,ENT , + //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + SHCL, Z , X , C , V , B ,XXXX, XXXX, K , M ,COMM,DOT ,SLSH,RSFT, + //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + LALT,LLAY,TAB , SPC ,RLAY,LGUA + // `----+----+----' `----+----+----' + ), + + [_DVORAK] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + LEAD, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + TAB ,QUOT,COMM,DOT , P , Y , F , G , C , R , L ,SLSH, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + CTEC, A , O , E , U , I , D , H , T , N , S ,ENT , + //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + SHCL,SCLN, Q , J , K , X ,XXXX, XXXX, B , M , W , V , Z ,EQL , + //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + LALT,LLAY,TAB , SPC ,RLAY,LGUA + // `----+----+----' `----+----+----' + ), + + [_ONEHANDR] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, 6 , 7 , 8 , 9 , 0 ,BSPC, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, Y , U , I , O , P ,DEL , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, H , J , K , L ,SCLN,QUOT, + //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + XXXX,XXXX,XXXX,XXXX,XXXX,XXXX,QWER, XXXX, N , M ,COMM,DOT ,SLSH,RSFT, + //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + XXXX,XXXX,XXXX, SPC ,ONEL,ENT + // `----+----+----' `----+----+----' + ), + + [_ONEHANDL] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, 5 , 4 , 3 , 2 , 1 ,LEAD, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, T , R , E , W , Q ,TAB , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, G , F , D , S , A ,ENT , + //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + XXXX,XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, XXXX, B , V , C , X , Z ,SHCL, + //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + XXXX,XXXX,XXXX, SPC ,ONEL,ENT + // `----+----+----' `----+----+----' + ), + + [_RLAYER] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + ,XXXX,XXXX,XXXX,XXXX,XXXX, MUTE,VOLD,VOLU,BLDN,BLUP, , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + ,TILD,GRV ,EQL ,LBRC,RBRC, PGUP,ASTR, UP ,AMPR,CIRC, , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + ,EXLM,PIPE,DLR ,LPRN,RPRN, HOME,LEFT,DOWN,RGHT,END ,QUOT, + //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + , AT ,HASH,PERC,LCBR,RCBR,LGUI, ,PGDN,UNDS,MINS,PLUS,BSLS, , + //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + , , , , , + // `----+----+----' `----+----+----' + ), + + [_LLAYER] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + ,XXXX,XXXX, UP , F5 ,XXXX, ASTR, 7 , 8 , 9 ,PLUS, , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + ,XXXX,MCST,DOWN,MCTB,ENT , SLSH, 4 , 5 , 6 ,MINS, , + //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + ,XXXX,XXXX,BSPC,SPC ,SINS,F11 , F12 ,EQL , 1 , 2 , 3 ,DOT , , + //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + , , , 0 , , + // `----+----+----' `----+----+----' + ), + + [_DUAL] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + ,XXXX,XXXX,PSCR,INS ,XXXX, XXXX,SLEP,SLCK,PAUS,SYSR,XXXX, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + ,XXXX,XXXX,XXXX,XXXX,XXXX, XXXX,XXXX,MS_U,XXXX,XXXX,MCAD, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + ,XXXX,XXXX,XXXX,XXXX,XXXX, BTN2,MS_L,MS_D,MS_R,BTN1,XXXX, + //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + ,LGU1,LGU2,LGU3,LGU4,LGU5,CONF, XXXX,LGU6,LGU7,LGU8,LGU9,LGU0, , + //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + , , , , , + // `----+----+----' `----+----+----' + ), + + [_CONFIG] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + FLASH,XXXX,XXXX,XXXX,XXXX,XXXX, XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + XXXX,QWER,XXXX,XXXX,XXXX,XXXX, XXXX,XXXX,XXXX,ONER,XXXX,XXXX, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + XXXX,XXXX,XXXX,DVOR,XXXX,XXXX, XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, + //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + XXXX,XXXX,XXXX,COLE,XXXX,XXXX, , ,XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, + //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + XXXX, ,XXXX, XXXX, ,XXXX + // `----+----+----' `----+----+----' + ), +}; + + +/* TAP DANCE */ +void shift_caps_down (qk_tap_dance_state_t *state, void *user_data) { + if (state->count >= 3) { + register_code (KC_CAPS); + } else { + register_code (KC_LSFT); + } +} + +void shift_caps_up (qk_tap_dance_state_t *state, void *user_data) { + if (state->count >= 3) { + unregister_code (KC_CAPS); + } else { + unregister_code (KC_LSFT); + } +} +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_LGUIAPP] = ACTION_TAP_DANCE_DOUBLE(KC_LGUI, KC_APP), + [TD_SHIFTCAPS] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, shift_caps_down, shift_caps_up) +}; + +/* END TAP DANCE */ + + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case ONEHANDR: + if (record->event.pressed) { + set_single_persistent_default_layer(_ONEHANDR); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; + case RLAYER: + if (record->event.pressed) { + layer_on(_RLAYER); + update_tri_layer(_RLAYER, _LLAYER, _DUAL); + } else { + unregister_code(KC_LGUI); + layer_off(_RLAYER); + update_tri_layer(_RLAYER, _LLAYER, _DUAL); + } + return false; + break; + case LLAYER: + if (record->event.pressed) { + layer_on(_LLAYER); + update_tri_layer(_RLAYER, _LLAYER, _DUAL); + } else { + layer_off(_LLAYER); + update_tri_layer(_RLAYER, _LLAYER, _DUAL); + } + return false; + break; + case ONEHANDL: + if (record->event.pressed) { + layer_on(_ONEHANDL); + } else { + layer_off(_ONEHANDL); + } + return false; + break; + } + return true; +} diff --git a/keyboards/iris/keymaps/transmogrified/rules.mk b/keyboards/iris/keymaps/transmogrified/rules.mk new file mode 100644 index 000000000000..c248822b2318 --- /dev/null +++ b/keyboards/iris/keymaps/transmogrified/rules.mk @@ -0,0 +1,6 @@ +BACKLIGHT_ENABLE = yes +TAP_DANCE_ENABLE = yes + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif From 7a86a67d99601618301c0ee832c0671d37a8ffe3 Mon Sep 17 00:00:00 2001 From: Ivan Smirnov Date: Fri, 23 Mar 2018 15:59:15 -0700 Subject: [PATCH 105/578] Fix broken markdown headers. (#2548) --- .../ergodox/osx_whiskey_tango_foxtrot_capslock/readme.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/readme.md b/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/readme.md index 42cb195760df..3bae07977a17 100644 --- a/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/readme.md +++ b/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/readme.md @@ -1,10 +1,10 @@ # The extra special ergodox build for MacOS Sierra caps lock users -###Do you +### Do you - Hate the OSX / MacOS caps lock delay? - Have an ergodox? -###Then this might just be for you! +### Then this might just be for you! [This](http://apple.stackexchange.com/questions/81234/how-to-remove-caps-lock-delay-on-apple-macbook-pro-aluminum-keyboard) and [this](http://sleepycow.org/2014/07/removing-the-caps-lock-delay-on-a-macbook/) @@ -30,7 +30,7 @@ however there is one known issue: I have only tested this on an original Ergodox with a Teensy 2.0. -####Some other small tweaks +#### Some other small tweaks - Layer 0 board light is off - Layer 1 board light is on solid - Layer 2 board light blinks at speed controlled by BLINK_BASE From ec5cc02bf01bc7094190024db84a686a82f2aa14 Mon Sep 17 00:00:00 2001 From: "J. Eric Mason" Date: Fri, 23 Mar 2018 15:59:56 -0700 Subject: [PATCH 106/578] Preonic Ergodox-Like Mac keymap: Bucktooth (#2553) * Preonic Ergodox-Like Mac keymap: Bucktooth This is a layout unlike most Preonics, it is taken partially from Ergodox and classic C64 keyboards with a ton of Mac-specific features. * Fix Mouse Left keycode --- keyboards/preonic/keymaps/bucktooth/config.h | 9 ++ keyboards/preonic/keymaps/bucktooth/keymap.c | 125 ++++++++++++++++++ keyboards/preonic/keymaps/bucktooth/readme.md | 55 ++++++++ keyboards/preonic/keymaps/bucktooth/rules.mk | 20 +++ 4 files changed, 209 insertions(+) create mode 100644 keyboards/preonic/keymaps/bucktooth/config.h create mode 100644 keyboards/preonic/keymaps/bucktooth/keymap.c create mode 100644 keyboards/preonic/keymaps/bucktooth/readme.md create mode 100644 keyboards/preonic/keymaps/bucktooth/rules.mk diff --git a/keyboards/preonic/keymaps/bucktooth/config.h b/keyboards/preonic/keymaps/bucktooth/config.h new file mode 100644 index 000000000000..b988831207ba --- /dev/null +++ b/keyboards/preonic/keymaps/bucktooth/config.h @@ -0,0 +1,9 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +#define FORCE_NKRO 1 +#define PREVENT_STUCK_MODIFIERS + +#endif diff --git a/keyboards/preonic/keymaps/bucktooth/keymap.c b/keyboards/preonic/keymaps/bucktooth/keymap.c new file mode 100644 index 000000000000..d135db487593 --- /dev/null +++ b/keyboards/preonic/keymaps/bucktooth/keymap.c @@ -0,0 +1,125 @@ +#include "preonic.h" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +#define L_QWERTSPLITLY 0 +#define L_FN 1 + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +// Defines for Mac specific key accelerators used in map. Some of these are very awkward to type. +// These are the default bindings for Mac, some of which may be turned off or changed, check your +// settings in System Preferences +#define LS_TAB LSFT(KC_TAB) // Shift-TAB +#define MF_MENU LCTL(KC_F2) // Move focus to menu bar default keybinding in MacOS +#define MF_DOCK LCTL(KC_F3) // Move focus to dock +#define MF_TOOL LCTL(KC_F5) // Move focus to window toolbar +#define MF_STAT LCTL(KC_F8) // Move focus to status bar side of menu bar +#define MF_DRWR LALT(LGUI(KC_QUOTE)) // Move focus to window drawer +#define MF_LPAD LALT(LGUI(KC_Q)) // Show Launchpad +#define MF_NOTI LALT(LGUI(LCTL(KC_B))) // Show Notification Center +#define MF_DASH LALT(LGUI(LCTL(KC_C))) // Show Dashboard +#define MF_HELP LSFT(LGUI(KC_SLASH)) // Position in menu Help search box + +// Momentary/Tap Combos used by this layout +#define LT_FNESC LT(L_FN, KC_ESC) // ESC when tapped, Fn layer when held +#define MT_RGENT MT(MOD_RGUI, KC_ENTER) // Enter when tapped, right GUI when held +#define LT_FNLFT LT(L_FN, KC_LEFT) // Left when tapped, Fn layer when held +#define MT_RSDOT MT(MOD_RSFT, KC_DOT) // Dot when tapped, right shift when held + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* QwertSplitly + * ,-----------------------------------------------------------------------------------. + * | 1 | 2 | 3 | 4 | 5 | - | = | 6 | 7 | 8 | 9 | 0 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Q | W | E | R | T | [ | ] | Y | U | I | O | P | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | A | S | D | F | G | ` | ' | H | J | K | L | ; | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |LShift| Z | X | C | V | B | \ | / | N | M | , |./RSft| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |ESC/fn|LCtrl | LOpt | LCmd |Space | Tab | BkSp |Space |En/Cmd|<-/fn |CRSR v|CRSR->| + * `-----------------------------------------------------------------------------------' + */ +[L_QWERTSPLITLY] = { + {KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINUS,KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, }, + {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, }, + {KC_A, KC_S, KC_D, KC_F, KC_G, KC_GRAVE,KC_QUOTE,KC_H, KC_J, KC_K, KC_L, KC_SCLN }, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BSLS, KC_SLASH,KC_N, KC_M, KC_COMM, MT_RSDOT}, + {LT_FNESC,KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_TAB, KC_BSPC, KC_SPC, MT_RGENT,LT_FNLFT,KC_DOWN, KC_RIGHT} +}, + +/* Fn + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | Vol- | Vol+ | F6 | F7 | F8 | F9 | F10 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | F11 | F12 | F13 | F14 | F15 |Track-|Track+|M:WhUp|M:Lclk| M:Up |M:Rclk| PgUp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Caps |^LPad |^DashB|^Help |^Drawr| Mute | |>|| |M:WhDn|M:Left|M:Down|M:Rght| PgDn | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |RShift|^Menu |^SMenu|^Dock |^Tools|^Notif| Ins |M:Slow|M:Norm|M:Fast| Home | End | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |[ESC] |RCtrl | ROpt | RCmd |Space |Sh-Tab| Del |Space |PadEnt| [fn] | Up | Left | + * `-----------------------------------------------------------------------------------' + */ +[L_FN] = { + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_VOLD, KC_VOLU, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 }, + {KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_MRWD, KC_MFFD, KC_WH_U, KC_BTN1, KC_MS_U, KC_BTN2, KC_PGUP }, + {KC_CAPS, MF_LPAD, MF_DASH, MF_HELP, MF_DRWR, KC_MUTE, KC_MPLY, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, KC_PGDN }, + {KC_RSFT, MF_MENU, MF_STAT, MF_DOCK, MF_TOOL, MF_NOTI, KC_INS, KC_ACL0, KC_ACL1, KC_ACL2, KC_HOME, KC_END }, + {_______, KC_RCTL, KC_RALT, KC_RGUI, _______, LS_TAB, KC_DEL, _______, KC_PENT, _______, KC_UP, KC_LEFT } +} + +}; + +#ifdef AUDIO_ENABLE +float tone_startup[][2] = { + {NOTE_C5, 8}, + {NOTE_E6, 4}, + {NOTE_D6, 16}, + {NOTE_G6, 8} +}; + +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); + +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); +#endif + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + startup_user(); + #endif +} + +#ifdef AUDIO_ENABLE + +void startup_user() +{ + _delay_ms(20); // gets rid of tick + PLAY_SONG(tone_startup); +} + +void shutdown_user() +{ + PLAY_SONG(tone_goodbye); + _delay_ms(150); + stop_all_notes(); +} + +void music_on_user(void) +{ + music_scale_user(); +} + +void music_scale_user(void) +{ + PLAY_SONG(music_scale); +} + +#endif diff --git a/keyboards/preonic/keymaps/bucktooth/readme.md b/keyboards/preonic/keymaps/bucktooth/readme.md new file mode 100644 index 000000000000..a1bda9f6a2b3 --- /dev/null +++ b/keyboards/preonic/keymaps/bucktooth/readme.md @@ -0,0 +1,55 @@ +# Bucktooth v1.0 (Mac) + +Bucktooth is an alternate layout that pushes the letters to the edges and puts most punctuation in the center. It's derived in part from my experience with Ergodox boards. I call the main layer layout QWERTSplitlY, you may notice the right side punctuation moving to the center and the control keys missing from the left. + +## Split QWERTY: Unorthodox + + QwertSplitly + ,-----------------------------------------------------------------------------------. + | 1 | 2 | 3 | 4 | 5 | - | = | 6 | 7 | 8 | 9 | 0 | + |------+------+------+------+------+------+------+------+------+------+------+------| + | Q | W | E | R | T | [ | ] | Y | U | I | O | P | + |------+------+------+------+------+-------------+------+------+------+------+------| + | A | S | D | F | G | ` | ' | H | J | K | L | ; | + |------+------+------+------+------+------|------+------+------+------+------+------| + |LShift| Z | X | C | V | B | \ | / | N | M | , |./RSft| + |------+------+------+------+------+------+------+------+------+------+------+------| + |ESC/fn|LCtrl | LOpt | LCmd |Space | Tab | BkSp |Space |En/Cmd|<-/fn |CRSR v|CRSR->| + `-----------------------------------------------------------------------------------' + + +It is a bit of a departure from normal Preonic layouts. You will notice that the bottom letter row is shifted right, and this is both an accomodation for the left shift and because I could never get used to C being directly under D and some other similar staggered keyboard tendencies. If you are used to the default ortho layouts you may want to adjust this back; but, you may find that it is slightly easier to move between a typical staggered layout and ortho boards in this layout. Plus, having a dedicated shift is a good thing, even though the dot key does double duty as a right shift. + +That left shift is the only control or modifier key on the top four rows. All the modifiers and control keys are in the bottom row. Most Ergodox boards put the braces ({}[]) in the center and keep the hands apart. The hands aren't very far apart in this layout but you can imagine moving between this layout and the Ergodox easily, if you can get used to the lack of the extra 1.5U columns on the left and right! + +With all control keys on the bottom row, the ESC key now lives in the bottom left and on my keyboard I actually put a very heavy keyswitch in that space to keep me from hitting it accidentally instead of ctrl. Hold it down and it becomes fn. I usually hit it with my whole hand since it is in the corner, without moving my fingers down to it. + +## Function Layer + +There are no raise and lower or multiple function pages. The Preonic has enough keys to avoid more than a single function page, and I prefer to have spacebars for both thumbs so the "Bucktooth" name comes from the typical keyset with darker function keys and lighter alphas and space keys giving the keyboard fang-like appearance where the two spaces are. + + + Fn + ,-----------------------------------------------------------------------------------. + | F1 | F2 | F3 | F4 | F5 | Vol- | Vol+ | F6 | F7 | F8 | F9 | F10 | + |------+------+------+------+------+------+------+------+------+------+------+------| + | F11 | F12 | F13 | F14 | F15 |Track-|Track+|M:WhUp|M:Lclk| M:Up |M:Rclk| PgUp | + |------+------+------+------+------+-------------+------+------+------+------+------| + | Caps |^LPad |^DashB|^Help |^Drawr| Mute | |>|| |M:WhDn|M:Left|M:Down|M:Rght| PgDn | + |------+------+------+------+------+------|------+------+------+------+------+------| + |RShift|^Menu |^SMenu|^Dock |^Tools|^Notif| Ins |M:Slow|M:Norm|M:Fast| Home | End | + |------+------+------+------+------+------+------+------+------+------+------+------| + |[ESC] |RCtrl | ROpt | RCmd |Space |Sh-Tab| Del |Space |PadEnt| [fn] | Up | Left | + `-----------------------------------------------------------------------------------' + +### Cursor Keys + +The cursor keys are a design I stole from the old Commodore computers which had DOWN and RIGHT keys on the bottom right part of the board. When shifted, they would move the cursor in the opposite direction, and Commodore saved two keys. Since shifted arrows are a common use case in selecting text, emulating this exactly is not desirable so the fn key is placed next to the cursor down and right keys and holding down fn will reverse their meaning. Unlike the Commodore keys they will not invert just by releasing fn but it is close. Because QMK supports it I also allow use the tap mode for fn to move the cursor left, so only going up requires the fn. This is surely the weirdest part of the layout for most people. As someone who learned to type on a Commodore keyboard, it is second nature to me! + +### Mac Keyboard navigation Combo Macros + +On Fn layer ZXCVB and SDFG keys I have set up the default key bindings for Mac OS Keyboard Focus keys since they are obscure and require FKeys mostly. They are pretty convenient for using the keyboard to search the menus, go to the dock, etc. Some like the one to jump to a window's toolbar and the one to jump to a window's accessory drawer are less commonly used. + +___ + +Contributed to QMK and released with the QMK license by J. Eric Mason, 3/16/2018 diff --git a/keyboards/preonic/keymaps/bucktooth/rules.mk b/keyboards/preonic/keymaps/bucktooth/rules.mk new file mode 100644 index 000000000000..3e87d41d36a9 --- /dev/null +++ b/keyboards/preonic/keymaps/bucktooth/rules.mk @@ -0,0 +1,20 @@ + + +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif From 4cf4fe80ecbfad1b5be2afa93f540793b01b7bba Mon Sep 17 00:00:00 2001 From: James Kay Date: Fri, 23 Mar 2018 23:00:36 +0000 Subject: [PATCH 107/578] Just personal layout tweaks :) (#2557) * More ergonomic mousekeys * integrate some recent hardware changes by changing the Plover keymap * use TX Bolt support instead of Plover toggles * switching to steno is no longer as intrusive, so this can move back to BASE --- layouts/community/ergodox/twey/keymap.c | 102 +++++++++++++---------- layouts/community/ergodox/twey/readme.md | 15 ++-- layouts/community/ergodox/twey/rules.mk | 4 + 3 files changed, 68 insertions(+), 53 deletions(-) create mode 100644 layouts/community/ergodox/twey/rules.mk diff --git a/layouts/community/ergodox/twey/keymap.c b/layouts/community/ergodox/twey/keymap.c index 70152864b33e..9ee318a5dd0e 100644 --- a/layouts/community/ergodox/twey/keymap.c +++ b/layouts/community/ergodox/twey/keymap.c @@ -1,7 +1,7 @@ #include QMK_KEYBOARD_H #include "debug.h" #include "action_layer.h" -#include "keymap_plover.h" +#include "keymap_steno.h" #define BASE 0 // default layer #define SYMB 1 // symbols @@ -35,14 +35,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Otherwise, it needs KC_* [BASE] = LAYOUT_ergodox( // layer 0 : default // left hand - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, M(0), + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(STEN), KC_DELT, KC_QUOT, KC_COMM,KC_DOT, KC_P, KC_Y, KC_ESC, KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_TAB, MO(SYMB), KC_NO, KC_GRV, KC_LEFT,KC_RGHT, KC_PGUP,KC_PGDN, KC_NO, - KC_LALT,KC_ENT ,KC_LGUI, + KC_LALT,KC_ENT ,M(0), // right hand KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, KC_CAPS, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, @@ -96,37 +96,60 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS ), +/* Keymap 2: Steno for Plover + * + * ,---------------------------------------------------. ,---------------------------------------------------. + * | | | # | # | # | # | | | | # | # | # | # | # | | + * |--------+------+------+------+-------+-------------| |-------+------+------+------+------+------+--------| + * | | | S | T | P | H | * | | * | F | P | L | T | D | | + * |--------+------+------+------+-------+------| | | |------+------+------+------+------+--------| + * | | | S | K | W | R |------| |-------| R | B | G | S | Z | | + * |--------+------+------+------+-------+------| * | | * |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+-------+-------------' `--------------+------+------+------+------+--------' + * | L1 | | | Left | Right | | Up | Down | | | L1 | + * `-----------------------------------' `----------------------------------' + * ,--------------. ,---------------. + * | | | | | | + * ,------|-------|------| |-------+-------+------. + * | | | | | | | | + * | A | O |------| |-------| E | U | + * | | | | | | | | + * `---------------------' `----------------------' + */ + + [STEN] = LAYOUT_ergodox( // layout: layer 2: Steno for Plover // left hand - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, - KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_STAR, - KC_NO, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR, - KC_NO, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, PV_STAR, + KC_NO, STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, KC_TRNS, + KC_NO, KC_NO, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, + KC_NO, KC_NO, STN_S2, STN_KL, STN_WL, STN_RL, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, STN_ST2, KC_TRNS,KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, - PV_A, PV_O, KC_NO, + STN_A, STN_O, KC_TRNS, // right hand - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - PV_STAR, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, - PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD, - PV_STAR, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ, + KC_NO, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, KC_NO, + STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR, KC_NO, + STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR, KC_NO, + STN_ST4, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, - KC_TRNS,PV_E, PV_U + KC_TRNS, STN_E, STN_U ), /* Keymap 3: Media and mouse keys * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | + * | | | | | | | STEN | | | | | | | | | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | | | | MsUp | | | | | | | Back | | Frwd | | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| |------| |------| | Prev | Play | Next | | | + * | | |MsLeft|MsDown|MsRght| |------| |------| | Lclk | Mclk | Rclk | | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | + * | | | | | | | | | | | Prev | Play | Next | | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | * `----------------------------------' `----------------------------------' @@ -144,15 +167,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, // right hand KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WBAK, KC_TRNS, KC_WFWD, KC_TRNS, KC_TRNS, - KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_BTN1, KC_BTN3, KC_BTN2, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -164,43 +187,34 @@ const uint16_t PROGMEM fn_actions[] = { [1] = ACTION_LAYER_TAP_TOGGLE(MDIA) // FN1 - Momentary Layer 3 (Media) }; -void toggle_steno(int pressed) +// press `key`, but deactivate `layer` whilst it's held +void press_without(int pressed, int key, uint8_t layer) { - uint8_t layer = biton32(layer_state); - + static bool was_on; if (pressed) { - if (layer != STEN) layer_on(STEN); else layer_off(STEN); - - register_code(PV_LP); - register_code(PV_LH); - register_code(PV_LR); - register_code(PV_O); - register_code(PV_RL); - register_code(PV_RG); + was_on = layer_state_is(layer); + layer_off(layer); + register_code(key); } else { - unregister_code(PV_LP); - unregister_code(PV_LH); - unregister_code(PV_LR); - unregister_code(PV_O); - unregister_code(PV_RL); - unregister_code(PV_RG); + if (was_on) layer_on(layer); + unregister_code(key); } } const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function - switch(id) { - case 0: - toggle_steno(record->event.pressed); - break; - } - return MACRO_NONE; + switch(id) { + case 0: + press_without(record->event.pressed, KC_LGUI, STEN); + break; + } + return MACRO_NONE; }; // Runs just one time when the keyboard initializes. void matrix_init_user(void) { - + steno_set_mode(STENO_MODE_BOLT); }; // Runs constantly in the background, in a loop. @@ -209,7 +223,7 @@ void matrix_scan_user(void) { uint32_t layer0 = layer_state & (1UL << 0), layer1 = layer_state & (1UL << 1), layer2 = layer_state & (1UL << 2), - layer3 = layer_state & (1UL << 3); + layer3 = layer_state & (1UL << 3); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/twey/readme.md b/layouts/community/ergodox/twey/readme.md index 979e4261e580..52190cb1f8aa 100644 --- a/layouts/community/ergodox/twey/readme.md +++ b/layouts/community/ergodox/twey/readme.md @@ -6,12 +6,9 @@ - Layer 2: Plover-oriented stenography layer. - Layer 3: Extended media/mouse layout. -## Unusual features -The Plover key (top right key on the left half) also sends my Plover -‘toggle’ chord (SH-FT) when pressed, as well as toggling the steno -layer, so you can toggle between steno and typing modes with a single -keypress. - -If you want to use this feature, you'll need to add the -`commands.json` dictionary to your Plover dictionaries, or define the -toggle stroke (`PHROLG`) yourself. +## Hardware notes +The default Ergodox EZ keycaps are delightfully staggered, which seems +like it would make them terrible for steno, but in fact flipping the +top row (`QWERTYUIOP`) and the middle thumb keys upside down brings +them close enough together to give a rather pleasant steno experience, +without interfering much with standard Dvorak typing. diff --git a/layouts/community/ergodox/twey/rules.mk b/layouts/community/ergodox/twey/rules.mk new file mode 100644 index 000000000000..87af2f760636 --- /dev/null +++ b/layouts/community/ergodox/twey/rules.mk @@ -0,0 +1,4 @@ +VIRTSER_ENABLE = yes +STENO_ENABLE = yes +MOUSEKEY_ENABLE = no +FORCE_NKRO = yes From 8621fd8bbdb23179fb838a77df7fc9362be62250 Mon Sep 17 00:00:00 2001 From: 24-bit-8 Date: Fri, 23 Mar 2018 16:01:57 -0700 Subject: [PATCH 108/578] ekis_isa keymap for HHKB'ish layout (#2562) --- keyboards/preonic/keymaps/ekis_isa/config.h | 42 ++++ keyboards/preonic/keymaps/ekis_isa/keymap.c | 223 +++++++++++++++++++ keyboards/preonic/keymaps/ekis_isa/readme.md | 1 + keyboards/preonic/keymaps/ekis_isa/rules.mk | 0 4 files changed, 266 insertions(+) create mode 100644 keyboards/preonic/keymaps/ekis_isa/config.h create mode 100644 keyboards/preonic/keymaps/ekis_isa/keymap.c create mode 100644 keyboards/preonic/keymaps/ekis_isa/readme.md create mode 100644 keyboards/preonic/keymaps/ekis_isa/rules.mk diff --git a/keyboards/preonic/keymaps/ekis_isa/config.h b/keyboards/preonic/keymaps/ekis_isa/config.h new file mode 100644 index 000000000000..205351258267 --- /dev/null +++ b/keyboards/preonic/keymaps/ekis_isa/config.h @@ -0,0 +1,42 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PREONIC_SOUND) + // #define STARTUP_SONG SONG(NO_SOUND) + + #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(COLEMAK_SOUND), \ + SONG(DVORAK_SOUND) \ + } +#endif + +#define MUSIC_MASK (keycode != KC_NO) + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ + +#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 2 + +#endif \ No newline at end of file diff --git a/keyboards/preonic/keymaps/ekis_isa/keymap.c b/keyboards/preonic/keymaps/ekis_isa/keymap.c new file mode 100644 index 000000000000..d99cbff2eb94 --- /dev/null +++ b/keyboards/preonic/keymaps/ekis_isa/keymap.c @@ -0,0 +1,223 @@ +/* Copyright 2015-2017 Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "preonic.h" +#include "action_layer.h" + +enum preonic_layers { + _QWERTY, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _ADJUST +}; + +enum preonic_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, + BACKLIT +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | `Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Ctrl | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = { + {KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS}, + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | `Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Ctrl | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = { + {KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS}, + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_LTCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | `ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Ctrl | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = { + {KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS}, + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_LTCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {_______, RESET, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL}, + {_______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + PORTE &= ~(1<<6); + } else { + unregister_code(KC_RSFT); + PORTE |= (1<<6); + } + return false; + break; + } + return true; +}; diff --git a/keyboards/preonic/keymaps/ekis_isa/readme.md b/keyboards/preonic/keymaps/ekis_isa/readme.md new file mode 100644 index 000000000000..e911968dd964 --- /dev/null +++ b/keyboards/preonic/keymaps/ekis_isa/readme.md @@ -0,0 +1 @@ +# The default Preonic layout - largely based on the Planck's \ No newline at end of file diff --git a/keyboards/preonic/keymaps/ekis_isa/rules.mk b/keyboards/preonic/keymaps/ekis_isa/rules.mk new file mode 100644 index 000000000000..e69de29bb2d1 From 8575249411ec41c9c7236c19dfbeb177758046de Mon Sep 17 00:00:00 2001 From: XP Date: Fri, 23 Mar 2018 19:02:44 -0400 Subject: [PATCH 109/578] Add a basic keymap for Contra. (#2564) --- keyboards/contra/keymaps/basic/config.h | 42 ++++++ keyboards/contra/keymaps/basic/keymap.c | 169 +++++++++++++++++++++++ keyboards/contra/keymaps/basic/readme.md | 72 ++++++++++ 3 files changed, 283 insertions(+) create mode 100644 keyboards/contra/keymaps/basic/config.h create mode 100644 keyboards/contra/keymaps/basic/keymap.c create mode 100644 keyboards/contra/keymaps/basic/readme.md diff --git a/keyboards/contra/keymaps/basic/config.h b/keyboards/contra/keymaps/basic/config.h new file mode 100644 index 000000000000..a1635f2bab5f --- /dev/null +++ b/keyboards/contra/keymaps/basic/config.h @@ -0,0 +1,42 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PLANCK_SOUND) + // #define STARTUP_SONG SONG(NO_SOUND) + + #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(COLEMAK_SOUND), \ + SONG(DVORAK_SOUND) \ + } +#endif + +#define MUSIC_MASK (keycode != KC_NO) + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ + +#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 2 + +#endif \ No newline at end of file diff --git a/keyboards/contra/keymaps/basic/keymap.c b/keyboards/contra/keymaps/basic/keymap.c new file mode 100644 index 000000000000..95a96426afdc --- /dev/null +++ b/keyboards/contra/keymaps/basic/keymap.c @@ -0,0 +1,169 @@ +/* Copyright 2015-2017 Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "contra.h" +#include "action_layer.h" + +extern keymap_config_t keymap_config; + +enum planck_layers { + _QWERTY, + _COLEMAK, + _LOWER, + _RAISE, + _ADJUST +}; + +enum planck_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + LOWER, + RAISE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | ` | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | Tab | Alt | GUI |Lower | Space |Raise | Left |Right | Up |Down | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = { + {KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {KC_ESC, KC_TAB, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_RGHT, KC_UP, KC_DOWN} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | ` | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Ctrl | A | R | S | T | D | H | N | E | I | O | ' | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | Tab | Alt | GUI |Lower | Space |Raise | Left |Right | Up |Down | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = { + {KC_GRV, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {KC_ESC, KC_TAB, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_RGHT, KC_UP, KC_DOWN} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | |AGnorm|AGswap|Qwerty|Colemk| | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL }, + {_______, _______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, COLEMAK, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + } + return true; +} diff --git a/keyboards/contra/keymaps/basic/readme.md b/keyboards/contra/keymaps/basic/readme.md new file mode 100644 index 000000000000..195bc2c1b649 --- /dev/null +++ b/keyboards/contra/keymaps/basic/readme.md @@ -0,0 +1,72 @@ +# A Basic Contra Layout + +The *default* layout currently (as of Mar 19, 2018) has a lot of components from Planck's default layout and is not very suitable for a basic Contra board. This basic layout is developed from Planck's default layout but has removed the parts that's irrelevant to a Contra board. + +My other keyboard is a HHKB and I don't use `Tab` or `Esc` key that much and hence the unusual placements for those keys. + +## QWERTY (Normal) Layer +``` +,-----------------------------------------------------------------------------------. + | ` | Q | W | E | R | T | Y | U | I | O | P | Bksp | + |------+------+------+------+------+-------------+------+------+------+------+------| + | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | + |------+------+------+------+------+------|------+------+------+------+------+------| + | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + |------+------+------+------+------+------+------+------+------+------+------+------| + | Esc | Tab | Alt | GUI |Lower | Space |Raise | Left |Right | Up |Down | + `-----------------------------------------------------------------------------------' +``` + +## Colemak Layer +Switch from `Adjust` layer. +``` +,-----------------------------------------------------------------------------------. + | ` | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + |------+------+------+------+------+-------------+------+------+------+------+------| + | Ctrl | A | R | S | T | D | H | N | E | I | O | ' | + |------+------+------+------+------+------|------+------+------+------+------+------| + | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + |------+------+------+------+------+------+------+------+------+------+------+------| + | Esc | Tab | Alt | GUI |Lower | Space |Raise | Left |Right | Up |Down | + `-----------------------------------------------------------------------------------' +``` + +## Lower +``` +,-----------------------------------------------------------------------------------. + | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + |------+------+------+------+------+-------------+------+------+------+------+------| + | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + |------+------+------+------+------+------|------+------+------+------+------+------| + | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | + |------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | Next | Vol- | Vol+ | Play | + `-----------------------------------------------------------------------------------' +``` + +## Raise +``` +,-----------------------------------------------------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + |------+------+------+------+------+-------------+------+------+------+------+------| + | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + |------+------+------+------+------+------|------+------+------+------+------+------| + | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | + |------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | Next | Vol- | Vol+ | Play | + `-----------------------------------------------------------------------------------' +``` + +## Adjust +`AGnorm` and `AGswap` switches `alt` and `os` key on the keyboard. +``` +,-----------------------------------------------------------------------------------. + | | | | | | | | | | | | Del | + |------+------+------+------+------+-------------+------+------+------+------+------| + | | | | | |AGnorm|AGswap|Qwerty|Colemk| | | | + |------+------+------+------+------+------|------+------+------+------+------+------| + | | | | | | | | | | | | | + |------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | | | | | + `-----------------------------------------------------------------------------------' +``` \ No newline at end of file From d0054c41e266e84fac28c8ecc8bf729a5a0c1223 Mon Sep 17 00:00:00 2001 From: Andrew Macpherson Date: Fri, 23 Mar 2018 23:03:19 +0000 Subject: [PATCH 110/578] Fix typo in autoshift docs: statn (#2579) --- docs/feature_auto_shift.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/feature_auto_shift.md b/docs/feature_auto_shift.md index 9db4f11aa077..484c506f13cf 100644 --- a/docs/feature_auto_shift.md +++ b/docs/feature_auto_shift.md @@ -121,7 +121,7 @@ Map three keys temporarily in your keymap: | KC_ASRP | Report your current Auto Shift timeout value | | KC_ASON | Turns on the Auto Shift Function | | KC_ASOFF | Turns off the Auto Shift Function | -| KC_ASTG | Toggles the statn of the Auto Shift feature | +| KC_ASTG | Toggles the state of the Auto Shift feature | Compile and upload your new firmware. From 6b060bb9ad6e6f942fa993f383ccc437eb4569b7 Mon Sep 17 00:00:00 2001 From: john McCormick Date: Fri, 23 Mar 2018 16:04:19 -0700 Subject: [PATCH 111/578] Add atlacat keymap (#2581) --- keyboards/dz60/keymaps/atlacat/keymap.c | 79 ++++++++++++++++++++++++ keyboards/dz60/keymaps/atlacat/readme.md | 4 ++ 2 files changed, 83 insertions(+) create mode 100644 keyboards/dz60/keymaps/atlacat/keymap.c create mode 100644 keyboards/dz60/keymaps/atlacat/readme.md diff --git a/keyboards/dz60/keymaps/atlacat/keymap.c b/keyboards/dz60/keymaps/atlacat/keymap.c new file mode 100644 index 000000000000..4c6594181cbf --- /dev/null +++ b/keyboards/dz60/keymaps/atlacat/keymap.c @@ -0,0 +1,79 @@ +#include "dz60.h" + +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +#define RGB_STA RGB_M_P //rgb static +#define RGB_BRE RGB_M_B //rgb breathe +#define RGB_RAI RGB_M_R //rgb rainbow +#define RGB_SWI RGB_M_SW //rgb swirl +#define RGB_SNA RGB_M_SN //rgb snake +#define RGB_KNI RGB_M_K //rgb knight +#define RGB_GRA RGB_M_G //rgb gradient + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Keymap: (Base Layer) Default Layer + * ,-----------------------------------------------------------. + * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | + * |-----------------------------------------------------------| + * |CAPS/MO| A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |Gui |MO |Ctrl | + * `-----------------------------------------------------------' + */ + KEYMAP( + KC_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , XXXXXXX, KC_BSPC, + 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_BSLS, + LT(MO(1), KC_CAPS),KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , + KC_LSFT, XXXXXXX, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, XXXXXXX, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RGUI, XXXXXXX, MO(2) , KC_RCTL), + + /* Keymap : Second Layer (WASD and Media) + * ,-----------------------------------------------------------. + * |ESC| F1| F2| F3 | | | | | | | | | | DEL | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + */ + + KEYMAP( + KC_GRV , 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_DEL , + _______, _______, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUSE,_______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, KC_INS , KC_HOME, KC_PGUP, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDN, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + /* Keymap : Third Layer (RGB / Reset) + * ,-----------------------------------------------------------. + * | ` | | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + */ + + KEYMAP( + KC_GRV , 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_SLEP, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET , + _______, RGB_STA, RGB_BRE, RGB_RAI, RGB_SWI, RGB_SNA, RGB_KNI, RGB_GRA, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, + _______, _______, BL_DEC , BL_TOGG, BL_INC , BL_STEP, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + +}; diff --git a/keyboards/dz60/keymaps/atlacat/readme.md b/keyboards/dz60/keymaps/atlacat/readme.md new file mode 100644 index 000000000000..c4c8702b7c1f --- /dev/null +++ b/keyboards/dz60/keymaps/atlacat/readme.md @@ -0,0 +1,4 @@ +// Template made by Atlacat for DZ 60% keyboard + +The design of the keyboard is coppied from other makers but change to be more dynamic. +The main difference is the switching between layers to keep things simple for me From f56ded32146b07068287ab6b71777c7ccf70379b Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Sat, 24 Mar 2018 08:04:49 +0900 Subject: [PATCH 112/578] add README.md into keyboards/helix/rev2/keymaps/led_test/ (#2582) --- .../helix/rev2/keymaps/led_test/README.md | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 keyboards/helix/rev2/keymaps/led_test/README.md diff --git a/keyboards/helix/rev2/keymaps/led_test/README.md b/keyboards/helix/rev2/keymaps/led_test/README.md new file mode 100644 index 000000000000..a25f3f36fe76 --- /dev/null +++ b/keyboards/helix/rev2/keymaps/led_test/README.md @@ -0,0 +1,27 @@ +# LED test Keymap + +## Layout + +The layout is the same as default. + +## Feature + +* OLED is enabled. +* LED backlight is enabled and always lit. +* The lighting color of LED changes periodically. Red, Green and Blue. + +The user can check whether the LED is lit or not. + +## Compile + +``` +$ cd qmk_firmware +$ make helix:led_test +``` + +## Flash QMK Firmware + +Execute the 'make' command and press the reset switch on the keyboard. +``` +$ make helix:led_test:avrdude +``` From 3a49ad06cdd1898acd23bc893b3caa14674a1fff Mon Sep 17 00:00:00 2001 From: Yida Xu Date: Fri, 23 Mar 2018 19:07:10 -0400 Subject: [PATCH 113/578] New keymaps for bananasplit (#2586) * New bananasplit keymap with toggable capslock led. * Update comments. * Update readme.md * Updated keymap name * update some keys. * new layout for bananasplit * update comment * Update readme.md --- .../keymaps/jockyxu1122_ansi/keymap.c | 92 +++++++++++++++ .../keymaps/jockyxu1122_ansi/readme.md | 66 +++++++++++ .../keymaps/jockyxu1122_iso/keymap.c | 105 ++++++++++++++++++ .../keymaps/jockyxu1122_iso/readme.md | 61 ++++++++++ 4 files changed, 324 insertions(+) create mode 100644 keyboards/bananasplit/keymaps/jockyxu1122_ansi/keymap.c create mode 100644 keyboards/bananasplit/keymaps/jockyxu1122_ansi/readme.md create mode 100644 keyboards/bananasplit/keymaps/jockyxu1122_iso/keymap.c create mode 100644 keyboards/bananasplit/keymaps/jockyxu1122_iso/readme.md diff --git a/keyboards/bananasplit/keymaps/jockyxu1122_ansi/keymap.c b/keyboards/bananasplit/keymaps/jockyxu1122_ansi/keymap.c new file mode 100644 index 000000000000..ab49b871867e --- /dev/null +++ b/keyboards/bananasplit/keymaps/jockyxu1122_ansi/keymap.c @@ -0,0 +1,92 @@ +/* + Author: jockyxu1122 + + Hightlight: split backspace, split space, arrows on bottom right, + and backlighting support (capslock's backlighting cannot be controlled separately). + + Note that "Previous track" and "next track" might only work with Windows. +*/ + +#include "bananasplit.h" + +#define DEFAULT_LAYER 0 +#define LAYER_1 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + ------------------------------------------------------------- + |Esc| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | ` |Del| + ------------------------------------------------------------- + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | + ------------------------------------------------------------- + | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | + ------------------------------------------------------------- + | Shift | Z | X | C | V | B | N | M | , | . | / | Shift| Up| + ------------------------------------------------------------- + |Ctrl| GUI| Alt| Space |MoL1| Backspc| Hm|End| <-|Dwn| ->| + ------------------------------------------------------------- + Hm: Home + MoL1: Mo(L1) + */ + [DEFAULT_LAYER] = KEYMAP_HHKB_ARROW( + // row 1 + 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_GRV, \ + KC_DEL, \ + // row 2 + 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_BSLS, \ + // row 3 + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + // row 4 + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ + // row 5 + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(LAYER_1), KC_BSPC, KC_HOME, KC_END, KC_LEFT, KC_DOWN, \ + KC_RIGHT + ), + + /* + ------------------------------------------------------------- + |LED| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| |Ins| + ------------------------------------------------------------- + | | | | @ | | | | | | | |BDn|BUp| | + ------------------------------------------------------------- + | | | | | | | | | | | | | | + ------------------------------------------------------------- + | | | |Cal| |www| |Mut| | | | |VUp| + ------------------------------------------------------------- + | | | | Pause | | |PUp|PDn|PTk|VDn|NTk| + ------------------------------------------------------------- + @: Email + BDn: LED brightness down + BUp: LED brightness up + Cal: Calculator + Ins: Insert + Mut: Mute + NTk: Next track + PDn: Page down + PTk: Previous track + PUp: Page up + VDn: Volume down + VUp: Volume up + www: Browser home page + */ + [LAYER_1] = KEYMAP_HHKB_ARROW( + // row 1 + BL_TOGG, 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_TRNS, KC_INS, \ + // row 2 + KC_TRNS, KC_TRNS, KC_TRNS, KC_MAIL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, BL_DEC, BL_INC, KC_TRNS, \ + // row 3 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, \ + // row 4 + KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_WHOM, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_VOLU, \ + // row 5 + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_MPRV, KC_VOLD, \ + KC_MNXT + ) +}; + +const uint16_t PROGMEM fn_actions[] = { +}; diff --git a/keyboards/bananasplit/keymaps/jockyxu1122_ansi/readme.md b/keyboards/bananasplit/keymaps/jockyxu1122_ansi/readme.md new file mode 100644 index 000000000000..664a0a0483ca --- /dev/null +++ b/keyboards/bananasplit/keymaps/jockyxu1122_ansi/readme.md @@ -0,0 +1,66 @@ +Yida's keymap for BananaSplit +=== + +Hightlight: split backspace, split space, arrows on bottom right, and +backlighting support (capslock's backlighting cannot be controlled separately). + +Note that "Previous track" and "next track" might only work with Windows. + +Default layer: + +``` + ------------------------------------------------------------- + |Esc| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | ` |Del| + ------------------------------------------------------------- + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | + ------------------------------------------------------------- + | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | + ------------------------------------------------------------- + | Shift | Z | X | C | V | B | N | M | , | . | / | Shift| Up| + ------------------------------------------------------------- + |Ctrl| GUI| Alt| Space |MoL1| Backspc| Hm|End| <-|Dwn| ->| + ------------------------------------------------------------- + Hm: Home + MoL1: Mo(L1) +``` + +Layer_1: + +``` + ------------------------------------------------------------- + |LED| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| |Ins| + ------------------------------------------------------------- + | | | | @ | | | | | | | |BDn|BUp| | + ------------------------------------------------------------- + | | | | | | | | | | | | | | + ------------------------------------------------------------- + | | | |Cal| |www| |Mut| | | | |VUp| + ------------------------------------------------------------- + | | | | Pause | | |PUp|PDn|PTk|VDn|NTk| + ------------------------------------------------------------- + @: Email + BDn: LED brightness down + BUp: LED brightness up + Cal: Calculator + Ins: Insert + Mut: Mute + NTk: Next track + PDn: Page down + PTk: Previous track + PUp: Page up + VDn: Volume down + VUp: Volume up + www: Browser home page +``` + +Compile and flash: + +`cd` to `/qmk_firmware` folder, then +``` +make bananasplit:jockyxu1122_ansi +``` + +A .hex file will be generated under `/qmk_firmware` folder. + + +To flash, use QMK Toolbox. diff --git a/keyboards/bananasplit/keymaps/jockyxu1122_iso/keymap.c b/keyboards/bananasplit/keymaps/jockyxu1122_iso/keymap.c new file mode 100644 index 000000000000..d73b4851b847 --- /dev/null +++ b/keyboards/bananasplit/keymaps/jockyxu1122_iso/keymap.c @@ -0,0 +1,105 @@ +/* + Author: jockyxu1122 + + Hightlight: split backspace, ISO Enter, split space, arrows on bottom right, + and toggable capslock backlight. + + Note that "Previous track" and "next track" might only work with Windows. +*/ + +#include "bananasplit.h" + +#define DEFAULT_LAYER 0 +#define LAYER_1 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + ------------------------------------------------------------- + |Esc| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | ` |Del| + ------------------------------------------------------------- + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Ent | + -------------------------------------------------------- - + | Caps | A | S | D | F | G | H | J | K | L | ; | ' | \ | | + ------------------------------------------------------------- + | Shift | Z | X | C | V | B | N | M | , | . | Shift| Up| / | + ------------------------------------------------------------- + |Ctrl| GUI| Alt| Space |MoL1| Backspc| Hm|End| <-|Dwn| ->| + ------------------------------------------------------------- + Hm: Home + MoL1: Mo(L1) + */ + [DEFAULT_LAYER] = KEYMAP_HHKB_ARROW( + // row 1 + 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_GRV, \ + KC_DEL, \ + // row 2 + 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_ENT, \ + // row 3 + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, \ + // row 4 + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH, \ + // row 5 + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(LAYER_1), KC_BSPC, KC_HOME, KC_END, KC_LEFT, KC_DOWN, \ + KC_RIGHT + ), + + /* + ------------------------------------------------------------- + | | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| |Ins| + ------------------------------------------------------------- + | | | | @ | | | | | | | | | | | + -------------------------------------------------------- - + | | | | | | | | | | | | | | | + ------------------------------------------------------------- + | | | |Cal| |www| |Mut| | | |VUp| | + ------------------------------------------------------------- + | | | | Pause | | |PUp|PDn|PTk|VDn|NTk| + ------------------------------------------------------------- + @: Email + Cal: Calculator + Ins: Insert + Mut: Mute + NTk: Next track + PDn: Page down + PTk: Previous track + PUp: Page up + VDn: Volume down + VUp: Volume up + www: Browser home page + */ + [LAYER_1] = KEYMAP_HHKB_ARROW( + // row 1 + KC_TRNS, 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_TRNS, KC_INS, \ + // row 2 + KC_TRNS, KC_TRNS, KC_TRNS, KC_MAIL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + // row 3 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, \ + // row 4 + KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_WHOM, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_VOLU, KC_TRNS, \ + // row 5 + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_MPRV, KC_VOLD, \ + KC_MNXT + ) +}; + +const uint16_t PROGMEM fn_actions[] = { +}; + +/* +Capslock's led cannot be controlled separately on bananasplit and you can only turn on/off all + leds at once. If you only install led for capslock, it will look like capslock has toggable + backlight. +*/ +void led_set_user(uint8_t usb_led) { + if (usb_led && (1 << USB_LED_CAPS_LOCK)) { + DDRB |= (1 << 7); + PORTB |= (1 << 7); + } else { + DDRB &= ~(1 << 7); + PORTB &= ~(1 << 7); + } +} diff --git a/keyboards/bananasplit/keymaps/jockyxu1122_iso/readme.md b/keyboards/bananasplit/keymaps/jockyxu1122_iso/readme.md new file mode 100644 index 000000000000..e135f73e3a78 --- /dev/null +++ b/keyboards/bananasplit/keymaps/jockyxu1122_iso/readme.md @@ -0,0 +1,61 @@ +Yida's keymap for BananaSplit +=== + +Hightlight: split backspace, ISO Enter, split space, arrows on bottom right, and toggable capslock backlight. + +Note that "Previous track" and "next track" might only work with Windows. + +Default layer: +``` + ------------------------------------------------------------- + |Esc| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | ` |Del| + ------------------------------------------------------------- + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Ent | + -------------------------------------------------------- - + | Caps | A | S | D | F | G | H | J | K | L | ; | ' | \ | | + ------------------------------------------------------------- + | Shift | Z | X | C | V | B | N | M | , | . | Shift| Up| / | + ------------------------------------------------------------- + |Ctrl| GUI| Alt| Space |MoL1| Backspc| Hm|End| <-|Dwn| ->| + ------------------------------------------------------------- + Hm: Home + MoL1: Mo(L1) +``` + +Layer_1: +``` + ------------------------------------------------------------- + | | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| |Ins| + ------------------------------------------------------------- + | | | | @ | | | | | | | | | | | + -------------------------------------------------------- - + | | | | | | | | | | | | | | | + ------------------------------------------------------------- + | | | |Cal| |www| |Mut| | | |VUp| | + ------------------------------------------------------------- + | | | | Pause | | |PUp|PDn|PTk|VDn|NTk| + ------------------------------------------------------------- + @: Email + Cal: Calculator + Ins: Insert + Mut: Mute + NTk: Next track + PDn: Page down + PTk: Previous track + PUp: Page up + VDn: Volume down + VUp: Volume up + www: Browser home page +``` + +Compile and flash: + +`cd` to `/qmk_firmware` folder, then +``` +make bananasplit:jockyxu1122_iso +``` + +A .hex file will be generated under `/qmk_firmware` folder. + + +To flash, use QMK Toolbox. From 824d584d8cf20337350f657e849aa2a9b4b68ed0 Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Sat, 24 Mar 2018 08:08:37 +0900 Subject: [PATCH 114/578] New keymap for The Helix keyboard("five_rows") (#2592) * duplicate keyboards/helix/rev2/keymaps/default to keyboards/helix/rev2/keymaps/five_rows * OLED Layer display 'Qwerty','Colemak','Dvorak' * set Qwerty, Lower, Raise map * set Colemak map * set Dvorak map * OLED Layer display 'Raise','Lower' change to 'Extra char','Function' * fix ExtraChar Layer Shift-key disable * Raise,Lower,Adjust layer modify some key change KC_TRNS to KC_NO add KANA, EISU key * refine keymaps/five_rows/{config.h,rules.mk} for easy and safe customize * modify Adjust layer: all function into left hand, remove F1..F12,DEL * Add Helix five_rows keymap README.md and README_jp.md * Raise Layer modify: enable Raise(Extr)+Lower(Func)==Adjust * fix image file url in README.md,README_jp.md * change Layer display on OLED * change OLED display base name position --- .../helix/rev2/keymaps/five_rows/README.md | 73 +++ .../helix/rev2/keymaps/five_rows/README_jp.md | 102 ++++ .../helix/rev2/keymaps/five_rows/config.h | 107 ++++ .../helix/rev2/keymaps/five_rows/keymap.c | 535 ++++++++++++++++++ .../helix/rev2/keymaps/five_rows/rules.mk | 75 +++ 5 files changed, 892 insertions(+) create mode 100644 keyboards/helix/rev2/keymaps/five_rows/README.md create mode 100644 keyboards/helix/rev2/keymaps/five_rows/README_jp.md create mode 100644 keyboards/helix/rev2/keymaps/five_rows/config.h create mode 100644 keyboards/helix/rev2/keymaps/five_rows/keymap.c create mode 100644 keyboards/helix/rev2/keymaps/five_rows/rules.mk diff --git a/keyboards/helix/rev2/keymaps/five_rows/README.md b/keyboards/helix/rev2/keymaps/five_rows/README.md new file mode 100644 index 000000000000..edb768f3b22b --- /dev/null +++ b/keyboards/helix/rev2/keymaps/five_rows/README.md @@ -0,0 +1,73 @@ +# Keymap for 5 rows Helix keyboard + +This keymap is only for 5 rows Helix keyboard. + +## Layout + +![fig1](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/662082b66231eb8d1f45776d813c57f29d445e68/helix-five_rows_r2.png) + +## Layer + +|Priority|Number|Name|Discription| +| ---- | ---- | --- | --- | +|high|16|Adjust| keyboard local functions| +||4|Extra char| some charactors | +||3|Function| function keys | +||2|Dvorak|Dvorak| +||1|Colemak|Colemak| +|low|0|Qwerty|QWERTY (base)| + +### Adjust Layer + +Adjust Layer has keyboard local function keys. + +* LED control. +* Mac/Win mode change. +* Qwerty/Colemak/Dvorak change. + +### Mac mode and Win mode + +Mac mode swap Alt/Win(GUI) key. + +|mode|key|code| +| ---- | ---- | --- | +|Mac mode|Adjust + g(Qwerty)|AG_NORM| +|Win mode|Adjust + h(Qwerty)|AG_SWAP| +| |Adjust + t(Qwerty)| | + +### LED control + +|command|key|code| +| ---- | ---- | --- | +|on/off|Adjust + ,(Qwerty)|RGB_TOG| +| |Adjust + v(Qwerty)| | +|change mode|Adjust + Right option |RGB_SMOD| +| |Adjust + c(Qwerty)| | +|HUE +|Adjust + .(Qwerty) |RGB_HUI| +| |Adjust + Left Control| | +|HUE -|Adjust + menu |RGB_HUD| +| |Adjust + Left Shift | | +|SAT +|Adjust + /(Qwerty) |RGB_SAI| +| |Adjust + a(Qwerty) | | +|SAT -|Adjust + right hand left side Fn|RGB_SAD| +| |Adjust + z(Qwerty) | | +|Bright +|Adjust + Right Shift |RGB_VAI| +| |Adjust + s(Qwerty)| | +|Bright -|Adjust + right hand right side Fn|RGB_VAD| +| |Adjust + x(Qwerty) | | +|reset|Adjust + w(Qwerty)|RGBRST| + +### Qwerty, Colemak, Dvorak selection + +|char layout|key| +| ---- | ---- | +|Qwerty | Adjust + j(Qwerty) | +| | Adjust + 5| +|Calemak| Adjust + k(Qwerty) | +| | Adjust + 4| +|Dvorak | Adjust + l(Qwerty) | +| | Adjust + 3| + +## Note + +![fig2](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/9979482e9aa0b25962fad9ee634cd1c23cef1751/five_rows_making.jpg) diff --git a/keyboards/helix/rev2/keymaps/five_rows/README_jp.md b/keyboards/helix/rev2/keymaps/five_rows/README_jp.md new file mode 100644 index 000000000000..8d3d8f2def80 --- /dev/null +++ b/keyboards/helix/rev2/keymaps/five_rows/README_jp.md @@ -0,0 +1,102 @@ +# Keymap for 5 rows Helix keyboard + +本キーマップは、Helix キーボードの5行版専用のキーマップです。 + +普通のキーボード使用者が、Helix キーボードを使うときになるべく違いが少なく戸惑いが少なくなるように意図したキーマップです。(意図通り成功しているかどうかは使用する人の判断で、、、) + +## キー配置 +以下に、Qwerty配列時の、文字配列の図を示します。 + +![fig1](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/662082b66231eb8d1f45776d813c57f29d445e68/helix-five_rows_r2.png) + +## レイヤー + +|優先順位|番号|名称|内容| +| ---- | ---- | --- | --- | +|高い|16|Adjust|機能キー(紫)| +||4|Extra char|記号類(赤)| +||3|Function|ファンクションキー類(青)| +||2|Dvorak|Dvorak配列| +||1|Colemak|Colemak配列| +|低い|0|Qwerty|QWERTY配列(ベース)| + +Qwerty/Colemak/Dvorak の各レイヤーは、後述する、Ajuest キーによる選択で、いずれか一つだけが有効になり、標準のキーマップとなります。 + +Adjust レイヤーは、Adjust キーを押している間だけ有効になり、標準のキーマップの上にかぶさるように一部のキーが置き換わります。 + +Function レイヤーは、Fn キーを押している間だけ有効になり、標準のキーマップの上にかぶさるように一部のキーが置き換わります。 + +Extra レイヤーは、Enter キーを一定時間(0.1秒)以上押していると押している間だけ有効になり、標準のキーマップの上にかぶさるように一部のキーが置き換わります。 +このため、Enterキーで Enter を入力するには、Enterキーを押して短時間ですぐ離してください。 + +### Adjust レイヤー +Ajust レイヤーは、Helix の標準キーマップ "default" から F1,F2..F12 を除き、右側にあった機能キーを +左側にも追加したものとなっています。 + +LEDコントロール、Mac/Win モードの切り替え、Qwerty配列, Colemak配列, Dvorak配列の切り替えが行えます。 + +### MacモードとWinモード +キーボードには、Mac モードと、Win モードの二つのモードがあります。 + +現在のモードはOLEDにアイコンとして表示されます。 +(以下の指定キーは、Qwerty配列時の文字を使ってキーを表示しています) + +|コマンド|指定キー|コード| +| ---- | ---- | --- | +|Macモード|Adjust + g(Qwerty)|AG_NORM| +|Winモード|Adjust + h(Qwerty)|AG_SWAP| +| |Adjust + t(Qwerty)| | + +Mac モードと Win モードでは、AltキーとWin(GUI)キーが入れ替わります。 + +Mac モードでは、上の配列図の「英数キー」と「かなキー」で英語モードと日本語モードの切り替えができます。。 + +Winモードでは、該当のキーはどちらも共に Alt + `(日本語IMEの切り替え)として入力されます。 + +### LEDコントロール + +バックライトやUnderglowをコントロールするにはAdjustレイヤーにある機能キーを使います。 +(以下の指定キーは、Qwerty配列時の文字を使ってキーを表示しています) + +|コマンド|指定キー|コード| +| ---- | ---- | --- | +|オン/オフ|Adjust + ,(Qwerty)|RGB_TOG| +| |Adjust + v(Qwerty)| | +|モード切り替え|Adjust + Right option |RGB_SMOD| +| |Adjust + c(Qwerty)| | +|色相 +|Adjust + .(Qwerty)|RGB_HUI| +| |Adjust + Left Control| | +|色相 -|Adjust + menu|RGB_HUD| +| |Adjust + Left Shift | | +|彩度 +|Adjust + /(Qwerty) |RGB_SAI| +| |Adjust + a(Qwerty) | | +|彩度 -|Adjust + 右手Fnの左側|RGB_SAD| +| |Adjust + z(Qwerty) | | +|明度 +|Adjust + Right Shift|RGB_VAI| +| |Adjust + s(Qwerty) | | +|明度 -|Adjust + 右手Fnの右側|RGB_VAD| +| |Adjust + x(Qwerty) | | +|リセット|Adjust + w|RGBRST| + +### 文字配列選択 +Qwerty, Colemak, Dvorak それぞれの文字配列の選択は以下のキーを使います。 + +|選択配列|指定キー| +| ---- | ---- | +|Qwerty | Adjust + j(Qwerty) | +| | Adjust + 5| +|Calemak| Adjust + k(Qwerty) | +| | Adjust + 4| +|Dvorak | Adjust + l(Qwerty) | +| | Adjust + 3| + +## 備考 +本キーマップは、通常のキーボードの主要部分のホームポジション周辺をなるべくそのまま踏襲する方針で作成しました。 +変更点は以下の通りです。 + + * 右手小指により多く割り当たっていた5つの記号と左上の1つの記号を中央に集め人差し指の担当とする。 + * Enter キーを親指担当として中央手前に移動。 + * Control キーを左右共にホームポジションの行に移動。 + * 左手親指に BackSpace キーを割り当てる。 + +![fig2](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/9979482e9aa0b25962fad9ee634cd1c23cef1751/five_rows_making.jpg) diff --git a/keyboards/helix/rev2/keymaps/five_rows/config.h b/keyboards/helix/rev2/keymaps/five_rows/config.h new file mode 100644 index 000000000000..8b1f00d9c0be --- /dev/null +++ b/keyboards/helix/rev2/keymaps/five_rows/config.h @@ -0,0 +1,107 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +/* Use I2C or Serial */ + +#define USE_I2C +#define USE_SERIAL +//#define USE_MATRIX_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +// Helix keyboard OLED support +// see ./rules.mk: OLED_ENABLE=yes or no +#ifdef OLED_ENABLE + #define SSD1306OLED +#endif + +/* Select rows configuration */ +#define HELIX_ROWS 5 + +/* key matrix size */ +// Rows are doubled-up +#if HELIX_ROWS == 4 + #define MATRIX_ROWS 8 + #define MATRIX_COLS 7 + #define MATRIX_ROW_PINS { D4, C6, D7, E6 } +#elif HELIX_ROWS == 5 + #define MATRIX_ROWS 10 + #define MATRIX_COLS 7 + #define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 } +#else + #error "expected HELIX_ROWS 4 or 5" +#endif + +#define USE_SERIAL_PD2 + +#define PREVENT_STUCK_MODIFIERS +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 100 + +#undef RGBLED_NUM +// Helix keyboard RGB LED support +//#define RGBLIGHT_ANIMATIONS : see ./rules.mk: LED_ANIMATIONS = yes or no +// see ./rules.mk: LED_BACK_ENABLE or LED_UNDERGLOW_ENABLE set yes +#ifdef RGBLED_BACK + #if HELIX_ROWS == 4 + #define RGBLED_NUM 25 + #elif HELIX_ROWS == 5 + #define RGBLED_NUM 32 + #endif +#else + #define RGBLED_NUM 6 +#endif + +#if RGBLED_NUM <= 6 + #define RGBLIGHT_LIMIT_VAL 255 +#else + #if HELIX_ROWS == 5 + #define RGBLIGHT_LIMIT_VAL 120 + #else + #define RGBLIGHT_LIMIT_VAL 130 + #endif +#endif +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 +#endif + +#ifdef RGBLIGHT_ENABLE +// USB_MAX_POWER_CONSUMPTION value for Helix keyboard +// 120 RGBoff, OLEDoff +// 120 OLED +// 330 RGB 6 +// 300 RGB 32 +// 310 OLED & RGB 32 + #define USB_MAX_POWER_CONSUMPTION 330 +#else + // fix iPhone and iPad power adapter issue + // iOS device need lessthan 100 + #define USB_MAX_POWER_CONSUMPTION 100 +#endif diff --git a/keyboards/helix/rev2/keymaps/five_rows/keymap.c b/keyboards/helix/rev2/keymaps/five_rows/keymap.c new file mode 100644 index 000000000000..f036c94ef85f --- /dev/null +++ b/keyboards/helix/rev2/keymaps/five_rows/keymap.c @@ -0,0 +1,535 @@ +#include "helix.h" +#include "bootloader.h" +#include "action_layer.h" +#include "eeconfig.h" +#ifdef PROTOCOL_LUFA +#include "lufa.h" +#include "split_util.h" +#endif +#include "LUFA/Drivers/Peripheral/TWI.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif +#ifdef SSD1306OLED + #include "ssd1306.h" +#endif + +extern keymap_config_t keymap_config; + +#ifdef RGBLIGHT_ENABLE +//Following line allows macro to read current RGB settings +extern rgblight_config_t rgblight_config; +#endif + +extern uint8_t is_master; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _ADJUST 16 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, + ADJUST, + BACKLIT, + EISU, + KANA, + RGBRST +}; + +enum macro_keycodes { + KC_SAMPLEMACRO, +}; + + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO +//Macros +#define M_SAMPLE M(KC_SAMPLEMACRO) + +#if HELIX_ROWS == 5 +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------. ,-----------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | Ctrl | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | ` | ' | N | M | , | . | / | Shift| + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Lower| Caps | GUI | Alt | Del | Enter| Enter| Space| Alt | GUI | Menu |Lower |Lower | + * `-------------------------------------------------------------------------------------------------' + */ + [_QWERTY] = KEYMAP( \ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, \ + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_RCTL, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_QUOT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ + ADJUST, LOWER, KC_CAPS, KC_LALT, KC_LGUI, KC_BSPC, LT(_RAISE,KC_ENT), \ + LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP, LOWER, LOWER \ + ), + + /* Colemak + * ,-----------------------------------------. ,-----------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | R | S | T | D | | H | N | E | I | O | Ctrl | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | ` | ' | K | M | , | . | / | Shift| + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Lower| Caps | GUI | Alt | Del | Enter| Enter| Space| Alt | GUI | Menu |Lower |Lower | + * `-------------------------------------------------------------------------------------------------' + */ + [_COLEMAK] = KEYMAP( \ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, \ + KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_RCTL, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_QUOT, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ + ADJUST, LOWER, KC_CAPS, KC_LALT, KC_LGUI, KC_DEL, LT(_RAISE,KC_ENT), \ + LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP, LOWER, LOWER \ + ), + + /* Dvorak + * ,-----------------------------------------. ,-----------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | ' | , | . | P | Y | | F | G | C | R | L | \ | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl | A | O | E | U | I | | D | H | T | N | S | Ctrl | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | ` | / | B | M | W | V | Z | Shift| + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Lower| Caps | GUI | Alt | Del | Enter| Enter| Space| Alt | GUI | Menu |Lower |Lower | + * `-------------------------------------------------------------------------------------------------' + */ + [_DVORAK] = KEYMAP( \ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS, \ + KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_RCTL, \ + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_GRV, KC_SLSH, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, \ + ADJUST, LOWER, KC_CAPS, KC_LALT, KC_LGUI, KC_DEL, LT(_RAISE,KC_ENT), \ + LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP, LOWER, LOWER \ + ), + + /* Lower + * ,-----------------------------------------. ,-----------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | |Pause | ScrLk| Ins | | | | Ins | ScrLk|Pause | | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | PgUp | | Up |Delete| Home | | Home |Delete| Up | | PgUp | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | PgDn | Left | Down | Right| End | | | End | Left | Down | Right| PgDn | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | PrtSc| | | | | | | | | PrtSc| | | + * `-------------------------------------------------------------------------------------------------' + */ + [_LOWER] = KEYMAP( \ + XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \ + XXXXXXX, XXXXXXX, KC_PAUS, KC_SLCK, KC_INS, XXXXXXX, XXXXXXX, KC_INS, KC_SLCK, KC_PAUS, XXXXXXX, KC_F12, \ + _______, KC_PGUP, XXXXXXX, KC_UP, KC_DEL, KC_HOME, KC_HOME, KC_DEL, KC_UP, XXXXXXX, KC_PGUP, _______, \ + _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, XXXXXXX, XXXXXXX, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, \ + XXXXXXX, _______, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______ \ + ), + + /* Raise + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | _ | - | | = | + | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | { | [ | | ] | } | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | EISU | EISU | KANA | KANA | Next | Vol- | Vol+ | Play | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | | | + * `-------------------------------------------------------------------------------------------------' + */ + [_RAISE] = KEYMAP( \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LSFT(KC_MINS), KC_MINS, KC_EQL, LSFT(KC_EQL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + _______, XXXXXXX, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), KC_LBRC, KC_RBRC, LSFT(KC_RBRC), XXXXXXX, XXXXXXX, XXXXXXX, _______, \ + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EISU, EISU, KANA, KANA, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, \ + _______, _______, XXXXXXX, _______, _______, XXXXXXX, _______, _______, XXXXXXX, _______, _______, XXXXXXX, _______, _______ \ + ), + + /* Adjust (Lower + Raise) + * ,-----------------------------------------. ,-----------------------------------------. + * | | | |Dvorak|Colemk|Qwerty| | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | Reset|RGBRST| | | Win | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | HUE+ | SAT+ | VAL+ |Aud on|Audoff| Mac | | Win |Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | HUE- | SAT- | VAL- |RGB md|RGB ON| | | | | |RGB ON| HUE+ | SAT+ | VAL+ | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | MODE | HUE- | SAT- | VAL- | + * `-------------------------------------------------------------------------------------------------' + */ + [_ADJUST] = KEYMAP( \ + XXXXXXX, XXXXXXX, XXXXXXX, DVORAK, COLEMAK, QWERTY, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + XXXXXXX, RESET, RGBRST, XXXXXXX, XXXXXXX, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + RGB_HUI, RGB_SAI, RGB_VAI, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, XXXXXXX, XXXXXXX, \ + RGB_HUD, RGB_SAD, RGB_VAD,RGB_SMOD, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \ + _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD \ + ) +}; + +#else +#error "undefined keymaps" +#endif + + +#ifdef AUDIO_ENABLE + +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); +#endif + +// define variables for reactive RGB +bool TOG_STATUS = false; +int RGB_current_mode; +static uint32_t current_default_layer_state; + +uint32_t default_layer_state_set_kb(uint32_t state) { + current_default_layer_state = state; + return state; +} + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +// Setting ADJUST layer RGB back to default +void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(RGB_current_mode); + #endif + layer_on(layer3); + } else { + layer_off(layer3); + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_qwerty); + #endif + persistent_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_colemak); + #endif + persistent_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_dvorak); + #endif + persistent_default_layer_set(1UL<<_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + //not sure how to have keyboard check mode and set it to a variable, so my work around + //uses another variable that would be set to true after the first time a reactive key is pressed. + if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false + } else { + TOG_STATUS = !TOG_STATUS; + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(16); + #endif + } + layer_on(_LOWER); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } else { + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change + #endif + TOG_STATUS = false; + layer_off(_LOWER); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + //not sure how to have keyboard check mode and set it to a variable, so my work around + //uses another variable that would be set to true after the first time a reactive key is pressed. + if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false + } else { + TOG_STATUS = !TOG_STATUS; + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(15); + #endif + } + layer_on(_RAISE); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } else { + #ifdef RGBLIGHT_ENABLE + //rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change + #endif + layer_off(_RAISE); + TOG_STATUS = false; + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + break; + //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released + case RGB_MOD: + #ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + rgblight_mode(RGB_current_mode); + rgblight_step(); + RGB_current_mode = rgblight_config.mode; + } + #endif + return false; + break; + case EISU: + if (record->event.pressed) { + if(keymap_config.swap_lalt_lgui==false){ + register_code(KC_LANG2); + }else{ + SEND_STRING(SS_LALT("`")); + } + } else { + unregister_code(KC_LANG2); + } + return false; + break; + case KANA: + if (record->event.pressed) { + if(keymap_config.swap_lalt_lgui==false){ + register_code(KC_LANG1); + }else{ + SEND_STRING(SS_LALT("`")); + } + } else { + unregister_code(KC_LANG1); + } + return false; + break; + case RGBRST: + #ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + eeconfig_update_rgblight_default(); + rgblight_enable(); + RGB_current_mode = rgblight_config.mode; + } + #endif + break; + } + return true; +} + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + startup_user(); + #endif + #ifdef RGBLIGHT_ENABLE + RGB_current_mode = rgblight_config.mode; + #endif + //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h + #ifdef SSD1306OLED + TWI_Init(TWI_BIT_PRESCALE_1, TWI_BITLENGTH_FROM_FREQ(1, 800000)); + iota_gfx_init(!has_usb()); // turns on the display + #endif +} + + +#ifdef AUDIO_ENABLE + +void startup_user() +{ + _delay_ms(20); // gets rid of tick +} + +void shutdown_user() +{ + _delay_ms(150); + stop_all_notes(); +} + +void music_on_user(void) +{ + music_scale_user(); +} + +void music_scale_user(void) +{ + PLAY_SONG(music_scale); +} + +#endif + + +//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h +#ifdef SSD1306OLED + +void matrix_scan_user(void) { + iota_gfx_task(); // this is what updates the display continuously +} + +void matrix_update(struct CharacterMatrix *dest, + const struct CharacterMatrix *source) { + if (memcmp(dest->display, source->display, sizeof(dest->display))) { + memcpy(dest->display, source->display, sizeof(dest->display)); + dest->dirty = true; + } +} + +static void render_logo(struct CharacterMatrix *matrix) { + + static char logo[]={ + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4, + 0}; + matrix_write(matrix, logo); + //matrix_write_P(&matrix, PSTR(" Split keyboard kit")); +} + +// #define DEBUG_OLED_LAYER_DISPLAY + +static const char Qwerty_name[] PROGMEM = " Qwerty"; +static const char Colemak_name[] PROGMEM = " Colemak"; +static const char Dvorak_name[] PROGMEM = " Dvorak"; + +static const char Raise_name[] PROGMEM = ":Extra"; +static const char Lower_name[] PROGMEM = ":Func"; +static const char Adjust_name[] PROGMEM = ":Adjust"; + +static const char *layer_names[] = { + [_QWERTY] = Qwerty_name, + [_COLEMAK] = Colemak_name, + [_DVORAK] = Dvorak_name, + [_RAISE] = Raise_name, + [_LOWER] = Lower_name, + [_ADJUST] = Adjust_name +}; + +static int search_bit_form_lsb(uint32_t data) +{ + int i; + for( i = 0; i < 32 && (data & 1)==0 ; data >>= 1, i++ ) + {} + return i; +} + +void render_status(struct CharacterMatrix *matrix) { + + // Render to mode icon + static char logo[][2][3]={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}}; + if(keymap_config.swap_lalt_lgui==false){ + matrix_write(matrix, logo[0][0]); + matrix_write_P(matrix, PSTR("\n")); + matrix_write(matrix, logo[0][1]); + }else{ + matrix_write(matrix, logo[1][0]); + matrix_write_P(matrix, PSTR("\n")); + matrix_write(matrix, logo[1][1]); + } + + // Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below +#ifdef DEBUG_OLED_LAYER_DISPLAY + char buf[40]; +#endif + int name_num; + uint32_t lstate; + + name_num = search_bit_form_lsb(current_default_layer_state); + if( name_num < sizeof(layer_names)/sizeof(char *) ) { + matrix_write_P(matrix, layer_names[name_num]); +#ifdef DEBUG_OLED_LAYER_DISPLAY + } else { + snprintf(buf, sizeof(buf), "base=%d? ", name_num); + matrix_write(matrix, buf); +#endif + } + matrix_write_P(matrix, PSTR("\n")); + for( lstate = layer_state, name_num = 0; + lstate && name_num < sizeof(layer_names)/sizeof(char *); + lstate >>=1, name_num++ ) { + if( (lstate & 1) != 0 ) { + if( layer_names[name_num] ) { + matrix_write_P(matrix, layer_names[name_num]); +#ifdef DEBUG_OLED_LAYER_DISPLAY + } else { + snprintf(buf, sizeof(buf), ":L=%d?", name_num); + matrix_write(matrix, buf); +#endif + } + } + } + + // Host Keyboard LED Status + char led[40]; + snprintf(led, sizeof(led), "\n%s %s %s", + (host_keyboard_leds() & (1< Date: Sat, 24 Mar 2018 10:10:32 +1100 Subject: [PATCH 115/578] Add HSV value specification (#2481) * Update feature_rgblight.md I got caught out with this as most color pickers use a percentage NOT 0-255 for this number * Amended description Woops! Was focused on s/v not being a percentage i got h wrong. --- docs/feature_rgblight.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/feature_rgblight.md b/docs/feature_rgblight.md index 17097f4bca46..571bf8668b8f 100644 --- a/docs/feature_rgblight.md +++ b/docs/feature_rgblight.md @@ -92,7 +92,7 @@ rgblight_disable(); // turn all lights off rgblight_enable(); // turn lights on, based on their previous state (stored in EEPROM) rgblight_setrgb(r, g, b); // where r/g/b is a number from 0..255. Turns all the LEDs to this color -rgblight_sethsv(h, s, v); // HSV color control +rgblight_sethsv(h, s, v); // HSV color control - h is a value from 0..360 and s/v is a value from 0..255 rgblight_setrgb_at(r,g,b, LED); // control a single LED. 0 <= LED < RGBLED_NUM rgblight_sethsv_at(h,s,v, LED); // control a single LED. 0 <= LED < RGBLED_NUM ``` From 70cf46d4f17fe221a4f11322cb083a4a6f64e980 Mon Sep 17 00:00:00 2001 From: skullY Date: Thu, 22 Mar 2018 00:45:24 -0700 Subject: [PATCH 116/578] fix the moxygen invocation --- util/travis_docs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/travis_docs.sh b/util/travis_docs.sh index ec553952c945..74eee3c26751 100644 --- a/util/travis_docs.sh +++ b/util/travis_docs.sh @@ -7,7 +7,7 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip docs]"* ]] ; then echo "Generating API docs..." rm -rf doxygen doxygen Doxyfile - moxygen -a -g -o -q docs/api_%s.md doxygen/xml + moxygen -q -a -g -o docs/api_%s.md doxygen/xml git add docs/api_* git commit -m'autogenerated api docs for ${TRAVIS_COMMIT_RANGE}' || true fi From d965d72d4aff78b9a18c7d723c15df99ab989762 Mon Sep 17 00:00:00 2001 From: "U-LANDSRAAD\\drashna" Date: Fri, 23 Mar 2018 16:49:27 -0700 Subject: [PATCH 117/578] Fix custom functions documation for layer_state_set* --- docs/custom_quantum_functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/custom_quantum_functions.md b/docs/custom_quantum_functions.md index 984787331662..6d741b6cb251 100644 --- a/docs/custom_quantum_functions.md +++ b/docs/custom_quantum_functions.md @@ -207,7 +207,7 @@ uint32_t layer_state_set_user(uint32_t state) { return state; } ``` -### `matrix_init_*` Function Documentation +### `layer_state_set_*` Function Documentation * Keyboard/Revision: `void uint32_t layer_state_set_kb(uint32_t state)` * Keymap: `uint32_t layer_state_set_user(uint32_t state)` From f77ecb89602e19c464839dc2aa6278ddd64e870f Mon Sep 17 00:00:00 2001 From: Danny Nguyen Date: Fri, 23 Mar 2018 17:26:47 -0400 Subject: [PATCH 118/578] Add Laplace keyboard --- keyboards/laplace/config.h | 54 +++++++++++++++++ keyboards/laplace/keymaps/bakingpy/keymap.c | 63 ++++++++++++++++++++ keyboards/laplace/keymaps/bakingpy/rules.mk | 3 + keyboards/laplace/keymaps/default/keymap.c | 63 ++++++++++++++++++++ keyboards/laplace/keymaps/default/rules.mk | 3 + keyboards/laplace/laplace.c | 1 + keyboards/laplace/laplace.h | 35 +++++++++++ keyboards/laplace/readme.md | 20 +++++++ keyboards/laplace/rules.mk | 64 +++++++++++++++++++++ 9 files changed, 306 insertions(+) create mode 100644 keyboards/laplace/config.h create mode 100644 keyboards/laplace/keymaps/bakingpy/keymap.c create mode 100644 keyboards/laplace/keymaps/bakingpy/rules.mk create mode 100644 keyboards/laplace/keymaps/default/keymap.c create mode 100644 keyboards/laplace/keymaps/default/rules.mk create mode 100644 keyboards/laplace/laplace.c create mode 100644 keyboards/laplace/laplace.h create mode 100644 keyboards/laplace/readme.md create mode 100644 keyboards/laplace/rules.mk diff --git a/keyboards/laplace/config.h b/keyboards/laplace/config.h new file mode 100644 index 000000000000..b4a524368943 --- /dev/null +++ b/keyboards/laplace/config.h @@ -0,0 +1,54 @@ +/* +Copyright 2018 Danny Nguyen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCB10 +#define PRODUCT_ID 0x1147 +#define DEVICE_VER 0x0100 +#define MANUFACTURER Keebio +#define PRODUCT Laplace +#define DESCRIPTION 40 percent staggered keyboard + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 7 + +/* key matrix pins */ +#define MATRIX_ROW_PINS {D3, F4, D2, F5, D7, B4, C6, E6} +#define MATRIX_COL_PINS {D1, F6, F7, B1, B3, B2, B6} + +/* WS2812 RGB LED */ +#define RGB_DI_PIN D4 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 14 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +#define TAPPING_TERM 200 + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +#endif diff --git a/keyboards/laplace/keymaps/bakingpy/keymap.c b/keyboards/laplace/keymaps/bakingpy/keymap.c new file mode 100644 index 000000000000..c600cd4ad95d --- /dev/null +++ b/keyboards/laplace/keymaps/bakingpy/keymap.c @@ -0,0 +1,63 @@ +#include "laplace.h" + +#define _BASE 0 +#define _FN1 1 +#define _FN2 2 + +#define KC_ KC_TRNS +#define _______ KC_TRNS +#define XXXXXXX KC_NO +#define KC_FN1 MO(_FN1) +#define KC_FN2 MO(_FN2) +#define KC_SPFN1 LT(_FN1, KC_SPACE) +#define KC_SPFN2 LT(_FN2, KC_SPACE) +#define KC_BSFN1 LT(_FN1, KC_BSPC) +#define KC_BSFN2 LT(_FN2, KC_BSPC) +#define KC_RST RESET +#define KC_DBUG DEBUG +#define KC_RTOG RGB_TOG +#define KC_RMOD RGB_MOD +#define KC_RHUI RGB_HUI +#define KC_RHUD RGB_HUD +#define KC_RSAI RGB_SAI +#define KC_RSAD RGB_SAD +#define KC_RVAI RGB_VAI +#define KC_RVAD RGB_VAD + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----+----+----+----. + ESC , Q , W , E , R , T , Y , U , I , O , P ,DEL ,BSPC, + //|----`----`----`----`----`----`----`----`----`----`----`----`----+ + TAB , A , S , D , F , G , H , J , K , L ,QUOT, ENTER , + //|-----`----`----`----`----`----`----`----`----`----`----`--------+ + LSFT , Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, RSFT , + //|-------`----`----`----`----`----`----`----`----`----`----`------+ + GRV ,LCTL,LALT ,LGUI, SPFN1 , BSFN2 , FN2 ,RALT ,RCTL , FN1 + //`-----+----+-----+----+--------+--------+-----+-----+-----+------' + ), + + [_FN1] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----+----+----+----. + GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL , + //|----`----`----`----`----`----`----`----`----`----`----`----`----+ + RST ,RHUI,RSAI,RVAI,VOLU,LBRC,RBRC, 4 , 5 , 6 ,SCLN, , + //|-----`----`----`----`----`----`----`----`----`----`----`--------+ + RMOD ,RHUD,RSAD,RVAD,VOLD,LCBR,RCBR, 1 , 2 , 3 , UP , , + //|-------`----`----`----`----`----`----`----`----`----`----`------+ + RTOG , , , , , DEL , 0 ,LEFT ,DOWN , RGHT + //`-----+----+-----+----+--------+--------+-----+-----+-----+------' + ), + + [_FN2] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----+----+----+----. + TILD,EXLM, AT ,HASH,DLR ,PERC,CIRC,AMPR,ASTR,LPRN,RPRN,UNDS,PLUS, + //|----`----`----`----`----`----`----`----`----`----`----`----`----+ + , , ,INS ,PGUP,HOME, , , , ,COLN, , + //|-----`----`----`----`----`----`----`----`----`----`----`--------+ + , , ,DEL ,PGDN,END , , , , , , , + //|-------`----`----`----`----`----`----`----`----`----`----`------+ + , , , , DEL , , , , , + //`-----+----+-----+----+--------+--------+-----+-----+-----+------' + ) +}; diff --git a/keyboards/laplace/keymaps/bakingpy/rules.mk b/keyboards/laplace/keymaps/bakingpy/rules.mk new file mode 100644 index 000000000000..457a3d01d4a4 --- /dev/null +++ b/keyboards/laplace/keymaps/bakingpy/rules.mk @@ -0,0 +1,3 @@ +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/laplace/keymaps/default/keymap.c b/keyboards/laplace/keymaps/default/keymap.c new file mode 100644 index 000000000000..c06cbdc7fb17 --- /dev/null +++ b/keyboards/laplace/keymaps/default/keymap.c @@ -0,0 +1,63 @@ +#include "laplace.h" + +#define _BASE 0 +#define _FN1 1 +#define _FN2 2 + +#define KC_ KC_TRNS +#define _______ KC_TRNS +#define XXXXXXX KC_NO +#define KC_FN1 MO(_FN1) +#define KC_FN2 MO(_FN2) +#define KC_SPFN1 LT(_FN1, KC_SPACE) +#define KC_SPFN2 LT(_FN2, KC_SPACE) +#define KC_BSFN1 LT(_FN1, KC_BSPC) +#define KC_BSFN2 LT(_FN2, KC_BSPC) +#define KC_RST RESET +#define KC_DBUG DEBUG +#define KC_RTOG RGB_TOG +#define KC_RMOD RGB_MOD +#define KC_RHUI RGB_HUI +#define KC_RHUD RGB_HUD +#define KC_RSAI RGB_SAI +#define KC_RSAD RGB_SAD +#define KC_RVAI RGB_VAI +#define KC_RVAD RGB_VAD + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = KC_KEYMAP( + //,----+----+----+----+----+----|----+----+----+----+----+----+----. + ESC , Q , W , E , R , T , Y , U , I , O , P ,DEL ,BSPC, + //|----`----`----`----`----`----`----`----`----`----`----`----`----+ + TAB , A , S , D , F , G , H , J , K , L ,QUOT, ENTER , + //|-----`----`----`----`----`----`----`----`----`----`----`--------| + LSFT , Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, RSFT , + //|-------`----`----`----`----`----`----`----`----`----`----`------| + LCTL ,LALT,LGUI ,FN1 , SPFN1 , BSFN2 ,RGUI ,RALT , FN2 , RCTL + //`-----+----+-----+----+--------`--------+-----+-----+-----+------' + ), + + [_FN1] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----+----+----+----. + GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL , + //|----`----`----`----`----`----`----`----`----`----`----`----`----+ + RST ,RHUI,RSAI,RVAI,VOLU,LBRC,RBRC, 4 , 5 , 6 ,SCLN, , + //|-----`----`----`----`----`----`----`----`----`----`----`--------+ + RMOD ,RHUD,RSAD,RVAD,VOLD,LCBR,RCBR, 1 , 2 , 3 , UP , , + //|-------`----`----`----`----`----`----`----`----`----`----`------+ + RTOG , , , , , DEL , 0 ,LEFT ,DOWN , RGHT + //`-----+----+-----+----+--------+--------+-----+-----+-----+------' + ), + + [_FN2] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----+----+----+----. + TILD,EXLM, AT ,HASH,DLR ,PERC,CIRC,AMPR,ASTR,LPRN,RPRN,UNDS,PLUS, + //|----`----`----`----`----`----`----`----`----`----`----`----`----+ + , , ,INS ,PGUP,HOME, , , , ,COLN, , + //|-----`----`----`----`----`----`----`----`----`----`----`--------+ + , , ,DEL ,PGDN,END , , , , , , , + //|-------`----`----`----`----`----`----`----`----`----`----`------+ + , , , , DEL , , , , , + //`-----+----+-----+----+--------+--------+-----+-----+-----+------' + ) +}; diff --git a/keyboards/laplace/keymaps/default/rules.mk b/keyboards/laplace/keymaps/default/rules.mk new file mode 100644 index 000000000000..457a3d01d4a4 --- /dev/null +++ b/keyboards/laplace/keymaps/default/rules.mk @@ -0,0 +1,3 @@ +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/laplace/laplace.c b/keyboards/laplace/laplace.c new file mode 100644 index 000000000000..dcf32aee695d --- /dev/null +++ b/keyboards/laplace/laplace.c @@ -0,0 +1 @@ +#include "laplace.h" diff --git a/keyboards/laplace/laplace.h b/keyboards/laplace/laplace.h new file mode 100644 index 000000000000..f8ad40b335dc --- /dev/null +++ b/keyboards/laplace/laplace.h @@ -0,0 +1,35 @@ +#ifndef LAPLACE_H +#define LAPLACE_H + +#include "quantum.h" + +#define KEYMAP( \ + A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, \ + B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B13, \ + C1, C2, C3, C4, C5, C6, C7, C9, C10, C11, C12, C13, \ + D1, D2, D3, D4, D5, D7, D10, D11, D12, D13 \ + ) { \ + {A1, A2, A3, A4, A5, A6, A7}, \ + {KC_NO, A13, A12, A11, A10, A9, A8}, \ + {B1, B2, B3, B4, B5, B6, B7}, \ + {KC_NO, B13, KC_NO, B11, B10, B9, B8}, \ + {C1, C2, C3, C4, C5, C6, C7}, \ + {KC_NO, C13, C12, C11, C10, C9, KC_NO}, \ + {D1, D2, D3, D4, D5, KC_NO, D7}, \ + {KC_NO, D13, D12, D11, D10, KC_NO, KC_NO} \ + } + +// Used to create a keymap using only KC_ prefixed keys +#define KC_KEYMAP( \ + A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, \ + B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B13, \ + C1, C2, C3, C4, C5, C6, C7, C9, C10, C11, C12, C13, \ + D1, D2, D3, D4, D5, D7, D10, D11, D12, D13 \ + ) \ + KEYMAP( \ + KC_##A1, KC_##A2, KC_##A3, KC_##A4, KC_##A5, KC_##A6, KC_##A7, KC_##A8, KC_##A9, KC_##A10, KC_##A11, KC_##A12, KC_##A13, \ + KC_##B1, KC_##B2, KC_##B3, KC_##B4, KC_##B5, KC_##B6, KC_##B7, KC_##B8, KC_##B9, KC_##B10, KC_##B11, KC_##B13, \ + KC_##C1, KC_##C2, KC_##C3, KC_##C4, KC_##C5, KC_##C6, KC_##C7, KC_##C9, KC_##C10, KC_##C11, KC_##C12, KC_##C13, \ + KC_##D1, KC_##D2, KC_##D3, KC_##D4, KC_##D5, KC_##D7, KC_##D10, KC_##D11, KC_##D12, KC_##D13 \ + ) +#endif diff --git a/keyboards/laplace/readme.md b/keyboards/laplace/readme.md new file mode 100644 index 000000000000..71b3280082ba --- /dev/null +++ b/keyboards/laplace/readme.md @@ -0,0 +1,20 @@ +Laplace +======= + +A 40% staggered keyboard made and sold by Keebio. [More info at Keebio](https://keeb.io). + +Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +Hardware Supported: Pro Micro +Hardware Availability: [Keebio](https://keeb.io) + +Make example for this keyboard (after setting up your build environment): + + make laplace:default + +Example of flashing this keyboard: + + make laplace:default:avrdude + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. + +A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io) diff --git a/keyboards/laplace/rules.mk b/keyboards/laplace/rules.mk new file mode 100644 index 000000000000..fe22161cb9ca --- /dev/null +++ b/keyboards/laplace/rules.mk @@ -0,0 +1,64 @@ +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. From 4e92dceed815d00a5492c5606ce7d863606d6507 Mon Sep 17 00:00:00 2001 From: Danny Date: Sat, 24 Mar 2018 12:50:44 -0400 Subject: [PATCH 119/578] Add Fourier Keyboard (#2596) * Initial commit of Fourier keyboard * Revise keymap, add key to bottom row * Fix readme --- keyboards/fourier/config.h | 28 ++ keyboards/fourier/fourier.c | 1 + keyboards/fourier/fourier.h | 23 + keyboards/fourier/i2c.c | 162 +++++++ keyboards/fourier/i2c.h | 49 +++ keyboards/fourier/keymaps/default/config.h | 31 ++ keyboards/fourier/keymaps/default/keymap.c | 76 ++++ keyboards/fourier/keymaps/default/rules.mk | 3 + keyboards/fourier/matrix.c | 468 +++++++++++++++++++++ keyboards/fourier/readme.md | 20 + keyboards/fourier/rev1/config.h | 84 ++++ keyboards/fourier/rev1/rev1.c | 7 + keyboards/fourier/rev1/rev1.h | 34 ++ keyboards/fourier/rev1/rules.mk | 0 keyboards/fourier/rules.mk | 74 ++++ keyboards/fourier/serial.c | 228 ++++++++++ keyboards/fourier/serial.h | 26 ++ keyboards/fourier/split_util.c | 80 ++++ keyboards/fourier/split_util.h | 20 + 19 files changed, 1414 insertions(+) create mode 100644 keyboards/fourier/config.h create mode 100644 keyboards/fourier/fourier.c create mode 100644 keyboards/fourier/fourier.h create mode 100644 keyboards/fourier/i2c.c create mode 100644 keyboards/fourier/i2c.h create mode 100644 keyboards/fourier/keymaps/default/config.h create mode 100644 keyboards/fourier/keymaps/default/keymap.c create mode 100644 keyboards/fourier/keymaps/default/rules.mk create mode 100644 keyboards/fourier/matrix.c create mode 100644 keyboards/fourier/readme.md create mode 100644 keyboards/fourier/rev1/config.h create mode 100644 keyboards/fourier/rev1/rev1.c create mode 100644 keyboards/fourier/rev1/rev1.h create mode 100644 keyboards/fourier/rev1/rules.mk create mode 100644 keyboards/fourier/rules.mk create mode 100644 keyboards/fourier/serial.c create mode 100644 keyboards/fourier/serial.h create mode 100644 keyboards/fourier/split_util.c create mode 100644 keyboards/fourier/split_util.h diff --git a/keyboards/fourier/config.h b/keyboards/fourier/config.h new file mode 100644 index 000000000000..8f0524f97262 --- /dev/null +++ b/keyboards/fourier/config.h @@ -0,0 +1,28 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +#ifdef SUBPROJECT_rev1 + #include "rev1/config.h" +#endif + +#endif diff --git a/keyboards/fourier/fourier.c b/keyboards/fourier/fourier.c new file mode 100644 index 000000000000..1bd47f98bc90 --- /dev/null +++ b/keyboards/fourier/fourier.c @@ -0,0 +1 @@ +#include "fourier.h" diff --git a/keyboards/fourier/fourier.h b/keyboards/fourier/fourier.h new file mode 100644 index 000000000000..dbe1fd7219fa --- /dev/null +++ b/keyboards/fourier/fourier.h @@ -0,0 +1,23 @@ +#ifndef FOURIER_H +#define FOURIER_H + +#include "quantum.h" + +#ifdef KEYBOARD_fourier_rev1 + #include "rev1.h" +#endif + +// Used to create a keymap using only KC_ prefixed keys +#define KC_KEYMAP( \ + LA1, LA2, LA3, LA4, LA5, LA6, RA1, RA2, RA3, RA4, RA5, RA6, RA7, \ + LB1, LB2, LB3, LB4, LB5, LB6, RB1, RB2, RB3, RB4, RB5, RB7, \ + LC1, LC2, LC3, LC4, LC5, LC6, RC1, RC3, RC4, RC5, RC6, RC7, \ + LD1, LD2, LD3, LD4, LD5, RD1, RD4, RD5, RD6, RD7 \ + ) \ + KEYMAP( \ + KC_##LA1, KC_##LA2, KC_##LA3, KC_##LA4, KC_##LA5, KC_##LA6, KC_##RA1, KC_##RA2, KC_##RA3, KC_##RA4, KC_##RA5, KC_##RA6, KC_##RA7, \ + KC_##LB1, KC_##LB2, KC_##LB3, KC_##LB4, KC_##LB5, KC_##LB6, KC_##RB1, KC_##RB2, KC_##RB3, KC_##RB4, KC_##RB5, KC_##RB7, \ + KC_##LC1, KC_##LC2, KC_##LC3, KC_##LC4, KC_##LC5, KC_##LC6, KC_##RC1, KC_##RC3, KC_##RC4, KC_##RC5, KC_##RC6, KC_##RC7, \ + KC_##LD1, KC_##LD2, KC_##LD3, KC_##LD4, KC_##LD5, KC_##RD1, KC_##RD4, KC_##RD5, KC_##RD6, KC_##RD7 \ + ) +#endif diff --git a/keyboards/fourier/i2c.c b/keyboards/fourier/i2c.c new file mode 100644 index 000000000000..084c890c405f --- /dev/null +++ b/keyboards/fourier/i2c.c @@ -0,0 +1,162 @@ +#include +#include +#include +#include +#include +#include +#include "i2c.h" + +#ifdef USE_I2C + +// Limits the amount of we wait for any one i2c transaction. +// Since were running SCL line 100kHz (=> 10μs/bit), and each transactions is +// 9 bits, a single transaction will take around 90μs to complete. +// +// (F_CPU/SCL_CLOCK) => # of μC cycles to transfer a bit +// poll loop takes at least 8 clock cycles to execute +#define I2C_LOOP_TIMEOUT (9+1)*(F_CPU/SCL_CLOCK)/8 + +#define BUFFER_POS_INC() (slave_buffer_pos = (slave_buffer_pos+1)%SLAVE_BUFFER_SIZE) + +volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; + +static volatile uint8_t slave_buffer_pos; +static volatile bool slave_has_register_set = false; + +// Wait for an i2c operation to finish +inline static +void i2c_delay(void) { + uint16_t lim = 0; + while(!(TWCR & (1<10. + // Check datasheets for more info. + TWBR = ((F_CPU/SCL_CLOCK)-16)/2; +} + +// Start a transaction with the given i2c slave address. The direction of the +// transfer is set with I2C_READ and I2C_WRITE. +// returns: 0 => success +// 1 => error +uint8_t i2c_master_start(uint8_t address) { + TWCR = (1< slave ACK +// 1 => slave NACK +uint8_t i2c_master_write(uint8_t data) { + TWDR = data; + TWCR = (1<= SLAVE_BUFFER_SIZE ) { + ack = 0; + slave_buffer_pos = 0; + } + slave_has_register_set = true; + } else { + i2c_slave_buffer[slave_buffer_pos] = TWDR; + BUFFER_POS_INC(); + } + break; + + case TW_ST_SLA_ACK: + case TW_ST_DATA_ACK: + // master has addressed this device as a slave transmitter and is + // requesting data. + TWDR = i2c_slave_buffer[slave_buffer_pos]; + BUFFER_POS_INC(); + break; + + case TW_BUS_ERROR: // something went wrong, reset twi state + TWCR = 0; + default: + break; + } + // Reset everything, so we are ready for the next TWI interrupt + TWCR |= (1< + +#ifndef F_CPU +#define F_CPU 16000000UL +#endif + +#define I2C_READ 1 +#define I2C_WRITE 0 + +#define I2C_ACK 1 +#define I2C_NACK 0 + +#define SLAVE_BUFFER_SIZE 0x10 + +// i2c SCL clock frequency +#define SCL_CLOCK 400000L + +extern volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; + +void i2c_master_init(void); +uint8_t i2c_master_start(uint8_t address); +void i2c_master_stop(void); +uint8_t i2c_master_write(uint8_t data); +uint8_t i2c_master_read(int); +void i2c_reset_state(void); +void i2c_slave_init(uint8_t address); + + +static inline unsigned char i2c_start_read(unsigned char addr) { + return i2c_master_start((addr << 1) | I2C_READ); +} + +static inline unsigned char i2c_start_write(unsigned char addr) { + return i2c_master_start((addr << 1) | I2C_WRITE); +} + +// from SSD1306 scrips +extern unsigned char i2c_rep_start(unsigned char addr); +extern void i2c_start_wait(unsigned char addr); +extern unsigned char i2c_readAck(void); +extern unsigned char i2c_readNak(void); +extern unsigned char i2c_read(unsigned char ack); + +#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak(); + +#endif diff --git a/keyboards/fourier/keymaps/default/config.h b/keyboards/fourier/keymaps/default/config.h new file mode 100644 index 000000000000..20e49c421956 --- /dev/null +++ b/keyboards/fourier/keymaps/default/config.h @@ -0,0 +1,31 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +#endif diff --git a/keyboards/fourier/keymaps/default/keymap.c b/keyboards/fourier/keymaps/default/keymap.c new file mode 100644 index 000000000000..90677b4a2ed0 --- /dev/null +++ b/keyboards/fourier/keymaps/default/keymap.c @@ -0,0 +1,76 @@ +#include "fourier.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BASE 0 +#define _FN1 1 +#define _FN2 2 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, +}; + +#define KC_ KC_TRNS +#define _______ KC_TRNS +#define XXXXXXX KC_NO +#define KC_FN1 MO(_FN1) +#define KC_FN2 MO(_FN2) +#define KC_SPFN1 LT(_FN1, KC_SPACE) +#define KC_SPFN2 LT(_FN2, KC_SPACE) +#define KC_BSFN1 LT(_FN1, KC_BSPC) +#define KC_BSFN2 LT(_FN2, KC_BSPC) +#define KC_RST RESET +#define KC_DBUG DEBUG +#define KC_RTOG RGB_TOG +#define KC_RMOD RGB_MOD +#define KC_RHUI RGB_HUI +#define KC_RHUD RGB_HUD +#define KC_RSAI RGB_SAI +#define KC_RSAD RGB_SAD +#define KC_RVAI RGB_VAI +#define KC_RVAD RGB_VAD + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = KC_KEYMAP( + //,----+----+----+----+----+----|----+----+----+----+----+----+----. + ESC , Q , W , E , R , T , Y , U , I , O , P ,DEL ,BSPC, + //|----`----`----`----`----`----|----`----`----`----`----`----`----| + TAB , A , S , D , F , G , H , J , K , L ,QUOT, ENTER , + //|-----`----`----`----`----`----|----`----`----`----`----`--------| + LSFT , Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, RSFT , + //|-------`----`----`----`----`----|----`----`----`----`----`------| + LCTL ,LALT,LGUI ,FN1 , SPFN1 , BSFN2 ,RGUI ,RALT , FN2 , RCTL + //`-----+----+-----+----+--------|--------+-----+-----+-----+------' + ), + + [_FN1] = KC_KEYMAP( + //,----+----+----+----+----+----|----+----+----+----+----+----+----. + GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL , + //|----`----`----`----`----`----|----`----`----`----`----`----`----| + RST ,RHUI,RSAI,RVAI,VOLU,LBRC,RBRC, 4 , 5 , 6 ,SCLN, , + //|-----`----`----`----`----`----|----`----`----`----`----`--------| + RMOD ,RHUD,RSAD,RVAD,VOLD,LCBR,RCBR, 1 , 2 , 3 , UP , , + //|-------`----`----`----`----`----|----`----`----`----`----`------| + RTOG , , , , , DEL , 0 ,LEFT ,DOWN , RGHT + //`-----+----+-----+----+--------|--------+-----+-----+-----+------' + ), + + [_FN2] = KC_KEYMAP( + //,----+----+----+----+----+----|----+----+----+----+----+----+----. + TILD,EXLM, AT ,HASH,DLR ,PERC,CIRC,AMPR,ASTR,LPRN,RPRN,UNDS,PLUS, + //|----`----`----`----`----`----|----`----`----`----`----`----`----| + , , ,INS ,PGUP,HOME, , , , ,COLN, , + //|-----`----`----`----`----`----|----`----`----`----`----`--------| + , , ,DEL ,PGDN,END , , , , , , , + //|-------`----`----`----`----`----|----`----`----`----`----`------| + , , , , DEL , , , , , + //`-----+----+-----+----+--------|--------+-----+-----+-----+------' + ) + +}; diff --git a/keyboards/fourier/keymaps/default/rules.mk b/keyboards/fourier/keymaps/default/rules.mk new file mode 100644 index 000000000000..457a3d01d4a4 --- /dev/null +++ b/keyboards/fourier/keymaps/default/rules.mk @@ -0,0 +1,3 @@ +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/fourier/matrix.c b/keyboards/fourier/matrix.c new file mode 100644 index 000000000000..ed913f34b4d9 --- /dev/null +++ b/keyboards/fourier/matrix.c @@ -0,0 +1,468 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +/* + * scan matrix + */ +#include +#include +#include +#include "wait.h" +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "split_util.h" +#include "pro_micro.h" +#include "config.h" +#include "timer.h" +#include "backlight.h" + +#ifdef USE_I2C +# include "i2c.h" +#else // USE_SERIAL +# include "serial.h" +#endif + +#ifndef DEBOUNCING_DELAY +# define DEBOUNCING_DELAY 5 +#endif + +#if (DEBOUNCING_DELAY > 0) + static uint16_t debouncing_time; + static bool debouncing = false; +#endif + +#if (MATRIX_COLS <= 8) +# define print_matrix_header() print("\nr/c 01234567\n") +# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) +# define matrix_bitpop(i) bitpop(matrix[i]) +# define ROW_SHIFTER ((uint8_t)1) +#else +# error "Currently only supports 8 COLS" +#endif +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +#define ERROR_DISCONNECT_COUNT 5 + +#define SERIAL_LED_ADDR 0x00 + +#define ROWS_PER_HAND (MATRIX_ROWS/2) + +static uint8_t error_count = 0; + +static const uint8_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; +static const uint8_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +#if (DIODE_DIRECTION == COL2ROW) + static void init_cols(void); + static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row); + static void unselect_rows(void); + static void select_row(uint8_t row); + static void unselect_row(uint8_t row); +#elif (DIODE_DIRECTION == ROW2COL) + static void init_rows(void); + static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col); + static void unselect_cols(void); + static void unselect_col(uint8_t col); + static void select_col(uint8_t col); +#endif + +__attribute__ ((weak)) +void matrix_init_kb(void) { + matrix_init_user(); +} + +__attribute__ ((weak)) +void matrix_scan_kb(void) { + matrix_scan_user(); +} + +__attribute__ ((weak)) +void matrix_init_user(void) { +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { +} + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +void matrix_init(void) +{ + debug_enable = true; + debug_matrix = true; + debug_mouse = true; + // initialize row and col + unselect_rows(); + init_cols(); + + TX_RX_LED_INIT; + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } + + matrix_init_quantum(); + +} + +uint8_t _matrix_scan(void) +{ + int offset = isLeftHand ? 0 : (ROWS_PER_HAND); +#if (DIODE_DIRECTION == COL2ROW) + // Set row, read cols + for (uint8_t current_row = 0; current_row < ROWS_PER_HAND; current_row++) { +# if (DEBOUNCING_DELAY > 0) + bool matrix_changed = read_cols_on_row(matrix_debouncing+offset, current_row); + + if (matrix_changed) { + debouncing = true; + debouncing_time = timer_read(); + PORTD ^= (1 << 2); + } + +# else + read_cols_on_row(matrix+offset, current_row); +# endif + + } + +#elif (DIODE_DIRECTION == ROW2COL) + // Set col, read rows + for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) { +# if (DEBOUNCING_DELAY > 0) + bool matrix_changed = read_rows_on_col(matrix_debouncing+offset, current_col); + if (matrix_changed) { + debouncing = true; + debouncing_time = timer_read(); + } +# else + read_rows_on_col(matrix+offset, current_col); +# endif + + } +#endif + +# if (DEBOUNCING_DELAY > 0) + if (debouncing && (timer_elapsed(debouncing_time) > DEBOUNCING_DELAY)) { + for (uint8_t i = 0; i < ROWS_PER_HAND; i++) { + matrix[i+offset] = matrix_debouncing[i+offset]; + } + debouncing = false; + } +# endif + + return 1; +} + +#ifdef USE_I2C + +// Get rows from other half over i2c +int i2c_transaction(void) { + int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; + + int err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_WRITE); + if (err) goto i2c_error; + + // start of matrix stored at 0x00 + err = i2c_master_write(0x00); + if (err) goto i2c_error; + + // Start read + err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_READ); + if (err) goto i2c_error; + + if (!err) { + int i; + for (i = 0; i < ROWS_PER_HAND-1; ++i) { + matrix[slaveOffset+i] = i2c_master_read(I2C_ACK); + } + matrix[slaveOffset+i] = i2c_master_read(I2C_NACK); + i2c_master_stop(); + } else { +i2c_error: // the cable is disconnceted, or something else went wrong + i2c_reset_state(); + return err; + } + + return 0; +} + +#else // USE_SERIAL + +int serial_transaction(void) { + int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; + + if (serial_update_buffers()) { + return 1; + } + + for (int i = 0; i < ROWS_PER_HAND; ++i) { + matrix[slaveOffset+i] = serial_slave_buffer[i]; + } + +#ifdef BACKLIGHT_ENABLE + // Write backlight level for slave to read + serial_master_buffer[SERIAL_LED_ADDR] = get_backlight_level(); +#endif + return 0; +} +#endif + +uint8_t matrix_scan(void) +{ + uint8_t ret = _matrix_scan(); + +#ifdef USE_I2C + if( i2c_transaction() ) { +#else // USE_SERIAL + if( serial_transaction() ) { +#endif + // turn on the indicator led when halves are disconnected + TXLED1; + + error_count++; + + if (error_count > ERROR_DISCONNECT_COUNT) { + // reset other half if disconnected + int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; + for (int i = 0; i < ROWS_PER_HAND; ++i) { + matrix[slaveOffset+i] = 0; + } + } + } else { + // turn off the indicator led on no error + TXLED0; + error_count = 0; + } + matrix_scan_quantum(); + return ret; +} + +void matrix_slave_scan(void) { + _matrix_scan(); + + int offset = (isLeftHand) ? 0 : ROWS_PER_HAND; + +#ifdef USE_I2C + for (int i = 0; i < ROWS_PER_HAND; ++i) { + i2c_slave_buffer[i] = matrix[offset+i]; + } +#else // USE_SERIAL + for (int i = 0; i < ROWS_PER_HAND; ++i) { + serial_slave_buffer[i] = matrix[offset+i]; + } + +#ifdef BACKLIGHT_ENABLE + // Read backlight level sent from master and update level on slave + backlight_set(serial_master_buffer[SERIAL_LED_ADDR]); +#endif +#endif +} + +bool matrix_is_modified(void) +{ + if (debouncing) return false; + return true; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1<> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI + } +} + +static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) +{ + // Store last value of row prior to reading + matrix_row_t last_row_value = current_matrix[current_row]; + + // Clear data in matrix row + current_matrix[current_row] = 0; + + // Select row and wait for row selecton to stabilize + select_row(current_row); + wait_us(30); + + // For each col... + for(uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) { + + // Select the col pin to read (active low) + uint8_t pin = col_pins[col_index]; + uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); + + // Populate the matrix row with the state of the col pin + current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + } + + // Unselect row + unselect_row(current_row); + + return (last_row_value != current_matrix[current_row]); +} + +static void select_row(uint8_t row) +{ + uint8_t pin = row_pins[row]; + _SFR_IO8((pin >> 4) + 1) |= _BV(pin & 0xF); // OUT + _SFR_IO8((pin >> 4) + 2) &= ~_BV(pin & 0xF); // LOW +} + +static void unselect_row(uint8_t row) +{ + uint8_t pin = row_pins[row]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI +} + +static void unselect_rows(void) +{ + for(uint8_t x = 0; x < ROWS_PER_HAND; x++) { + uint8_t pin = row_pins[x]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI + } +} + +#elif (DIODE_DIRECTION == ROW2COL) + +static void init_rows(void) +{ + for(uint8_t x = 0; x < ROWS_PER_HAND; x++) { + uint8_t pin = row_pins[x]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI + } +} + +static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) +{ + bool matrix_changed = false; + + // Select col and wait for col selecton to stabilize + select_col(current_col); + wait_us(30); + + // For each row... + for(uint8_t row_index = 0; row_index < ROWS_PER_HAND; row_index++) + { + + // Store last value of row prior to reading + matrix_row_t last_row_value = current_matrix[row_index]; + + // Check row pin state + if ((_SFR_IO8(row_pins[row_index] >> 4) & _BV(row_pins[row_index] & 0xF)) == 0) + { + // Pin LO, set col bit + current_matrix[row_index] |= (ROW_SHIFTER << current_col); + } + else + { + // Pin HI, clear col bit + current_matrix[row_index] &= ~(ROW_SHIFTER << current_col); + } + + // Determine if the matrix changed state + if ((last_row_value != current_matrix[row_index]) && !(matrix_changed)) + { + matrix_changed = true; + } + } + + // Unselect col + unselect_col(current_col); + + return matrix_changed; +} + +static void select_col(uint8_t col) +{ + uint8_t pin = col_pins[col]; + _SFR_IO8((pin >> 4) + 1) |= _BV(pin & 0xF); // OUT + _SFR_IO8((pin >> 4) + 2) &= ~_BV(pin & 0xF); // LOW +} + +static void unselect_col(uint8_t col) +{ + uint8_t pin = col_pins[col]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI +} + +static void unselect_cols(void) +{ + for(uint8_t x = 0; x < MATRIX_COLS; x++) { + uint8_t pin = col_pins[x]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI + } +} + +#endif diff --git a/keyboards/fourier/readme.md b/keyboards/fourier/readme.md new file mode 100644 index 000000000000..7573a6074e9a --- /dev/null +++ b/keyboards/fourier/readme.md @@ -0,0 +1,20 @@ +Fourier +======== + +A split 40% staggered keyboard made and sold by Keebio. [More info at Keebio](https://keeb.io). + +Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +Hardware Supported: Pro Micro +Hardware Availability: [Keebio](https://keeb.io) + +Make example for this keyboard (after setting up your build environment): + + make fourier/rev1:default + +Example of flashing this keyboard: + + make fourier/rev1:default:avrdude + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. + +A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io) diff --git a/keyboards/fourier/rev1/config.h b/keyboards/fourier/rev1/config.h new file mode 100644 index 000000000000..c1375222617b --- /dev/null +++ b/keyboards/fourier/rev1/config.h @@ -0,0 +1,84 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef REV1_CONFIG_H +#define REV1_CONFIG_H + +#include "../config.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCB10 +#define PRODUCT_ID 0x1247 +#define DEVICE_VER 0x0100 +#define MANUFACTURER Keebio +#define PRODUCT Fourier +#define DESCRIPTION Split 40 percent staggered keyboard + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 8 +#define MATRIX_COLS 7 + +// wiring of each half +#define MATRIX_ROW_PINS { F4, D7, E6, B4 } +#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2, B6 } + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D3 +#define RGBLIGHT_TIMER +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 14 // Number of LEDs +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + + +#endif diff --git a/keyboards/fourier/rev1/rev1.c b/keyboards/fourier/rev1/rev1.c new file mode 100644 index 000000000000..61d7139d6c8b --- /dev/null +++ b/keyboards/fourier/rev1/rev1.c @@ -0,0 +1,7 @@ +#include "fourier.h" + + +void matrix_init_kb(void) { + matrix_init_user(); +}; + diff --git a/keyboards/fourier/rev1/rev1.h b/keyboards/fourier/rev1/rev1.h new file mode 100644 index 000000000000..c29c0ebabb41 --- /dev/null +++ b/keyboards/fourier/rev1/rev1.h @@ -0,0 +1,34 @@ +#ifndef REV1_H +#define REV1_H + +#include "../fourier.h" + +#include "quantum.h" + + +#ifdef USE_I2C +#include +#ifdef __AVR__ + #include + #include +#endif +#endif + +#define KEYMAP( \ + LA1, LA2, LA3, LA4, LA5, LA6, RA1, RA2, RA3, RA4, RA5, RA6, RA7, \ + LB1, LB2, LB3, LB4, LB5, LB6, RB1, RB2, RB3, RB4, RB5, RB7, \ + LC1, LC2, LC3, LC4, LC5, LC6, RC1, RC3, RC4, RC5, RC6, RC7, \ + LD1, LD2, LD3, LD4, LD5, RD1, RD4, RD5, RD6, RD7 \ + ) \ + { \ + { LA1, LA2, LA3, LA4, LA5, LA6, KC_NO}, \ + { LB1, LB2, LB3, LB4, LB5, LB6, KC_NO}, \ + { LC1, LC2, LC3, LC4, LC5, LC6, KC_NO}, \ + { LD1, LD2, LD3, LD4, LD5, KC_NO, KC_NO}, \ + { RA1, RA2, RA3, RA4, RA5, RA6, RA7}, \ + { RB1, RB2, RB3, RB4, RB5, KC_NO, RB7}, \ + { RC1, KC_NO, RC3, RC4, RC5, RC6, RC7}, \ + { RD1, KC_NO, KC_NO, RD4, RD5, RD6, RD7} \ + } + +#endif diff --git a/keyboards/fourier/rev1/rules.mk b/keyboards/fourier/rev1/rules.mk new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/fourier/rules.mk b/keyboards/fourier/rules.mk new file mode 100644 index 000000000000..151339bc9d00 --- /dev/null +++ b/keyboards/fourier/rules.mk @@ -0,0 +1,74 @@ +SRC += matrix.c \ + i2c.c \ + split_util.c \ + serial.c + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Bootloader +# This definition is optional, and if your keyboard supports multiple bootloaders of +# different sizes, comment this out, and the correct address will be loaded +# automatically (+60). See bootloader.mk for all options. +BOOTLOADER = caterina + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SUBPROJECT_rev1 = yes +USE_I2C = yes +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +CUSTOM_MATRIX = yes + +DEFAULT_FOLDER = fourier/rev1 diff --git a/keyboards/fourier/serial.c b/keyboards/fourier/serial.c new file mode 100644 index 000000000000..74bcbb6bf6e2 --- /dev/null +++ b/keyboards/fourier/serial.c @@ -0,0 +1,228 @@ +/* + * WARNING: be careful changing this code, it is very timing dependent + */ + +#ifndef F_CPU +#define F_CPU 16000000 +#endif + +#include +#include +#include +#include +#include "serial.h" + +#ifndef USE_I2C + +// Serial pulse period in microseconds. Its probably a bad idea to lower this +// value. +#define SERIAL_DELAY 24 + +uint8_t volatile serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH] = {0}; +uint8_t volatile serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH] = {0}; + +#define SLAVE_DATA_CORRUPT (1<<0) +volatile uint8_t status = 0; + +inline static +void serial_delay(void) { + _delay_us(SERIAL_DELAY); +} + +inline static +void serial_output(void) { + SERIAL_PIN_DDR |= SERIAL_PIN_MASK; +} + +// make the serial pin an input with pull-up resistor +inline static +void serial_input(void) { + SERIAL_PIN_DDR &= ~SERIAL_PIN_MASK; + SERIAL_PIN_PORT |= SERIAL_PIN_MASK; +} + +inline static +uint8_t serial_read_pin(void) { + return !!(SERIAL_PIN_INPUT & SERIAL_PIN_MASK); +} + +inline static +void serial_low(void) { + SERIAL_PIN_PORT &= ~SERIAL_PIN_MASK; +} + +inline static +void serial_high(void) { + SERIAL_PIN_PORT |= SERIAL_PIN_MASK; +} + +void serial_master_init(void) { + serial_output(); + serial_high(); +} + +void serial_slave_init(void) { + serial_input(); + + // Enable INT0 + EIMSK |= _BV(INT0); + // Trigger on falling edge of INT0 + EICRA &= ~(_BV(ISC00) | _BV(ISC01)); +} + +// Used by the master to synchronize timing with the slave. +static +void sync_recv(void) { + serial_input(); + // This shouldn't hang if the slave disconnects because the + // serial line will float to high if the slave does disconnect. + while (!serial_read_pin()); + serial_delay(); +} + +// Used by the slave to send a synchronization signal to the master. +static +void sync_send(void) { + serial_output(); + + serial_low(); + serial_delay(); + + serial_high(); +} + +// Reads a byte from the serial line +static +uint8_t serial_read_byte(void) { + uint8_t byte = 0; + serial_input(); + for ( uint8_t i = 0; i < 8; ++i) { + byte = (byte << 1) | serial_read_pin(); + serial_delay(); + _delay_us(1); + } + + return byte; +} + +// Sends a byte with MSB ordering +static +void serial_write_byte(uint8_t data) { + uint8_t b = 8; + serial_output(); + while( b-- ) { + if(data & (1 << b)) { + serial_high(); + } else { + serial_low(); + } + serial_delay(); + } +} + +// interrupt handle to be used by the slave device +ISR(SERIAL_PIN_INTERRUPT) { + sync_send(); + + uint8_t checksum = 0; + for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) { + serial_write_byte(serial_slave_buffer[i]); + sync_send(); + checksum += serial_slave_buffer[i]; + } + serial_write_byte(checksum); + sync_send(); + + // wait for the sync to finish sending + serial_delay(); + + // read the middle of pulses + _delay_us(SERIAL_DELAY/2); + + uint8_t checksum_computed = 0; + for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) { + serial_master_buffer[i] = serial_read_byte(); + sync_send(); + checksum_computed += serial_master_buffer[i]; + } + uint8_t checksum_received = serial_read_byte(); + sync_send(); + + serial_input(); // end transaction + + if ( checksum_computed != checksum_received ) { + status |= SLAVE_DATA_CORRUPT; + } else { + status &= ~SLAVE_DATA_CORRUPT; + } +} + +inline +bool serial_slave_DATA_CORRUPT(void) { + return status & SLAVE_DATA_CORRUPT; +} + +// Copies the serial_slave_buffer to the master and sends the +// serial_master_buffer to the slave. +// +// Returns: +// 0 => no error +// 1 => slave did not respond +int serial_update_buffers(void) { + // this code is very time dependent, so we need to disable interrupts + cli(); + + // signal to the slave that we want to start a transaction + serial_output(); + serial_low(); + _delay_us(1); + + // wait for the slaves response + serial_input(); + serial_high(); + _delay_us(SERIAL_DELAY); + + // check if the slave is present + if (serial_read_pin()) { + // slave failed to pull the line low, assume not present + sei(); + return 1; + } + + // if the slave is present syncronize with it + sync_recv(); + + uint8_t checksum_computed = 0; + // receive data from the slave + for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) { + serial_slave_buffer[i] = serial_read_byte(); + sync_recv(); + checksum_computed += serial_slave_buffer[i]; + } + uint8_t checksum_received = serial_read_byte(); + sync_recv(); + + if (checksum_computed != checksum_received) { + sei(); + return 1; + } + + uint8_t checksum = 0; + // send data to the slave + for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) { + serial_write_byte(serial_master_buffer[i]); + sync_recv(); + checksum += serial_master_buffer[i]; + } + serial_write_byte(checksum); + sync_recv(); + + // always, release the line when not in use + serial_output(); + serial_high(); + + sei(); + return 0; +} + +#endif diff --git a/keyboards/fourier/serial.h b/keyboards/fourier/serial.h new file mode 100644 index 000000000000..15fe4db7b4c6 --- /dev/null +++ b/keyboards/fourier/serial.h @@ -0,0 +1,26 @@ +#ifndef MY_SERIAL_H +#define MY_SERIAL_H + +#include "config.h" +#include + +/* TODO: some defines for interrupt setup */ +#define SERIAL_PIN_DDR DDRD +#define SERIAL_PIN_PORT PORTD +#define SERIAL_PIN_INPUT PIND +#define SERIAL_PIN_MASK _BV(PD0) +#define SERIAL_PIN_INTERRUPT INT0_vect + +#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2 +#define SERIAL_MASTER_BUFFER_LENGTH 1 + +// Buffers for master - slave communication +extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH]; +extern volatile uint8_t serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH]; + +void serial_master_init(void); +void serial_slave_init(void); +int serial_update_buffers(void); +bool serial_slave_data_corrupt(void); + +#endif diff --git a/keyboards/fourier/split_util.c b/keyboards/fourier/split_util.c new file mode 100644 index 000000000000..2704e30e043a --- /dev/null +++ b/keyboards/fourier/split_util.c @@ -0,0 +1,80 @@ +#include +#include +#include +#include +#include +#include +#include "split_util.h" +#include "matrix.h" +#include "keyboard.h" +#include "config.h" +#include "timer.h" +#include "pincontrol.h" + +#ifdef USE_I2C +# include "i2c.h" +#else +# include "serial.h" +#endif + +volatile bool isLeftHand = true; + +static void setup_handedness(void) { + // Test D2 pin for handedness, if D2 is grounded, it's the right hand + pinMode(D2, PinDirectionInput); + isLeftHand = digitalRead(D2); +} + +static void keyboard_master_setup(void) { +#ifdef USE_I2C + i2c_master_init(); +#ifdef SSD1306OLED + matrix_master_OLED_init(); +#endif +#else + serial_master_init(); +#endif +} + +static void keyboard_slave_setup(void) { + timer_init(); +#ifdef USE_I2C + i2c_slave_init(SLAVE_I2C_ADDRESS); +#else + serial_slave_init(); +#endif +} + +bool has_usb(void) { + USBCON |= (1 << OTGPADE); //enables VBUS pad + _delay_us(5); + return (USBSTA & (1< +#include "eeconfig.h" + +#define SLAVE_I2C_ADDRESS 0x32 + +extern volatile bool isLeftHand; + +// slave version of matix scan, defined in matrix.c +void matrix_slave_scan(void); + +void split_keyboard_setup(void); +bool has_usb(void); +void keyboard_slave_loop(void); + +void matrix_master_OLED_init (void); + +#endif From 4adc333455f6f9f990e83df074c93f9c11e25883 Mon Sep 17 00:00:00 2001 From: myrtle Date: Sun, 18 Mar 2018 21:44:53 +0000 Subject: [PATCH 120/578] Fix mechmini2 ortho keymapping layout A misconfiguration in the ortho layout, K306 key was registered as k305 --- keyboards/mechmini/v2/v2.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/mechmini/v2/v2.h b/keyboards/mechmini/v2/v2.h index 7ab22b07ad7e..5ed9a9c28b7b 100755 --- a/keyboards/mechmini/v2/v2.h +++ b/keyboards/mechmini/v2/v2.h @@ -27,7 +27,7 @@ { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ - { K300, K301, K302, K303, K304, K305, K305, K307, K308, K309, K310, K311 } \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 } \ } #define KEYMAP_625_SPACE( \ From 00dfa73e4c642c296bbdbb92ab8202e2e1604ce7 Mon Sep 17 00:00:00 2001 From: WarmCat <32871908+WarmCatUK@users.noreply.github.com> Date: Sat, 24 Mar 2018 17:03:24 +0000 Subject: [PATCH 121/578] Added basic support for JJ50 (preonic-like based on atmega32A) (#2546) * Added support for JJ50 from KPRepublic, no rgb or backlight control yet. Added as a layout of ymd96 at the moment (same microprocessor). Basic keymap with three layers to get started. * Added support for JJ50 --- keyboards/jj50/README.md | 79 +++++ keyboards/jj50/config.h | 54 ++++ keyboards/jj50/i2c.c | 104 +++++++ keyboards/jj50/i2c.h | 25 ++ keyboards/jj50/jj50.c | 45 +++ keyboards/jj50/jj50.h | 50 +++ keyboards/jj50/keymaps/default/keymap.c | 96 ++++++ keyboards/jj50/matrix.c | 106 +++++++ keyboards/jj50/program | 74 +++++ keyboards/jj50/rules.mk | 51 +++ keyboards/jj50/usbconfig.h | 396 ++++++++++++++++++++++++ keyboards/ymd96/keymaps/JJ50/keymap.c | 96 ++++++ keyboards/ymd96/ymd96.h | 13 + 13 files changed, 1189 insertions(+) create mode 100644 keyboards/jj50/README.md create mode 100644 keyboards/jj50/config.h create mode 100644 keyboards/jj50/i2c.c create mode 100644 keyboards/jj50/i2c.h create mode 100644 keyboards/jj50/jj50.c create mode 100644 keyboards/jj50/jj50.h create mode 100644 keyboards/jj50/keymaps/default/keymap.c create mode 100644 keyboards/jj50/matrix.c create mode 100644 keyboards/jj50/program create mode 100644 keyboards/jj50/rules.mk create mode 100644 keyboards/jj50/usbconfig.h create mode 100644 keyboards/ymd96/keymaps/JJ50/keymap.c diff --git a/keyboards/jj50/README.md b/keyboards/jj50/README.md new file mode 100644 index 000000000000..39cfc69ca01e --- /dev/null +++ b/keyboards/jj50/README.md @@ -0,0 +1,79 @@ +JJ50 +========================== + +This is a port of the QMK firmware for boards that are based on the +ps2avrGB firmware, like the [ps2avrGB keyboard] (https://www.keyclack.com/product/gb-ps2avrgb/), for use on the JJ50, a preonic-like board. + +Most of the code was taken and amended from YMD96, which in itself was taken from ps2avrGB and amended by Andrew Novak. + +Note that this is a complete replacement for the firmware, so you won't be +using Bootmapper Client to change any keyboard settings, since not all the +USB report options are supported. + +Hardware Supported: JJ50 with the ATmega32a chip. +Hardware Availability: The JJ50 PCB is available from kprepublic on AliExpress and suchlike. + + +## Installing and Building + +Make example for this keyboard (after setting up your build environment): + +``` +$ make jj50:default:program +``` +It should detect the keyboard and set it to bootloader mode automatically, prior to flashing firmware. + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. + +Note that this is a complete replacement for the firmware, so you won't be +using Bootmapper Client to change any keyboard settings, since not all the +USB report options are supported. +In addition you may need the AVR toolchain and `bootloadHID` for flashing: + +``` +$ brew cask install crosspack-avr +$ brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb +``` + +In order to use the `./program` script, which can reboot the board into +the bootloader, you'll need Python 2 with PyUSB installed: + +``` +$ pip install pyusb +``` + +If you prefer, you can just build it and flash the firmware directly with +`bootloadHID` if you boot the board while holding down `Backspace` (`key below top right key`) to keep it +in the bootloader: + +``` +$ make jj50 +$ bootloadHID -r jj50_default.hex +``` +I dont use windows personally, but the following is from ymd96 regarding flashing the atmega32a: + +Since the JJ50 uses an ATmega32a chip instead of the 32u4, you need to download [HIDBootFlash v.1.0](http://vusb.wikidot.com/project:hidbootflash) for Windows. If anyone knows of a Linux/Mac bootflasher that works, edit this readme! +On Windows, I use [MINGw](http://www.mingw.org/) to compile the keymaps. On Linux or OSX you can simply use the terminal. + +Once you have those two pieces of software: +Build the keyboard with +``` +$ make jj50:default +``` +If you make your own layout, change the `default` word to whatever your layout is. + +And flash the compiled hex file with `HIDBootFlash`. Simply put the board in flashing mode by plugging it in while holding the key below the top right key, and click `find device`. Then you can specify the .hex file and flash it to the device. + + +## Troubleshooting + +1. Try plugging the board in while pressing `Backspace` (`Key below the top right key`). This will force it to boot only the bootloader without loading the firmware. Once this is done, just reflash the board with the original firmware. +2. Sometimes USB hubs can act weird, so try connecting the board directly to your computer or plugging/unplugging the USB hub. +3. If you get an error such as "Resource Unavailable" when attemting to flash on Linux, you may want to compile and run `tools/usb_detach.c`. See `tools/README.md` for more info. +4. I was occasionally finding that I wasn't flashing changes that I was making to my keymap. If that happens, simply force rebuild by making with: +``` +$ make -B jj50:default:program +``` + + + diff --git a/keyboards/jj50/config.h b/keyboards/jj50/config.h new file mode 100644 index 000000000000..240732594d16 --- /dev/null +++ b/keyboards/jj50/config.h @@ -0,0 +1,54 @@ +/* +Base Copyright 2017 Luiz Ribeiro +Modified 2017 Andrew Novak +Modified 2018 Wayne Jones (WarmCatUK) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +#define VENDOR_ID 0x20A0 +#define PRODUCT_ID 0x422D +// TODO: share these strings with usbconfig.h +// Edit usbconfig.h to change these. +#define MANUFACTURER kprepublic +#define PRODUCT jj50 +#define DESCRIPTION Preonic-like clone + +/* matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 15 +#define DIODE_DIRECTION ROW2COL + +#define BACKLIGHT_PIN D4 +#define BACKLIGHT_LEVELS 3 + +//#define RGB_DI_PIN C0 +#define RGBLED_NUM 5 +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_HUE_STEP 12 +#define RGBLIGHT_SAT_STEP 15 +#define RGBLIGHT_VAL_STEP 18 + +#define NO_UART 1 +#define BOOTLOADHID_BOOTLOADER 1 + +/* key combination for command */ +#define IS_COMMAND() (keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) + +#endif diff --git a/keyboards/jj50/i2c.c b/keyboards/jj50/i2c.c new file mode 100644 index 000000000000..c27f3e3d17e1 --- /dev/null +++ b/keyboards/jj50/i2c.c @@ -0,0 +1,104 @@ +/* +Copyright 2016 Luiz Ribeiro + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include +#include + +#include "i2c.h" + +void i2c_set_bitrate(uint16_t bitrate_khz) { + uint8_t bitrate_div = ((F_CPU / 1000l) / bitrate_khz); + if (bitrate_div >= 16) { + bitrate_div = (bitrate_div - 16) / 2; + } + TWBR = bitrate_div; +} + +void i2c_init(void) { + // set pull-up resistors on I2C bus pins + PORTC |= 0b11; + + i2c_set_bitrate(400); + + // enable TWI (two-wire interface) + TWCR |= (1 << TWEN); + + // enable TWI interrupt and slave address ACK + TWCR |= (1 << TWIE); + TWCR |= (1 << TWEA); +} + +uint8_t i2c_start(uint8_t address) { + // reset TWI control register + TWCR = 0; + + // begin transmission and wait for it to end + TWCR = (1< + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef __I2C_H__ +#define __I2C_H__ + +void i2c_init(void); +void i2c_set_bitrate(uint16_t bitrate_khz); +uint8_t i2c_send(uint8_t address, uint8_t *data, uint16_t length); + +#endif diff --git a/keyboards/jj50/jj50.c b/keyboards/jj50/jj50.c new file mode 100644 index 000000000000..a75b12c4ea95 --- /dev/null +++ b/keyboards/jj50/jj50.c @@ -0,0 +1,45 @@ +/* +Copyright 2017 Luiz Ribeiro + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "jj50.h" +#include "rgblight.h" + +#include + +#include "action_layer.h" +#include "i2c.h" +#include "quantum.h" + +extern rgblight_config_t rgblight_config; + +void rgblight_set(void) { + if (!rgblight_config.enable) { + for (uint8_t i = 0; i < RGBLED_NUM; i++) { + led[i].r = 0; + led[i].g = 0; + led[i].b = 0; + } + } + + i2c_init(); + i2c_send(0xb0, (uint8_t*)led, 3 * RGBLED_NUM); +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { + rgblight_task(); +} diff --git a/keyboards/jj50/jj50.h b/keyboards/jj50/jj50.h new file mode 100644 index 000000000000..09664f77f6db --- /dev/null +++ b/keyboards/jj50/jj50.h @@ -0,0 +1,50 @@ +/* +Base Copyright 2017 Luiz Ribeiro +Modified 2017 Andrew Novak +Modified 2018 Wayne Jones (WarmCatUK) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef KEYMAP_COMMON_H +#define KEYMAP_COMMON_H + +#include "quantum_keycodes.h" +#include "keycode.h" +#include "action.h" + +#define KEYMAP( \ +K011, K010, K009, K008, K004, K005, K006, K007, K003, K002, K201, K000, \ +K111, K110, K109, K108, K104, K105, K106, K107, K103, K102, K001, K100, \ +K211, K210, K209, K208, K204, K205, K206, K207, K203, K202, K101, K200, \ +K311, K310, K309, K308, K304, K305, K306, K307, K303, K302, K301, K300, \ +K411, K410, K409, K408, K404, K405, K406, K407, K403, K402, K401, K400 \ +) { \ +{ K100, K001, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, }, \ +{ K200, K101, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, }, \ +{ K000, K201, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, }, \ +{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, }, \ +{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411 }, \ +} + +#endif + + + + + + + + + diff --git a/keyboards/jj50/keymaps/default/keymap.c b/keyboards/jj50/keymaps/default/keymap.c new file mode 100644 index 000000000000..8a32efd0c009 --- /dev/null +++ b/keyboards/jj50/keymaps/default/keymap.c @@ -0,0 +1,96 @@ +/* +Base Copyright 2017 Luiz Ribeiro +Modified 2017 Andrew Novak +Modified 2018 Wayne Jones (WarmCatUK) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public LicensezZZ +along with this program. If not, see . +*/ + +#include "jj50.h" +#include "action_layer.h" +#include "rgblight.h" + +#define ______ KC_TRNS +#define _DEFLT 0 +#define _RAISE 1 +#define _LOWER 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------------------------------------------------. + * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_DEFLT] = KEYMAP( \ + 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT),\ + BL_TOGG, KC_LCTL, KC_LALT, KC_LGUI, MO(_LOWER), KC_SPC,KC_SPC, MO(_RAISE),KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + ), + + + /* Raise + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | |ISO # |ISO / | PUP | PDN | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_RAISE] = KEYMAP( \ + 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + RESET, BL_INC, RGB_SAI, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS, \ + _______, BL_DEC, _______, _______, _______, _______, _______, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, \ + RGB_TOG, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + ), + + + /* Lower + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | |ISO ~ |ISO | | HOM | END | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_LOWER] = KEYMAP( \ + 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_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ + RESET, _______, _______, _______, _______, _______, _______, _______, _______, KC_LCBR, KC_RCBR, KC_PIPE, \ + _______, _______, _______, _______, _______, _______, _______,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + ) + +}; diff --git a/keyboards/jj50/matrix.c b/keyboards/jj50/matrix.c new file mode 100644 index 000000000000..8f9c67fe47a3 --- /dev/null +++ b/keyboards/jj50/matrix.c @@ -0,0 +1,106 @@ +/* +Copyright 2017 Luiz Ribeiro + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include +#include + +#include "matrix.h" + +#ifndef DEBOUNCE +# define DEBOUNCE 5 +#endif + +static uint8_t debouncing = DEBOUNCE; + +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +void matrix_init(void) { + // all outputs for rows high + DDRB = 0xFF; + PORTB = 0xFF; + // all inputs for columns + DDRA = 0x00; + DDRC &= ~(0x111111<<2); + DDRD &= ~(1<> 1) & 0x55) | ((x << 1) & 0xaa); + x = ((x >> 2) & 0x33) | ((x << 2) & 0xcc); + x = ((x >> 4) & 0x0f) | ((x << 4) & 0xf0); + return x; +} + +uint8_t matrix_scan(void) { + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + matrix_set_row_status(row); + _delay_us(5); + + matrix_row_t cols = ( + // cols 0..7, PORTA 0 -> 7 + (~PINA) & 0xFF + ) | ( + // cols 8..13, PORTC 7 -> 0 + bit_reverse((~PINC) & 0xFF) << 8 + ) | ( + // col 14, PORTD 7 + ((~PIND) & (1 << PIND7)) << 7 + ); + + if (matrix_debouncing[row] != cols) { + matrix_debouncing[row] = cols; + debouncing = DEBOUNCE; + } + } + + if (debouncing) { + if (--debouncing) { + _delay_ms(1); + } else { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = matrix_debouncing[i]; + } + } + } + + matrix_scan_user(); + + return 1; +} + +inline matrix_row_t matrix_get_row(uint8_t row) { + return matrix[row]; +} + +void matrix_print(void) { +} diff --git a/keyboards/jj50/program b/keyboards/jj50/program new file mode 100644 index 000000000000..a88d9cd9b042 --- /dev/null +++ b/keyboards/jj50/program @@ -0,0 +1,74 @@ +#!/usr/bin/env python +# Copyright 2017 Luiz Ribeiro +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +from __future__ import print_function + +import os +import sys +import time +import usb + +if len(sys.argv) < 2: + print('Usage: %s ' % sys.argv[0]) + sys.exit(1) + +print('Searching for ps2avrGB... ', end='') + +dev = usb.core.find(idVendor=0x20A0, idProduct=0x422D) +if dev is None: + raise ValueError('Device not found') + +print('Found', end='\n\n') + +print('Device Information:') +print(' idVendor: %d (0x%04x)' % (dev.idVendor, dev.idVendor)) +print(' idProduct: %d (0x%04x)' % (dev.idProduct, dev.idProduct)) +print('Manufacturer: %s' % (dev.iManufacturer)) +print('Serial: %s' % (dev.iSerialNumber)) +print('Product: %s' % (dev.iProduct), end='\n\n') + +print('Transferring control to bootloader... ', end='') + +dev.set_configuration() + +request_type = usb.util.build_request_type( + usb.util.CTRL_OUT, + usb.util.CTRL_TYPE_CLASS, + usb.util.CTRL_RECIPIENT_DEVICE) + +USBRQ_HID_SET_REPORT = 0x09 +HID_REPORT_OPTION = 0x0301 + + +try: + dev.ctrl_transfer( + request_type, + USBRQ_HID_SET_REPORT, + HID_REPORT_OPTION, + 0, + [0, 0, 0xFF] + [0] * 5 + ) +except usb.core.USBError: + # for some reason I keep getting USBError, but it works! + pass + +# wait a bit until bootloader starts up +time.sleep(2) + +print('OK') +print('Programming...') +if os.system('bootloadHID -r "%s"' % sys.argv[1]) == 0: + print('\nDone!') diff --git a/keyboards/jj50/rules.mk b/keyboards/jj50/rules.mk new file mode 100644 index 000000000000..1b7826e505aa --- /dev/null +++ b/keyboards/jj50/rules.mk @@ -0,0 +1,51 @@ +# Copyright 2017 Luiz Ribeiro +# Modified 2018 Wayne Jones (WarmCatUK) + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# MCU name +MCU = atmega32a +PROTOCOL = VUSB + +# unsupported features for now +NO_UART = yes +NO_SUSPEND_POWER_DOWN = yes + +# processor frequency +F_CPU = 12000000 + +# Bootloader +# This definition is optional, and if your keyboard supports multiple bootloaders of +# different sizes, comment this out, and the correct address will be loaded +# automatically (+60). See bootloader.mk for all options. +BOOTLOADER = bootloadHID + +# build options +BOOTMAGIC_ENABLE = yes +MOUSEKEY_ENABLE = no +EXTRAKEY_ENABLE = yes +CONSOLE_ENABLE = no +COMMAND_ENABLE = no +BACKLIGHT_ENABLE = yes +RGBLIGHT_ENABLE = yes +RGBLIGHT_CUSTOM_DRIVER = yes + +OPT_DEFS = -DDEBUG_LEVEL=0 + +# custom matrix setup +CUSTOM_MATRIX = yes +SRC = matrix.c i2c.c + +# programming options +PROGRAM_CMD = ./keyboards/ps2avrGB/program $(TARGET).hex diff --git a/keyboards/jj50/usbconfig.h b/keyboards/jj50/usbconfig.h new file mode 100644 index 000000000000..d2d848fcdc8f --- /dev/null +++ b/keyboards/jj50/usbconfig.h @@ -0,0 +1,396 @@ +/* Name: usbconfig.h + * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers + * Author: Christian Starkjohann + * Creation Date: 2005-04-01 + * Tabsize: 4 + * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH + * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt) + * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $ + */ + +#ifndef __usbconfig_h_included__ +#define __usbconfig_h_included__ + +#include "config.h" + +/* +General Description: +This file is an example configuration (with inline documentation) for the USB +driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is +also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may +wire the lines to any other port, as long as D+ is also wired to INT0 (or any +other hardware interrupt, as long as it is the highest level interrupt, see +section at the end of this file). +*/ + +/* ---------------------------- Hardware Config ---------------------------- */ + +#define USB_CFG_IOPORTNAME D +/* This is the port where the USB bus is connected. When you configure it to + * "B", the registers PORTB, PINB and DDRB will be used. + */ +#define USB_CFG_DMINUS_BIT 3 +/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected. + * This may be any bit in the port. + */ +#define USB_CFG_DPLUS_BIT 2 +/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected. + * This may be any bit in the port. Please note that D+ must also be connected + * to interrupt pin INT0! [You can also use other interrupts, see section + * "Optional MCU Description" below, or you can connect D- to the interrupt, as + * it is required if you use the USB_COUNT_SOF feature. If you use D- for the + * interrupt, the USB interrupt will also be triggered at Start-Of-Frame + * markers every millisecond.] + */ +#define USB_CFG_CLOCK_KHZ (F_CPU/1000) +/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000, + * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code + * require no crystal, they tolerate +/- 1% deviation from the nominal + * frequency. All other rates require a precision of 2000 ppm and thus a + * crystal! + * Since F_CPU should be defined to your actual clock rate anyway, you should + * not need to modify this setting. + */ +#define USB_CFG_CHECK_CRC 0 +/* Define this to 1 if you want that the driver checks integrity of incoming + * data packets (CRC checks). CRC checks cost quite a bit of code size and are + * currently only available for 18 MHz crystal clock. You must choose + * USB_CFG_CLOCK_KHZ = 18000 if you enable this option. + */ + +/* ----------------------- Optional Hardware Config ------------------------ */ + +/* #define USB_CFG_PULLUP_IOPORTNAME D */ +/* If you connect the 1.5k pullup resistor from D- to a port pin instead of + * V+, you can connect and disconnect the device from firmware by calling + * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h). + * This constant defines the port on which the pullup resistor is connected. + */ +/* #define USB_CFG_PULLUP_BIT 4 */ +/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined + * above) where the 1.5k pullup resistor is connected. See description + * above for details. + */ + +/* --------------------------- Functional Range ---------------------------- */ + +#define USB_CFG_HAVE_INTRIN_ENDPOINT 1 +/* Define this to 1 if you want to compile a version with two endpoints: The + * default control endpoint 0 and an interrupt-in endpoint (any other endpoint + * number). + */ +#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1 +/* Define this to 1 if you want to compile a version with three endpoints: The + * default control endpoint 0, an interrupt-in endpoint 3 (or the number + * configured below) and a catch-all default interrupt-in endpoint as above. + * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature. + */ +#define USB_CFG_EP3_NUMBER 3 +/* If the so-called endpoint 3 is used, it can now be configured to any other + * endpoint number (except 0) with this macro. Default if undefined is 3. + */ +/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */ +/* The above macro defines the startup condition for data toggling on the + * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1. + * Since the token is toggled BEFORE sending any data, the first packet is + * sent with the oposite value of this configuration! + */ +#define USB_CFG_IMPLEMENT_HALT 0 +/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature + * for endpoint 1 (interrupt endpoint). Although you may not need this feature, + * it is required by the standard. We have made it a config option because it + * bloats the code considerably. + */ +#define USB_CFG_SUPPRESS_INTR_CODE 0 +/* Define this to 1 if you want to declare interrupt-in endpoints, but don't + * want to send any data over them. If this macro is defined to 1, functions + * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if + * you need the interrupt-in endpoints in order to comply to an interface + * (e.g. HID), but never want to send any data. This option saves a couple + * of bytes in flash memory and the transmit buffers in RAM. + */ +#define USB_CFG_INTR_POLL_INTERVAL 1 +/* If you compile a version with endpoint 1 (interrupt-in), this is the poll + * interval. The value is in milliseconds and must not be less than 10 ms for + * low speed devices. + */ +#define USB_CFG_IS_SELF_POWERED 0 +/* Define this to 1 if the device has its own power supply. Set it to 0 if the + * device is powered from the USB bus. + */ +#define USB_CFG_MAX_BUS_POWER 500 +/* Set this variable to the maximum USB bus power consumption of your device. + * The value is in milliamperes. [It will be divided by two since USB + * communicates power requirements in units of 2 mA.] + */ +#define USB_CFG_IMPLEMENT_FN_WRITE 1 +/* Set this to 1 if you want usbFunctionWrite() to be called for control-out + * transfers. Set it to 0 if you don't need it and want to save a couple of + * bytes. + */ +#define USB_CFG_IMPLEMENT_FN_READ 0 +/* Set this to 1 if you need to send control replies which are generated + * "on the fly" when usbFunctionRead() is called. If you only want to send + * data from a static buffer, set it to 0 and return the data from + * usbFunctionSetup(). This saves a couple of bytes. + */ +#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0 +/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints. + * You must implement the function usbFunctionWriteOut() which receives all + * interrupt/bulk data sent to any endpoint other than 0. The endpoint number + * can be found in 'usbRxToken'. + */ +#define USB_CFG_HAVE_FLOWCONTROL 0 +/* Define this to 1 if you want flowcontrol over USB data. See the definition + * of the macros usbDisableAllRequests() and usbEnableAllRequests() in + * usbdrv.h. + */ +#define USB_CFG_DRIVER_FLASH_PAGE 0 +/* If the device has more than 64 kBytes of flash, define this to the 64 k page + * where the driver's constants (descriptors) are located. Or in other words: + * Define this to 1 for boot loaders on the ATMega128. + */ +#define USB_CFG_LONG_TRANSFERS 0 +/* Define this to 1 if you want to send/receive blocks of more than 254 bytes + * in a single control-in or control-out transfer. Note that the capability + * for long transfers increases the driver size. + */ +/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */ +/* This macro is a hook if you want to do unconventional things. If it is + * defined, it's inserted at the beginning of received message processing. + * If you eat the received message and don't want default processing to + * proceed, do a return after doing your things. One possible application + * (besides debugging) is to flash a status LED on each packet. + */ +/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */ +/* This macro is a hook if you need to know when an USB RESET occurs. It has + * one parameter which distinguishes between the start of RESET state and its + * end. + */ +/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */ +/* This macro (if defined) is executed when a USB SET_ADDRESS request was + * received. + */ +#define USB_COUNT_SOF 1 +/* define this macro to 1 if you need the global variable "usbSofCount" which + * counts SOF packets. This feature requires that the hardware interrupt is + * connected to D- instead of D+. + */ +/* #ifdef __ASSEMBLER__ + * macro myAssemblerMacro + * in YL, TCNT0 + * sts timer0Snapshot, YL + * endm + * #endif + * #define USB_SOF_HOOK myAssemblerMacro + * This macro (if defined) is executed in the assembler module when a + * Start Of Frame condition is detected. It is recommended to define it to + * the name of an assembler macro which is defined here as well so that more + * than one assembler instruction can be used. The macro may use the register + * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages + * immediately after an SOF pulse may be lost and must be retried by the host. + * What can you do with this hook? Since the SOF signal occurs exactly every + * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in + * designs running on the internal RC oscillator. + * Please note that Start Of Frame detection works only if D- is wired to the + * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES! + */ +#define USB_CFG_CHECK_DATA_TOGGLING 0 +/* define this macro to 1 if you want to filter out duplicate data packets + * sent by the host. Duplicates occur only as a consequence of communication + * errors, when the host does not receive an ACK. Please note that you need to + * implement the filtering yourself in usbFunctionWriteOut() and + * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable + * for each control- and out-endpoint to check for duplicate packets. + */ +#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0 +/* define this macro to 1 if you want the function usbMeasureFrameLength() + * compiled in. This function can be used to calibrate the AVR's RC oscillator. + */ +#define USB_USE_FAST_CRC 0 +/* The assembler module has two implementations for the CRC algorithm. One is + * faster, the other is smaller. This CRC routine is only used for transmitted + * messages where timing is not critical. The faster routine needs 31 cycles + * per byte while the smaller one needs 61 to 69 cycles. The faster routine + * may be worth the 32 bytes bigger code size if you transmit lots of data and + * run the AVR close to its limit. + */ + +/* -------------------------- Device Description --------------------------- */ + +#define USB_CFG_VENDOR_ID (VENDOR_ID & 0xFF), ((VENDOR_ID >> 8) & 0xFF) +/* USB vendor ID for the device, low byte first. If you have registered your + * own Vendor ID, define it here. Otherwise you may use one of obdev's free + * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules! + * *** IMPORTANT NOTE *** + * This template uses obdev's shared VID/PID pair for Vendor Class devices + * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand + * the implications! + */ +#define USB_CFG_DEVICE_ID (PRODUCT_ID & 0xFF), ((PRODUCT_ID >> 8) & 0xFF) +/* This is the ID of the product, low byte first. It is interpreted in the + * scope of the vendor ID. If you have registered your own VID with usb.org + * or if you have licensed a PID from somebody else, define it here. Otherwise + * you may use one of obdev's free shared VID/PID pairs. See the file + * USB-IDs-for-free.txt for details! + * *** IMPORTANT NOTE *** + * This template uses obdev's shared VID/PID pair for Vendor Class devices + * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand + * the implications! + */ +#define USB_CFG_DEVICE_VERSION 0x00, 0x02 +/* Version number of the device: Minor number first, then major number. + */ +#define USB_CFG_VENDOR_NAME 'w', 'i', 'n', 'k', 'e', 'y', 'l', 'e', 's', 's', '.', 'k', 'r' +#define USB_CFG_VENDOR_NAME_LEN 13 +/* These two values define the vendor name returned by the USB device. The name + * must be given as a list of characters under single quotes. The characters + * are interpreted as Unicode (UTF-16) entities. + * If you don't want a vendor name string, undefine these macros. + * ALWAYS define a vendor name containing your Internet domain name if you use + * obdev's free shared VID/PID pair. See the file USB-IDs-for-free.txt for + * details. + */ +#define USB_CFG_DEVICE_NAME 'p', 's', '2', 'a', 'v', 'r', 'G', 'B' +#define USB_CFG_DEVICE_NAME_LEN 8 +/* Same as above for the device name. If you don't want a device name, undefine + * the macros. See the file USB-IDs-for-free.txt before you assign a name if + * you use a shared VID/PID. + */ +/*#define USB_CFG_SERIAL_NUMBER 'N', 'o', 'n', 'e' */ +/*#define USB_CFG_SERIAL_NUMBER_LEN 0 */ +/* Same as above for the serial number. If you don't want a serial number, + * undefine the macros. + * It may be useful to provide the serial number through other means than at + * compile time. See the section about descriptor properties below for how + * to fine tune control over USB descriptors such as the string descriptor + * for the serial number. + */ +#define USB_CFG_DEVICE_CLASS 0 +#define USB_CFG_DEVICE_SUBCLASS 0 +/* See USB specification if you want to conform to an existing device class. + * Class 0xff is "vendor specific". + */ +#define USB_CFG_INTERFACE_CLASS 3 /* HID */ +#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */ +#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */ +/* See USB specification if you want to conform to an existing device class or + * protocol. The following classes must be set at interface level: + * HID class is 3, no subclass and protocol required (but may be useful!) + * CDC class is 2, use subclass 2 and protocol 1 for ACM + */ +#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0 +/* Define this to the length of the HID report descriptor, if you implement + * an HID device. Otherwise don't define it or define it to 0. + * If you use this define, you must add a PROGMEM character array named + * "usbHidReportDescriptor" to your code which contains the report descriptor. + * Don't forget to keep the array and this define in sync! + */ + +/* #define USB_PUBLIC static */ +/* Use the define above if you #include usbdrv.c instead of linking against it. + * This technique saves a couple of bytes in flash memory. + */ + +/* ------------------- Fine Control over USB Descriptors ------------------- */ +/* If you don't want to use the driver's default USB descriptors, you can + * provide our own. These can be provided as (1) fixed length static data in + * flash memory, (2) fixed length static data in RAM or (3) dynamically at + * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more + * information about this function. + * Descriptor handling is configured through the descriptor's properties. If + * no properties are defined or if they are 0, the default descriptor is used. + * Possible properties are: + * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched + * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is + * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if + * you want RAM pointers. + * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found + * in static memory is in RAM, not in flash memory. + * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash), + * the driver must know the descriptor's length. The descriptor itself is + * found at the address of a well known identifier (see below). + * List of static descriptor names (must be declared PROGMEM if in flash): + * char usbDescriptorDevice[]; + * char usbDescriptorConfiguration[]; + * char usbDescriptorHidReport[]; + * char usbDescriptorString0[]; + * int usbDescriptorStringVendor[]; + * int usbDescriptorStringDevice[]; + * int usbDescriptorStringSerialNumber[]; + * Other descriptors can't be provided statically, they must be provided + * dynamically at runtime. + * + * Descriptor properties are or-ed or added together, e.g.: + * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18)) + * + * The following descriptors are defined: + * USB_CFG_DESCR_PROPS_DEVICE + * USB_CFG_DESCR_PROPS_CONFIGURATION + * USB_CFG_DESCR_PROPS_STRINGS + * USB_CFG_DESCR_PROPS_STRING_0 + * USB_CFG_DESCR_PROPS_STRING_VENDOR + * USB_CFG_DESCR_PROPS_STRING_PRODUCT + * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER + * USB_CFG_DESCR_PROPS_HID + * USB_CFG_DESCR_PROPS_HID_REPORT + * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver) + * + * Note about string descriptors: String descriptors are not just strings, they + * are Unicode strings prefixed with a 2 byte header. Example: + * int serialNumberDescriptor[] = { + * USB_STRING_DESCRIPTOR_HEADER(6), + * 'S', 'e', 'r', 'i', 'a', 'l' + * }; + */ + +#define USB_CFG_DESCR_PROPS_DEVICE 0 +#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC +//#define USB_CFG_DESCR_PROPS_CONFIGURATION 0 +#define USB_CFG_DESCR_PROPS_STRINGS 0 +#define USB_CFG_DESCR_PROPS_STRING_0 0 +#define USB_CFG_DESCR_PROPS_STRING_VENDOR 0 +#define USB_CFG_DESCR_PROPS_STRING_PRODUCT 0 +#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER 0 +#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC +//#define USB_CFG_DESCR_PROPS_HID 0 +#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC +//#define USB_CFG_DESCR_PROPS_HID_REPORT 0 +#define USB_CFG_DESCR_PROPS_UNKNOWN 0 + +#define usbMsgPtr_t unsigned short +/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to + * a scalar type here because gcc generates slightly shorter code for scalar + * arithmetics than for pointer arithmetics. Remove this define for backward + * type compatibility or define it to an 8 bit type if you use data in RAM only + * and all RAM is below 256 bytes (tiny memory model in IAR CC). + */ + +/* ----------------------- Optional MCU Description ------------------------ */ + +/* The following configurations have working defaults in usbdrv.h. You + * usually don't need to set them explicitly. Only if you want to run + * the driver on a device which is not yet supported or with a compiler + * which is not fully supported (such as IAR C) or if you use a differnt + * interrupt than INT0, you may have to define some of these. + */ +/* #define USB_INTR_CFG MCUCR */ +/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */ +/* #define USB_INTR_CFG_CLR 0 */ +/* #define USB_INTR_ENABLE GIMSK */ +/* #define USB_INTR_ENABLE_BIT INT0 */ +/* #define USB_INTR_PENDING GIFR */ +/* #define USB_INTR_PENDING_BIT INTF0 */ +/* #define USB_INTR_VECTOR INT0_vect */ + +/* Set INT1 for D- falling edge to count SOF */ +/* #define USB_INTR_CFG EICRA */ +#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10)) +/* #define USB_INTR_CFG_CLR 0 */ +/* #define USB_INTR_ENABLE EIMSK */ +#define USB_INTR_ENABLE_BIT INT1 +/* #define USB_INTR_PENDING EIFR */ +#define USB_INTR_PENDING_BIT INTF1 +#define USB_INTR_VECTOR INT1_vect + +#endif /* __usbconfig_h_included__ */ diff --git a/keyboards/ymd96/keymaps/JJ50/keymap.c b/keyboards/ymd96/keymaps/JJ50/keymap.c new file mode 100644 index 000000000000..f59950d445aa --- /dev/null +++ b/keyboards/ymd96/keymaps/JJ50/keymap.c @@ -0,0 +1,96 @@ +/* +Base Copyright 2017 Luiz Ribeiro +Modified 2017 Andrew Novak +Modified 2018 Wayne Jones (WarmCatUK) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public LicensezZZ +along with this program. If not, see . +*/ + +#include "ymd96.h" +#include "action_layer.h" +#include "rgblight.h" + +#define ______ KC_TRNS +#define _DEFLT 0 +#define _RAISE 1 +#define _LOWER 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------------------------------------------------. + * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_DEFLT] = KEYMAP_JJ50( \ + 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT),\ + _______, KC_LCTL, KC_LALT, KC_LGUI, MO(_LOWER), KC_SPC,KC_SPC, MO(_RAISE),KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + ), + + + /* Raise + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | |ISO # |ISO / | PUP | PDN | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_RAISE] = KEYMAP_JJ50( \ + 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS, \ + _______, _______, _______, _______, _______, _______, _______, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + ), + + + /* Lower + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | |ISO ~ |ISO | | HOM | END | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_LOWER] = KEYMAP_JJ50( \ + 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_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LCBR, KC_RCBR, KC_PIPE, \ + _______, _______, _______, _______, _______, _______, _______,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + ) + +}; diff --git a/keyboards/ymd96/ymd96.h b/keyboards/ymd96/ymd96.h index 8a420ab5c1e4..541ebeb191c9 100644 --- a/keyboards/ymd96/ymd96.h +++ b/keyboards/ymd96/ymd96.h @@ -41,6 +41,19 @@ along with this program. If not, see . { K700, K701, K702, K703, K704, K705, K706, KC_NO, K708, K709, K710, K711, K712, K713, K714 } \ } +#define KEYMAP_JJ50( \ +K011, K010, K009, K008, K004, K005, K006, K007, K003, K002, K201, K000, \ +K111, K110, K109, K108, K104, K105, K106, K107, K103, K102, K001, K100, \ +K211, K210, K209, K208, K204, K205, K206, K207, K203, K202, K101, K200, \ +K311, K310, K309, K308, K304, K305, K306, K307, K303, K302, K301, K300, \ +K411, K410, K409, K408, K404, K405, K406, K407, K403, K402, K401, K400 \ +) { \ +{ K100, K001, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, }, \ +{ K200, K101, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, }, \ +{ K000, K201, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, }, \ +{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, }, \ +{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411 }, \ +} #endif From 59a784500b2b21d311649e351eed48dce5112901 Mon Sep 17 00:00:00 2001 From: Wilba6582 Date: Sun, 25 Mar 2018 15:58:55 +1100 Subject: [PATCH 122/578] Initial support for RAMA M6-A (#2600) * Initial commit of RAMA M6-A firmware. * Added LED support * Added Knops support * Fixed compile error for knops keymap. * updated readme.md * updated readme.md * updated readme.md --- keyboards/rama/m6_a/config.h | 190 +++++++++++ keyboards/rama/m6_a/keymaps/default/config.h | 24 ++ keyboards/rama/m6_a/keymaps/default/keymap.c | 298 ++++++++++++++++++ keyboards/rama/m6_a/keymaps/default/readme.md | 12 + keyboards/rama/m6_a/keymaps/knops/config.h | 24 ++ keyboards/rama/m6_a/keymaps/knops/keymap.c | 120 +++++++ keyboards/rama/m6_a/keymaps/knops/readme.md | 11 + keyboards/rama/m6_a/m6_a.c | 44 +++ keyboards/rama/m6_a/m6_a.h | 29 ++ keyboards/rama/m6_a/readme.md | 15 + keyboards/rama/m6_a/rules.mk | 68 ++++ keyboards/rama/readme.md | 9 + 12 files changed, 844 insertions(+) create mode 100644 keyboards/rama/m6_a/config.h create mode 100644 keyboards/rama/m6_a/keymaps/default/config.h create mode 100644 keyboards/rama/m6_a/keymaps/default/keymap.c create mode 100644 keyboards/rama/m6_a/keymaps/default/readme.md create mode 100644 keyboards/rama/m6_a/keymaps/knops/config.h create mode 100644 keyboards/rama/m6_a/keymaps/knops/keymap.c create mode 100644 keyboards/rama/m6_a/keymaps/knops/readme.md create mode 100644 keyboards/rama/m6_a/m6_a.c create mode 100644 keyboards/rama/m6_a/m6_a.h create mode 100644 keyboards/rama/m6_a/readme.md create mode 100644 keyboards/rama/m6_a/rules.mk create mode 100644 keyboards/rama/readme.md diff --git a/keyboards/rama/m6_a/config.h b/keyboards/rama/m6_a/config.h new file mode 100644 index 000000000000..0c5355f4a8ad --- /dev/null +++ b/keyboards/rama/m6_a/config.h @@ -0,0 +1,190 @@ +/* +Copyright 2018 Wilba + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x5241 // "RW" +#define PRODUCT_ID 0x006A // 6-A +#define DEVICE_VER 0x0001 +#define MANUFACTURER RAMA.WORKS +#define PRODUCT RAMA M6-A +#define DESCRIPTION RAMA M6-A Macropad + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 6 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { E6 } +#define MATRIX_COL_PINS { D4, B5, F4, D7, C6, F6 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +//#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 1 + +#endif diff --git a/keyboards/rama/m6_a/keymaps/default/config.h b/keyboards/rama/m6_a/keymaps/default/config.h new file mode 100644 index 000000000000..d150575c1a73 --- /dev/null +++ b/keyboards/rama/m6_a/keymaps/default/config.h @@ -0,0 +1,24 @@ +/* Copyright 2018 Wilba + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here + +#endif diff --git a/keyboards/rama/m6_a/keymaps/default/keymap.c b/keyboards/rama/m6_a/keymaps/default/keymap.c new file mode 100644 index 000000000000..1323ba6f2a04 --- /dev/null +++ b/keyboards/rama/m6_a/keymaps/default/keymap.c @@ -0,0 +1,298 @@ +#include "../../m6_a.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + KEYMAP( + TO(1), KC_A, KC_B, KC_C, KC_D, KC_E), + + KEYMAP( + TO(2), KC_F, KC_G, KC_H, KC_I, KC_J), + + KEYMAP( + TO(3), KC_K, KC_L, KC_M, KC_N, KC_O), + + KEYMAP( + TO(4), KC_P, KC_Q, KC_R, KC_S, KC_T), + + KEYMAP( + TO(5), KC_U, KC_V, KC_W, KC_X, KC_Y), + + KEYMAP( + TO(0), KC_Z, KC_1, KC_2, KC_3, KC_4) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + //keyevent_t event = record->event; + + switch (id) { + case 0: + if (record->event.pressed) { + return MACRO( T(T), T(G), T(L), T(H), T(F), T(ENT), END ); + } + break; + case 1: + if (record->event.pressed) { + return MACRO( T(T), T(G), T(G), T(ENT), END ); + } + break; + case 2: + if (record->event.pressed) { + return MACRO( D(NO), T(L), U(NO), END ); + } + break; + case 3: + if (record->event.pressed) { + return MACRO( D(LCTL), T(Z), U(LCTL), END ); + } + break; + case 4: + if (record->event.pressed) { + return MACRO( D(LCTL), D(LSFT), T(Z), U(LSFT), U(LCTL), END ); + } + break; + case 5: + if (record->event.pressed) { + return MACRO( D(LCTL), T(X), U(LCTL), END ); + } + break; + case 6: + if (record->event.pressed) { + return MACRO( D(LCTL), T(C), U(LCTL), END ); + } + break; + case 7: + if (record->event.pressed) { + return MACRO( D(LCTL), T(V), U(LCTL), END ); + } + break; + } + return MACRO_NONE; +} + +// M6-A LEDs are connected to D6, B6, F5, B4, C7, F7 +// This is 1-based because I copied it from Knops code. +void set_switch_led(int ledId, bool state) { + if(state) { + switch(ledId) { + case 1: + PORTD |= (1<<6); + break; + case 2: + PORTB |= (1<<6); + break; + case 3: + PORTF |= (1<<5); + break; + case 4: + PORTB |= (1<<4); + break; + case 5: + PORTC |= (1<<7); + break; + case 6: + PORTF |= (1<<7); + break; + } + } else { + switch(ledId) { + case 1: + PORTD &= ~(1<<6); + break; + case 2: + PORTB &= ~(1<<6); + break; + case 3: + PORTF &= ~(1<<5); + break; + case 4: + PORTB &= ~(1<<4); + break; + case 5: + PORTC &= ~(1<<7); + break; + case 6: + PORTF &= ~(1<<7); + break; + } + } +} + + +void set_layer_led(int layerId) { + // UNUSED +} + +void led_set_layer(int layer); + +void matrix_init_user(void) { + led_init_ports(); + led_set_layer(0); +} + +void matrix_scan_user(void) { +} + +// M6-A LEDs are connected to D6, B6, F5, B4, C7, F7 +void led_init_ports() { + // Switch #1 + DDRD |= (1<<6); + PORTD &= ~(1<<6); + + // Switch #2 + DDRB |= (1<<6); + PORTB &= ~(1<<6); + + // Switch #3 + DDRF |= (1<<5); + PORTF &= ~(1<<5); + + // Switch #4 + DDRB |= (1<<4); + PORTB &= ~(1<<4); + + // Switch #5 + DDRC |= (1<<7); + PORTC &= ~(1<<7); + + // Switch #6 + DDRF |= (1<<7); + PORTF &= ~(1<<7); +} + +void led_set_user(uint8_t usb_led) { + + if (usb_led & (1 << USB_LED_NUM_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_COMPOSE)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_KANA)) { + + } else { + + } + +} + +void led_set_layer(int layer) { + switch(layer) { + case 0: + set_switch_led(1, true); + set_switch_led(2, false); + set_switch_led(3, false); + set_switch_led(4, false); + set_switch_led(5, false); + set_switch_led(6, false); + break; + case 1: + set_switch_led(1, false); + set_switch_led(2, true); + set_switch_led(3, false); + set_switch_led(4, false); + set_switch_led(5, false); + set_switch_led(6, false); + break; + case 2: + set_switch_led(1, false); + set_switch_led(2, false); + set_switch_led(3, true); + set_switch_led(4, false); + set_switch_led(5, false); + set_switch_led(6, false); + break; + case 3: + set_switch_led(1, false); + set_switch_led(2, false); + set_switch_led(3, false); + set_switch_led(4, true); + set_switch_led(5, false); + set_switch_led(6, false); + break; + case 4: + set_switch_led(1, false); + set_switch_led(2, false); + set_switch_led(3, false); + set_switch_led(4, false); + set_switch_led(5, true); + set_switch_led(6, false); + break; + case 5: + set_switch_led(1, false); + set_switch_led(2, false); + set_switch_led(3, false); + set_switch_led(4, false); + set_switch_led(5, false); + set_switch_led(6, true); + break; + default: + set_switch_led(1, true); + set_switch_led(2, true); + set_switch_led(3, true); + set_switch_led(4, true); + set_switch_led(5, true); + set_switch_led(6, true); + break; + } +} + +bool process_record_user (uint16_t keycode, keyrecord_t *record) { + switch ( keycode ) + { + case TO( 0 ): + if ( record->event.pressed ) + { + led_set_layer( 0 ); + } + break; + case TO( 1 ): + if ( record->event.pressed ) + { + led_set_layer( 1 ); + } + break; + case TO( 2 ): + if ( record->event.pressed ) + { + led_set_layer( 2 ); + } + break; + case TO( 3 ): + if ( record->event.pressed ) + { + led_set_layer( 3 ); + } + break; + case TO( 4 ): + if ( record->event.pressed ) + { + led_set_layer( 4 ); + } + break; + case TO( 5 ): + if ( record->event.pressed ) + { + led_set_layer( 5 ); + } + break; + } + return true; +} diff --git a/keyboards/rama/m6_a/keymaps/default/readme.md b/keyboards/rama/m6_a/keymaps/default/readme.md new file mode 100644 index 000000000000..cfb90f650614 --- /dev/null +++ b/keyboards/rama/m6_a/keymaps/default/readme.md @@ -0,0 +1,12 @@ +![RAMA M6-A Layout Image](https://static1.squarespace.com/static/563c788ae4b099120ae219e2/5ab7287f6d2a738f9a719568/5ab7288c1ae6cfa0dae88a59/1521952909569/m6-layout.jpg) + +# Default RAMA M6-A Layout + +This is an example layout to demonstrate layer toggling. + +The top left key will cycle through six layers. + +If LEDs are installed, one of the six LEDs will be on to indicate current layer. + +LEDs should be installed cathode pin on the square pad. + diff --git a/keyboards/rama/m6_a/keymaps/knops/config.h b/keyboards/rama/m6_a/keymaps/knops/config.h new file mode 100644 index 000000000000..999d8876c2b6 --- /dev/null +++ b/keyboards/rama/m6_a/keymaps/knops/config.h @@ -0,0 +1,24 @@ +/* Copyright 2017 Pawnerd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here + +#endif diff --git a/keyboards/rama/m6_a/keymaps/knops/keymap.c b/keyboards/rama/m6_a/keymaps/knops/keymap.c new file mode 100644 index 000000000000..912147f4b4b3 --- /dev/null +++ b/keyboards/rama/m6_a/keymaps/knops/keymap.c @@ -0,0 +1,120 @@ +#include "../../m6_a.h" + +/*KNOPS_MISC*/ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /*KNOPS_KEYMAP*/ + +}; + +void set_led_state(int ledId, bool state) { + if(state) { + switch(ledId) { + case 0: + PORTD |= (1<<6); + break; + case 1: + PORTB |= (1<<6); + break; + case 2: + PORTF |= (1<<5); + break; + case 3: + PORTB |= (1<<4); + break; + case 4: + PORTC |= (1<<7); + break; + case 5: + PORTF |= (1<<7); + break; + } + } else { + switch(ledId) { + case 0: + PORTD &= ~(1<<6); + break; + case 1: + PORTB &= ~(1<<6); + break; + case 2: + PORTF &= ~(1<<5); + break; + case 3: + PORTB &= ~(1<<4); + break; + case 4: + PORTC &= ~(1<<7); + break; + case 5: + PORTF &= ~(1<<7); + break; + } + } +} + +void led_init_ports() { + // Switch #1 + DDRD |= (1<<6); + PORTD &= ~(1<<6); + + // Switch #2 + DDRB |= (1<<6); + PORTB &= ~(1<<6); + + // Switch #3 + DDRF |= (1<<5); + PORTF &= ~(1<<5); + + // Switch #4 + DDRB |= (1<<4); + PORTB &= ~(1<<4); + + // Switch #5 + DDRC |= (1<<7); + PORTC &= ~(1<<7); + + // Switch #6 + DDRF |= (1<<7); + PORTF &= ~(1<<7); +} + +void led_set_layer(int layer) { + + /*KNOPS_SIMPLELED_STATES*/ + +} + +void matrix_init_user(void) { + led_init_ports(); + + led_set_layer(0); + + /*KNOPS_INIT*/ +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + //keyevent_t event = record->event; + + /*KNOPS_MACRO*/ + return NULL; +} + +void matrix_scan_user(void) { + /*KNOPS_SCAN*/ +} + +void led_set_user(uint8_t usb_led) { + + /*KNOPS_FUNCTIONALLED_STATES*/ + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + /*KNOPS_PROCESS_STATE*/ + return NULL; +} + + diff --git a/keyboards/rama/m6_a/keymaps/knops/readme.md b/keyboards/rama/m6_a/keymaps/knops/readme.md new file mode 100644 index 000000000000..58696974ed20 --- /dev/null +++ b/keyboards/rama/m6_a/keymaps/knops/readme.md @@ -0,0 +1,11 @@ +# Default Knops Mini Layout + +![Knops logo](http://knops.io/img/Knops_logo.jpg) + +![Knops Mini Layout Image](https://i.imgur.com/WQBQctm.png) + +This is the keymap that our configurator uses to compile new keymaps and features. Here is a screenshot: + +![Knops Mini Layout Image](https://i.imgur.com/afH1NOt.png) + +As of 12th of february 2018, this tool has not yet been released to the public. You may have a look at our older tool, KBFlasher: [our (almost outdated) configurator tool](http://knops.io/configurator.html) for this. \ No newline at end of file diff --git a/keyboards/rama/m6_a/m6_a.c b/keyboards/rama/m6_a/m6_a.c new file mode 100644 index 000000000000..1c84ea2b83da --- /dev/null +++ b/keyboards/rama/m6_a/m6_a.c @@ -0,0 +1,44 @@ +/* Copyright 2018 Wilba + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "m6_a.h" +/* +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} +*/ diff --git a/keyboards/rama/m6_a/m6_a.h b/keyboards/rama/m6_a/m6_a.h new file mode 100644 index 000000000000..6809c2cc92fa --- /dev/null +++ b/keyboards/rama/m6_a/m6_a.h @@ -0,0 +1,29 @@ +/* Copyright 2018 Wilba + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "quantum.h" + +#ifndef RAMA_M6_A_H +#define RAMA_M6_A_H + +// This a shortcut to help you visually see your layout. +// The first section contains all of the arguments +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + K00, K01, K02, K03, K04, K05 \ +) { \ + { K00, K01, K02, K03, K04, K05 }, \ +} +#endif // RAMA_M6_A diff --git a/keyboards/rama/m6_a/readme.md b/keyboards/rama/m6_a/readme.md new file mode 100644 index 000000000000..5dd2b92e1916 --- /dev/null +++ b/keyboards/rama/m6_a/readme.md @@ -0,0 +1,15 @@ +# RAMA M6-A + +![RAMA M6-A](https://static1.squarespace.com/static/563c788ae4b099120ae219e2/t/59fc7b1053450adf5bf9a852/1515932239307/RAMA-RAMA-M6-DSA-XO-CAPS.73-3_1.jpg?format=1500w) + +A 6-key companion keyboard. [More info at RAMA WORKS](https://rama.works/m6a) + +Keyboard Maintainer: [Wilba6582](https://github.com/Wilba6582) +Hardware Supported: RAMA M6-A PCB +Hardware Availability: [RAMA WORKS Store](https://ramaworks.store/) + +Make example for this keyboard (after setting up your build environment): + + make rama/m6_a:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. \ No newline at end of file diff --git a/keyboards/rama/m6_a/rules.mk b/keyboards/rama/m6_a/rules.mk new file mode 100644 index 000000000000..ca2a2a5f80be --- /dev/null +++ b/keyboards/rama/m6_a/rules.mk @@ -0,0 +1,68 @@ +# MCU name +#MCU = at90usb1286 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= no # USB Nkey Rollover +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE ?= no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 +FAUXCLICKY_ENABLE ?= no # Use buzzer to emulate clicky switches diff --git a/keyboards/rama/readme.md b/keyboards/rama/readme.md new file mode 100644 index 000000000000..4625eb1ef508 --- /dev/null +++ b/keyboards/rama/readme.md @@ -0,0 +1,9 @@ +# RAMA + +Firmware for keyboards designed by [RAMA WORKS](https://rama.works) + +[RAMA M6-A](https://rama.works/m6a) + +[RAMA M60-A](https://rama.works/#/m60-a/) + +[RAMA M10-B](https://www.massdrop.com/buy/rama-m10-a?mode=guest_open) From fa0d97a37fee2c1f91b549d2642e2eb54d40ff8c Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Sat, 24 Mar 2018 21:59:17 -0700 Subject: [PATCH 123/578] info.json configurator support for popular 65% keyboards (#2589) * Support for tada68 ansi layout. Avoiding the iso layout as it doesn't seem correct * whitefox support for configurator * configurator support for jc65 PCB featuring both the qmk and ps2avrgb versions --- keyboards/jc65/v32a/info.json | 20 ++++++++++++++++++++ keyboards/jc65/v32u4/info.json | 16 ++++++++++++++++ keyboards/jc65/v32u4/v32u4.h | 6 +++--- keyboards/tada68/info.json | 16 ++++++++++++++++ keyboards/whitefox/info.json | 20 ++++++++++++++++++++ 5 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 keyboards/jc65/v32a/info.json create mode 100644 keyboards/jc65/v32u4/info.json create mode 100644 keyboards/tada68/info.json create mode 100644 keyboards/whitefox/info.json diff --git a/keyboards/jc65/v32a/info.json b/keyboards/jc65/v32a/info.json new file mode 100644 index 000000000000..185a7d863600 --- /dev/null +++ b/keyboards/jc65/v32a/info.json @@ -0,0 +1,20 @@ +{ + "keyboard_name": "jc65", + "manufacturer": "keyclack", + "identifier": "", + "url": "", + "maintainer": "qmk", + "processor": "atmega32a", + "bootloader": "", + "width": 16, + "height": 5, + "layouts": { + "KEYMAP": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4, "w":1.25}, {"x":7.75, "y":4, "w":2.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] + }, + + "KC_KEYMAP": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4, "w":1.25}, {"x":7.75, "y":4, "w":2.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] + } + } +} diff --git a/keyboards/jc65/v32u4/info.json b/keyboards/jc65/v32u4/info.json new file mode 100644 index 000000000000..3723ec31af0e --- /dev/null +++ b/keyboards/jc65/v32u4/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "jc65", + "manufacturer": "keyclack", + "identifier": "", + "url": "", + "maintainer": "qmk", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "width": 16, + "height": 5, + "layouts": { + "KEYMAP": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4, "w":1.25}, {"x":7.75, "y":4, "w":2.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] + } + } +} diff --git a/keyboards/jc65/v32u4/v32u4.h b/keyboards/jc65/v32u4/v32u4.h index d3900935f98d..ee105b937e5d 100644 --- a/keyboards/jc65/v32u4/v32u4.h +++ b/keyboards/jc65/v32u4/v32u4.h @@ -5,9 +5,9 @@ #define KEYMAP( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ - K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ - K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \ K40, K41, K43, K44, K46, K48, K4A, K4B, K4C, K4D, K4E, K4F \ )\ {\ diff --git a/keyboards/tada68/info.json b/keyboards/tada68/info.json new file mode 100644 index 000000000000..ec222ec2c911 --- /dev/null +++ b/keyboards/tada68/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "Tada68", + "manufacturer": "", + "identifier": "", + "url": "", + "maintainer": "qmk", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "width": 16, + "height": 5, + "layouts": { + "KEYMAP_ANSI": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] + } + } +} diff --git a/keyboards/whitefox/info.json b/keyboards/whitefox/info.json new file mode 100644 index 000000000000..f8cbbfb2b181 --- /dev/null +++ b/keyboards/whitefox/info.json @@ -0,0 +1,20 @@ +{ + "keyboard_name": "Whitefox", + "manufacturer": "Input Club", + "identifier": "", + "url": "", + "maintainer": "qmk", + "processor": "", + "bootloader": "", + "width": 16, + "height": 5, + "layouts": { + "KEYMAP": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] + }, + + "KEYMAP_TRUEFOX": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] + } + } +} From d9c6e7487b27974d96dae59bf30ffa12a7192c21 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Sat, 24 Mar 2018 21:59:36 -0700 Subject: [PATCH 124/578] Refactor/v60 type r keymap/layout (#2593) * Add a proper ANSI layout Changed v60_type_r.h to have a proper ANSI layout Modify keymaps to reflect above changes Fix comments * Add new layout to info.json --- keyboards/v60_type_r/info.json | 10 +++-- keyboards/v60_type_r/keymaps/default/keymap.c | 20 ++++----- keyboards/v60_type_r/keymaps/vimouse/keymap.c | 8 ++-- keyboards/v60_type_r/v60_type_r.h | 43 ++++++++++++++++++- 4 files changed, 62 insertions(+), 19 deletions(-) diff --git a/keyboards/v60_type_r/info.json b/keyboards/v60_type_r/info.json index 0ba579c15649..cd88d6ae53a4 100644 --- a/keyboards/v60_type_r/info.json +++ b/keyboards/v60_type_r/info.json @@ -9,8 +9,12 @@ "width": 15, "height": 5, "layouts": { - "KEYMAP": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] - } + "LAYOUT_all": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + }, + + "LAYOUT_ansi": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + } } } diff --git a/keyboards/v60_type_r/keymaps/default/keymap.c b/keyboards/v60_type_r/keymaps/default/keymap.c index e277254b9e44..254b3aa29940 100644 --- a/keyboards/v60_type_r/keymaps/default/keymap.c +++ b/keyboards/v60_type_r/keymaps/default/keymap.c @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -/* This is the default layout provided by the KBP V60 Type R +/* This is the default ANSI layout provided by the KBP V60 Type R * as depicted in their manual and on the stock keycaps. */ #include "v60_type_r.h" @@ -34,11 +34,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctrl|Gui |Alt | Space |Fn0 |Gui |App|Ctrl| * `-----------------------------------------------------------' */ - [0] = KEYMAP( - 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_NO, KC_BSPC, \ + [0] = LAYOUT_ansi( + 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_BSPC, \ 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_BSLS, \ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ - KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RGUI, KC_APP, KC_RCTL), /* Keymap 1: FN Layer @@ -54,12 +54,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | * `-----------------------------------------------------------' */ - [1] = KEYMAP( - KC_GRV, 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_NO, KC_DEL, \ - KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_INS, \ - KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_TRNS, \ - KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_NO, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS), + [1] = LAYOUT_ansi( + KC_GRV, 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_DEL, \ + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_INS, \ + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; diff --git a/keyboards/v60_type_r/keymaps/vimouse/keymap.c b/keyboards/v60_type_r/keymaps/vimouse/keymap.c index 1dd9f7eaa845..3deaae98c56a 100644 --- a/keyboards/v60_type_r/keymaps/vimouse/keymap.c +++ b/keyboards/v60_type_r/keymaps/vimouse/keymap.c @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctrl|Alt |Gui | Space/L3 |Gui |Alt |Ctrl|Fn1| * `-----------------------------------------------------------' */ - [0] = KEYMAP( + [0] = KEYMAP_ALL( 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, XXXXX, KC_BSPC, \ 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_BSLS, \ LT(1, KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ @@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | * `-----------------------------------------------------------' */ - [1] = KEYMAP( + [1] = KEYMAP_ALL( KC_GRV, 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_DEL, \ _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_PSCR, KC_SLCK, KC_PAUS, KC_INS, \ _____, _____, _____, _____, _____, _____, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_HOME, KC_PGUP, _____, \ @@ -70,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | * `-----------------------------------------------------------' */ - [2] = KEYMAP( + [2] = KEYMAP_ALL( _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, \ _____, _____, _____, _____, _____, _____, _____, KC_MS_WH_UP, KC_MS_WH_DOWN, _____, _____, _____, _____, _____, \ _____, _____, _____, _____, _____, _____, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT, _____, _____, _____, \ @@ -89,7 +89,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | * `-----------------------------------------------------------' */ - [3] = KEYMAP( + [3] = KEYMAP_ALL( _____, BL_TOGG, BL_STEP, RGB_TOG, RGB_M_P, RGB_M_B, RGB_M_R, _____, _____, _____, _____, _____, _____, _____, _____, \ _____, RGB_RI, RGB_GI, RGB_BI, RGB_HUI, RGB_SAI, RGB_VAI, _____, _____, _____, _____, _____, _____, _____, \ _____, RGB_RD, RGB_GD, RGB_BD, RGB_HUD, RGB_SAD, RGB_VAD, _____, _____, _____, _____, _____, _____, \ diff --git a/keyboards/v60_type_r/v60_type_r.h b/keyboards/v60_type_r/v60_type_r.h index 180294d79e08..37d0a573e21e 100644 --- a/keyboards/v60_type_r/v60_type_r.h +++ b/keyboards/v60_type_r/v60_type_r.h @@ -39,7 +39,7 @@ enum my_keycodes { // The first section contains all of the arguments // The second converts the arguments into a two-dimensional array -/* Default layout +/* LAYOUT_all * ,-----------------------------------------------------------------------------------------. * | K00 | K01 | K02 | K03 | K04 | K05 | K06 | K07 | K08 | K09 | K0A | K0B | K0C | K0D | K0E | * |-----------------------------------------------------------------------------------------+ @@ -53,7 +53,9 @@ enum my_keycodes { * `-----------------------------------------------------------------------------------------' */ -#define KEYMAP( \ +// KBP V60 Type R with ALL possible layouts + +#define KEYMAP_ALL( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ @@ -70,4 +72,41 @@ enum my_keycodes { { k40, k41, k42, k43, k44, k45, k46, k47 } \ } + +/* LAYOUT_ansi + * ,-----------------------------------------------------------------------------------------. + * | K00 | K01 | K02 | K03 | K04 | K05 | K06 | K07 | K08 | K09 | K0A | K0B | K0C | K0E | + * |-----------------------------------------------------------------------------------------+ + * | K10 | K11 | K12 | K13 | K14 | K15 | K16 | K17 | K18 | K19 | K1A | K1B | K1C | K1D | + * |-----------------------------------------------------------------------------------------+ + * | K20 | K21 | K22 | K23 | K24 | K25 | K26 | K27 | K28 | K29 | K2A | K2B | K2C | + * |-----------------------------------------------------------------------------------------+ + * | K30 | K32 | K33 | K34 | K35 | K36 | K37 | K38 | K39 | K3A | K3B | K3C | + * |-----------------------------------------------------------------------------------------+ + * | K40 | K41 | K42 | K43 | K44 | K45 | K46 | K47 | + * `-----------------------------------------------------------------------------------------' + */ + + // KBP V60 Type R with ANSI layout + + #define KEYMAP_ANSI( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ + k40, k41, k42, k43, k44, k45, k46, k47 \ + ) { \ + { k00, k01, k02, k03, k04, k05, k06, k07 }, \ + { k08, k09, k0a, k0b, k0c, KC_NO, k0e, k10 }, \ + { k11, k12, k13, k14, k15, k16, k17, k18 }, \ + { k19, k1a, k1b, k1c, k1d, k20, k21, k22 }, \ + { k23, k24, k25, k26, k27, k28, k29, k2a }, \ + { k2b, k2c, k30, KC_NO, k32, k33, k34, k35 }, \ + { k36, k37, k38, k39, k3a, k3b, k3c, KC_NO }, \ + { k40, k41, k42, k43, k44, k45, k46, k47 } \ + } + +#define LAYOUT_all KEYMAP_ALL +#define LAYOUT_ansi KEYMAP_ANSI + #endif From 34580baccf6882d90c6267f8920c5105af811529 Mon Sep 17 00:00:00 2001 From: "U-LANDSRAAD\\drashna" Date: Sun, 25 Mar 2018 00:36:53 -0700 Subject: [PATCH 125/578] Fix #1566 - NKRO reseting issue --- quantum/keycode_config.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/quantum/keycode_config.c b/quantum/keycode_config.c index eb39c8fe001f..0dc5105d2186 100644 --- a/quantum/keycode_config.c +++ b/quantum/keycode_config.c @@ -90,7 +90,6 @@ uint16_t keycode_config(uint16_t keycode) { } uint8_t mod_config(uint8_t mod) { - keymap_config.raw = eeconfig_read_keymap(); if (keymap_config.swap_lalt_lgui) { if ((mod & MOD_RGUI) == MOD_LGUI) { mod &= ~MOD_LGUI; @@ -115,4 +114,4 @@ uint8_t mod_config(uint8_t mod) { } return mod; -} \ No newline at end of file +} From b23d2a68dc935a9acd709b703d33fbebdd2a18e5 Mon Sep 17 00:00:00 2001 From: "U-LANDSRAAD\\drashna" Date: Sun, 25 Mar 2018 09:53:56 -0700 Subject: [PATCH 126/578] add syscalls.c if autoshift is enabled, to fix compile issue on ChibiOS --- tmk_core/common.mk | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tmk_core/common.mk b/tmk_core/common.mk index f120735250fe..3e407f1573c5 100644 --- a/tmk_core/common.mk +++ b/tmk_core/common.mk @@ -30,6 +30,9 @@ endif ifeq ($(PLATFORM),CHIBIOS) TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/printf.c TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/eeprom.c + ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes) + TMK_COMMON_SRC += $(CHIBIOS)/os/various/syscalls.c + endif endif ifeq ($(PLATFORM),TEST) From f67950df27c5903254c9fac1d6e929599f813d6d Mon Sep 17 00:00:00 2001 From: "U-LANDSRAAD\\drashna" Date: Sat, 24 Mar 2018 14:06:58 -0700 Subject: [PATCH 127/578] Ignore users folder for Travis tagging --- util/travis_compiled_push.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/util/travis_compiled_push.sh b/util/travis_compiled_push.sh index 6be124122057..eac7e27d5fba 100644 --- a/util/travis_compiled_push.sh +++ b/util/travis_compiled_push.sh @@ -20,11 +20,11 @@ increment_version () { part[2]=$((part[2] + 1)) new="${part[*]}" echo -e "${new// /.}" -} +} git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} -NEFM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/)' | grep -Ev '^(docs/)' | wc -l) +NEFM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/)' | grep -Ev '^(docs/)' | grep -Ev '^(users/)' | wc -l) if [[ $NEFM -gt 0 ]] ; then echo "Essential files modified." git fetch --tags @@ -49,7 +49,7 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then ssh-add -D eval `ssh-agent -s` ssh-add id_rsa_qmk.fm - + # don't delete files in case not all keyboards are built # rm -f compiled/*.hex @@ -60,6 +60,6 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then for file in ../qmk_firmware/keyboards/*/*/*/*/keymaps/*/*_default.hex; do mv -v "$file" "compiled/${file##*/}" || true; done bash _util/generate_keyboard_page.sh git add -A - git commit -m "generated from qmk/qmk_firmware@${rev}" + git commit -m "generated from qmk/qmk_firmware@${rev}" git push git@github.com:qmk/qmk.fm.git fi From e72cad44fa5f695c63373da2cc6fd0e44c361ed8 Mon Sep 17 00:00:00 2001 From: "U-LANDSRAAD\\drashna" Date: Sat, 24 Mar 2018 18:34:34 -0700 Subject: [PATCH 128/578] Add Layouts to exclusion --- util/travis_compiled_push.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/travis_compiled_push.sh b/util/travis_compiled_push.sh index eac7e27d5fba..ae2a747448f1 100644 --- a/util/travis_compiled_push.sh +++ b/util/travis_compiled_push.sh @@ -24,7 +24,7 @@ increment_version () { git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} -NEFM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/)' | grep -Ev '^(docs/)' | grep -Ev '^(users/)' | wc -l) +NEFM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/)' | grep -Ev '^(docs/)' | grep -Ev '^(users/)' | grep -Ev '^(layouts/)' | wc -l) if [[ $NEFM -gt 0 ]] ; then echo "Essential files modified." git fetch --tags From c4f9b8f297e09c51f9ca751b62de6f5290e244e0 Mon Sep 17 00:00:00 2001 From: skullY Date: Fri, 23 Mar 2018 22:40:12 -0700 Subject: [PATCH 129/578] make new_project.sh work correctly on osx too --- util/new_project.sh | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/util/new_project.sh b/util/new_project.sh index 11218440ba13..0c28feb4ae40 100755 --- a/util/new_project.sh +++ b/util/new_project.sh @@ -7,16 +7,23 @@ if [ -z "$1" ]; then exit 1 fi +if [ -e "keyboards/$1" ]; then + echo "Error! keyboards/$1 already exists!" + exit 1 +fi + cd "$(dirname "$0")/.." KEYBOARD=$1 KEYBOARD_UPPERCASE=$(echo $1 | awk '{print toupper($0)}') +KEYBOARD_NAME=$(basename $1) +KEYBOARD_NAME_UPPERCASE=$(echo $KEYBOARD_NAME | awk '{print toupper($0)}') cp -r quantum/template keyboards/$KEYBOARD -mv keyboards/$KEYBOARD/template.c keyboards/$KEYBOARD/$KEYBOARD.c -mv keyboards/$KEYBOARD/template.h keyboards/$KEYBOARD/$KEYBOARD.h -find keyboards/${KEYBOARD} -type f -exec sed -i'' -e "s;%KEYBOARD%;$KEYBOARD;g" {} \; -find keyboards/${KEYBOARD} -type f -exec sed -i'' -e "s;%KEYBOARD_UPPERCASE%;$KEYBOARD_UPPERCASE;g" {} \; +mv keyboards/${KEYBOARD}/template.c keyboards/${KEYBOARD}/${KEYBOARD_NAME}.c +mv keyboards/${KEYBOARD}/template.h keyboards/${KEYBOARD}/${KEYBOARD_NAME}.h +find keyboards/${KEYBOARD} -type f -exec sed -i '' -e "s;%KEYBOARD%;${KEYBOARD_NAME};g" {} \; +find keyboards/${KEYBOARD} -type f -exec sed -i '' -e "s;%KEYBOARD_UPPERCASE%;${KEYBOARD_NAME_UPPERCASE};g" {} \; echo "######################################################" echo "# /keyboards/$KEYBOARD project created. To start" From 3d587b1d2f01265ef25d9f328c157886afb0c579 Mon Sep 17 00:00:00 2001 From: RobertDhaene Date: Sun, 25 Mar 2018 12:56:36 -0700 Subject: [PATCH 130/578] Merge in some custom keymaps from forked repository (#2605) * Inital layout * Fix the backspace * add a number pad * move the backlight to the adjust layer; move ctrl and delete. * Update from main repo * Add initial files for custom keymap * Light keymap mod * Change the submodules to match the upstream fork's master branch --- keyboards/iris/keymaps/default/keymap.c | 13 +- keyboards/iris/keymaps/rdhaene/config.h | 24 +++ keyboards/iris/keymaps/rdhaene/keymap.c | 146 +++++++++++++++ keyboards/iris/keymaps/rdhaene/rules.mk | 6 + keyboards/planck/keymaps/rodhaene/config.h | 11 ++ keyboards/planck/keymaps/rodhaene/keymap.c | 197 ++++++++++++++++++++ keyboards/planck/keymaps/rodhaene/readme.md | 2 + keyboards/planck/keymaps/rodhaene/rules.mk | 20 ++ 8 files changed, 409 insertions(+), 10 deletions(-) create mode 100644 keyboards/iris/keymaps/rdhaene/config.h create mode 100644 keyboards/iris/keymaps/rdhaene/keymap.c create mode 100644 keyboards/iris/keymaps/rdhaene/rules.mk create mode 100644 keyboards/planck/keymaps/rodhaene/config.h create mode 100644 keyboards/planck/keymaps/rodhaene/keymap.c create mode 100644 keyboards/planck/keymaps/rodhaene/readme.md create mode 100644 keyboards/planck/keymaps/rodhaene/rules.mk diff --git a/keyboards/iris/keymaps/default/keymap.c b/keyboards/iris/keymaps/default/keymap.c index 24ef99d20ec8..d71748b34885 100644 --- a/keyboards/iris/keymaps/default/keymap.c +++ b/keyboards/iris/keymaps/default/keymap.c @@ -41,11 +41,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----| |----+----+----+----+----+----| TAB , Q , W , E , R , T , Y , U , I , O , P ,DEL , //|----+----+----+----+----+----| |----+----+----+----+----+----| - RASE, A , S , D , F , G , H , J , K , L ,SCLN,QUOT, + LSFT, A , S , D , F , G , H , J , K , L ,SCLN,QUOT, //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| - LSFT, Z , X , C , V , B ,SPC , ENT , N , M ,COMM,DOT ,SLSH,RSFT, + LCTL, Z , X , C , V , B ,HOME, END , N , M ,COMM,DOT ,SLSH,RSFT, //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' - LCTL,LOWR,SPC , ENT ,LGUI,LALT + LGUI,LOWR,ENT , SPC ,RASE,LALT // `----+----+----' `----+----+----' ), @@ -93,10 +93,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -#ifdef AUDIO_ENABLE -float tone_qwerty[][2] = SONG(QWERTY_SOUND); -#endif - void persistent_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); @@ -106,9 +102,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QWERTY: if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_SONG(tone_qwerty); - #endif persistent_default_layer_set(1UL<<_QWERTY); } return false; diff --git a/keyboards/iris/keymaps/rdhaene/config.h b/keyboards/iris/keymaps/rdhaene/config.h new file mode 100644 index 000000000000..3c4b6cfd2728 --- /dev/null +++ b/keyboards/iris/keymaps/rdhaene/config.h @@ -0,0 +1,24 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +/* Use I2C or Serial, not both */ + +// #define USE_SERIAL +#define USE_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 12 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +#endif diff --git a/keyboards/iris/keymaps/rdhaene/keymap.c b/keyboards/iris/keymaps/rdhaene/keymap.c new file mode 100644 index 000000000000..24ef99d20ec8 --- /dev/null +++ b/keyboards/iris/keymaps/rdhaene/keymap.c @@ -0,0 +1,146 @@ +#include "iris.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +#define _QWERTY 0 +#define _LOWER 1 +#define _RAISE 2 +#define _ADJUST 16 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + ADJUST, +}; + +#define KC_ KC_TRNS +#define _______ KC_TRNS + +#define KC_LOWR LOWER +#define KC_RASE RAISE +#define KC_RST RESET +#define KC_BL_S BL_STEP +#define KC_DBUG DEBUG +#define KC_RTOG RGB_TOG +#define KC_RMOD RGB_MOD +#define KC_RHUI RGB_HUI +#define KC_RHUD RGB_HUD +#define KC_RSAI RGB_SAI +#define KC_RSAD RGB_SAD +#define KC_RVAI RGB_VAI +#define KC_RVAD RGB_VAD + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + TAB , Q , W , E , R , T , Y , U , I , O , P ,DEL , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + RASE, A , S , D , F , G , H , J , K , L ,SCLN,QUOT, + //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + LSFT, Z , X , C , V , B ,SPC , ENT , N , M ,COMM,DOT ,SLSH,RSFT, + //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + LCTL,LOWR,SPC , ENT ,LGUI,LALT + // `----+----+----' `----+----+----' + ), + + [_LOWER] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,BSPC, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + RST , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + DEL , ,LEFT,RGHT, UP ,LBRC, RBRC, P4 , P5 , P6 ,PLUS,PIPE, + //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + BL_S, , , ,DOWN,LCBR,LPRN, RPRN,RCBR, P1 , P2 , P3 ,MINS, , + //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + , ,DEL , DEL , , P0 + // `----+----+----' `----+----+----' + ), + + [_RAISE] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + ,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN, , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + ,MPRV,MNXT,VOLU,PGUP,UNDS, EQL ,HOME, , , ,BSLS, + //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + MUTE,MSTP,MPLY,VOLD,PGDN,MINS, , ,PLUS,END , , , , , + //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + , , , , , + // `----+----+----' `----+----+----' + ), + + [_ADJUST] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + , , , , , , , , , , , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + RTOG,RMOD,RHUI,RSAI,RVAI, , , , , , , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + ,DBUG,RHUD,RSAD,RVAD, , , , , , , , + //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + BL_S,RST , , , , , , , , , , , , , + //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + , , , , , + // `----+----+----' `----+----+----' + ) + +}; + +#ifdef AUDIO_ENABLE +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +#endif + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_qwerty); + #endif + persistent_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + break; + } + return true; +} diff --git a/keyboards/iris/keymaps/rdhaene/rules.mk b/keyboards/iris/keymaps/rdhaene/rules.mk new file mode 100644 index 000000000000..d87ba7913364 --- /dev/null +++ b/keyboards/iris/keymaps/rdhaene/rules.mk @@ -0,0 +1,6 @@ +RGBLIGHT_ENABLE = no +BACKLIGHT_ENABLE = yes + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/planck/keymaps/rodhaene/config.h b/keyboards/planck/keymaps/rodhaene/config.h new file mode 100644 index 000000000000..770350f05766 --- /dev/null +++ b/keyboards/planck/keymaps/rodhaene/config.h @@ -0,0 +1,11 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PLANCK_SOUND) + +#endif + +#endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/rodhaene/keymap.c b/keyboards/planck/keymaps/rodhaene/keymap.c new file mode 100644 index 000000000000..b8a4b7f18422 --- /dev/null +++ b/keyboards/planck/keymaps/rodhaene/keymap.c @@ -0,0 +1,197 @@ +/* Copyright 2018 Robert Dhaene + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "planck.h" +#include "action_layer.h" + +extern keymap_config_t keymap_config; + +enum planck_layers { + _QWERTY, + _NUMPAD, + _LOWER, + _RAISE, + _ADJUST +}; + +enum planck_keycodes { + QWERTY = SAFE_RANGE, + NUMPAD, + LOWER, + RAISE, + BACKLIT, + EXT_NUMPAD +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Tab | A | S | D | F | G | H | J | K | L | ; |Delete| + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | | Alt | GUI |Lower |Enter |Space |Raise | Left | Up | Down |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = { + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_DEL}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT }, + {KC_LCTL, _______, KC_LALT, KC_LGUI, LOWER, KC_ENT, KC_SPC, RAISE, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT} +}, + +/* Number Pad + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | 7 | 8 | 9 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | | 4 | 5 | 6 |Enter | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | 1 | 2 | 3 | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | | | | | | 0 | . | | | + * `-----------------------------------------------------------------------------------' + */ +[_NUMPAD] = { + {_______, _______, _______, _______, _______, _______, _______, _______, KC_7 , KC_8 , KC_9 , KC_BSPC }, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_4 , KC_5 , KC_6 , KC_ENT }, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_1 , KC_2 , KC_3 , _______}, + {EXT_NUMPAD, _______, _______, _______, _______, _______, _______, _______, KC_0 , KC_DOT , _______, _______} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Numpad| | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Brite | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {_______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL }, + {_______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, NUMPAD, _______, _______, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______}, + {BACKLIT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + PORTE &= ~(1<<6); + } else { + unregister_code(KC_RSFT); + PORTE |= (1<<6); + } + return false; + break; + case NUMPAD: + if(record->event.pressed) { + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_NUMPAD); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + break; + case EXT_NUMPAD: + if(record->event.pressed) { + layer_off(_NUMPAD); + } + return false; + break; + } + return true; +} diff --git a/keyboards/planck/keymaps/rodhaene/readme.md b/keyboards/planck/keymaps/rodhaene/readme.md new file mode 100644 index 000000000000..de9680b49851 --- /dev/null +++ b/keyboards/planck/keymaps/rodhaene/readme.md @@ -0,0 +1,2 @@ +# The Default Planck Layout + diff --git a/keyboards/planck/keymaps/rodhaene/rules.mk b/keyboards/planck/keymaps/rodhaene/rules.mk new file mode 100644 index 000000000000..7db994581a08 --- /dev/null +++ b/keyboards/planck/keymaps/rodhaene/rules.mk @@ -0,0 +1,20 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. +API_SYSEX_ENABLE = no + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend \ No newline at end of file From a09a042b8fe6a0369a7c479168492125efa24e59 Mon Sep 17 00:00:00 2001 From: Joshua Coffey <31978203+ArtfulDodge@users.noreply.github.com> Date: Sun, 25 Mar 2018 15:58:40 -0400 Subject: [PATCH 131/578] New keymap and more songs (#2609) * Added some new songs and my own keymap * Made Dodger keymap safe to use with backlight disabled * edited layer switching and added more songs * changed keymap to lowercase --- keyboards/planck/keymaps/dodger/config.h | 90 ++++++ keyboards/planck/keymaps/dodger/keymap.c | 338 ++++++++++++++++++++++ keyboards/planck/keymaps/dodger/readme.md | 2 + keyboards/planck/keymaps/dodger/rules.mk | 70 +++++ quantum/audio/song_list.h | 145 +++++++++- 5 files changed, 641 insertions(+), 4 deletions(-) create mode 100644 keyboards/planck/keymaps/dodger/config.h create mode 100644 keyboards/planck/keymaps/dodger/keymap.c create mode 100644 keyboards/planck/keymaps/dodger/readme.md create mode 100644 keyboards/planck/keymaps/dodger/rules.mk diff --git a/keyboards/planck/keymaps/dodger/config.h b/keyboards/planck/keymaps/dodger/config.h new file mode 100644 index 000000000000..c70acfdc9942 --- /dev/null +++ b/keyboards/planck/keymaps/dodger/config.h @@ -0,0 +1,90 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define MANUFACTURER OLKB +#define PRODUCT Planck +#define DESCRIPTION A compact ortholinear keyboard + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* Planck PCB default pin-out */ +#define MATRIX_ROW_PINS { D0, D5, B5, B6 } +#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } +#define UNUSED_PINS + +#define QMK_ESC_OUTPUT F1 +#define QMK_ESC_INPUT D5 +#define QMK_LED E6 +#define QMK_SPEAKER C6 + +#define AUDIO_VOICES +#define C6_AUDIO + +#define BACKLIGHT_PIN B7 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 15 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#define TAPPING_TERM 200 +#endif diff --git a/keyboards/planck/keymaps/dodger/keymap.c b/keyboards/planck/keymaps/dodger/keymap.c new file mode 100644 index 000000000000..dd1e236e0324 --- /dev/null +++ b/keyboards/planck/keymaps/dodger/keymap.c @@ -0,0 +1,338 @@ +/* Copyright 2015-2017 Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "planck.h" +#include "action_layer.h" + +extern keymap_config_t keymap_config; +bool isGame = false; +bool isMusic = false; + + +enum planck_layers { + _COLEMAK, + _GAME, + _MUSIC, + _LOWER, + _RAISE, + _ADJUST, +}; + +enum planck_keycodes { + COLEMAK = SAFE_RANGE, + GCTOGG, + MCTOGG, + LOWER, + RAISE, + LENNY, + COMMENTHEAD, + RICKANDMORT, + MARIO, + MARIOE, + OVERWATCH, + DOOM, + DISNEY, + NUMBERONE, + CABBAGE, + OLDSPICE, +}; + +enum { + TD_SPC_ENT = 0, + TD_ESC_CAPS +}; + +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_SPC_ENT] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT), + [TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS) +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | = | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / | - | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt |lenny |Lower | shift|space |Raise | macro|macro2|macro3|QWERTY| + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_EQL}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS}, + {KC_LCTL, KC_LGUI, KC_LALT, LENNY, LOWER, RSFT_T(KC_BSPC), TD(TD_SPC_ENT), RAISE, COMMENTHEAD, RICKANDMORT, KC_LEFT, KC_RGHT} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | | | | [ | ] | | ( | ) | { | } | | + | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | left | down | up | right| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | _ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {_______, _______, _______, KC_LBRC, KC_RBRC, _______, KC_LPRN, KC_RPRN, KC_LCBR, KC_RCBR, _______, S(KC_EQL)}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, KC_UNDS}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | ! | @ | # | $ | % | ^ | & | * | ( | ) | DEL | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | bl- | bl+ | GCTG | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, + {KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, MCTOGG, GCTOGG} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {_______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL }, + {_______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, COLEMAK, _______, _______, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, _______, _______, TERM_ON, TERM_OFF, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +}, + +[_GAME] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_EQL}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS}, + {KC_LCTL, RAISE, KC_LALT, LOWER, KC_SPC, RSFT_T(KC_BSPC), TD(TD_SPC_ENT), RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT} +}, + +[_MUSIC] = { + {MARIO, MARIOE, OVERWATCH, DOOM, DISNEY, NUMBERONE, CABBAGE, OLDSPICE, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + +}; + +#ifdef AUDIO_ENABLE + float guitar[][2] = SONG(GUITAR_SOUND); + float mario[][2] = SONG(MARIO_THEME); + float marioe[][2] = SONG(MARIO_GAMEOVER); + float overwatch[][2] = SONG(OVERWATCH_THEME); + float doom[][2] = SONG(E1M1_DOOM); + float disney[][2] = SONG(DISNEY_SONG); + float numberone[][2] = SONG(NUMBER_ONE); + float cabbage[][2] = SONG(CABBAGE_SONG); + float oldspice[][2] = SONG(OLD_SPICE); +#endif + +void setLayer(int layer) { + if (layer == _COLEMAK) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_SONG(marioe); + #endif + set_single_persistent_default_layer(_COLEMAK); + #ifdef BACKLIGHT_ENABLE + backlight_set(0); + #endif + } else if (layer == _GAME) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_SONG(mario); + #endif + set_single_persistent_default_layer(_GAME); + #ifdef BACKLIGHT_ENABLE + backlight_set(15); + #endif + } else if (layer == _MUSIC) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_SONG(guitar); + #endif + set_single_persistent_default_layer(_MUSIC); + #ifdef BACKLIGHT_ENABLE + backlight_set(1); + #endif + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + #ifdef BACKLIGHT_ENABLE + backlight_set(0); + #endif + } + return false; + break; + case GCTOGG: + if (record->event.pressed) { + if (isGame) { + if (isMusic) + setLayer(_MUSIC); + else + setLayer(_COLEMAK); + isGame = false; + } else { + setLayer(_GAME); + isGame = true; + } + } + return false; + break; + case MCTOGG: + if (record->event.pressed) { + if (isMusic) { + if (isGame) + setLayer(_GAME); + else + setLayer(_COLEMAK); + isMusic = false; + } else { + setLayer(_MUSIC); + isMusic = true; + } + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case LENNY: + if (record->event.pressed) { + SEND_STRING("()"); + } + return false; break; + case COMMENTHEAD: + if (record->event.pressed) { + SEND_STRING("// ---------------------------------------------------------------"); + } + return false; break; + case RICKANDMORT: + if (record->event.pressed) { + SEND_STRING("// ***************************************************************"); + } + return false; break; + case MARIO: + if(record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(mario); + #endif + } + return false; break; + case MARIOE: + if(record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(marioe); + #endif + } + return false; break; + case OVERWATCH: + if(record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(overwatch); + #endif + } + return false; break; + case DOOM: + if(record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(doom); + #endif + } + return false; break; + case DISNEY: + if(record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(disney); + #endif + } + return false; break; + case NUMBERONE: + if(record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(numberone); + #endif + } + return false; break; + case CABBAGE: + if(record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(cabbage); + #endif + } + return false; break; + case OLDSPICE: + if(record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(oldspice); + #endif + } + return false; break; + } + return true; +} + +void matrix_init_user(void) { + set_single_persistent_default_layer(_COLEMAK); + isGame = false; + #ifdef BACKLIGHT_ENABLE + backlight_level(0); + #endif +} diff --git a/keyboards/planck/keymaps/dodger/readme.md b/keyboards/planck/keymaps/dodger/readme.md new file mode 100644 index 000000000000..01021081de7c --- /dev/null +++ b/keyboards/planck/keymaps/dodger/readme.md @@ -0,0 +1,2 @@ +# dodger + diff --git a/keyboards/planck/keymaps/dodger/rules.mk b/keyboards/planck/keymaps/dodger/rules.mk new file mode 100644 index 000000000000..981a3e82be96 --- /dev/null +++ b/keyboards/planck/keymaps/dodger/rules.mk @@ -0,0 +1,70 @@ +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Bootloader +# This definition is optional, and if your keyboard supports multiple bootloaders of +# different sizes, comment this out, and the correct address will be loaded +# automatically (+60). See bootloader.mk for all options. +BOOTLOADER = atmel-dfu + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. +API_SYSEX_ENABLE = no +TAP_DANCE_ENABLE = yes + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +LAYOUTS = ortho_4x12 planck_mit planck_grid + +DEFAULT_FOLDER = planck/rev5 diff --git a/quantum/audio/song_list.h b/quantum/audio/song_list.h index d52f45d16ce2..a66c4d864455 100644 --- a/quantum/audio/song_list.h +++ b/quantum/audio/song_list.h @@ -188,7 +188,14 @@ Q__NOTE(_B5 ), \ Q__NOTE(_CS6), \ Q__NOTE(_D6 ), \ - Q__NOTE(_E6 ), + Q__NOTE(_E6 ), + +#define MINOR_SOUND \ + Q__NOTE(_A5 ), \ + Q__NOTE(_B5 ), \ + Q__NOTE(_C6 ), \ + Q__NOTE(_D6 ), \ + Q__NOTE(_E6 ), #define GUITAR_SOUND \ Q__NOTE(_E5 ), \ @@ -272,12 +279,142 @@ HD_NOTE(_C6), #define ZELDA_TREASURE \ - Q__NOTE(_A4), \ + Q__NOTE(_A4 ), \ Q__NOTE(_AS4), \ - Q__NOTE(_B4), \ - HD_NOTE(_C5), \ + Q__NOTE(_B4 ), \ + HD_NOTE(_C5 ), \ #define TERMINAL_SOUND \ E__NOTE(_C5 ) +#define OVERWATCH_THEME \ + HD_NOTE(_A4 ), \ + Q__NOTE(_E4 ), \ + Q__NOTE(_A4 ), \ + HD_NOTE(_B4 ), \ + Q__NOTE(_E4 ), \ + Q__NOTE(_B4 ), \ + W__NOTE(_CS5), + +#define MARIO_THEME \ + Q__NOTE(_E5), \ + H__NOTE(_E5), \ + H__NOTE(_E5), \ + Q__NOTE(_C5), \ + H__NOTE(_E5), \ + W__NOTE(_G5), \ + Q__NOTE(_G4), + +#define MARIO_GAMEOVER \ + HD_NOTE(_C5 ), \ + HD_NOTE(_G4 ), \ + H__NOTE(_E4 ), \ + H__NOTE(_A4 ), \ + H__NOTE(_B4 ), \ + H__NOTE(_A4 ), \ + H__NOTE(_AF4), \ + H__NOTE(_BF4), \ + H__NOTE(_AF4), \ + WD_NOTE(_G4 ), + +#define E1M1_DOOM \ + Q__NOTE(_E3 ), \ + Q__NOTE(_E3 ), \ + Q__NOTE(_E4 ), \ + Q__NOTE(_E3 ), \ + Q__NOTE(_E3 ), \ + Q__NOTE(_D4 ), \ + Q__NOTE(_E3 ), \ + Q__NOTE(_E3 ), \ + Q__NOTE(_C4 ), \ + Q__NOTE(_E3 ), \ + Q__NOTE(_E3 ), \ + Q__NOTE(_BF3), \ + Q__NOTE(_E3 ), \ + Q__NOTE(_E3 ), \ + Q__NOTE(_B3 ), \ + Q__NOTE(_C4 ), \ + Q__NOTE(_E3 ), \ + Q__NOTE(_E3 ), \ + Q__NOTE(_E4 ), \ + Q__NOTE(_E3 ), \ + Q__NOTE(_E3 ), \ + Q__NOTE(_D4 ), \ + Q__NOTE(_E3 ), \ + Q__NOTE(_E3 ), \ + Q__NOTE(_C4 ), \ + Q__NOTE(_E3 ), \ + Q__NOTE(_E3 ), \ + H__NOTE(_BF3), + +#define DISNEY_SONG \ + H__NOTE(_G3 ), \ + H__NOTE(_G4 ), \ + H__NOTE(_F4 ), \ + H__NOTE(_E4 ), \ + H__NOTE(_CS4), \ + H__NOTE(_D4 ), \ + W__NOTE(_A4 ), \ + H__NOTE(_B3 ), \ + H__NOTE(_B4 ), \ + H__NOTE(_A4 ), \ + H__NOTE(_G4 ), \ + H__NOTE(_FS4), \ + H__NOTE(_G4 ), \ + W__NOTE(_C5 ), \ + H__NOTE(_D5 ), \ + H__NOTE(_C5 ), \ + H__NOTE(_B4 ), \ + H__NOTE(_A4 ), \ + H__NOTE(_G4 ), \ + H__NOTE(_F4 ), \ + H__NOTE(_E4 ), \ + H__NOTE(_D4 ), \ + W__NOTE(_A4 ), \ + W__NOTE(_B3 ), \ + W__NOTE(_C4 ), + +#define NUMBER_ONE \ + HD_NOTE(_F4 ), \ + Q__NOTE(_C5 ), \ + E__NOTE(_B4 ), \ + E__NOTE(_C5 ), \ + E__NOTE(_B4 ), \ + E__NOTE(_C5 ), \ + Q__NOTE(_B4 ), \ + Q__NOTE(_C5 ), \ + H__NOTE(_AF4), \ + HD_NOTE(_F4 ), \ + Q__NOTE(_F4 ), \ + Q__NOTE(_AF4), \ + Q__NOTE(_C5 ), \ + H__NOTE(_DF5), \ + H__NOTE(_AF4), \ + H__NOTE(_DF5), \ + H__NOTE(_EF5), \ + Q__NOTE(_C5 ), \ + Q__NOTE(_DF5), \ + Q__NOTE(_C5 ), \ + Q__NOTE(_DF5), \ + H__NOTE(_C5 ), + +#define CABBAGE_SONG \ + H__NOTE(_C4), \ + H__NOTE(_A4), \ + H__NOTE(_B4), \ + H__NOTE(_B4), \ + H__NOTE(_A4), \ + H__NOTE(_G4), \ + H__NOTE(_E4), + +#define OLD_SPICE \ + Q__NOTE(_A4 ), \ + Q__NOTE(_A4 ), \ + H__NOTE(_B4 ), \ + H__NOTE(_D5 ), \ + H__NOTE(_CS5), \ + Q__NOTE(_E5 ), \ + H__NOTE(_FS5), \ + H__NOTE(_D5 ), \ + #endif From 0c665696d7b498bd278d05eed3b52c1fac89ff29 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sun, 25 Mar 2018 13:01:15 -0700 Subject: [PATCH 132/578] Update to drashna files (#2587) * Add Colemak Mod-DH vars * Add Norman Layot vars * Set Shift Indicator to include CAPS Lock as well * Change MEH to GUI * Add Enter to Macro layer * Switch raise and lower layers to make more sense (to me) * Replace unused quote on Ergodox * Add One Shot defines * Dim indicator LEDs * Add short codes for KC_SECRET * Fix typos * Update OLKB code in userspace * Add global userspace config.h * add compile fix * Automatically include from userspace * update readme * Re-add QMK Scan loop * Add EEPROM reset code to all keymaps * Shorten fauxclick sound * Use layouts instead of keymap, when possible * Add OSM detection to ergodox * Convert Viterbi to LAYOUT macro * Clean up game macros * Because I accidently removed the C6 AUDIO define from my viterbi... Whoops * Minor formatting * Fix Woodpad because it's still there * Move Ergodox keymap into layouts folder * Add build date to version macro * Remove PREVENT_STUCK_MODIFIERS from config --- keyboards/ergodox_ez/keymaps/drashna/config.h | 27 ---- .../woodpad/keymaps/drashna/config.h | 2 +- .../woodpad/keymaps/drashna/keymap.c | 18 +-- keyboards/orthodox/keymaps/drashna/config.h | 12 +- keyboards/orthodox/keymaps/drashna/keymap.c | 18 +-- keyboards/viterbi/keymaps/drashna/config.h | 24 ++-- keyboards/viterbi/keymaps/drashna/keymap.c | 16 +-- keyboards/viterbi/keymaps/drashna/rules.mk | 1 + .../community/ergodox}/drashna/README.md | 0 layouts/community/ergodox/drashna/config.h | 18 +++ .../community/ergodox}/drashna/keymap.c | 27 ++-- .../community/ergodox}/drashna/rules.mk | 0 users/drashna/config.h | 61 +++++++++ users/drashna/drashna.c | 125 +++++++----------- users/drashna/drashna.h | 64 +++++---- users/drashna/readme.md | 27 ++++ users/drashna/rules.mk | 4 + 17 files changed, 245 insertions(+), 199 deletions(-) delete mode 100644 keyboards/ergodox_ez/keymaps/drashna/config.h rename {keyboards/ergodox_ez/keymaps => layouts/community/ergodox}/drashna/README.md (100%) create mode 100644 layouts/community/ergodox/drashna/config.h rename {keyboards/ergodox_ez/keymaps => layouts/community/ergodox}/drashna/keymap.c (97%) rename {keyboards/ergodox_ez/keymaps => layouts/community/ergodox}/drashna/rules.mk (100%) create mode 100644 users/drashna/config.h diff --git a/keyboards/ergodox_ez/keymaps/drashna/config.h b/keyboards/ergodox_ez/keymaps/drashna/config.h deleted file mode 100644 index 71c7de466f64..000000000000 --- a/keyboards/ergodox_ez/keymaps/drashna/config.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include QMK_KEYBOARD_CONFIG_H - - -#ifdef RGBLIGHT_ENABLE -#undef RGBLIGHT_SAT_STEP -#define RGBLIGHT_SAT_STEP 12 -#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 7 -#define RGBLIGHT_EFFECT_SNAKE_LENGTH 7 -#define RGBLIGHT_EFFECT_BREATHE_CENTER 1 -#define RGBLIGHT_SLEEP -#endif // RGBLIGHT_ENABLE - -#ifdef TAPPING_TERM -#undef TAPPING_TERM -#endif -#define TAPPING_TERM 175 -#undef PERMISSIVE_HOLD -#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.) -#define ONESHOT_TAP_TOGGLE 2 - -#undef PRODUCT -#define PRODUCT DrashnaDox - Hacked ErgoDox EZ Shine - -#endif diff --git a/keyboards/handwired/woodpad/keymaps/drashna/config.h b/keyboards/handwired/woodpad/keymaps/drashna/config.h index c83a1ac37940..c4f28034c875 100644 --- a/keyboards/handwired/woodpad/keymaps/drashna/config.h +++ b/keyboards/handwired/woodpad/keymaps/drashna/config.h @@ -19,7 +19,7 @@ #include QMK_KEYBOARD_CONFIG_H -#ifdef TAP_DANCE_ENABLE +#if (defined(TAP_DANCE_ENABLE) && !defined(TAPPING_TERM)) #define TAPPING_TERM 200 #endif // TAP_DANCE_ENABLE diff --git a/keyboards/handwired/woodpad/keymaps/drashna/keymap.c b/keyboards/handwired/woodpad/keymaps/drashna/keymap.c index 51b90913cbf4..fd1ff005351f 100644 --- a/keyboards/handwired/woodpad/keymaps/drashna/keymap.c +++ b/keyboards/handwired/woodpad/keymaps/drashna/keymap.c @@ -24,21 +24,9 @@ // Fillers to make layering more clear #define _______ KC_TRNS #define XXXXXXX KC_NO -#ifdef TAP_DANCE_ENABLE -#define KC_D3_1 TD(TD_D3_1) -#define KC_D3_2 TD(TD_D3_2) -#define KC_D3_3 TD(TD_D3_3) -#define KC_D3_4 TD(TD_D3_4) -#else -#define KC_D3_1 KC_1 -#define KC_D3_2 KC_2 -#define KC_D3_3 KC_3 -#define KC_D3_4 KC_4 -#endif - - -//define layer change stuff for underglow indicator -bool skip_leds = false; + + + diff --git a/keyboards/orthodox/keymaps/drashna/config.h b/keyboards/orthodox/keymaps/drashna/config.h index dd8439a44bf4..f8a850394239 100644 --- a/keyboards/orthodox/keymaps/drashna/config.h +++ b/keyboards/orthodox/keymaps/drashna/config.h @@ -35,15 +35,6 @@ along with this program. If not, see . // #define MASTER_RIGHT #define EE_HANDS -#ifdef TAPPING_TERM -#undef TAPPING_TERM -#endif -#define TAPPING_TERM 150 -#undef PERMISSIVE_HOLD -#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.) -#define ONESHOT_TAP_TOGGLE 2 - - /* key combination for command */ #ifdef IS_COMMAND @@ -64,12 +55,10 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 #define RGBLIGHT_EFFECT_SNAKE_LENGTH 2 #define RGBLIGHT_EFFECT_BREATHE_CENTER 1 -#define RGBLIGHT_SLEEP #endif // RGBLIGHT_ENABLE #ifdef AUDIO_ENABLE #define C6_AUDIO -#define STARTUP_SONG SONG(IMPERIAL_MARCH) #define NO_MUSIC_MODE #endif @@ -79,4 +68,5 @@ along with this program. If not, see . #elif KEYBOARD_orthodox_rev3 #define PRODUCT Drashna Hacked Orthodox Rev.3 #endif + #endif diff --git a/keyboards/orthodox/keymaps/drashna/keymap.c b/keyboards/orthodox/keymaps/drashna/keymap.c index c0a348689142..a70da63bb68b 100644 --- a/keyboards/orthodox/keymaps/drashna/keymap.c +++ b/keyboards/orthodox/keymaps/drashna/keymap.c @@ -32,6 +32,8 @@ along with this program. If not, see . #define _______ KC_TRNS #define XXXXXXX KC_NO +#define MG_NKRO MAGIC_TOGGLE_NKRO + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = KEYMAP_wrapper(\ @@ -63,21 +65,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_LOWER] = KEYMAP(\ - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, _______, KC_RCTL, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ - _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_HOME, KC_COMM, KC_DOT, KC_END, _______ \ -), - -[_RAISE] = KEYMAP(\ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, _______, _______, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_PGUP, KC_COMM, KC_DOT, KC_PGDN, _______ \ ), +[_RAISE] = KEYMAP(\ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, _______, KC_RCTL, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_HOME, KC_COMM, KC_DOT, KC_END, _______ \ +), + [_ADJUST] = KEYMAP(\ - KC_MAKE,KC_RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + KC_MAKE,KC_RESET, EPRM, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ RGB_SMOD,RGB_HUI, KC_FXCL, AUD_ON, AUD_OFF, AG_NORM, _______, _______, _______, _______, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, TG(_MODS), \ - KC_RGB_T,RGB_HUD, MU_ON, MU_OFF, MU_TOG, MU_MOD, _______, _______, _______, _______, _______, _______, MAGIC_TOGGLE_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY \ + KC_RGB_T,RGB_HUD, MU_ON, MU_OFF, MU_TOG, MU_MOD, _______, _______, _______, _______, _______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY \ ) diff --git a/keyboards/viterbi/keymaps/drashna/config.h b/keyboards/viterbi/keymaps/drashna/config.h index 02786cfc7d22..cc87e813d145 100644 --- a/keyboards/viterbi/keymaps/drashna/config.h +++ b/keyboards/viterbi/keymaps/drashna/config.h @@ -31,31 +31,21 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 #define RGBLIGHT_EFFECT_SNAKE_LENGTH 2 #define RGBLIGHT_EFFECT_BREATHE_CENTER 1 -#define RGBLIGHT_SLEEP #define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 300 #define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1 - #endif // RGBLIGHT_ENABLE -#define TAPPING_TOGGLE 1 - -#ifdef AUDIO_ENABLE -#define C6_AUDIO -#define STARTUP_SONG SONG(IMPERIAL_MARCH) -#define GOODBYE_SONG SONG(SONIC_RING) -#endif #undef LOCKING_SUPPORT_ENABLE #undef LOCKING_RESYNC_ENABLE #ifndef NO_DEBUG #define NO_DEBUG -#endif // NO_DEBUG - -/* disable print */ +#endif // !NO_DEBUG #ifndef NO_PRINT #define NO_PRINT -#endif // NO_PRINT +#endif // !NO_PRINT + /* disable action features */ //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING @@ -67,8 +57,13 @@ along with this program. If not, see . #define PRODUCT Drashnas Viterbi Macro Pad #define USE_I2C + +#ifdef AUDIO_ENABLE +#define C6_AUDIO #define NO_MUSIC_MODE -#define half_KEYMAP( \ +#endif + +#define LAYOUT_ortho_5x7( \ L00, L01, L02, L03, L04, L05, L06, \ L10, L11, L12, L13, L14, L15, L16, \ L20, L21, L22, L23, L24, L25, L26, \ @@ -82,4 +77,5 @@ along with this program. If not, see . L30, L31, L32, L33, L34, L35, L36, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ L40, L41, L42, L43, L44, L45, L46, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO \ ) + #endif diff --git a/keyboards/viterbi/keymaps/drashna/keymap.c b/keyboards/viterbi/keymaps/drashna/keymap.c index 585695243625..cff6ebf69819 100644 --- a/keyboards/viterbi/keymaps/drashna/keymap.c +++ b/keyboards/viterbi/keymaps/drashna/keymap.c @@ -26,7 +26,7 @@ extern keymap_config_t keymap_config; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_NUMLOCK] = half_KEYMAP( + [_NUMLOCK] = LAYOUT_ortho_5x7( LMACRO, DIABLO, GAMEPAD, KC_NLCK, KC_SLCK, KC_COLN, KC_PSLS, \ MEDIA, KC_CALC, COVECUBE,KC_P7, KC_P8, KC_P9, KC_PAST, \ KC_HOME, KC_DEL, KC_PGUP, KC_P4, KC_P5, KC_P6, KC_PMNS, \ @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_COLN, KC_PENT \ ), - [_DIABLO] = half_KEYMAP( + [_DIABLO] = LAYOUT_ortho_5x7( KC_ESC, DIABLO, KC_V, KC_D, XXXXXXX, XXXXXXX, KC_L, \ KC_TAB, KC_S, KC_F, KC_I, KC_M, KC_T, KC_J, \ KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, KC_F, \ @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LALT, KC_F4, KC_F5, KC_F8, KC_F9, KC_F10, SFT_T(KC_SPACE) \ ), - [_GAMEPAD] = half_KEYMAP( // Game pad layout designed primarily for Overwatch + [_GAMEPAD] = LAYOUT_ortho_5x7( // Game pad layout designed primarily for Overwatch LMACRO, KC_ESC, GAMEPAD, KC_1, KC_2, KC_3, KC_4, \ MEDIA, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, \ KC_Z, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, \ @@ -50,15 +50,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F1, KC_U, KC_I, KC_Y, KC_V, KC_SPC, KC_V \ ), - [_MACROS] = half_KEYMAP( + [_MACROS] = LAYOUT_ortho_5x7( LMACRO, KC_OVERWATCH,GAMEPAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ KC_C9, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ KC_SYMM, KC_TORB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ KC_GLHF, KC_GOODGAME, KC_GGEZ, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_SALT, KC_MORESALT, KC_SALTHARD, KC_JUSTGAME, KC_AIM, XXXXXXX, XXXXXXX \ + KC_SALT, KC_MORESALT, KC_SALTHARD, KC_JUSTGAME, KC_AIM, XXXXXXX, KC_PENT \ ), - [_COVECUBE] = half_KEYMAP( + [_COVECUBE] = LAYOUT_ortho_5x7( XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ XXXXXXX, XXXXXXX, COVECUBE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ @@ -66,9 +66,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ ), - [_MEDIA] = half_KEYMAP( + [_MEDIA] = LAYOUT_ortho_5x7( KC_MAKE, KC_RESET,MU_TOG, AUD_ON, AUD_OFF, KC_FXCL, RGB_SAD, \ - MEDIA, XXXXXXX, KC_RGB_T,RGB_M_P, RGB_M_B, RGB_M_R, RGB_SAI, \ + MEDIA, EPRM, KC_RGB_T,RGB_M_P, RGB_M_B, RGB_M_R, RGB_SAI, \ RGB_TOG, RGB_MOD, RGB_RMOD,RGB_M_SW,RGB_M_SN,RGB_M_K, RGB_HUD, \ KC_MPLY, KC_MPRV, KC_MNXT, RGB_M_X, RGB_M_G, RGB_M_P, RGB_HUI, \ KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI \ diff --git a/keyboards/viterbi/keymaps/drashna/rules.mk b/keyboards/viterbi/keymaps/drashna/rules.mk index 83c37115cae4..4dc6bbdac7af 100644 --- a/keyboards/viterbi/keymaps/drashna/rules.mk +++ b/keyboards/viterbi/keymaps/drashna/rules.mk @@ -9,3 +9,4 @@ AUDIO_ENABLE = yes NKRO_ENABLE = yes CUSTOM_MATRIX = no +LAYOUTS = ortho_5x7 diff --git a/keyboards/ergodox_ez/keymaps/drashna/README.md b/layouts/community/ergodox/drashna/README.md similarity index 100% rename from keyboards/ergodox_ez/keymaps/drashna/README.md rename to layouts/community/ergodox/drashna/README.md diff --git a/layouts/community/ergodox/drashna/config.h b/layouts/community/ergodox/drashna/config.h new file mode 100644 index 000000000000..27124dbe28c7 --- /dev/null +++ b/layouts/community/ergodox/drashna/config.h @@ -0,0 +1,18 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include QMK_KEYBOARD_CONFIG_H + +#ifdef RGBLIGHT_ENABLE +#undef RGBLIGHT_SAT_STEP +#define RGBLIGHT_SAT_STEP 12 +#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 7 +#define RGBLIGHT_EFFECT_SNAKE_LENGTH 7 +#define RGBLIGHT_EFFECT_BREATHE_CENTER 1 +#endif // RGBLIGHT_ENABLE + + +#undef PRODUCT +#define PRODUCT DrashnaDox - Hacked ErgoDox EZ Shine + +#endif diff --git a/keyboards/ergodox_ez/keymaps/drashna/keymap.c b/layouts/community/ergodox/drashna/keymap.c similarity index 97% rename from keyboards/ergodox_ez/keymaps/drashna/keymap.c rename to layouts/community/ergodox/drashna/keymap.c index 1b30196eca34..6801f4f49c15 100644 --- a/keyboards/ergodox_ez/keymaps/drashna/keymap.c +++ b/layouts/community/ergodox/drashna/keymap.c @@ -31,8 +31,8 @@ bool skip_leds = false; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer - * - * + * + * * ,--------------------------------------------------. ,--------------------------------------------------. * | = + | 1 ! | 2 @ | 3 # | 4 $ | 5 % | TG(4)| | TG(4)| 6 ^ | 7 & | 8 * | 9 ( | 0 ) | - _ | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| @@ -63,7 +63,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_HOME, KC_PGUP, KC_SPACE,KC_BSPC, KC_END, KC_PGDN, KC_DEL, KC_ENTER - + ), /* Keymap 0: Basic layer * @@ -88,7 +88,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ // If it accepts an argument (i.e, is a function), it doesn't need KC_. // Otherwise, it needs KC_* -[_COLEMAK] = LAYOUT_ergodox_pretty_wrapper( +[_COLEMAK] = LAYOUT_ergodox_pretty_wrapper( // left hand // right hand KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TAB, _________________COLEMAK_L1________________, TG(_DIABLO), TG(_DIABLO), _________________COLEMAK_R1________________, KC_BSLS, @@ -122,7 +122,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ // If it accepts an argument (i.e, is a function), it doesn't need KC_. // Otherwise, it needs KC_* -[_DVORAK] = LAYOUT_ergodox_pretty_wrapper( +[_DVORAK] = LAYOUT_ergodox_pretty_wrapper( // left hand // right hand KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, KC_TAB, _________________DVORAK_L1_________________, TG(_DIABLO), TG(_DIABLO), _________________DVORAK_R1_________________, KC_SLSH, @@ -156,7 +156,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ // If it accepts an argument (i.e, is a function), it doesn't need KC_. // Otherwise, it needs KC_* -[_WORKMAN] = LAYOUT_ergodox_pretty_wrapper( +[_WORKMAN] = LAYOUT_ergodox_pretty_wrapper( // left hand KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TAB, _________________WORKMAN_L1________________, TG(_DIABLO), TG(_DIABLO), _________________WORKMAN_R1________________, KC_BSLS, @@ -297,7 +297,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `--------------------' `--------------------' */ [_MOUS] = LAYOUT_ergodox_pretty( - KC_NO, KC_SECRET_1,KC_SECRET_2,KC_SECRET_3,KC_SECRET_4,KC_SECRET_5,KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_U, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO, KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_NO, KC_NO, KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, @@ -334,6 +334,8 @@ void matrix_init_keymap(void) { // Runs boot tasks for keyboard void matrix_scan_keymap(void) { // runs frequently to update info uint8_t modifiders = get_mods(); + uint8_t led_usb_state = host_keyboard_leds(); + uint8_t one_shot = get_oneshot_mods(); if (!skip_leds) { ergodox_board_led_off(); @@ -343,15 +345,18 @@ void matrix_scan_keymap(void) { // runs frequently to update info // Since we're not using the LEDs here for layer indication anymore, // then lets use them for modifier indicators. Shame we don't have 4... - // Also, no "else", since we want to know each, independantly. - if (modifiders & MODS_SHIFT_MASK) { + // Also, no "else", since we want to know each, independently. + if (modifiders & MODS_SHIFT_MASK || led_usb_state & (1<. #include "secrets.h" #else // `PROGMEM const char secret[][x]` may work better, but it takes up more space in the firmware -// And I'm not familar enough to know which is better or why... +// And I'm not familiar enough to know which is better or why... PROGMEM const char secret[][64] = { "test1", "test2", @@ -32,20 +32,13 @@ PROGMEM const char secret[][64] = { }; #endif -#ifdef AUDIO_ENABLE -float tone_qwerty[][2] = SONG(QWERTY_SOUND); -float tone_dvorak[][2] = SONG(DVORAK_SOUND); -float tone_colemak[][2] = SONG(COLEMAK_SOUND); -float tone_workman[][2] = SONG(PLOVER_SOUND); -float tone_hackstartup[][2] = SONG(ONE_UP_SOUND); -#endif #ifdef FAUXCLICKY_ENABLE float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_A6, 2); // (_D4, 0.25); float fauxclicky_released_note[2] = MUSICAL_NOTE(_A6, 2); // (_C4, 0.125); #else -float fauxclicky_pressed[][2] = SONG(E__NOTE(_A6)); // change to your tastes -float fauxclicky_released[][2] = SONG(E__NOTE(_A6)); // change to your tastes +float fauxclicky_pressed[][2] = SONG(S__NOTE(_A6)); // change to your tastes +float fauxclicky_released[][2] = SONG(S__NOTE(_A6)); // change to your tastes #endif bool faux_click_enabled = false; @@ -191,7 +184,7 @@ void matrix_init_user(void) { #endif matrix_init_keymap(); } -// No global matrix scan code, so just run keymap's matix +// No global matrix scan code, so just run keymap's matrix // scan function void matrix_scan_user(void) { #ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code. @@ -202,17 +195,20 @@ void matrix_scan_user(void) { // This block is for all of the gaming macros, as they were all doing // the same thing, but with differring text sent. -void send_game_macro(const char *str) { - clear_keyboard(); - register_code(is_overwatch ? KC_BSPC : KC_ENTER); - unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); - wait_ms(50); - send_string(str); - register_code(KC_ENTER); - unregister_code(KC_ENTER); +bool send_game_macro(const char *str, keyrecord_t *record, bool override) { + if (!record->event.pressed || override) { + clear_keyboard(); + register_code(is_overwatch ? KC_BSPC : KC_ENTER); + unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); + wait_ms(50); + send_string(str); + register_code(KC_ENTER); + unregister_code(KC_ENTER); + } + if (override) wait_ms(3000); + return false; } - // Sent the default layer void persistent_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); @@ -221,7 +217,7 @@ void persistent_default_layer_set(uint16_t default_layer) { // Defines actions tor my global custom keycodes. Defined in drashna.h file -// Then runs the _keymap's recod handier if not processed here +// Then runs the _keymap's record handier if not processed here bool process_record_user(uint16_t keycode, keyrecord_t *record) { // If console is enabled, it will print the matrix position and status of each key pressed @@ -230,7 +226,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #endif //CONSOLE_ENABLE // Run custom faux click code, but only if faux clicky is enabled -#ifdef AUDIO_ENABLE +#ifdef AUDIO_ENABLE if ( (faux_click_enabled && keycode != KC_FXCL) || (!faux_click_enabled && keycode == KC_FXCL) ) { if (record->event.pressed) { PLAY_SONG(fauxclicky_pressed); @@ -245,37 +241,25 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case KC_QWERTY: if (record->event.pressed) { -#ifdef AUDIO_ENABLE - PLAY_SONG(tone_qwerty); -#endif //AUDIO_ENABLE - persistent_default_layer_set(1UL << _QWERTY); + set_single_persistent_default_layer(_QWERTY); } return false; break; case KC_COLEMAK: if (record->event.pressed) { -#ifdef AUDIO_ENABLE - PLAY_SONG(tone_colemak); -#endif //AUDIO_ENABLE - persistent_default_layer_set(1UL << _COLEMAK); + set_single_persistent_default_layer(_COLEMAK); } return false; break; case KC_DVORAK: if (record->event.pressed) { -#ifdef AUDIO_ENABLE - PLAY_SONG(tone_dvorak); -#endif //AUDIO_ENABLE - persistent_default_layer_set(1UL << _DVORAK); + set_single_persistent_default_layer(_DVORAK); } return false; break; case KC_WORKMAN: if (record->event.pressed) { -#ifdef AUDIO_ENABLE - PLAY_SONG(tone_workman); -#endif //AUDIO_ENABLE - persistent_default_layer_set(1UL << _WORKMAN); + set_single_persistent_default_layer(_WORKMAN); } return false; break; @@ -328,7 +312,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; - case KC_RESET: // Custom RESET code that setr RGBLights to RED + + + case KC_RESET: // Custom RESET code that sets RGBLights to RED if (!record->event.pressed) { #ifdef RGBLIGHT_ENABLE rgblight_enable(); @@ -339,6 +325,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; + + case EPRM: // Resets EEPROM if (record->event.pressed) { eeconfig_init(); @@ -347,11 +335,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; case VRSN: // Prints firmware version if (record->event.pressed) { - SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE); } return false; break; - case KC_SECRET_1 ... KC_SECRET_5: // Custom + + + case KC_SECRET_1 ... KC_SECRET_5: // Secrets! Externally defined strings, not stored in repo if (!record->event.pressed) { clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED); send_string_P(secret[keycode - KC_SECRET_1]); @@ -364,61 +354,42 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { // Only enables for the viterbi, basically, // to save on firmware space, since it's limited. #if !(defined(KEYBOARD_orthodox_rev1) || defined(KEYBOARD_orthodox_rev3) || defined(KEYBOARD_ergodox_ez)) - - case KC_OVERWATCH: // Toggle's if we hit "ENTER" or "BACKSPACE" to input macros if (record->event.pressed) { is_overwatch = !is_overwatch; } #ifdef RGBLIGHT_ENABLE is_overwatch ? rgblight_mode(17) : rgblight_mode(18); #endif //RGBLIGHT_ENABLE - return false; - break; - - case KC_SALT: - if (!record->event.pressed) { send_game_macro("Salt, salt, salt..."); } return false; break; + case KC_SALT: + return send_game_macro("Salt, salt, salt...", record, false); case KC_MORESALT: - if (!record->event.pressed) { send_game_macro("Please sir, can I have some more salt?!"); } - return false; break; + return send_game_macro("Please sir, can I have some more salt?!", record, false); case KC_SALTHARD: - if (!record->event.pressed) { send_game_macro("Your salt only makes me harder, and even more aggressive!"); } - return false; break; + return send_game_macro("Your salt only makes me harder, and even more aggressive!", record, false); case KC_GOODGAME: - if (!record->event.pressed) { send_game_macro("Good game, everyone!"); } - return false; break; + return send_game_macro("Good game, everyone!", record, false); case KC_GLHF: - if (!record->event.pressed) { send_game_macro("Good luck, have fun!!!"); } - return false; break; + return send_game_macro("Good luck, have fun!!!", record, false); case KC_SYMM: - if (!record->event.pressed) { send_game_macro("Left click to win!"); } - return false; break; + return send_game_macro("Left click to win!", record, false); case KC_JUSTGAME: - if (!record->event.pressed) { send_game_macro("It may be a game, but if you don't want to actually try, please go play AI, so that people that actually want to take the game seriously and \"get good\" have a place to do so without trolls like you throwing games."); } - return false; break; + return send_game_macro("It may be a game, but if you don't want to actually try, please go play AI, so that people that actually want to take the game seriously and \"get good\" have a place to do so without trolls like you throwing games.", record, false); case KC_TORB: - if (!record->event.pressed) { send_game_macro("That was positively riveting!"); } - return false; break; + return send_game_macro("That was positively riveting!", record, false); case KC_AIM: - if (!record->event.pressed) { - send_game_macro("That aim is absolutely amazing. It's almost like you're a machine!"); - wait_ms(3000); - send_game_macro("Wait! That aim is TOO good! You're clearly using an aim hack! CHEATER!"); - } - return false; break; + send_game_macro("That aim is absolutely amazing. It's almost like you're a machine!", record, true); + return send_game_macro("Wait! That aim is TOO good! You're clearly using an aim hack! CHEATER!", record, false); case KC_C9: - if (!record->event.pressed) { send_game_macro("OMG!!! C9!!!"); } - return false; break; + return send_game_macro("OMG!!! C9!!!", record, false); case KC_GGEZ: - if (!record->event.pressed) { send_game_macro("That was a fantastic game, though it was a bit easy. Try harder next time!"); } - return false; break; + return send_game_macro("That was a fantastic game, though it was a bit easy. Try harder next time!", record, false); #endif // !(defined(KEYBOARD_orthodox_rev1) || defined(KEYBOARD_orthodox_rev3) || defined(KEYBOARD_ergodox_ez)) #ifdef TAP_DANCE_ENABLE - case KC_DIABLO_CLEAR: // reset all Diable timers, disabling them + case KC_DIABLO_CLEAR: // reset all Diablo timers, disabling them if (record->event.pressed) { uint8_t dtime; - for (dtime = 0; dtime < 4; dtime++) { diablo_key_time[dtime] = diablo_times[0]; } @@ -437,14 +408,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { rgb_layer_change = !rgb_layer_change; if (rgb_layer_change) { - layer_state_set(layer_state); // This is needed to immediately set the layer color (looks beetter) + layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better) } } #endif // RGBLIGHT_ENABLE return false; break; #ifdef RGBLIGHT_ENABLE case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions - if (record->event.pressed) { //This disrables layer indication, as it's assumed that if you're changing this ... you want that disabled + if (record->event.pressed) { //This disables layer indication, as it's assumed that if you're changing this ... you want that disabled rgb_layer_change = false; } return true; break; @@ -534,7 +505,7 @@ uint32_t layer_state_set_user(uint32_t state) { // Any custom LED code goes here. // So far, I only have keyboard specific code, -// So nothing goes here. +// So nothing goes here. void led_set_user(uint8_t usb_led) { led_set_keymap(usb_led); } diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h index 8a022cd14bd0..0df9abb46829 100644 --- a/users/drashna/drashna.h +++ b/users/drashna/drashna.h @@ -17,10 +17,9 @@ along with this program. If not, see . #ifndef USERSPACE #define USERSPACE - #include "quantum.h" -// Define layer names +// Define layer names #define _QWERTY 0 #define _NUMLOCK 0 #define _COLEMAK 1 @@ -118,6 +117,12 @@ enum userspace_custom_keycodes { NEW_SAFE_RANGE //use "NEWPLACEHOLDER for keymap specific codes }; +#define KC_SEC1 KC_SECRET_1 +#define KC_SEC2 KC_SECRET_2 +#define KC_SEC3 KC_SECRET_3 +#define KC_SEC4 KC_SECRET_4 +#define KC_SEC5 KC_SECRET_5 + #ifdef TAP_DANCE_ENABLE enum { TD_D3_1 = 0, @@ -129,8 +134,8 @@ enum { // Custom Keycodes for Diablo 3 layer -// But since TD() doesn't work when tapdance is disabled -// We use custom codes here, so we can substituet the right stuff +// But since TD() doesn't work when tap dance is disabled +// We use custom codes here, so we can substitute the right stuff #ifdef TAP_DANCE_ENABLE #define KC_D3_1 TD(TD_D3_1) #define KC_D3_2 TD(TD_D3_2) @@ -146,26 +151,10 @@ enum { // OSM keycodes, to keep things clean and easy to change #define KC_MLSF OSM(MOD_LSFT) #define KC_MRSF OSM(MOD_RSFT) -#define ONESHOT_TIMEOUT 3000 - -#define QMK_KEYS_PER_SCAN 8 -#ifdef RGBLIGHT_ENABLE -#define RGBLIGHT_SLEEP -#endif // RGBLIGHT_ENABLE -// this makes it possible to do rolling combos (zx) with keys that -// convert to other keys on hold (z becomes ctrl when you hold it, -// and when this option isn't enabled, z rapidly followed by x -// actually sends Ctrl-x. That's bad.) -#define IGNORE_MOD_TAP_INTERRUPT -// Disable action_get_macro and fn_actions, since we don't use these -// and it saves on space in the firmware. -#define NO_ACTION_MACRO -#define NO_ACTION_FUNCTION - -// If we're still using the official Faux Clicky feature, substituet codes +// If we're still using the official Faux Clicky feature, substitute codes // so that we don't have any unused/blank keys. #ifdef FAUXCLICKY_ENABLE #define AUD_ON FC_ON @@ -177,23 +166,27 @@ enum { -// Since our quirky block definitions are basically a list of comma separated -// arguments, we need a wrapper in order for these definitions to be +// Since our quirky block definitions are basically a list of comma separated +// arguments, we need a wrapper in order for these definitions to be // expanded before being used as arguments to the LAYOUT_xxx macro. +#if (!defined(LAYOUT) && defined(KEYMAP)) +#define LAYOUT KEYMAP +#endif + #define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__) #define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__) -#define KEYMAP_wrapper(...) KEYMAP(__VA_ARGS__) +#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__) // Blocks for each of the four major keyboard layouts // Organized so we can quickly adapt and modify all of them // at once, rather than for each keyboard, one at a time. -// And this allows wor much cleaner blocks in the keymaps. +// And this allows for much cleaner blocks in the keymaps. // For instance Tap/Hold for Control on all of the layouts // NOTE: These are all the same length. If you do a search/replace // then you need to add/remove underscores to keep the -// lengths consistent. +// lengths consistent. #define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T #define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G @@ -212,6 +205,14 @@ enum { #define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O #define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLASH) +#define ______________COLEMAK_MOD_DH_L1____________ KC_Q, KC_W, KC_F, KC_P, KC_B +#define ______________COLEMAK_MOD_DH_L2____________ KC_A, KC_R, KC_S, KC_T, KC_G +#define ______________COLEMAK_MOD_DH_L3____________ CTL_T(KC_Z), KC_X, KC_C, KC_D, KC_V + +#define ______________COLEMAK_MOD_DH_R1____________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN +#define ______________COLEMAK_MOD_DH_R2____________ KC_K, KC_N, KC_E, KC_I, KC_O +#define ______________COLEMAK_MOD_DH_R3____________ KC_M, KC_H, KC_COMM, KC_DOT, CTL_T(KC_SLASH) + #define _________________DVORAK_L1_________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y #define _________________DVORAK_L2_________________ KC_A, KC_O, KC_E, KC_U, KC_I @@ -231,12 +232,21 @@ enum { #define _________________WORKMAN_R3________________ KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z) +#define _________________NORMAN_L1_________________ KC_Q, KC_W, KC_D, KC_F, KC_K +#define _________________NORMAN_L2_________________ KC_A, KC_S, KC_E, KC_T, KC_G +#define _________________NORMAN_L3_________________ CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B + +#define _________________NORMAN_R1_________________ KC_J, KC_U, KC_R, KC_L, KC_SCLN +#define _________________NORMAN_R2_________________ KC_J, KC_N, KC_I, KC_O, KC_U +#define _________________NORMAN_R3_________________ KC_P, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLASH) + + // Since we have 4 default layouts (QWERTY, DVORAK, COLEMAK and WORKMAN), // this allows us to quickly modify the bottom row for all of the layouts // so we don't have to alter it 4 times and hope that we haven't missed // anything -#define ___________ERGODOX_BOTTOM_LEFT_____________ KC_QUOT, KC_MEH, KC_LBRC, KC_RBRC +#define ___________ERGODOX_BOTTOM_LEFT_____________ KC_MEH, KC_LGUI, KC_LBRC, KC_RBRC #define ___________ERGODOX_BOTTOM_RIGHT____________ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT diff --git a/users/drashna/readme.md b/users/drashna/readme.md index 92792fb97a8e..2229a3fe09f0 100644 --- a/users/drashna/readme.md +++ b/users/drashna/readme.md @@ -3,6 +3,33 @@ Overview This is my personal userspace file. Most of my code exists here, as it's heavily shared. +Userspace Config.h +------------------ + +By default, the userspace feature doesn't include a `config.h` file the way that that keyboards, revisions, keymaps and layouts handle them. This means that if you want global configurations via userspace, it's very difficult to implement. + +The reason for using seperate files here is that the `drashna.h` file doesn't get called in such a way that will actually define QMK settings. Additionally, attempting to add it to the `config.h` files has issues. Namely, the `drashna.h` file requires the `quantum.h` file... but including this to the `config.h` attemps to redefines a bunch of settings and breaks the firmare. Removing the `quantum.h` include means that a number of data structures no longer get added, and the `SAFE_RANGE` value is no longer defined, as well. So we need both a `config.h` for global config, and we need a seperate h file for local settings. + +However, the `rules.mk` file is included when building the firmware. So we can hijack that process to "manually" add a `config.h`. To do so, you would need to add the following to the `rules.mk` in your userspace: + +``` +ifneq ("$(wildcard users/$(KEYMAP)/config.h)","") + CONFIG_H += users/$(KEYMAP)/config.h +endif +``` + +You can replace `$(KEYMAP)` with your name, but it's not necessary. This checks for the existence of `/users//config.h`, and if it exists, includes it like every other `config.h` file, allowing you to make global `config.h` settings. + +As for the `config.h` file, you want to make sure that it has an "ifdef" in it to make sure it's only used once. So you want something like this: + +``` +#ifndef USERSPACE_CONFIG_H +#define USERSPACE_CONFIG_H + +// put stuff here + +#endif +``` Custom userspace handlers ------------------------- diff --git a/users/drashna/rules.mk b/users/drashna/rules.mk index ab2ab607d484..6d9f0664ea0a 100644 --- a/users/drashna/rules.mk +++ b/users/drashna/rules.mk @@ -1,3 +1,7 @@ SRC += drashna.c EXTRAFLAGS += -flto + +ifneq ("$(wildcard users/$(KEYMAP)/config.h)","") + CONFIG_H += users/$(KEYMAP)/config.h +endif From 07b90db89758c42f7aacf52d93446b9407b87a98 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sun, 25 Mar 2018 16:44:17 -0700 Subject: [PATCH 133/578] Fixes and updates to docs (#2611) * Fix advanced keycode headers * Add caveat for OSM over Remote Desktop * Hopefully add better anchors to docs * Add Action code list reference * Formatting of RGB Underglow doc * Add brew update issue on macOS * Revert formatting * Revert RGB doc formatting * Make Config Options doc's sections linkable --- docs/config_options.md | 21 +++++++++------------ docs/faq_build.md | 16 ++++++++++++++++ docs/feature_advanced_keycodes.md | 8 +++++--- docs/keymap.md | 2 ++ 4 files changed, 32 insertions(+), 15 deletions(-) diff --git a/docs/config_options.md b/docs/config_options.md index 055531b67029..af8602c3ff99 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -31,9 +31,8 @@ This is a C header file that is one of the first things included, and will persi #include "config_common.h" -## `config.h` Options -### Hardware Options +## Hardware Options * `#define VENDOR_ID 0x1234` * defines your VID, and for most DIY projects, can be whatever you want * `#define PRODUCT_ID 0x5678` @@ -83,7 +82,7 @@ This is a C header file that is one of the first things included, and will persi * `#define IS_COMMAND() ( keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) )` * key combination that allows the use of magic commands (useful for debugging) -### Features That Can Be Disabled +## Features That Can Be Disabled If you define these options you will disable the associated feature, which can save on code size. @@ -102,7 +101,7 @@ If you define these options you will disable the associated feature, which can s * `#define NO_ACTION_FUNCTION` * disable the action function (deprecated) -### Features That Can Be Enabled +## Features That Can Be Enabled If you define these options you will enable the associated feature, which may increase your code size. @@ -111,7 +110,7 @@ If you define these options you will enable the associated feature, which may in * `#define PREVENT_STUCK_MODIFIERS` * when switching layers, this will release all mods -### Behaviors That Can Be Configured +## Behaviors That Can Be Configured * `#define TAPPING_TERM 200` * how long before a tap becomes a hold @@ -139,7 +138,7 @@ If you define these options you will enable the associated feature, which may in few ms of delay from this. But if you're doing chording on something with 3-4ms scan times? You probably want this. -### RGB Light Configuration +## RGB Light Configuration * `#define RGB_DI_PIN D7` * pin the DI on the ws2812 is hooked-up to @@ -156,7 +155,7 @@ If you define these options you will enable the associated feature, which may in * `#define RGBW_BB_TWI` * bit-bangs TWI to EZ RGBW LEDs (only required for Ergodox EZ) -### Mouse Key Options +## Mouse Key Options * `#define MOUSEKEY_INTERVAL 20` * `#define MOUSEKEY_DELAY 0` @@ -168,9 +167,7 @@ If you define these options you will enable the associated feature, which may in This is a [make](https://www.gnu.org/software/make/manual/make.html) file that is included by the top-level `Makefile`. It is used to set some information about the MCU that we will be compiling for as well as enabling and disabling certain features. -## `rules.mk` Options - -### Build Options +## Build Options * `DEFAULT_FOLDER` * Used to specify a default folder when a keyboard has more than one sub-folder. @@ -179,7 +176,7 @@ This is a [make](https://www.gnu.org/software/make/manual/make.html) file that i * `LAYOUTS` * A list of [layouts](feature_layouts.md) this keyboard supports. -### AVR MCU Options +## AVR MCU Options * `MCU = atmega32u4` * `F_CPU = 16000000` * `ARCH = AVR8` @@ -193,7 +190,7 @@ This is a [make](https://www.gnu.org/software/make/manual/make.html) file that i * `caterina` * `bootloadHID` -### Feature Options +## Feature Options Use these to enable or disable building certain features. The more you have enabled the bigger your firmware will be, and you run the risk of building a firmware too large for your MCU. diff --git a/docs/faq_build.md b/docs/faq_build.md index ff409f9c612e..2d1b91b60d82 100644 --- a/docs/faq_build.md +++ b/docs/faq_build.md @@ -88,3 +88,19 @@ Note that Teensy2.0++ bootloader size is 2048byte. Some Makefiles may have wrong # USBaspLoader 2048 OPT_DEFS += -DBOOTLOADER_SIZE=2048 ``` + +## `avr-gcc: internal compiler error: Abort trap: 6 (program cc1)` on MacOS +This is an issue with updating on brew, causing symlinks that avr-gcc depend on getting mangled. + +The solution is to remove and reinstall all affected modules. + +``` +brew rm avr-gcc +brew rm dfu-programmer +brew rm gcc-arm-none-eabi +brew rm avrdude +brew install avr-gcc +brew install dfu-programmer +brew install gcc-arm-none-eabi +brew install avrdude +``` diff --git a/docs/feature_advanced_keycodes.md b/docs/feature_advanced_keycodes.md index f61d78d501f4..2db313e75c19 100644 --- a/docs/feature_advanced_keycodes.md +++ b/docs/feature_advanced_keycodes.md @@ -50,7 +50,7 @@ Once you have a good feel for how layers work and what you can do, you can get m Layers stack on top of each other in numerical order. When determining what a keypress does, QMK scans the layers from the top down, stopping when it reaches the first active layer that is not set to `KC_TRNS`. As a result if you activate a layer that is numerically lower than your current layer, and your current layer (or another layer that is active and higher than your target layer) has something other than `KC_TRNS`, that is the key that will be sent, not the key on the layer you just activated. This is the cause of most people's "why doesn't my layer get switched" problem. -Sometimes, you might want to switch between layers in a macro or as part of a tap dance routine. `layer_on` activates a layer, and `layer_off` deactivates it. More layer-related functions can be found in [action_layer.h](../tmk_core/common/action_layer.h). +Sometimes, you might want to switch between layers in a macro or as part of a tap dance routine. `layer_on` activates a layer, and `layer_off` deactivates it. More layer-related functions can be found in [action_layer.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/action_layer.h). # Modifier Keys @@ -154,9 +154,11 @@ You can control the behavior of one shot keys by defining these in `config.h`: * `OSM(mod)` - Momentarily hold down *mod*. You must use the `MOD_*` keycodes as shown in [Mod Tap](#mod-tap), not the `KC_*` codes. * `OSL(layer)` - momentary switch to *layer*. -Sometimes, you want to activate a one-shot layer as part of a macro or tap dance routine. To do this, you need to call `set_oneshot_layer(LAYER, ONESHOT_START)` on key down, and `set_oneshot_layer(ONESHOT_PRESSED)` on key up. If you want to cancel the oneshot, call `reset_oneshot_layer()`. For more complicated actions, take a look at the oneshot implementation in [`process_record`](../tmk_core/common/action.c#L429). +Sometimes, you want to activate a one-shot layer as part of a macro or tap dance routine. To do this, you need to call `set_oneshot_layer(LAYER, ONESHOT_START)` on key down, and `set_oneshot_layer(ONESHOT_PRESSED)` on key up. If you want to cancel the oneshot, call `reset_oneshot_layer()`. For more complicated actions, take a look at the oneshot implementation in [`process_record`](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/action.c#L429). -## Permissive Hold +If you're having issues with OSM translating over Remote Desktop Connection, this can be fixed by opening the settings, going to the "Local Resources" tap, and in the keyboard section, change the drop down to "On this Computer". This will fix the issue and allow OSM to function properly over Remote Desktop. + +# Permissive Hold As of [PR#1359](https://github.com/qmk/qmk_firmware/pull/1359/), there is a new `config.h` option: diff --git a/docs/keymap.md b/docs/keymap.md index 090a92661d79..b28d21a21df5 100644 --- a/docs/keymap.md +++ b/docs/keymap.md @@ -171,6 +171,8 @@ In this case we've instructed QMK to call the `ACTION_FUNCTION` callback, which > This `fn_actions[]` interface is mostly for backward compatibility. In QMK, you don't need to use `fn_actions[]`. You can directly use `ACTION_FUNCTION(N)` or any other action code value itself normally generated by the macro in `keymaps[][MATRIX_ROWS][MATRIX_COLS]`. N in `F(N)` can only be 0 to 31. Use of the action code directly in `keymaps` unlocks this limitation. +You can get a full list of Action Functions in [action_code.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/action_code.h). + #### `action_function()` To actually handle the keypress event we define an `action_function()`. This function will be called when the key is pressed, and then again when the key is released. We have to handle both situations within our code, as well as determining whether to send/release `KC_ESC` or `KC_GRAVE`. From ee1bb85542a297bb2086668ff757fcabf40a9a92 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Mon, 26 Mar 2018 10:34:18 -0700 Subject: [PATCH 134/578] Expand Newb Guide flashing document (#2588) * Add header info * Add DFU section * Add Caterina section * Add Halfkay section * Fix Typos * More typos --- docs/newbs_flashing.md | 171 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 167 insertions(+), 4 deletions(-) diff --git a/docs/newbs_flashing.md b/docs/newbs_flashing.md index c466a4e4e134..4cd7c5c44a1f 100644 --- a/docs/newbs_flashing.md +++ b/docs/newbs_flashing.md @@ -1,8 +1,14 @@ -# Flashing Your Keyboard With QMK Toolbox +# Flashing Your Keyboard Now that you've built a custom firmware file you'll want to flash your keyboard. -## Load The File Into QMK Toolbox +## Flashing Your Keyboard with QMK Toolbox + +The simplest way to flash your keyboard will be with the [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases). + +However, the QMK Toolbox is only available for Windows and macOS currently. If you're using Linux (or just wish to flash the firmware from the command line), you'll have to use the [method outlined below](newbs_flashing.md#flash-your-keyboard-from-the-command-line). + +### Load The File Into QMK Toolbox Begin by opening the QMK Toolbox application. You'll want to locate the firmware file in Finder or Explorer. Your keyboard firmware may be in one of two formats- `.hex` or `.bin`. QMK tries to copy the appropriate one for your keyboard into the root `qmk_firmware` directory. @@ -28,7 +34,7 @@ For example, the `plank/rev5` with a `default` keymap will have this filename: Once you have located your firmware file drag it into the "Local file" box in QMK Toolbox, or click "Open" and navigate to where your firmware file is stored. -## Put Your Keyboard Into DFU (Bootloader) Mode +### Put Your Keyboard Into DFU (Bootloader) Mode In order to flash your custom firmware you have to put your keyboard into a special flashing mode. While it is in this mode you will not be able to type or otherwise use your keyboard. It is very important that you do not unplug your keyboard or otherwise interrupt the flashing process while the firmware is being written. @@ -47,7 +53,7 @@ When you are successful you will see a message similar to this in QMK Toolbox: *** DFU device connected ``` -## Flash Your Keyboard +### Flash Your Keyboard Click the `Flash` button in QMK Toolbox. You will see output similar to the following: @@ -72,6 +78,163 @@ Click the `Flash` button in QMK Toolbox. You will see output similar to the foll *** Clueboard - Clueboard 66% HotSwap connected -- 0xC1ED:0x2390 ``` +## Flash your Keyboard from the Command Line + +First thing you'll need to know is which bootloader that your keyboard uses. There are four main bootloaders that are used, usually. Pro-Micro and clones use CATERINA, and Teensy's use Halfkay, OLKB boards use QMK-DFU, and other atmega32u4 chips use DFU. + +You can find more information about the bootloaders in the [Flashing Instructions and Bootloader Information](flashing.md) page. + +If you know what bootloader that you're using, then when compiling the firmware, you can actually add some extra text to the `make` command to automate the flashing process. + +### DFU + +For the DFU bootloader, when you're ready to compile and flash your firmware, open up your terminal window and run the built command: + + make ::dfu + +For example, if your keymap is named "xyverz" and you're building a keymap for a rev5 planck, you'll use this command: + + make planck/rev5:xyverz:dfu + +Once it finishes compiling, it should output the following: + +``` +Linking: .build/planck_rev5_xyverz.elf [OK] +Creating load file for flashing: .build/planck_rev5_xyverz.hex [OK] +Copying planck_rev5_xyverz.hex to qmk_firmware folder [OK] +Checking file size of planck_rev5_xyverz.hex + * File size is fine - 18574/28672 + ``` + +After it gets to this point, the build script will look for the DFU bootloader every 5 seconds. It will repeat the following until the device is found or you cancel it. + + dfu-programmer: no device present. + Error: Bootloader not found. Trying again in 5s. + +Once it does this, you'll want to reset the controller. It should then show output similiar to this: + +``` +*** Attempting to flash, please don't remove device +>>> dfu-programmer atmega32u4 erase --force + Erasing flash... Success + Checking memory from 0x0 to 0x6FFF... Empty. +>>> dfu-programmer atmega32u4 flash /Users/skully/qmk_firmware/clueboard_66_hotswap_gen1_skully.hex + Checking memory from 0x0 to 0x55FF... Empty. + 0% 100% Programming 0x5600 bytes... + [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success + 0% 100% Reading 0x7000 bytes... + [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success + Validating... Success + 0x5600 bytes written into 0x7000 bytes memory (76.79%). +>>> dfu-programmer atmega32u4 reset +``` + +If you have any issues with this, you may need to this: + + sudo make ::dfu + +### Caterina + +For Arduino boards and their close (such as the SparkFun ProMicro), when you're ready to compile and flash your firmware, open up your terminal window and run the built command: + + make ::avrdude + +For example, if your keymap is named "xyverz" and you're building a keymap for a rev2 Lets Split, you'll use this command: + + make lets_split/rev2:xyverz:avrdude + +Once the firmware finishes compiling, it will output something like this: + +``` +Linking: .build/lets_split_rev2_xyverz.elf [OK] +Creating load file for flashing: .build/lets_split_rev2_xyverz.hex [OK] +Checking file size of lets_split_rev2_xyverz.hex [OK] + * File size is fine - 27938/28672 +Detecting USB port, reset your controller now.............. +``` + +At this point, reset the board and then the script will detect the bootloader and then flash the board. The output should look something like this: + +``` +Detected controller on USB port at /dev/ttyS15 + +Connecting to programmer: . +Found programmer: Id = "CATERIN"; type = S + Software Version = 1.0; No Hardware Version given. +Programmer supports auto addr increment. +Programmer supports buffered memory access with buffersize=128 bytes. + +Programmer supports the following devices: + Device code: 0x44 + +avrdude.exe: AVR device initialized and ready to accept instructions + +Reading | ################################################## | 100% 0.00s + +avrdude.exe: Device signature = 0x1e9587 (probably m32u4) +avrdude.exe: NOTE: "flash" memory has been specified, an erase cycle will be performed + To disable this feature, specify the -D option. +avrdude.exe: erasing chip +avrdude.exe: reading input file "./.build/lets_split_rev2_xyverz.hex" +avrdude.exe: input file ./.build/lets_split_rev2_xyverz.hex auto detected as Intel Hex +avrdude.exe: writing flash (27938 bytes): + +Writing | ################################################## | 100% 2.40s + +avrdude.exe: 27938 bytes of flash written +avrdude.exe: verifying flash memory against ./.build/lets_split_rev2_xyverz.hex: +avrdude.exe: load data flash data from input file ./.build/lets_split_rev2_xyverz.hex: +avrdude.exe: input file ./.build/lets_split_rev2_xyverz.hex auto detected as Intel Hex +avrdude.exe: input file ./.build/lets_split_rev2_xyverz.hex contains 27938 bytes +avrdude.exe: reading on-chip flash data: + +Reading | ################################################## | 100% 0.43s + +avrdude.exe: verifying ... +avrdude.exe: 27938 bytes of flash verified + +avrdude.exe: safemode: Fuses OK (E:CB, H:D8, L:FF) + +avrdude.exe done. Thank you. +``` +If you have any issues with this, you may need to this: + + sudo make ::avrdude + +## HalfKay + +For the PJRC devices (Teensy's), when you're ready to compile and flash your firmware, open up your terminal window and run the built command: + + make ::teensy + +For example, if your keymap is named "xyverz" and you're building a keymap for an Ergodox or Ergodox EZ, you'll use this command: + + make erdogox_ez:xyverz:teensy + +Once the firmware finishes compiling, it will output something like this: + +``` +Linking: .build/ergodox_ez_xyverz.elf [OK] +Creating load file for flashing: .build/ergodox_ez_xyverz.hex [OK] +Checking file size of ergodox_ez_xyverz.hex [OK] + * File size is fine - 25584/32256 + Teensy Loader, Command Line, Version 2.1 +Read "./.build/ergodox_ez_xyverz.hex": 25584 bytes, 79.3% usage +Waiting for Teensy device... + (hint: press the reset button) + ``` + + At this point, reset your board. Once you've done that, you'll see output like this: + + ``` + Found HalfKay Bootloader +Read "./.build/ergodox_ez_drashna.hex": 28532 bytes, 88.5% usage +Programming............................................................................................................................................................................ +................................................... +Booting +``` + + ## Test It Out! Congrats! Your custom firmware has been programmed to your keyboard! From b922a550dc166b1e790906e454ed65c58acfb76f Mon Sep 17 00:00:00 2001 From: Otto Rask Date: Mon, 19 Mar 2018 16:25:46 +0200 Subject: [PATCH 135/578] Add pearl README, add rask's Pearl layout --- keyboards/pearl/README.md | 85 +++++++++++++++++++++ keyboards/pearl/keymaps/rask/.editorconfig | 5 ++ keyboards/pearl/keymaps/rask/README.md | 23 ++++++ keyboards/pearl/keymaps/rask/keymap.c | 87 ++++++++++++++++++++++ 4 files changed, 200 insertions(+) create mode 100644 keyboards/pearl/README.md create mode 100644 keyboards/pearl/keymaps/rask/.editorconfig create mode 100644 keyboards/pearl/keymaps/rask/README.md create mode 100644 keyboards/pearl/keymaps/rask/keymap.c diff --git a/keyboards/pearl/README.md b/keyboards/pearl/README.md new file mode 100644 index 000000000000..ec54ba80f50d --- /dev/null +++ b/keyboards/pearl/README.md @@ -0,0 +1,85 @@ +# Pearl 40% + +Pearl 40% is a keyboard designed by Koobaczech. It uses an Atmel +ATMEGA32A MCU. + +## Compiling and flashing + +These instructions are for building and flashing your Pearl 40% without +Bootmapper Client. + +### Requirements + +#### Windows + +(to be written, help needed) + +#### Mac + +Apart from regular QMK and AVR dependencies you need to install +`bootloadHID`. You can install it with `homebrew` as follows: + + $ brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb + +If you don't use `homebrew` you can try following the compiling +instructions defined below in the Linux section. + +#### Linux + +For Linux you require all regular QMK dependencies, but make sure you're +using `gcc-avr` version 4.9 or higher. 4.8 and lower do not contain the +proper definitions for ATMEGA32A MCUs and QMK will fail while attempting +to compile a HEX for Pearl 40%. + +E.g. you cannot compile Pearl 40% HEX on a regular Ubuntu 14.04 as +`gcc-avr` version is maxed to 4.8 on it. + +Additionally you need an operational `bootloadHID` binary. + +You can install `bootloadHID` by taking the following steps: + + $ git clone https://github.com/robertgzr/bootloadHID ~/tmp/bootloadHIDsrc + $ cd ~/tmp/bootloadHIDsrc/commandline + $ make VENDORID=0x16c0 PRODUCTID=0x05DF # vid and pid for atmega32a + $ chmod +x bootloadHID && cp bootloadHID /usr/bin/bootloadHID + +Running `which bootloadHID` should return `/usr/bin/bootloadHID`. + +### Compiling + +Enter the QMK root directory and compile a keymap with the following +command: + + $ make pearl: + +where `` is a layout directory under the `pearl` directory. + +QMK should compile a HEX (called `pearl_.hex`) for you, which +you can flash using `bootloadHID`. + +### Flashing + +To enable Pearl 40% bootloading mode, unplug the keyboard, then plug it +in while holding `Esc` at the same time (the top-leftmost switch on the +PCB, next to the USB connector). Once the board is in bootload mode, +issue the following command (you might require `sudo` to perform the +command): + + # assuming we're still in the QMK root dir where you compiled a HEX into + $ bootloadHID -r ./pearl_.hex + +You should see something similar to + + > Page size = + > Device size = ; remaining + > Uploading bytes starting at 0 (0x0) + > ... + +where `` should be slowly increasing as the HEX is being +flashed to the board. If there is some warning about `resource busy` it +should still work OK. + +Once done the board underglow should turn red and the new firmware has +been flashed. If you can't type on the board try plugging it in again +(without holding any keys to prevent accidentally setting it into +bootload mode again). diff --git a/keyboards/pearl/keymaps/rask/.editorconfig b/keyboards/pearl/keymaps/rask/.editorconfig new file mode 100644 index 000000000000..866353dcd6eb --- /dev/null +++ b/keyboards/pearl/keymaps/rask/.editorconfig @@ -0,0 +1,5 @@ +root = true + +[*.c] +indent_size = 4 +indent_style = space diff --git a/keyboards/pearl/keymaps/rask/README.md b/keyboards/pearl/keymaps/rask/README.md new file mode 100644 index 000000000000..79465ffd9deb --- /dev/null +++ b/keyboards/pearl/keymaps/rask/README.md @@ -0,0 +1,23 @@ +# rask's Pearl 40% + +## Layout + +The firmware offers five layers: + +1. Base layer +2. Base with numbers and symbols (Fn1) +3. Base with F-row and arrows (Fn2) +4. Base with media and RGB controls (Fn3) +5. More nav and utils (Fn2+Fn3, aka NavFn) + +![rask's Pearl 40% layout](https://i.imgur.com/gKVQapZ.png) + +Base for this firmware copied from jetpacktuxedo's QMK firmware. + +--- + +## Compiling and flashing + +To compile a HEX follow the Pearl 40% instructions. + +Flashing instructions also available at Pearl 40% instructions. diff --git a/keyboards/pearl/keymaps/rask/keymap.c b/keyboards/pearl/keymaps/rask/keymap.c new file mode 100644 index 000000000000..b9f1350939b8 --- /dev/null +++ b/keyboards/pearl/keymaps/rask/keymap.c @@ -0,0 +1,87 @@ +#include "pearl.h" + +#define ____ KC_TRNS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // BASE LAYER + [0] = KEYMAP( + 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, + MO(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(3), + KC_LCTL, KC_LALT, KC_BSPC, MO(1), MO(1), KC_SPC, KC_RALT, KC_LGUI + ), + // BASE LAYER TWO (Fn1) + [1] = KEYMAP( + KC_GRV, 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_QUOT, KC_BSLS, + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, KC_RSFT, + ____, ____, ____, ____, ____, ____, ____, ____ + ), + // FROW LAYER AND ARROWS (Fn2) + [2] = KEYMAP( + KC_ESC, 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_UP, ____, ____, + ____, ____, ____, ____, ____, ____, ____, ____, KC_LEFT, KC_DOWN,KC_RGHT, MO(4), + ____, ____, ____, ____, ____, ____, ____, ____ + ), + // MEDIA AND RGB (Fn3) + [3] = KEYMAP( + ____, ____, ____, ____, ____, ____, ____, ____, ____, KC_MPRV,KC_MPLY, KC_MNXT, KC_DEL, + ____, ____, ____, RGB_HUI, RGB_SAI,RGB_VAI,____, ____, ____, ____, ____, ____, + ____, RGB_MOD, RGB_TOG, RGB_HUD, RGB_SAD,RGB_VAD,____, ____, ____, ____, ____, ____, + ____, ____, ____, ____, ____, ____, ____, ____ + ), + // UTIL (Fn1+Fn3) + [4] = KEYMAP( + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, KC_PSCR, ____, + ____, ____, ____, ____, ____, ____, ____, ____, ____, KC_PGUP,____, ____, + ____, ____, ____, ____, ____, ____, ____, ____, KC_HOME, KC_PGDN,KC_END, ____, + RESET, ____, ____, ____, ____, ____, ____, ____ + ), +}; + +/** + * Status LED layer indicators courtesy of jetpacktuxedo's firmware + */ +uint32_t layer_state_set_kb(uint32_t state) +{ + // if we are on layer 1 + if (state & (1<<1)){ + // light num lock led + PORTD |= (1 << PD0); + } else{ + PORTD &= ~(1 << PD0); + } + + // if we are on layer 2 + if (state & (1<<2)){ + // light caps lock led + PORTD |= (1 << PD1); + } else{ + PORTD &= ~(1 << PD1); + } + + // if we are on layer 3 + if (state & (1<<3)){ + // light scroll lock led + PORTD |= (1 << PD6); + } else{ + PORTD &= ~(1 << PD6); + } + + /* + // if we are on layer 4 + if (state & (1<<4)){ + // light all leds + PORTD |= (1 << PD0); + PORTD |= (1 << PD1); + PORTD |= (1 << PD6); + } else{ + PORTD &= ~(1 << PD0); + PORTD &= ~(1 << PD1); + PORTD &= ~(1 << PD6); + } + */ + + return state; +} From 2038a515d9f6d137a34bd03e1294617e9091ec1e Mon Sep 17 00:00:00 2001 From: mtei <2170248+mtei@users.noreply.github.com> Date: Mon, 26 Mar 2018 23:36:17 +0900 Subject: [PATCH 136/578] change rgblight_increase_val() and eeconfig_update_rgblight_default(), use RGBLIGHT_LIMIT_VAL insted of 255. --- quantum/rgblight.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/quantum/rgblight.c b/quantum/rgblight.c index cc49cdf6369b..ae183440817e 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -23,6 +23,10 @@ #include "debug.h" #include "led_tables.h" +#ifndef RGBLIGHT_LIMIT_VAL +#define RGBLIGHT_LIMIT_VAL 255 +#endif + __attribute__ ((weak)) const uint8_t RGBLED_BREATHING_INTERVALS[] PROGMEM = {30, 20, 10, 5}; __attribute__ ((weak)) @@ -46,11 +50,9 @@ bool rgblight_timer_enabled = false; void sethsv(uint16_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1) { uint8_t r = 0, g = 0, b = 0, base, color; - #ifdef RGBLIGHT_LIMIT_VAL - if (val > RGBLIGHT_LIMIT_VAL) { + if (val > RGBLIGHT_LIMIT_VAL) { val=RGBLIGHT_LIMIT_VAL; // limit the val - } - #endif + } if (sat == 0) { // Acromatic color (gray). Hue doesn't mind. r = val; @@ -119,7 +121,7 @@ void eeconfig_update_rgblight_default(void) { rgblight_config.mode = 1; rgblight_config.hue = 0; rgblight_config.sat = 255; - rgblight_config.val = 255; + rgblight_config.val = RGBLIGHT_LIMIT_VAL; eeconfig_update_rgblight(rgblight_config.raw); } void eeconfig_debug_rgblight(void) { @@ -313,8 +315,8 @@ void rgblight_decrease_sat(void) { } void rgblight_increase_val(void) { uint8_t val; - if (rgblight_config.val + RGBLIGHT_VAL_STEP > 255) { - val = 255; + if (rgblight_config.val + RGBLIGHT_VAL_STEP > RGBLIGHT_LIMIT_VAL) { + val = RGBLIGHT_LIMIT_VAL; } else { val = rgblight_config.val + RGBLIGHT_VAL_STEP; } From 66162b2b681de37dd0aa34f3b6527a5292ab1560 Mon Sep 17 00:00:00 2001 From: Jason Stillwell Date: Sun, 25 Mar 2018 19:16:25 -0700 Subject: [PATCH 137/578] add grave to auto-shift. --- quantum/process_keycode/process_auto_shift.c | 1 + 1 file changed, 1 insertion(+) diff --git a/quantum/process_keycode/process_auto_shift.c b/quantum/process_keycode/process_auto_shift.c index 098bdeaa7d5b..01d99445b00b 100644 --- a/quantum/process_keycode/process_auto_shift.c +++ b/quantum/process_keycode/process_auto_shift.c @@ -172,6 +172,7 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) { case KC_COMM: case KC_DOT: case KC_SLSH: + case KC_GRAVE: #endif autoshift_flush(); From ae7284edb8bd8ed7fcab29415049bf03baf57f8d Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 26 Mar 2018 14:24:30 -0400 Subject: [PATCH 138/578] rename api docs to internals --- docs/_summary.md | 16 ++++++++-------- docs/{api_defines.md => internals_defines.md} | 0 ...ck_reg.md => internals_input_callback_reg.md} | 0 ...i_midi_device.md => internals_midi_device.md} | 0 ...md => internals_midi_device_setup_process.md} | 0 .../{api_midi_util.md => internals_midi_util.md} | 0 ..._functions.md => internals_send_functions.md} | 0 ...i_sysex_tools.md => internals_sysex_tools.md} | 0 ...ate_api_docs.sh => generate_internal_docs.sh} | 2 +- util/travis_docs.sh | 10 +++++----- 10 files changed, 14 insertions(+), 14 deletions(-) rename docs/{api_defines.md => internals_defines.md} (100%) rename docs/{api_input_callback_reg.md => internals_input_callback_reg.md} (100%) rename docs/{api_midi_device.md => internals_midi_device.md} (100%) rename docs/{api_midi_device_setup_process.md => internals_midi_device_setup_process.md} (100%) rename docs/{api_midi_util.md => internals_midi_util.md} (100%) rename docs/{api_send_functions.md => internals_send_functions.md} (100%) rename docs/{api_sysex_tools.md => internals_sysex_tools.md} (100%) rename util/{generate_api_docs.sh => generate_internal_docs.sh} (91%) mode change 100755 => 100644 diff --git a/docs/_summary.md b/docs/_summary.md index e7a32959e8ef..318c526a8540 100644 --- a/docs/_summary.md +++ b/docs/_summary.md @@ -88,11 +88,11 @@ * Other Topics * [Using Eclipse with QMK](eclipse.md) -* QMK API (In Progress) - * [Defines](api_defines.md) - * [Input Callback Reg](api_input_callback_reg.md) - * [Midi Device](api_midi_device.md) - * [Midi Device Setup Process](api_midi_device_setup_process.md) - * [Midi Util](api_midi_util.md) - * [Send Functions](api_send_functions.md) - * [Sysex Tools](api_sysex_tools.md) +* QMK Internals (In Progress) + * [Defines](internals_defines.md) + * [Input Callback Reg](internals_input_callback_reg.md) + * [Midi Device](internals_midi_device.md) + * [Midi Device Setup Process](internals_midi_device_setup_process.md) + * [Midi Util](internals_midi_util.md) + * [Send Functions](internals_send_functions.md) + * [Sysex Tools](internals_sysex_tools.md) diff --git a/docs/api_defines.md b/docs/internals_defines.md similarity index 100% rename from docs/api_defines.md rename to docs/internals_defines.md diff --git a/docs/api_input_callback_reg.md b/docs/internals_input_callback_reg.md similarity index 100% rename from docs/api_input_callback_reg.md rename to docs/internals_input_callback_reg.md diff --git a/docs/api_midi_device.md b/docs/internals_midi_device.md similarity index 100% rename from docs/api_midi_device.md rename to docs/internals_midi_device.md diff --git a/docs/api_midi_device_setup_process.md b/docs/internals_midi_device_setup_process.md similarity index 100% rename from docs/api_midi_device_setup_process.md rename to docs/internals_midi_device_setup_process.md diff --git a/docs/api_midi_util.md b/docs/internals_midi_util.md similarity index 100% rename from docs/api_midi_util.md rename to docs/internals_midi_util.md diff --git a/docs/api_send_functions.md b/docs/internals_send_functions.md similarity index 100% rename from docs/api_send_functions.md rename to docs/internals_send_functions.md diff --git a/docs/api_sysex_tools.md b/docs/internals_sysex_tools.md similarity index 100% rename from docs/api_sysex_tools.md rename to docs/internals_sysex_tools.md diff --git a/util/generate_api_docs.sh b/util/generate_internal_docs.sh old mode 100755 new mode 100644 similarity index 91% rename from util/generate_api_docs.sh rename to util/generate_internal_docs.sh index 8d7ec3101f9a..bfee797d3abc --- a/util/generate_api_docs.sh +++ b/util/generate_internal_docs.sh @@ -28,4 +28,4 @@ rm -rf doxygen doxygen Doxyfile # Generate the moxygen Markdown files -moxygen -a -g -o docs/api_%s.md doxygen/xml +moxygen -a -g -o docs/internals_%s.md doxygen/xml diff --git a/util/travis_docs.sh b/util/travis_docs.sh index 74eee3c26751..5cfd63466d22 100644 --- a/util/travis_docs.sh +++ b/util/travis_docs.sh @@ -3,12 +3,12 @@ source util/travis_push.sh if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip docs]"* ]] ; then - if git diff --name-only ${TRAVIS_COMMIT_RANGE} | grep -e '^quantum/' -e '^tmk_core/' -e '^docs/api_.*'; then - echo "Generating API docs..." + if git diff --name-only ${TRAVIS_COMMIT_RANGE} | grep -e '^quantum/' -e '^tmk_core/' -e '^docs/internals_.*'; then + echo "Generating internal docs..." rm -rf doxygen doxygen Doxyfile - moxygen -q -a -g -o docs/api_%s.md doxygen/xml - git add docs/api_* - git commit -m'autogenerated api docs for ${TRAVIS_COMMIT_RANGE}' || true + moxygen -q -a -g -o docs/internals_%s.md doxygen/xml + git add docs/internals_* + git commit -m'autogenerated internal docs for ${TRAVIS_COMMIT_RANGE}' || true fi fi From 19a1fbaca2137a9d4cd529e363039a612a4f941d Mon Sep 17 00:00:00 2001 From: dankm Date: Mon, 26 Mar 2018 14:08:08 -0600 Subject: [PATCH 139/578] Better non-Linux support (#2524) * grep -> $(GREP) Some UNIXy systems (FreeBSD for example) don't use GNU grep by default. Allow the user to specify which grep implementation to use so that GNU grep can be specified. * Allow using versioned avr-gcc command Don't hardcode "avr-gcc", and allow strings such as "avr-gcc8", or "avr-gcc-7.3.0" to match checks for "avr-gcc". --- keyboards/handwired/woodpad/rules.mk | 4 ++-- tmk_core/avr.mk | 23 ++++++++++++----------- tmk_core/rules.mk | 4 ++-- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/keyboards/handwired/woodpad/rules.mk b/keyboards/handwired/woodpad/rules.mk index 11f096581e58..f8c488307f9b 100644 --- a/keyboards/handwired/woodpad/rules.mk +++ b/keyboards/handwired/woodpad/rules.mk @@ -71,8 +71,8 @@ RGBLIGHT_ENABLE ?= no # while [ -z $$USB ]; do \ # sleep 1; \ # ls /dev/tty* > /tmp/2; \ -# USB=`diff /tmp/1 /tmp/2 | grep -o '/dev/tty.*'`; \ +# USB=`diff /tmp/1 /tmp/2 | $(GREP) -o '/dev/tty.*'`; \ # done; \ # avrdude -p $(MCU) -c avr109 -P $$USB -U flash:w:$(BUILD_DIR)/$(TARGET).hex # -#.PHONY: avrdude \ No newline at end of file +#.PHONY: avrdude diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk index 10b043caa25d..eb55dba95c0a 100644 --- a/tmk_core/avr.mk +++ b/tmk_core/avr.mk @@ -135,13 +135,14 @@ flip: $(BUILD_DIR)/$(TARGET).hex check-size $(BATCHISP) -hardware usb -device $(MCU) -operation start reset 0 DFU_PROGRAMMER ?= dfu-programmer +GREP ?= grep dfu: $(BUILD_DIR)/$(TARGET).hex cpfirmware check-size until $(DFU_PROGRAMMER) $(MCU) get bootloader-version; do\ echo "Error: Bootloader not found. Trying again in 5s." ;\ sleep 5 ;\ done - if $(DFU_PROGRAMMER) --version 2>&1 | grep -q 0.7 ; then\ + if $(DFU_PROGRAMMER) --version 2>&1 | $(GREP) -q 0.7 ; then\ $(DFU_PROGRAMMER) $(MCU) erase --force;\ else\ $(DFU_PROGRAMMER) $(MCU) erase;\ @@ -161,7 +162,7 @@ flip-ee: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep $(REMOVE) $(BUILD_DIR)/$(TARGET)eep.hex dfu-ee: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep - if $(DFU_PROGRAMMER) --version 2>&1 | grep -q 0.7 ; then\ + if $(DFU_PROGRAMMER) --version 2>&1 | $(GREP) -q 0.7 ; then\ $(DFU_PROGRAMMER) $(MCU) flash --eeprom $(BUILD_DIR)/$(TARGET).eep;\ else\ $(DFU_PROGRAMMER) $(MCU) flash-eeprom $(BUILD_DIR)/$(TARGET).eep;\ @@ -169,7 +170,7 @@ dfu-ee: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep $(DFU_PROGRAMMER) $(MCU) reset avrdude: $(BUILD_DIR)/$(TARGET).hex check-size - if grep -q -s Microsoft /proc/version; then \ + if $(GREP) -q -s Microsoft /proc/version; then \ echo 'ERROR: AVR flashing cannot be automated within the Windows Subsystem for Linux (WSL) currently. Instead, take the .hex file generated and flash it using AVRDUDE, AVRDUDESS, or XLoader.'; \ else \ printf "Detecting USB port, reset your controller now."; \ @@ -178,12 +179,12 @@ avrdude: $(BUILD_DIR)/$(TARGET).hex check-size sleep 0.5; \ printf "."; \ ls /dev/tty* > /tmp/2; \ - USB=`comm -13 /tmp/1 /tmp/2 | grep -o '/dev/tty.*'`; \ + USB=`comm -13 /tmp/1 /tmp/2 | $(GREP) -o '/dev/tty.*'`; \ mv /tmp/2 /tmp/1; \ done; \ echo ""; \ echo "Detected controller on USB port at $$USB"; \ - if grep -q -s 'MINGW\|MSYS' /proc/version; then \ + if $(GREP) -q -s 'MINGW\|MSYS' /proc/version; then \ USB=`echo "$$USB" | perl -pne 's/\/dev\/ttyS(\d+)/COM.($$1+1)/e'`; \ echo "Remapped MSYS2 USB port to $$USB"; \ fi; \ @@ -252,12 +253,12 @@ extcoff: $(BUILD_DIR)/$(TARGET).elf bootloader: make -C lib/lufa/Bootloaders/DFU/ clean echo -e "#ifndef QMK_KEYBOARD\n#define QMK_KEYBOARD\n" > lib/lufa/Bootloaders/DFU/Keyboard.h - echo -e `grep "MANUFACTURER" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h - echo -e `grep "PRODUCT" $(ALL_CONFIGS) -h | tail -1` Bootloader >> lib/lufa/Bootloaders/DFU/Keyboard.h - echo -e `grep "QMK_ESC_OUTPUT" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h - echo -e `grep "QMK_ESC_INPUT" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h - echo -e `grep "QMK_LED" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h - echo -e `grep "QMK_SPEAKER" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h + echo -e `$(GREP) "MANUFACTURER" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h + echo -e `$(GREP) "PRODUCT" $(ALL_CONFIGS) -h | tail -1` Bootloader >> lib/lufa/Bootloaders/DFU/Keyboard.h + echo -e `$(GREP) "QMK_ESC_OUTPUT" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h + echo -e `$(GREP) "QMK_ESC_INPUT" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h + echo -e `$(GREP) "QMK_LED" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h + echo -e `$(GREP) "QMK_SPEAKER" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h echo -e "\n#endif" >> lib/lufa/Bootloaders/DFU/Keyboard.h make -C lib/lufa/Bootloaders/DFU/ echo -e "BootloaderDFU.hex copied to $(TARGET)_bootloader.hex" diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk index ff6af4a88283..b556c4609bf2 100644 --- a/tmk_core/rules.mk +++ b/tmk_core/rules.mk @@ -370,9 +370,9 @@ show_path: @echo SRC=$(SRC) @echo OBJ=$(OBJ) -ifeq ($(CC),avr-gcc) +ifeq ($(findstring avr-gcc,$(CC)),avr-gcc) check-size: - $(eval MAX_SIZE=$(shell n=`avr-gcc -E -mmcu=$(MCU) $(CFLAGS) $(OPT_DEFS) tmk_core/common/avr/bootloader_size.c 2> /dev/null | sed -ne '/^#/n;/^AVR_SIZE:/,$${s/^AVR_SIZE: //;p;}'`; echo $$(($$n)) || echo 0)) + $(eval MAX_SIZE=$(shell n=`$(CC) -E -mmcu=$(MCU) $(CFLAGS) $(OPT_DEFS) tmk_core/common/avr/bootloader_size.c 2> /dev/null | sed -ne '/^#/n;/^AVR_SIZE:/,$${s/^AVR_SIZE: //;p;}'` && echo $$(($$n)) || echo 0)) $(eval CURRENT_SIZE=$(shell if [ -f $(BUILD_DIR)/$(TARGET).hex ]; then $(SIZE) --target=$(FORMAT) $(BUILD_DIR)/$(TARGET).hex | $(AWK) 'NR==2 {print $$4}'; else printf 0; fi)) if [ $(MAX_SIZE) -gt 0 ] && [ $(CURRENT_SIZE) -gt 0 ]; then \ $(SILENT) || printf "$(MSG_CHECK_FILESIZE)" | $(AWK_CMD); \ From b773d94477003592294438f596b1ce880394a253 Mon Sep 17 00:00:00 2001 From: mechmerlin Date: Tue, 27 Mar 2018 08:01:22 -0700 Subject: [PATCH 140/578] Add qmk configurator support for KBD75 Also changed KEYMAP to KEYMAP_ALL to be more explicit that it's a layout supporting ALL possible layouts. --- keyboards/kbd75/info.json | 16 ++++++++++++ keyboards/kbd75/kbd75.h | 3 ++- keyboards/kbd75/keymaps/adit/keymap.c | 4 +-- keyboards/kbd75/keymaps/default/keymap.c | 32 ++++++++++++------------ keyboards/kbd75/keymaps/iso/keymap.c | 32 ++++++++++++------------ keyboards/kbd75/keymaps/smt/keymap.c | 10 ++++---- 6 files changed, 57 insertions(+), 40 deletions(-) create mode 100644 keyboards/kbd75/info.json diff --git a/keyboards/kbd75/info.json b/keyboards/kbd75/info.json new file mode 100644 index 000000000000..19489e54c992 --- /dev/null +++ b/keyboards/kbd75/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "KBD75", + "manufacturer": "KBDFans", + "identifier": "", + "url": "", + "maintainer": "qmk", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "width": 16, + "height": 6, + "layouts": { + "KEYMAP_ALL": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Delete", "x":15, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"label":"Home", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Page Up", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Page Down", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"End", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":2.25}, {"x":6, "y":5}, {"x":7, "y":5, "w":3}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}] + } + } +} \ No newline at end of file diff --git a/keyboards/kbd75/kbd75.h b/keyboards/kbd75/kbd75.h index 16374b4f5610..3648a15bd852 100644 --- a/keyboards/kbd75/kbd75.h +++ b/keyboards/kbd75/kbd75.h @@ -3,7 +3,8 @@ #include "quantum.h" -#define KEYMAP( \ +// LAYOUT for all possible switch positions on a KBD75 +#define KEYMAP_ALL( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ diff --git a/keyboards/kbd75/keymaps/adit/keymap.c b/keyboards/kbd75/keymaps/adit/keymap.c index 9cd473b648b7..8bcc15affc14 100644 --- a/keyboards/kbd75/keymaps/adit/keymap.c +++ b/keyboards/kbd75/keymaps/adit/keymap.c @@ -2,7 +2,7 @@ #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - KEYMAP( + KEYMAP_ALL( KC_ESC, 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_PSCR, KC_SLCK, KC_DEL, KC_GRV, 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_TRNS, KC_BSPC, KC_HOME, 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_BSLS, KC_PGUP, @@ -10,7 +10,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, LT(1,KC_END), KC_CAPS, KC_LALT, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_RGUI, KC_TRNS, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - KEYMAP( + KEYMAP_ALL( RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/kbd75/keymaps/default/keymap.c b/keyboards/kbd75/keymaps/default/keymap.c index 95cf34100b15..3c96dee08791 100644 --- a/keyboards/kbd75/keymaps/default/keymap.c +++ b/keyboards/kbd75/keymaps/default/keymap.c @@ -2,7 +2,7 @@ #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - KEYMAP( + KEYMAP_ALL( LT(2, KC_ESC), 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_PSCR, MO(1), KC_DEL, KC_GRV, 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_DEL, KC_BSPC, KC_HOME, 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_BSLS, KC_PGUP, @@ -10,7 +10,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, MO(1), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, M(1), M(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -58,7 +58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -66,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -74,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -82,7 +82,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -90,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -98,7 +98,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -106,7 +106,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -114,7 +114,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -122,7 +122,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/kbd75/keymaps/iso/keymap.c b/keyboards/kbd75/keymaps/iso/keymap.c index 3edc56ae53d9..49d6ad71682e 100644 --- a/keyboards/kbd75/keymaps/iso/keymap.c +++ b/keyboards/kbd75/keymaps/iso/keymap.c @@ -2,7 +2,7 @@ #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - KEYMAP( + KEYMAP_ALL( LT(2, KC_ESC), 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_PSCR, MO(1), KC_DEL, KC_GRV, 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_DEL, KC_BSPC, KC_HOME, 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_BSLS, KC_PGUP, @@ -10,7 +10,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, M(1), M(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -58,7 +58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -66,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -74,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -82,7 +82,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -90,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -98,7 +98,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -106,7 +106,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -114,7 +114,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -122,7 +122,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + KEYMAP_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/kbd75/keymaps/smt/keymap.c b/keyboards/kbd75/keymaps/smt/keymap.c index 7dc5576677d7..1a549e59ec92 100644 --- a/keyboards/kbd75/keymaps/smt/keymap.c +++ b/keyboards/kbd75/keymaps/smt/keymap.c @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* 0: ANSI qwerty */ - [_QWERTY] = KEYMAP( + [_QWERTY] = KEYMAP_ALL( KC_ESC, 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_PSCR, KC_PAUS, KC_DEL, \ KC_GRV, 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, KC_INS, KC_HOME, \ HPR_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, KC_PGUP, \ @@ -65,7 +65,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* 1: ANSI colemak */ - [_COLEMAK] = KEYMAP( + [_COLEMAK] = KEYMAP_ALL( KC_ESC, 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_PSCR, KC_PAUS, KC_DEL, \ KC_GRV, 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, KC_INS, KC_HOME, \ HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGUP, \ @@ -90,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* 2: ANSI dvorak */ - [_DVORAK] = KEYMAP( + [_DVORAK] = KEYMAP_ALL( KC_ESC, 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_PSCR, KC_PAUS, KC_DEL, \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS, KC_HOME, \ HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSPC, KC_PGUP, \ @@ -115,7 +115,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* 3: ANSI Fn layer */ - [_FL] = KEYMAP( + [_FL] = KEYMAP_ALL( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ @@ -140,7 +140,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* 4: ANSI control layer */ - [_CL] = KEYMAP( + [_CL] = KEYMAP_ALL( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, \ _______, _______, _______, _______, RESET, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, RGB_VAI, \ From d3a0c7e3a6eaddd0b6000bf12cfdefac92bc6b55 Mon Sep 17 00:00:00 2001 From: mechmerlin Date: Tue, 27 Mar 2018 08:43:51 -0700 Subject: [PATCH 141/578] qmk configurator support for e6v2. Let it be known that this is one of the keymaps I've seen done right --- keyboards/e6v2/info.json | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 keyboards/e6v2/info.json diff --git a/keyboards/e6v2/info.json b/keyboards/e6v2/info.json new file mode 100644 index 000000000000..6eb5bd18cd5b --- /dev/null +++ b/keyboards/e6v2/info.json @@ -0,0 +1,28 @@ +{ + "keyboard_name": "E6-V2", + "manufacturer": "Exclusive", + "identifier": "", + "url": "", + "maintainer": "qmk", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "width": 15, + "height": 5, + "layouts": { + "KEYMAP": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + }, + + "KEYMAP_ANSI": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + }, + + "KEYMAP_HHKB": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}] + }, + + "KEYMAP_HHKB_SPLITS": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}] + } + } +} \ No newline at end of file From 55d0b1f048528439135874dd91ae009b9a2b4c9d Mon Sep 17 00:00:00 2001 From: bjacques Date: Tue, 27 Mar 2018 17:00:52 +0100 Subject: [PATCH 142/578] Create new 'tada68/iso-uk' layout tailored for boards with the big fat iso enter key (#2612) --- keyboards/tada68/keymaps/iso-uk/config.h | 4 ++ keyboards/tada68/keymaps/iso-uk/keymap.c | 49 +++++++++++++++ keyboards/tada68/keymaps/iso-uk/readme.md | 19 ++++++ keyboards/tada68/keymaps/iso-uk/rules.mk | 21 +++++++ keyboards/tada68/keymaps/iso-uk/tada68.h | 74 +++++++++++++++++++++++ 5 files changed, 167 insertions(+) create mode 100644 keyboards/tada68/keymaps/iso-uk/config.h create mode 100644 keyboards/tada68/keymaps/iso-uk/keymap.c create mode 100644 keyboards/tada68/keymaps/iso-uk/readme.md create mode 100644 keyboards/tada68/keymaps/iso-uk/rules.mk create mode 100644 keyboards/tada68/keymaps/iso-uk/tada68.h diff --git a/keyboards/tada68/keymaps/iso-uk/config.h b/keyboards/tada68/keymaps/iso-uk/config.h new file mode 100644 index 000000000000..1e1005aeef8d --- /dev/null +++ b/keyboards/tada68/keymaps/iso-uk/config.h @@ -0,0 +1,4 @@ +#include "../../config.h" + +#define BACKLIGHT_BREATHING +#define BREATHING_PERIOD 6 \ No newline at end of file diff --git a/keyboards/tada68/keymaps/iso-uk/keymap.c b/keyboards/tada68/keymaps/iso-uk/keymap.c new file mode 100644 index 000000000000..185e29385aaa --- /dev/null +++ b/keyboards/tada68/keymaps/iso-uk/keymap.c @@ -0,0 +1,49 @@ +#include "tada68.h" + +#define _BL 0 +#define _FL 1 + +#define _______ KC_TRNS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,----------------------------------------------------------------. + * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |~ ` | + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| |Del | + * |------------------------------------------------------- -----| + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #|Entr|PgUp| + * |----------------------------------------------------------------| + * |Shift| \ | Z| X| C| V| B| N| M| ,| .| /|Rshift|Up|PgDn| + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ +[_BL] = KEYMAP_ISO( + 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_BSPC,KC_GRV, \ + 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_NUHS,KC_DEL, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT,KC_PGUP, \ + KC_LSFT,KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,KC_UP,KC_PGDN, \ + KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT), + + /* Keymap _FL1: Function Layer 1 + * ,----------------------------------------------------------------. + * | | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| Delete| Ins| + + * |----------------------------------------------------------------| + * | | | ↑ | | | | | | | | | | | |Home| + * |------------------------------------------------------- -----| + * | | ← | ↓ | → | | | | | | | | | | | End| + * |----------------------------------------------------------------| + * | | | | | L+|LED| L-| | V+| V-|Mut| | MsBtn|Up|MsBn| + * |----------------------------------------------------------------| + * | | | | | | | | Lt| Dn| Rt | + * `----------------------------------------------------------------' + */ +[_FL] = KEYMAP_ISO( + _______, 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_DEL, KC_INS, \ + _______,_______, KC_UP,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, KC_HOME, \ + _______,KC_LEFT,KC_DOWN,KC_RGHT,_______,_______,_______,_______,_______,_______,_______,_______, _______, KC_END, \ + _______,_______,_______, _______, BL_DEC,BL_TOGG, BL_INC,_______,KC_VOLU,KC_VOLD,KC_MUTE,_______,KC_BTN1, KC_MS_U,KC_BTN2, \ + _______,_______,_______, _______, _______,_______,_______,KC_MS_L, KC_MS_D,KC_MS_R), +}; diff --git a/keyboards/tada68/keymaps/iso-uk/readme.md b/keyboards/tada68/keymaps/iso-uk/readme.md new file mode 100644 index 000000000000..03e676915404 --- /dev/null +++ b/keyboards/tada68/keymaps/iso-uk/readme.md @@ -0,0 +1,19 @@ +# TADA68 layout for ISO UK + +This layout has been tested on a TADA68 purchased from kbdfans in March 2018. The physical key layout includes the "double height" iso Enter key and the "short" Left Shift along side the iso Backslash key. [See this keyboard-layout-editor.com Gist](http://www.keyboard-layout-editor.com/#/gists/acf0f32f7ea0d0ed35c901663ca47919) + +The Base Layer and Function layer defined here match the layout defined by the kbdfans keyboard layout tool found at http://123.57.250.164:3000/tada68 + +## Special mention for the ISO Hash key + +When viewing tada68.h in this directory, KEYMAP_ISO does not define a key at location *k2c* (it's missing) even though this is where the ISO Hash key (KC_NUHS) physically appears on your keyboard. For some reason we have to map the KC_NUHS to key location *k1d* which is above the Enter key. + +In an attempt to clarify this anomaly, the ascii image comments in keymap.c depicts the physical layout, but the definition in *[_BL] = KEYMAP_ISO* depicts the layout that the firmware operates on. + +## Installation + +Please see the [tada68 readme](../../readme.md) using the following command + +``` +make tada68:iso-uk:bin +``` \ No newline at end of file diff --git a/keyboards/tada68/keymaps/iso-uk/rules.mk b/keyboards/tada68/keymaps/iso-uk/rules.mk new file mode 100644 index 000000000000..4deca710b8a9 --- /dev/null +++ b/keyboards/tada68/keymaps/iso-uk/rules.mk @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/tada68/keymaps/iso-uk/tada68.h b/keyboards/tada68/keymaps/iso-uk/tada68.h new file mode 100644 index 000000000000..07bdc77eba87 --- /dev/null +++ b/keyboards/tada68/keymaps/iso-uk/tada68.h @@ -0,0 +1,74 @@ +#ifndef TADA68_H +#define TADA68_H + +#include "quantum.h" + +// readability +#define XXX KC_NO + +/* TADA68 ANSI layout + * ,----------------------------------------------------------------. + * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d | 0e | + * |----------------------------------------------------------------| + * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d | 1e | + * |----------------------------------------------------------------| + * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d | 2e | + * |----------------------------------------------------------------| + * | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3c| 3d| 3e | + * |----------------------------------------------------------------| + * | 40 | 41 | 42 | 45 | 49| 4a| 4b| 4c| 4d| 4e | + * `----------------------------------------------------------------' + */ +// The first section contains all of the arguments +// The second converts the arguments into a two-dimensional array + +#define KEYMAP_ANSI( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, k2e, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ + k40, k41, k42, k45, k49, k4a, k4b, k4c, k4d, k4e \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, k2e}, \ + {k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e}, \ + {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d, k4e} \ +} + +/* TADA68 ISO layout + * ,----------------------------------------------------------------. + * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d | 0e | + * |----------------------------------------------------------------| + * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d | 1e | + * |----------------------------------------------------------------| + * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2c| 2d| 2e | + * |----------------------------------------------------------------| + * | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3c| 3d| 3e | + * |----------------------------------------------------------------| + * | 40 | 41 | 42 | 45 | 49| 4a| 4b| 4c| 4d| 4e | + * `----------------------------------------------------------------' + */ +// The first section contains all of the arguments +// The second converts the arguments into a two-dimensional array + +#define KEYMAP_ISO( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, k2e, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ + k40, k41, k42, k45, k49, k4a, k4b, k4c, k4d, k4e \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, k2e}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e}, \ + {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d, k4e} \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); + +#endif \ No newline at end of file From 1305d8de80da06834c4bebf42eb240526135d97f Mon Sep 17 00:00:00 2001 From: Martin Lechner Date: Tue, 27 Mar 2018 18:01:32 +0200 Subject: [PATCH 143/578] [TADA68] Added mac layout with german umlaute on ansi. (#2615) --- keyboards/tada68/keymaps/mlechner/keymap.c | 95 +++++++++++++++++++++ keyboards/tada68/keymaps/mlechner/readme.md | 3 + keyboards/tada68/keymaps/mlechner/rules.mk | 21 +++++ 3 files changed, 119 insertions(+) create mode 100755 keyboards/tada68/keymaps/mlechner/keymap.c create mode 100755 keyboards/tada68/keymaps/mlechner/readme.md create mode 100644 keyboards/tada68/keymaps/mlechner/rules.mk diff --git a/keyboards/tada68/keymaps/mlechner/keymap.c b/keyboards/tada68/keymaps/mlechner/keymap.c new file mode 100755 index 000000000000..79d82b630863 --- /dev/null +++ b/keyboards/tada68/keymaps/mlechner/keymap.c @@ -0,0 +1,95 @@ +#include "tada68.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 + +#define _______ KC_TRNS + +enum custom_keycodes { + MAC_AE = SAFE_RANGE, + MAC_OE, + MAC_SS, + MAC_UE, + MAC_SHFT +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,----------------------------------------------------------------. + * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |~ ` | + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |Del | + * |----------------------------------------------------------------| + * |FN | A| S| D| F| G| H| J| K| L| ;| '|Return |PgUp| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|PgDn| + * |----------------------------------------------------------------| + * |Ctrl|Alt |Win | Space |Win|Alt |Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ +[_BL] = KEYMAP_ANSI( + 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_BSPC,KC_GRV, \ + 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_BSLS,KC_DEL, \ + MO(_FL), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT,KC_PGUP, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,KC_UP,KC_PGDN, \ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI,KC_RALT,KC_CAPS, KC_LEFT,KC_DOWN,KC_RGHT), + + /* Keymap _FL: Function Layer + * ,----------------------------------------------------------------. + * | | F1|F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Del |Ins | + * |----------------------------------------------------------------| + * | | | | | | | | Ü | | Ö | | | | |Hme | + * |----------------------------------------------------------------| + * | | Ä | ß | | | | | | | | | | |End | + * |----------------------------------------------------------------| + * | | | |Bl-|BL |BL+| |VU-|VU+|MUT| | McL|MsU|McR | + * |----------------------------------------------------------------| + * | | | | | | | |MsL|MsD|MsR | + * `----------------------------------------------------------------' + */ +[_FL] = KEYMAP_ANSI( + _______, 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_DEL, KC_INS , \ + _______,_______,_______,_______,_______, _______,_______,MAC_UE,_______,MAC_OE,_______,_______,_______, _______,KC_HOME, \ + _______,MAC_AE , MAC_SS,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_END, \ + _______ ,_______,_______,BL_DEC, BL_TOGG,BL_INC, _______,KC_VOLD,KC_VOLU,KC_MUTE,_______,KC_BTN1, KC_MS_U, KC_BTN2, \ + _______,_______,_______, _______, _______,_______,_______,KC_MS_L,KC_MS_D, KC_MS_R) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch(keycode) { + case MAC_UE: + if(keyboard_report->mods & MOD_BIT(KC_LSFT)) { + clear_keyboard(); + SEND_STRING(SS_LALT("u") SS_LSFT("u")); + } else { + SEND_STRING(SS_LALT("u")"u"); + } + return false; + case MAC_AE: + if(keyboard_report->mods & MOD_BIT(KC_LSFT)) { + clear_keyboard(); + SEND_STRING(SS_LALT("u") SS_LSFT("a")); + } else { + SEND_STRING(SS_LALT("u")"a"); + } + return false; + case MAC_OE: + if(keyboard_report->mods & MOD_BIT(KC_LSFT)) { + clear_keyboard(); + SEND_STRING(SS_LALT("u") SS_LSFT("o")); + } else { + SEND_STRING(SS_LALT("u")"o"); + } + return false; + case MAC_SS: + SEND_STRING(SS_LALT("s")); + return false; + } + } + return true; +}; diff --git a/keyboards/tada68/keymaps/mlechner/readme.md b/keyboards/tada68/keymaps/mlechner/readme.md new file mode 100755 index 000000000000..c35a19bbbd98 --- /dev/null +++ b/keyboards/tada68/keymaps/mlechner/readme.md @@ -0,0 +1,3 @@ +# mlechner's TADA68 layout + +The layout is Mac style with Caps Lock remapped to FN and German Umlaute on the function layer. diff --git a/keyboards/tada68/keymaps/mlechner/rules.mk b/keyboards/tada68/keymaps/mlechner/rules.mk new file mode 100644 index 000000000000..2a7ff27793f9 --- /dev/null +++ b/keyboards/tada68/keymaps/mlechner/rules.mk @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif From 9f5a4af09cc05562e12c2ae0a0885aa7881275e1 Mon Sep 17 00:00:00 2001 From: Benjamin Daschel Date: Tue, 27 Mar 2018 09:04:09 -0700 Subject: [PATCH 144/578] XD60 ANSI (GH60) layout (#2624) * configure layer 0 layout for xd60 as ANSI 60% * update keymap with function key immediately right of spacebar; shuffle mapping in function layer to my liking * update readme --- keyboards/xd60/keymaps/supercoffee/keymap.c | 46 ++++++++++++++++++++ keyboards/xd60/keymaps/supercoffee/readme.md | 9 ++++ 2 files changed, 55 insertions(+) create mode 100644 keyboards/xd60/keymaps/supercoffee/keymap.c create mode 100644 keyboards/xd60/keymaps/supercoffee/readme.md diff --git a/keyboards/xd60/keymaps/supercoffee/keymap.c b/keyboards/xd60/keymaps/supercoffee/keymap.c new file mode 100644 index 000000000000..d079fa8f90f4 --- /dev/null +++ b/keyboards/xd60/keymaps/supercoffee/keymap.c @@ -0,0 +1,46 @@ +#include "xd60.h" +#include "action_layer.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // 0: Base Layer + KEYMAP( + KC_GRV, 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_BSPC, KC_NO, \ + 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_BSLS, \ + KC_CAPS, 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, \ + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSHIFT, KC_NO, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, F(0), KC_RALT, KC_NO, KC_RGUI, KC_RCTL), + + // 1: Function Layer + KEYMAP( + KC_ESC, 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_F13, KC_F14, \ + KC_NO, KC_NO, KC_UP, KC_END, KC_NO, KC_NO, KC_CALC, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, \ + KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_NO, KC_NO, KC_HOME, KC_PGDN, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_NO, KC_ENT, \ + KC_LSFT, KC_NO, KC_NO, KC_DEL, BL_STEP,KC_NO, KC_NO, KC_VOLD, KC_VOLU,KC_MUTE, KC_NO, KC_PGDN, KC_RSFT, KC_NO, KC_NO, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, F(0), KC_RALT, KC_NO, KC_RGUI, KC_RCTL), + +}; + +// Custom Actions +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay +}; + +// Macros +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { register_code(KC_RSFT); } + else { unregister_code(KC_RSFT); } + break; + } + + return MACRO_NONE; +}; + +// Loop +void matrix_scan_user(void) { + // Empty +}; diff --git a/keyboards/xd60/keymaps/supercoffee/readme.md b/keyboards/xd60/keymaps/supercoffee/readme.md new file mode 100644 index 000000000000..ccfdca8b255a --- /dev/null +++ b/keyboards/xd60/keymaps/supercoffee/readme.md @@ -0,0 +1,9 @@ +# Supercoffee Keymap for DeskCandy 60% XD60 PCB + +![Supercoffee Keymap for XD60](https://i.imgur.com/SPg4wXw.jpg) + +## Additional Notes +60% Keymap for XD60 with GH60 ANSI layout. Arrow keys mapped to WASD in function layer. + +## Build +To build the default keymap, simply run `make xd60:supercoffee`. From b61974b3010ecf947899516f3af68bc5863bee8e Mon Sep 17 00:00:00 2001 From: "Michael F. Lamb" Date: Tue, 27 Mar 2018 09:18:28 -0700 Subject: [PATCH 145/578] mitosis:datagrok: minor layout improvements (#2366) * mitosis/datagrok: make qwerty the default layout * mitosis/datagrok: update readme to match qwerty default * mitosis:datagrok: remove redundant name for transparent meh, decided i don't need an extra key to represent "key that is transparent because it's a modifier on a layer below." it's a maintenance burden when moving other keys around * mitosis:datagrok: add num lock on Blue + QWERTY T * mitosis:datagrok: tap lshift = tab we use tab completion a lot so let's get it onto an unmodified key somehow * mitosis:datagrok: update readme * mitosis:datagrok: improve notes in README * mitosis:datagrok: note numlock in README --- keyboards/mitosis/keymaps/datagrok/keymap.c | 29 ++++----- keyboards/mitosis/keymaps/datagrok/readme.md | 67 +++++++++++++------- 2 files changed, 57 insertions(+), 39 deletions(-) diff --git a/keyboards/mitosis/keymaps/datagrok/keymap.c b/keyboards/mitosis/keymaps/datagrok/keymap.c index 36683fbc5d89..24d9d650042e 100644 --- a/keyboards/mitosis/keymaps/datagrok/keymap.c +++ b/keyboards/mitosis/keymaps/datagrok/keymap.c @@ -2,8 +2,8 @@ enum mitosis_layers { - _xW, // workman _xQ, // qwerty + _xW, // workman _xS, // symbols _xN, // numbers _xF // functions @@ -12,7 +12,6 @@ enum mitosis_layers // Fillers to make layering more clear #define XXXXXXX KC_NO // No-op (no key in this location on Mitosis' fake matrix) #define _______ KC_TRNS // Transparent, because I haven't decided a mapping yet -#define ___M___ KC_TRNS // Transparent, as required by modifier key on another layer #define KC_LMTA KC_LALT // For fun, name the mods like the space cadet keyboard does #define KC_RMTA KC_RALT // META #define KC_LSUP KC_LGUI // SUPER @@ -27,17 +26,17 @@ enum mitosis_layers // other is released. Which doesn't bother me. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_xW] = { - {KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN}, - {KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I}, - {KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_QUOT}, - {XXXXXXX, KC_LSUP, KC_LCTL, MO(_xN), KC_LSFT, KC_RSFT, MO(_xN), KC_RCTL, KC_RSUP, XXXXXXX}, - {XXXXXXX, KC_LHYP, KC_LMTA, MO(_xS), KC_BSPC, KC_SPC, MO(_xS), KC_RMTA, KC_RHYP, XXXXXXX} - }, [_xQ] = { {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P}, {KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOT}, + {XXXXXXX, KC_LSUP, KC_LCTL, MO(_xN), SFT_T(KC_TAB), KC_RSFT, MO(_xN), KC_RCTL, KC_RSUP, XXXXXXX}, + {XXXXXXX, KC_LHYP, KC_LMTA, MO(_xS), KC_BSPC, KC_SPC, MO(_xS), KC_RMTA, KC_RHYP, XXXXXXX} + }, + [_xW] = { + {KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN}, + {KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I}, + {KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_QUOT}, {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX}, {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX} }, @@ -46,21 +45,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_CIRC, KC_AMPR, KC_PIPE, KC_GRV, KC_UNDS}, {KC_BSLS, KC_RPRN, KC_RCBR, KC_RBRC, KC_RABK, KC_LABK, KC_LBRC, KC_LCBR, KC_LPRN, KC_SLSH}, {XXXXXXX, _______, _______, MO(_xF), _______, _______, MO(_xF), _______, _______, XXXXXXX}, - {XXXXXXX, _______, _______, ___M___, KC_DEL, KC_ENT, ___M___, _______, _______, XXXXXXX}, + {XXXXXXX, _______, _______, _______, KC_DEL, KC_ENT, _______, _______, _______, XXXXXXX}, }, [_xN] = { - {_______, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_P0}, + {_______, _______, _______, _______, KC_NLCK, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_P0}, {_______, _______, _______, _______, _______, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PPLS}, {_______, _______, _______, _______, _______, KC_PMNS, KC_P1, KC_P2, KC_P3, KC_PEQL}, - {XXXXXXX, _______, _______, ___M___, _______, _______, ___M___, _______, _______, XXXXXXX}, + {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX}, {XXXXXXX, _______, _______, MO(_xF), _______, KC_PENT, MO(_xF), _______, _______, XXXXXXX}, }, [_xF] = { {_______, _______, KC_PGUP, _______, KC_VOLU, KC_F13, KC_F7, KC_F8, KC_F9, KC_F10}, {_______, KC_HOME, KC_PGDN, KC_END, KC_VOLD, KC_F14, KC_F4, KC_F5, KC_F6, KC_F11}, - {TG(_xQ), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_F15, KC_F1, KC_F2, KC_F3, KC_F12}, - {XXXXXXX, _______, _______, ___M___, _______, _______, ___M___, _______, _______, XXXXXXX}, - {XXXXXXX, _______, _______, _______, ___M___, ___M___, _______, _______, _______, XXXXXXX}, + {TG(_xW), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_F15, KC_F1, KC_F2, KC_F3, KC_F12}, + {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX}, + {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX}, }, }; diff --git a/keyboards/mitosis/keymaps/datagrok/readme.md b/keyboards/mitosis/keymaps/datagrok/readme.md index a5b7b6c624ed..a81829f26b45 100644 --- a/keyboards/mitosis/keymaps/datagrok/readme.md +++ b/keyboards/mitosis/keymaps/datagrok/readme.md @@ -1,24 +1,30 @@ -![mitosis:datagrok layout image](https://i.imgur.com/Lt0t0nq.png) +![mitosis:datagrok layout image](https://i.imgur.com/eum3fsc.png) -[Keyboard layout editor source](http://www.keyboard-layout-editor.com/#/gists/e1a6a7a480fd4984c0bed38ee35f6c4f) +[Keyboard layout editor source](http://www.keyboard-layout-editor.com/#/gists/9cf33be8a8e773647cfa44a0dbc44b31) # a layout for the Mitosis - Emphasis on momentary modifiers, all usable from either hand, arranged - symmetrically, but distinguishable left/right by the OS. Shift, Fn1 - ("Lower"), Fn2 ("Raise"), Super ("Windows"), Meta ("Alt"), Hyper. + symmetrically, but distinguishable left/right by the OS. Shift, Red + ("Lower"), Blue ("Raise"), Super ("Windows"), Meta ("Alt"), Hyper. -- Fn1 and Fn2 are used to momentary-enable (like a shift key) one of three layers: +- Red and Blue are used to momentary-enable (like a shift key) one of three layers: - - Fn1 (Red): Symbols layer - - Fn2 (Blue): Numbers layer - - Both: Functions layer + - Red: Symbols layer + - Blue: Numbers layer + - "Purple" (both Red and Blue): Functions layer -- The base layer is a slight variant of [Workman][]. QWERTY may be toggled-on. +- The base layer is QWERTY. A slight variant of [Workman][] may be toggled-on. + +- Emphasis on minimizing hand travel, so as not to lose orientation with + homerow. - Paired programming symbols (braces, brackets, parentheses) are arranged - symmetrically in the symbols layer. `?` and `!` are moved to take the place - of `<` and `>`. + symmetrically in the symbols layer. + +- `?` and `!` are moved to take the place of `<` and `>`. Rationale: unmodded + and shifted keys should be for prose, while symbols useful for programming + should be colocated on their own layer. - No OS keymap modification required. @@ -30,17 +36,24 @@ - Remove the lines in `rules.mk` mentioning `F_CPU` and `F_USB`. - Remove the lines in `config.h` mentioning `SERIAL_UART_BAUD`. -- I'm learning a new key placement, so might as well go all out and use an - optimal non-QWERTY layout. +- Workman layout -- I like the way Workman feels and some of its advantages over Colemak. - Unfortunately, it was designed using a weighting system based on a standard - column-staggered keyboard so is probably not as optimal as one could achieve - on an ergonomic board like the Mitosis. + - I'm learning a new physical key placement, so I might as well go all out + and use an optimal non-QWERTY layout. + + - I like the way Workman feels and some of its advantages over Colemak. + Unfortunately, it was designed using a weighting system based on a + standard column-staggered keyboard so is probably not as optimal as one + could achieve on an ergonomic board like the Mitosis. Maybe run an + optimizer routine after I determine good values for key difficulty on the + Mitosis. - Arrows in the home position (on a layer). Mod+Arrows = PgUp/PgDn/Home/End, which is intuitive for me +- I use tab all the time for autocompletion. To allow it to live on the base + layer it is now Mod-Tapped with left shift. + ### Abandoned ideas - ~~"Since QWERTY and Workman keep angle brackets together, place other @@ -52,22 +65,28 @@ activates a symbols layer where all brackets are easily accessible. - Space/Enter to the left of layer select for Enter doesn't work well; I always - trigger space first. + trigger space first when mashing the keys simultaneously. This might not + continue to be true if I change the angle at which I strike the keys e.g. + with a neoprene base or a wrist support. -- I used to have Blue layer on ring finger, but that was too hard to use in +- I used to have Blue on ring finger, but that was too hard to use in conjunction with shift. ## To do +- Figure out where to place non-numpad numbers so we don't need num lock turned + on to type them? - Improve LED indications (may require modding bluetooth firmware): - Is any board nonresponsive (which one?) - Does either board have a low battery? - Add Insert, PrintScr, Pause/Break -- Make QWERTY base layer for people who customize layout in software? Store - default base layer in eeprom? -- See if the henkans placement is at all useful for Japanese speakers, or abuse - different keysyms -- Mod a speaker onto my receiver and enable tones +- ~~Make QWERTY base layer for people who customize layout in software?~~ I + default to QWERTY now. +- Store default base layer in eeprom? +- See if the henkan/muhenkan placement is at all useful for Japanese speakers, + or abuse different keysyms for Left/Right Hyper. (Original space cadet used + scancodes 145/175. 145 is LANG2, 175 is "reserved" in USB HID spec.) +- Mod a buzzer onto my receiver and enable tones - Implement "layer lock" key - Improve tri-layer behavior From 01c72e8dce8caa16b6cb914fd6e2506116b04885 Mon Sep 17 00:00:00 2001 From: Jason Janse van Rensburg Date: Tue, 27 Mar 2018 22:58:09 +0200 Subject: [PATCH 146/578] changed super key to left super key (#2631) --- keyboards/planck/keymaps/bone2planck/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/planck/keymaps/bone2planck/keymap.c b/keyboards/planck/keymaps/bone2planck/keymap.c index 5f77acf91d2b..39cb70418928 100644 --- a/keyboards/planck/keymaps/bone2planck/keymap.c +++ b/keyboards/planck/keymaps/bone2planck/keymap.c @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //{ LT(1,KC_TAB), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, LT(1,KC_ENT) }, { MO(1), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, LT(1,KC_ENT) }, { KC_LSFT, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, KC_LSFT }, - { KC_LCTL, KC_RGUI, KC_LALT, MO(4), MO(2), KC_SPC, KC_SPC, MO(2), MO(4), KC_RALT, KC_ESC, KC_RCTL } + { KC_LCTL, KC_LGUI, KC_LALT, MO(4), MO(2), KC_SPC, KC_SPC, MO(2), MO(4), KC_RALT, KC_ESC, KC_RCTL } }, /* M1 Special Characters From b5e899ede71f0c6ce8962f9dfcd1ce2ab116d551 Mon Sep 17 00:00:00 2001 From: Harry Mills Date: Wed, 28 Mar 2018 15:03:32 -0400 Subject: [PATCH 147/578] Adding Haegin's keyboard layout for the ergodox and minidox (#2637) * Add Haegin's keymap * Potential improvements to the keyboard * Add haegin minidox layout * Add Haegin's keyboard to ergodox layouts * Update Haegin's minidox keymap --- keyboards/minidox/keymaps/haegin/keymap.c | 92 ++++++++++ layouts/community/ergodox/haegin/keymap.c | 196 +++++++++++++++++++++ layouts/community/ergodox/haegin/readme.md | 5 + 3 files changed, 293 insertions(+) create mode 100644 keyboards/minidox/keymaps/haegin/keymap.c create mode 100644 layouts/community/ergodox/haegin/keymap.c create mode 100644 layouts/community/ergodox/haegin/readme.md diff --git a/keyboards/minidox/keymaps/haegin/keymap.c b/keyboards/minidox/keymaps/haegin/keymap.c new file mode 100644 index 000000000000..64a18c1b92e5 --- /dev/null +++ b/keyboards/minidox/keymaps/haegin/keymap.c @@ -0,0 +1,92 @@ +#include "minidox.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define LETTERS 0 +#define SYMBOLS 1 +#define MEDIA 2 + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * + * ,----------------------------------. ,----------------------------------. + * | Q | W | E | R | T | | Y | U | I | O | P | + * |------+------+------+------+------| |------+------+------+------+------| + * | A | S | D | F | G | | H | J | K | L | ; | + * |------+------+------+------+------| |------+------+------+------+------| + * | Z | X | C | V | B | | N | M | , | . | / | + * `----------------------------------' `----------------------------------' + * ,--------------------. ,------,-------------. + * | Ctrl | LOWER| | | | RAISE| Shift| + * `-------------| Space| |BckSpc|------+------. + * | | | | + * `------' `------' + */ +[LETTERS] = KEYMAP( \ + KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, \ + KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, \ + KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, \ + CTL_T(KC_ESC), SFT_T(KC_BSPC), GUI_T(KC_SPC), LT(SYMBOLS, KC_ENT), LT(MEDIA, KC_TAB), ALT_T(LCTL(KC_B)) \ +), + +/* Raise + * + * ,----------------------------------. ,----------------------------------. + * | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | + * |------+------+------+------+------| |------+------+------+------+------| + * | Tab | Left | Down | Up | Right| | | - | = | [ | ] | + * |------+------+------+------+------| |------+------+------+------+------| + * | Ctrl| ` | GUI | Alt | | | | | | \ | ' | + * `----------------------------------' `----------------------------------' + * ,--------------------. ,------,-------------. + * | | LOWER| | | | RAISE| | + * `-------------| | | |------+------. + * | | | | + * `------' `------' + */ +[SYMBOLS] = KEYMAP( \ + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \ + KC_TAB, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, \ + KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, _______, _______, _______, _______, KC_BSLS, KC_QUOT, \ + _______, _______, _______, _______, _______, _______ \ +), + +/* Lower + * + * ,----------------------------------. ,----------------------------------. + * | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + * |------+------+------+------+------| |------+------+------+------+------| + * | Esc | | | | | | | _ | + | { | } | + * |------+------+------+------+------| |------+------+------+------+------| + * | Caps| ~ | | | | | | | | | | " | + * `----------------------------------' `----------------------------------' + * ,--------------------. ,------,-------------. + * | | LOWER| | | | RAISE| Del | + * `-------------| | | Enter|------+------. + * | | | | + * `------' `------' + */ +[MEDIA] = KEYMAP( \ + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, \ + KC_ESC, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, \ + KC_CAPS, KC_TILD, _______, _______, _______, _______, _______, _______, KC_PIPE, KC_DQT, \ + _______, _______, _______, KC_ENT, _______, KC_DEL \ +) +}; + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + diff --git a/layouts/community/ergodox/haegin/keymap.c b/layouts/community/ergodox/haegin/keymap.c new file mode 100644 index 000000000000..56aee727d8d5 --- /dev/null +++ b/layouts/community/ergodox/haegin/keymap.c @@ -0,0 +1,196 @@ +// Netable differences vs. the default firmware for the ErgoDox EZ: +// 1. The Cmd key is now on the right side, making Cmd+Space easier. +// 2. The media keys work on OSX (But not on Windows). +#include QMK_KEYBOARD_H +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMBOLS 1 // symbols +#define MEDIA 2 // media keys + +#define _______ KC_TRNS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | / | Q | W | E | R | T | | | | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Ctl/Esc| A | S | D | F | G |------| |------| H | J | K | L |; / L2| LGui | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Backsp|------| |------| Tab |Enter | + * | |ace | End | | PgDn | | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* + +[BASE] = LAYOUT_ergodox( // layer 0 : default + // Left hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_SLSH, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_NO, + CTL_T(KC_ESC), KC_A, KC_O, KC_E, KC_U, KC_I, + KC_LSPO, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, ALL_T(KC_NO), + LT(SYMBOLS,KC_GRV), KC_QUOT, KC_SLSH, KC_LALT, SFT_T(KC_RGHT), + KC_HOME, KC_END, + KC_PGUP, + GUI_T(KC_SPC), CTL_T(KC_BSPC), LGUI(KC_SPC), + + // Right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, LGUI(KC_SPC), + KC_NO, KC_F, KC_G, KC_C, KC_R, KC_L, LT(MEDIA, KC_BSLS), + KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, + MEH_T(KC_NO), KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSPC, + ALT_T(KC_UP), KC_DOWN, KC_LBRC, KC_RBRC, KC_FN2, + KC_PGUP, CTL_T(KC_ESC), + KC_PGDN, + LCTL(KC_B), LT(MEDIA, KC_TAB), LT(SYMBOLS, KC_ENT) + ), + + +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS + +[SYMBOLS] = LAYOUT_ergodox( + // left hand + _______,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, + _______,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,_______, + _______,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + _______,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,_______, + _______,_______,_______,_______,_______, + _______,_______, + _______, + _______,_______,_______, + // right hand + _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, KC_EQL, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_MINS, KC_4, KC_5, KC_6, KC_PLUS, _______, + _______, KC_AMPR, KC_1, KC_2, KC_3, KC_SLSH, _______, + _______,KC_0, KC_DOT, KC_EQL, _______, + _______, _______, + _______, + _______, _______, _______ +), + +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | ↑ | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------|VolUp | ← | ↓ | → | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | |VolDn | Prev | Play | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | | Mute | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MEDIA] = LAYOUT_ergodox( + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_MS_U, _______, _______, _______, + _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_BTN1, KC_BTN2, + _______, _______, + _______, + _______, _______, _______, + // right hand + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_UP, _______, _______, _______, + KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_MPLY, + _______, KC_VOLD, KC_MPRV, KC_MPLY, KC_MFFD, _______, _______, + KC_MUTE, _______, _______, _______, _______, + _______, _______, + _______, + _______, _______, KC_WBAK +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMBOLS) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_3_on(); + break; + default: + // none + break; + } + +}; diff --git a/layouts/community/ergodox/haegin/readme.md b/layouts/community/ergodox/haegin/readme.md new file mode 100644 index 000000000000..15e7f2441a7d --- /dev/null +++ b/layouts/community/ergodox/haegin/readme.md @@ -0,0 +1,5 @@ +# Haegin's Ergodox Firmware + +Mostly uses keys available on the Minidox, with some extras that are nice +to have when they're available, provided they're in a roughly similar place on +the Model 01. From c39780b8e1930a60363ac5e2f214c14eabde05d3 Mon Sep 17 00:00:00 2001 From: Jacob Jerrell Date: Wed, 28 Mar 2018 14:07:59 -0500 Subject: [PATCH 148/578] Add Support for Software Workman (#2632) This adds the keymap translations and sendstring definitions to support software workman. --- quantum/keymap_extras/keymap_workman.h | 83 ++++++++++++++++++++++ quantum/keymap_extras/sendstring_workman.h | 41 +++++++++++ 2 files changed, 124 insertions(+) create mode 100644 quantum/keymap_extras/keymap_workman.h create mode 100644 quantum/keymap_extras/sendstring_workman.h diff --git a/quantum/keymap_extras/keymap_workman.h b/quantum/keymap_extras/keymap_workman.h new file mode 100644 index 000000000000..97927bf50a79 --- /dev/null +++ b/quantum/keymap_extras/keymap_workman.h @@ -0,0 +1,83 @@ +/* Copyright 2018 Jacob Jerrell + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#ifndef KEYMAP_WORKMAN_H +#define KEYMAP_WORKMAN_H + +#include "keymap.h" +// For software implementation of workman +#define WK_Q KC_Q +#define WK_D KC_W +#define WK_R KC_E +#define WK_W KC_R +#define WK_B KC_T +#define WK_J KC_Y +#define WK_F KC_U +#define WK_U KC_I +#define WK_P KC_O +#define WK_SCLN KC_P + +#define WK_A KC_A +#define WK_S KC_S +#define WK_H KC_D +#define WK_T KC_F +#define WK_G KC_G +#define WK_Y KC_H +#define WK_N KC_J +#define WK_E KC_K +#define WK_O KC_L +#define WK_I KC_SCLN + +#define WK_Z KC_Z +#define WK_X KC_X +#define WK_M KC_C +#define WK_C KC_V +#define WK_V KC_B +#define WK_K KC_N +#define WK_L KC_M + +// Make it easy to support these in macros +// TODO: change macro implementation so these aren't needed +#define KC_WK_Q WK_Q +#define KC_WK_D WK_D +#define KC_WK_R WK_R +#define KC_WK_W WK_W +#define KC_WK_B WK_B +#define KC_WK_J WK_J +#define KC_WK_F WK_F +#define KC_WK_U WK_U +#define KC_WK_P WK_P +#define KC_WK_SCLN WK_SCLN + +#define KC_WK_A WK_A +#define KC_WK_S WK_S +#define KC_WK_H WK_H +#define KC_WK_T WK_T +#define KC_WK_G WK_G +#define KC_WK_Y WK_Y +#define KC_WK_N WK_N +#define KC_WK_E WK_E +#define KC_WK_O WK_O +#define KC_WK_I WK_I + +#define KC_WK_Z WK_Z +#define KC_WK_X WK_X +#define KC_WK_M WK_M +#define KC_WK_C WK_C +#define KC_WK_V WK_V +#define KC_WK_K WK_K +#define KC_WK_L WK_L + +#endif diff --git a/quantum/keymap_extras/sendstring_workman.h b/quantum/keymap_extras/sendstring_workman.h new file mode 100644 index 000000000000..a8571839da1b --- /dev/null +++ b/quantum/keymap_extras/sendstring_workman.h @@ -0,0 +1,41 @@ +/* Copyright 2018 Jacob Jerrell + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +/* Sendstring definitions for the Workman layout */ +#ifndef SENDSTRING_WORKMAN +#define SENDSTRING_WORKMAN + +#include "keymap_workman.h" + +const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { + 0, 0, 0, 0, 0, 0, 0, 0, + KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, KC_ESC, 0, 0, 0, 0, + KC_SPC, KC_1, KC_QUOT, KC_3, KC_4, KC_5, KC_7, KC_QUOT, + KC_9, KC_0, KC_8, KC_EQL, KC_COMM, KC_MINS, KC_DOT, KC_SLSH, + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, + KC_8, KC_9, KC_SCLN, KC_SCLN, KC_COMM, KC_EQL, KC_DOT, KC_SLSH, + KC_2, WK_A, WK_B, WK_C, WK_D, WK_E, WK_F, WK_G, + WK_H, WK_I, WK_J, WK_K, WK_L, WK_M, WK_N, WK_O, + WK_P, WK_Q, WK_R, WK_S, WK_T, WK_U, WK_V, WK_W, + WK_X, WK_Y, WK_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_6, KC_MINS, + KC_GRV, WK_A, WK_B, WK_C, WK_D, WK_E, WK_F, WK_G, + WK_H, WK_I, WK_J, WK_K, WK_L, WK_M, WK_N, WK_O, + WK_P, WK_Q, WK_R, WK_S, WK_T, WK_U, WK_V, WK_W, + WK_X, WK_Y, WK_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_GRV, KC_DEL +}; + +#endif \ No newline at end of file From bdb718af0de9aadeb198e7ead9c124f548e36f32 Mon Sep 17 00:00:00 2001 From: "U-LANDSRAAD\\drashna" Date: Tue, 27 Mar 2018 10:20:22 -0700 Subject: [PATCH 149/578] Fix RGB Sleep code --- tmk_core/common/avr/suspend.c | 2 +- users/drashna/drashna.h | 27 ++++++++++++++++++--------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/tmk_core/common/avr/suspend.c b/tmk_core/common/avr/suspend.c index 4cdd6a420e78..81e4266410b2 100644 --- a/tmk_core/common/avr/suspend.c +++ b/tmk_core/common/avr/suspend.c @@ -19,7 +19,7 @@ #include "audio.h" #endif /* AUDIO_ENABLE */ -#ifdef RGBLIGHT_ANIMATIONS +#ifdef RGBLIGHT_SLEEP #include "rgblight.h" #endif diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h index 0df9abb46829..e723c846f8a2 100644 --- a/users/drashna/drashna.h +++ b/users/drashna/drashna.h @@ -47,15 +47,24 @@ along with this program. If not, see . #define MODS_GUI_MASK (MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)) #ifndef RGBLIGHT_ANIMATIONS // add "EXTRA_FLADS=-DDRASHNA_SETRGB" to enable this ... but don't -#define rgblight_set_blue rgblight_setrgb (0x00, 0x00, 0xFF); -#define rgblight_set_red rgblight_setrgb (0xFF, 0x00, 0x00); -#define rgblight_set_green rgblight_setrgb (0x00, 0xFF, 0x00); -#define rgblight_set_orange rgblight_setrgb (0xFF, 0x80, 0x00); -#define rgblight_set_teal rgblight_setrgb (0x00, 0xFF, 0xFF); -#define rgblight_set_magenta rgblight_setrgb (0xFF, 0x00, 0xFF); -#define rgblight_set_yellow rgblight_setrgb (0xFF, 0xFF, 0x00); -#define rgblight_set_purple rgblight_setrgb (0x7A, 0x00, 0xFF); -#define rgblight_set_white rgblight_setrgb (0xFF, 0xFF, 0xFF); +#define rgblight_set_white rgblight_setrgb (0xFF, 0xFF, 0xFF); +#define rgblight_set_red rgblight_setrgb (0xFF, 0x00, 0x00); +#define rgblight_set_coral rgblight_setrgb (0xFF, 0x7C, 0x4D); +#define rgblight_set_orange rgblight_setrgb (0xFF, 0x80, 0x00); +#define rgblight_set_goldenrod rgblight_setrgb (0xD9, 0xA5, 0x21); +#define rgblight_set_gold rgblight_setrgb (0xFF, 0xD9, 0x00); +#define rgblight_set_yellow rgblight_setrgb (0xFF, 0xFF, 0x00); +#define rgblight_set_chartreuse rgblight_setrgb (0x80, 0xFF, 0x00); +#define rgblight_set_green rgblight_setrgb (0x00, 0xFF, 0x00); +#define rgblight_set_springgreen rgblight_setrgb (0x00, 0xFF, 0x80); +#define rgblight_set_turquoise rgblight_setrgb (0x47, 0x6E, 0x6A); +#define rgblight_set_teal rgblight_setrgb (0x00, 0x80, 0x80); +#define rgblight_set_cyan rgblight_setrgb (0x00, 0xFF, 0xFF); +#define rgblight_set_azure rgblight_setrgb (0x99, 0xf5, 0xFF); +#define rgblight_set_blue rgblight_setrgb (0x00, 0x00, 0xFF); +#define rgblight_set_purple rgblight_setrgb (0x7A, 0x00, 0xFF); +#define rgblight_set_magenta rgblight_setrgb (0xFF, 0x00, 0xFF); +#define rgblight_set_pink rgblight_setrgb (0xFF, 0x80, 0xBF); #else #define rgblight_set_white rgblight_sethsv (0, 0x00, 255); #define rgblight_set_red rgblight_sethsv (0, 255, 255); From 9cfeb4e6cff521d4f7219f2774d69ce9ce96a0cf Mon Sep 17 00:00:00 2001 From: "U-LANDSRAAD\\drashna" Date: Wed, 28 Mar 2018 13:00:22 -0700 Subject: [PATCH 150/578] add RGB commands as global functions --- quantum/rgblight_list.h | 44 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 quantum/rgblight_list.h diff --git a/quantum/rgblight_list.h b/quantum/rgblight_list.h new file mode 100644 index 000000000000..a7478b5ce61d --- /dev/null +++ b/quantum/rgblight_list.h @@ -0,0 +1,44 @@ +#ifndef RGBLIGHT_LIST_H +#define RGBLIGHT_LIST_H + + +#define rgblight_setrgb_white() rgblight_setrgb (0xFF, 0xFF, 0xFF); +#define rgblight_setrgb_red() rgblight_setrgb (0xFF, 0x00, 0x00); +#define rgblight_setrgb_coral() rgblight_setrgb (0xFF, 0x7C, 0x4D); +#define rgblight_setrgb_orange() rgblight_setrgb (0xFF, 0x80, 0x00); +#define rgblight_setrgb_goldenrod() rgblight_setrgb (0xD9, 0xA5, 0x21); +#define rgblight_setrgb_gold() rgblight_setrgb (0xFF, 0xD9, 0x00); +#define rgblight_setrgb_yellow() rgblight_setrgb (0xFF, 0xFF, 0x00); +#define rgblight_setrgb_chartreuse() rgblight_setrgb (0x80, 0xFF, 0x00); +#define rgblight_setrgb_green() rgblight_setrgb (0x00, 0xFF, 0x00); +#define rgblight_setrgb_springgreen() rgblight_setrgb (0x00, 0xFF, 0x80); +#define rgblight_setrgb_turquoise() rgblight_setrgb (0x47, 0x6E, 0x6A); +#define rgblight_setrgb_teal() rgblight_setrgb (0x00, 0x80, 0x80); +#define rgblight_setrgb_cyan() rgblight_setrgb (0x00, 0xFF, 0xFF); +#define rgblight_setrgb_azure() rgblight_setrgb (0x99, 0xf5, 0xFF); +#define rgblight_setrgb_blue() rgblight_setrgb (0x00, 0x00, 0xFF); +#define rgblight_setrgb_purple() rgblight_setrgb (0x7A, 0x00, 0xFF); +#define rgblight_setrgb_magenta() rgblight_setrgb (0xFF, 0x00, 0xFF); +#define rgblight_setrgb_pink() rgblight_setrgb (0xFF, 0x80, 0xBF); + + +#define rgblight_sethsv_white() rgblight_sethsv (0, 0x00, 255); +#define rgblight_sethsv_red() rgblight_sethsv (0, 255, 255); +#define rgblight_sethsv_coral() rgblight_sethsv (16, 176, 255); +#define rgblight_sethsv_orange() rgblight_sethsv (39, 255, 255); +#define rgblight_sethsv_goldenrod() rgblight_sethsv (43, 218, 218); +#define rgblight_sethsv_gold() rgblight_sethsv (51, 255, 255); +#define rgblight_sethsv_yellow() rgblight_sethsv (60, 255, 255); +#define rgblight_sethsv_chartreuse() rgblight_sethsv (90, 255, 255); +#define rgblight_sethsv_green() rgblight_sethsv (120, 255, 255); +#define rgblight_sethsv_springgreen() rgblight_sethsv (150, 255, 255); +#define rgblight_sethsv_turquoise() rgblight_sethsv (174, 90, 112); +#define rgblight_sethsv_teal() rgblight_sethsv (180, 255, 128); +#define rgblight_sethsv_cyan() rgblight_sethsv (180, 255, 255); +#define rgblight_sethsv_azure() rgblight_sethsv (186, 102, 255); +#define rgblight_sethsv_blue() rgblight_sethsv (240, 255, 255); +#define rgblight_sethsv_purple() rgblight_sethsv (270, 255, 255); +#define rgblight_sethsv_magenta() rgblight_sethsv (300, 255, 255); +#define rgblight_sethsv_pink() rgblight_sethsv (330, 128, 255); + +#endif From c1b46206a7872a422b16b453db09477bac995929 Mon Sep 17 00:00:00 2001 From: "U-LANDSRAAD\\drashna" Date: Wed, 28 Mar 2018 13:16:09 -0700 Subject: [PATCH 151/578] Fix commands and update my userspace (for testing) --- quantum/rgblight.h | 1 + quantum/rgblight_list.h | 91 ++++++++++++++++++++++++----------------- users/drashna/drashna.c | 40 +++++++++--------- 3 files changed, 74 insertions(+), 58 deletions(-) diff --git a/quantum/rgblight.h b/quantum/rgblight.h index 73dd89946983..8c33f1a8fc95 100644 --- a/quantum/rgblight.h +++ b/quantum/rgblight.h @@ -74,6 +74,7 @@ #include "ws2812.h" #endif #include "rgblight_types.h" +#include "rgblight_list.h" extern LED_TYPE led[RGBLED_NUM]; diff --git a/quantum/rgblight_list.h b/quantum/rgblight_list.h index a7478b5ce61d..5dd480b617d3 100644 --- a/quantum/rgblight_list.h +++ b/quantum/rgblight_list.h @@ -1,44 +1,59 @@ +/* Copyright 2018 Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ #ifndef RGBLIGHT_LIST_H #define RGBLIGHT_LIST_H +/* SET RGB List */ +#define rgblight_setrgb_white() rgblight_setrgb (0xFF, 0xFF, 0xFF) +#define rgblight_setrgb_red() rgblight_setrgb (0xFF, 0x00, 0x00) +#define rgblight_setrgb_coral() rgblight_setrgb (0xFF, 0x7C, 0x4D) +#define rgblight_setrgb_orange() rgblight_setrgb (0xFF, 0x80, 0x00) +#define rgblight_setrgb_goldenrod() rgblight_setrgb (0xD9, 0xA5, 0x21) +#define rgblight_setrgb_gold() rgblight_setrgb (0xFF, 0xD9, 0x00) +#define rgblight_setrgb_yellow() rgblight_setrgb (0xFF, 0xFF, 0x00) +#define rgblight_setrgb_chartreuse() rgblight_setrgb (0x80, 0xFF, 0x00) +#define rgblight_setrgb_green() rgblight_setrgb (0x00, 0xFF, 0x00) +#define rgblight_setrgb_springgreen() rgblight_setrgb (0x00, 0xFF, 0x80) +#define rgblight_setrgb_turquoise() rgblight_setrgb (0x47, 0x6E, 0x6A) +#define rgblight_setrgb_teal() rgblight_setrgb (0x00, 0x80, 0x80) +#define rgblight_setrgb_cyan() rgblight_setrgb (0x00, 0xFF, 0xFF) +#define rgblight_setrgb_azure() rgblight_setrgb (0x99, 0xf5, 0xFF) +#define rgblight_setrgb_blue() rgblight_setrgb (0x00, 0x00, 0xFF) +#define rgblight_setrgb_purple() rgblight_setrgb (0x7A, 0x00, 0xFF) +#define rgblight_setrgb_magenta() rgblight_setrgb (0xFF, 0x00, 0xFF) +#define rgblight_setrgb_pink() rgblight_setrgb (0xFF, 0x80, 0xBF) -#define rgblight_setrgb_white() rgblight_setrgb (0xFF, 0xFF, 0xFF); -#define rgblight_setrgb_red() rgblight_setrgb (0xFF, 0x00, 0x00); -#define rgblight_setrgb_coral() rgblight_setrgb (0xFF, 0x7C, 0x4D); -#define rgblight_setrgb_orange() rgblight_setrgb (0xFF, 0x80, 0x00); -#define rgblight_setrgb_goldenrod() rgblight_setrgb (0xD9, 0xA5, 0x21); -#define rgblight_setrgb_gold() rgblight_setrgb (0xFF, 0xD9, 0x00); -#define rgblight_setrgb_yellow() rgblight_setrgb (0xFF, 0xFF, 0x00); -#define rgblight_setrgb_chartreuse() rgblight_setrgb (0x80, 0xFF, 0x00); -#define rgblight_setrgb_green() rgblight_setrgb (0x00, 0xFF, 0x00); -#define rgblight_setrgb_springgreen() rgblight_setrgb (0x00, 0xFF, 0x80); -#define rgblight_setrgb_turquoise() rgblight_setrgb (0x47, 0x6E, 0x6A); -#define rgblight_setrgb_teal() rgblight_setrgb (0x00, 0x80, 0x80); -#define rgblight_setrgb_cyan() rgblight_setrgb (0x00, 0xFF, 0xFF); -#define rgblight_setrgb_azure() rgblight_setrgb (0x99, 0xf5, 0xFF); -#define rgblight_setrgb_blue() rgblight_setrgb (0x00, 0x00, 0xFF); -#define rgblight_setrgb_purple() rgblight_setrgb (0x7A, 0x00, 0xFF); -#define rgblight_setrgb_magenta() rgblight_setrgb (0xFF, 0x00, 0xFF); -#define rgblight_setrgb_pink() rgblight_setrgb (0xFF, 0x80, 0xBF); - - -#define rgblight_sethsv_white() rgblight_sethsv (0, 0x00, 255); -#define rgblight_sethsv_red() rgblight_sethsv (0, 255, 255); -#define rgblight_sethsv_coral() rgblight_sethsv (16, 176, 255); -#define rgblight_sethsv_orange() rgblight_sethsv (39, 255, 255); -#define rgblight_sethsv_goldenrod() rgblight_sethsv (43, 218, 218); -#define rgblight_sethsv_gold() rgblight_sethsv (51, 255, 255); -#define rgblight_sethsv_yellow() rgblight_sethsv (60, 255, 255); -#define rgblight_sethsv_chartreuse() rgblight_sethsv (90, 255, 255); -#define rgblight_sethsv_green() rgblight_sethsv (120, 255, 255); -#define rgblight_sethsv_springgreen() rgblight_sethsv (150, 255, 255); -#define rgblight_sethsv_turquoise() rgblight_sethsv (174, 90, 112); -#define rgblight_sethsv_teal() rgblight_sethsv (180, 255, 128); -#define rgblight_sethsv_cyan() rgblight_sethsv (180, 255, 255); -#define rgblight_sethsv_azure() rgblight_sethsv (186, 102, 255); -#define rgblight_sethsv_blue() rgblight_sethsv (240, 255, 255); -#define rgblight_sethsv_purple() rgblight_sethsv (270, 255, 255); -#define rgblight_sethsv_magenta() rgblight_sethsv (300, 255, 255); -#define rgblight_sethsv_pink() rgblight_sethsv (330, 128, 255); +/* SET HSV List */ +#define rgblight_sethsv_white() rgblight_sethsv ( 0, 0, 255) +#define rgblight_sethsv_red() rgblight_sethsv ( 0, 255, 255) +#define rgblight_sethsv_coral() rgblight_sethsv ( 16, 176, 255) +#define rgblight_sethsv_orange() rgblight_sethsv ( 39, 255, 255) +#define rgblight_sethsv_goldenrod() rgblight_sethsv ( 43, 218, 218) +#define rgblight_sethsv_gold() rgblight_sethsv ( 51, 255, 255) +#define rgblight_sethsv_yellow() rgblight_sethsv ( 60, 255, 255) +#define rgblight_sethsv_chartreuse() rgblight_sethsv ( 90, 255, 255) +#define rgblight_sethsv_green() rgblight_sethsv (120, 255, 255) +#define rgblight_sethsv_springgreen() rgblight_sethsv (150, 255, 255) +#define rgblight_sethsv_turquoise() rgblight_sethsv (174, 90, 112) +#define rgblight_sethsv_teal() rgblight_sethsv (180, 255, 128) +#define rgblight_sethsv_cyan() rgblight_sethsv (180, 255, 255) +#define rgblight_sethsv_azure() rgblight_sethsv (186, 102, 255) +#define rgblight_sethsv_blue() rgblight_sethsv (240, 255, 255) +#define rgblight_sethsv_purple() rgblight_sethsv (270, 255, 255) +#define rgblight_sethsv_magenta() rgblight_sethsv (300, 255, 255) +#define rgblight_sethsv_pink() rgblight_sethsv (330, 128, 255) #endif diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c index 09b3891dd7b2..d23b9b9df89a 100644 --- a/users/drashna/drashna.c +++ b/users/drashna/drashna.c @@ -164,16 +164,16 @@ void matrix_init_user(void) { if (true) { if (default_layer & (1UL << _COLEMAK)) { - rgblight_set_magenta; + rgblight_sethsv_magenta(); } else if (default_layer & (1UL << _DVORAK)) { - rgblight_set_green; + rgblight_sethsv_green(); } else if (default_layer & (1UL << _WORKMAN)) { - rgblight_set_purple; + rgblight_sethsv_goldenrod(); } else { - rgblight_set_teal; + rgblight_sethsv_teal(); } } else @@ -319,7 +319,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #ifdef RGBLIGHT_ENABLE rgblight_enable(); rgblight_mode(1); - rgblight_setrgb(0xff, 0x00, 0x00); + rgblight_setrgb_red(); #endif reset_keyboard(); } @@ -434,61 +434,61 @@ uint32_t layer_state_set_user(uint32_t state) { if (rgb_layer_change) { switch (biton32(state)) { case _NAV: - rgblight_set_blue; + rgblight_sethsv_blue(); rgblight_mode(1); break; case _SYMB: - rgblight_set_blue; + rgblight_sethsv_blue(); rgblight_mode(2); break; case _MOUS: - rgblight_set_yellow; + rgblight_sethsv_yellow(); rgblight_mode(1); break; case _MACROS: - rgblight_set_orange; + rgblight_sethsv_orange(); is_overwatch ? rgblight_mode(17) : rgblight_mode(18); break; case _MEDIA: - rgblight_set_chartreuse; + rgblight_sethsv_chartreuse(); rgblight_mode(22); break; case _GAMEPAD: - rgblight_set_orange; + rgblight_sethsv_orange(); rgblight_mode(17); break; case _DIABLO: - rgblight_set_red; + rgblight_sethsv_red(); rgblight_mode(5); break; case _RAISE: - rgblight_set_yellow; + rgblight_sethsv_yellow(); rgblight_mode(5); break; case _LOWER: - rgblight_set_orange; + rgblight_sethsv_orange(); rgblight_mode(5); break; case _ADJUST: - rgblight_set_red; + rgblight_sethsv_red(); rgblight_mode(23); break; case _COVECUBE: - rgblight_set_green; + rgblight_sethsv_green(); rgblight_mode(2); break; default: // for any other layers, or the default layer if (default_layer & (1UL << _COLEMAK)) { - rgblight_set_magenta; + rgblight_sethsv_magenta(); } else if (default_layer & (1UL << _DVORAK)) { - rgblight_set_green; + rgblight_sethsv_green(); } else if (default_layer & (1UL << _WORKMAN)) { - rgblight_set_goldenrod; + rgblight_sethsv_goldenrod(); } else { - rgblight_set_teal; + rgblight_sethsv_teal(); } if (biton32(state) == _MODS) { // If the non-OSM layer is enabled, then breathe rgblight_mode(2); From 331288233dd5e613fa2c74b5ff6fdec94dcbdf5e Mon Sep 17 00:00:00 2001 From: "U-LANDSRAAD\\drashna" Date: Wed, 28 Mar 2018 13:29:58 -0700 Subject: [PATCH 152/578] Add rgblist to docs --- docs/feature_rgblight.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/feature_rgblight.md b/docs/feature_rgblight.md index 571bf8668b8f..0f1e649ef851 100644 --- a/docs/feature_rgblight.md +++ b/docs/feature_rgblight.md @@ -96,6 +96,7 @@ rgblight_sethsv(h, s, v); // HSV color control - h is a value from 0..360 and s rgblight_setrgb_at(r,g,b, LED); // control a single LED. 0 <= LED < RGBLED_NUM rgblight_sethsv_at(h,s,v, LED); // control a single LED. 0 <= LED < RGBLED_NUM ``` +You can find a list of predefined colors at [`quantum/rgblight_list.h`](https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight_list.h). Free to add to this list! ## RGB Lighting Keycodes From 931a52d1ae50aef36e55fde59874614f742554a3 Mon Sep 17 00:00:00 2001 From: nachie Date: Wed, 28 Mar 2018 20:20:15 -0700 Subject: [PATCH 153/578] Support for the Paladin64 PCB (#2639) * Support for the Paladin64 PCB * Paladin64: Added readme. Added the bootloader option to rules.mk * Fixed the formatting * fixed the flash command --- keyboards/paladin64/config.h | 124 +++++++++++++++++++ keyboards/paladin64/keymaps/default/keymap.c | 100 +++++++++++++++ keyboards/paladin64/paladin64.c | 2 + keyboards/paladin64/paladin64.h | 23 ++++ keyboards/paladin64/readme.md | 19 +++ keyboards/paladin64/rules.mk | 60 +++++++++ 6 files changed, 328 insertions(+) create mode 100755 keyboards/paladin64/config.h create mode 100755 keyboards/paladin64/keymaps/default/keymap.c create mode 100755 keyboards/paladin64/paladin64.c create mode 100755 keyboards/paladin64/paladin64.h create mode 100644 keyboards/paladin64/readme.md create mode 100755 keyboards/paladin64/rules.mk diff --git a/keyboards/paladin64/config.h b/keyboards/paladin64/config.h new file mode 100755 index 000000000000..27f54bf1611c --- /dev/null +++ b/keyboards/paladin64/config.h @@ -0,0 +1,124 @@ +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER inachie +#define PRODUCT paladin64 +#define DESCRIPTION Paladin64 ALPS 64 keyboard with trackpoint and underglow + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 8 + +#ifdef PS2_USE_USART + #define PS2_CLOCK_PORT PORTD + #define PS2_CLOCK_PIN PIND + #define PS2_CLOCK_DDR DDRD + #define PS2_CLOCK_BIT 5 + #define PS2_DATA_PORT PORTD + #define PS2_DATA_PIN PIND + #define PS2_DATA_DDR DDRD + #define PS2_DATA_BIT 2 + + /* synchronous, odd parity, 1-bit stop, 8-bit data, sample at falling + * edge */ + /* set DDR of CLOCK as input to be slave */ + #define PS2_USART_INIT() do { \ + PS2_CLOCK_DDR &= ~(1<mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* prevent stuck modifiers */ +#define PREVENT_STUCK_MODIFIERS +#define RGB_DI_PIN D0 +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 14 +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 12 +#endif + +#endif diff --git a/keyboards/paladin64/keymaps/default/keymap.c b/keyboards/paladin64/keymaps/default/keymap.c new file mode 100755 index 000000000000..1ac670fa0f8b --- /dev/null +++ b/keyboards/paladin64/keymaps/default/keymap.c @@ -0,0 +1,100 @@ +#include "paladin64.h" + +const uint16_t PROGMEM fn_actions[] = {}; +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* QWERTY */ + KEYMAP( + 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_GRV, KC_BSLS, + 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, + MO(3), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, MO(3), + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_APP, KC_RGUI, KC_RALT, KC_LCTL), + + /* DVORAK */ + KEYMAP( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_GRV, KC_BSLS, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSPC, + MO(3), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, + KC_LSFT, KC_NUBS, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_LSFT, MO(3), + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_APP, KC_RGUI, KC_RALT, KC_RCTL), + + /* COLEMAK */ + KEYMAP( + 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_GRV, KC_BSLS, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSPC, + MO(3), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, MO(3), + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_APP, KC_RGUI, KC_RALT, KC_RCTL), + + /* FUNCTION */ + KEYMAP( + KC_GRV, 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_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_BSPC, + KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, + KC_CAPS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, RGB_TOG), + + /* AutoMouse */ + KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + // keyevent_t event = record->event; + + switch (id) { + + } + return MACRO_NONE; +} + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + + if (usb_led & (1 << USB_LED_NUM_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_COMPOSE)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_KANA)) { + + } else { + + } + +} + diff --git a/keyboards/paladin64/paladin64.c b/keyboards/paladin64/paladin64.c new file mode 100755 index 000000000000..5ef78d5bf77b --- /dev/null +++ b/keyboards/paladin64/paladin64.c @@ -0,0 +1,2 @@ +#include "paladin64.h" + diff --git a/keyboards/paladin64/paladin64.h b/keyboards/paladin64/paladin64.h new file mode 100755 index 000000000000..1bbf9ea5300e --- /dev/null +++ b/keyboards/paladin64/paladin64.h @@ -0,0 +1,23 @@ +#ifndef PALADIN64_H +#define PALADIN64_H + +#include "quantum.h" + +#define KEYMAP( \ + K36, K37, K46, K47, K56, K57, K66, K67, K76, K77, K06, K07, K17, K26, K27, \ + K34, K35, K44, K45, K54, K55, K64, K65, K75, K05, K15, K16, K25, K24, \ + K32, K33, K43, K52, K53, K63, K73, K74, K03, K04, K13, K14, K23, \ + K31, K41, K42, K51, K61, K62, K71, K72, K01, K02, K11, K12, K21, K22, \ + K30, K40, K50, K60, K70, K00, K10, K20 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17 }, \ + { K20, K21, K22, K23, K24, K25, K26, K27 }, \ + { K30, K31, K32, K33, K34, K35, K36, K37 }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, K56, K57 }, \ + { K60, K61, K62, K63, K64, K65, K66, K67 }, \ + { K70, K71, K72, K73, K74, K75, K76, K77 } \ +} + +#endif diff --git a/keyboards/paladin64/readme.md b/keyboards/paladin64/readme.md new file mode 100644 index 000000000000..41f66e2ac0be --- /dev/null +++ b/keyboards/paladin64/readme.md @@ -0,0 +1,19 @@ +# Paladin64 ALPS PCB by /u/iNachie + +Firmware for the Paladin64 ALPS64 PCB, with underglow and an optional +trackpoint module. + +Keyboard Maintainer: [/u/iNachie](https://github.com/nachie) +Hardware Supported: Paladin64 ALPS PCB by iNachie +Hardware Availability: [/u/iNachie](https://www.reddit.com/user/inachie/) + +Make example for this keyboard (after setting up your build environment): + + make paladin64:default + +Or to make and flash: + + make paladin64:default:dfu + + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/paladin64/rules.mk b/keyboards/paladin64/rules.mk new file mode 100755 index 000000000000..b24dc49d0615 --- /dev/null +++ b/keyboards/paladin64/rules.mk @@ -0,0 +1,60 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + +BOOTLOADER = atmel-dfu + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= no # Commands for debug and configuration +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality +AUDIO_ENABLE ?= no +RGBLIGHT_ENABLE ?= yes +#PS2_MOUSE_ENABLE ?= yes +#PS2_USE_USART ?= yes +#PS2_USE_INT ?= yes From 5641b1da205203393fe5fccccfad9910b141aa7a Mon Sep 17 00:00:00 2001 From: "Jonathan A. Kollasch" Date: Tue, 27 Mar 2018 14:00:34 -0500 Subject: [PATCH 154/578] layouts/default: fill in 60_ansi keymaps --- layouts/default/60_ansi/default_60_ansi/keymap.c | 14 +++++++------- .../default_60_ansi_split_bs_rshift/keymap.c | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/layouts/default/60_ansi/default_60_ansi/keymap.c b/layouts/default/60_ansi/default_60_ansi/keymap.c index 6da2d25e76d1..ec98612fa51b 100644 --- a/layouts/default/60_ansi/default_60_ansi/keymap.c +++ b/layouts/default/60_ansi/default_60_ansi/keymap.c @@ -1,11 +1,11 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_ansi( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO - ) + [0] = LAYOUT_60_ansi( + KC_GRV, 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_BSPC , + 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_BSLS , + KC_CAPS , KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT , + KC_LSFT , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT , + KC_LCTL , KC_LGUI , KC_LALT , KC_SPC , KC_RALT , KC_RGUI , KC_APP , KC_RCTL + ) }; diff --git a/layouts/default/60_ansi_split_bs_rshift/default_60_ansi_split_bs_rshift/keymap.c b/layouts/default/60_ansi_split_bs_rshift/default_60_ansi_split_bs_rshift/keymap.c index 8cddf696d1ef..efb6fbcf0701 100644 --- a/layouts/default/60_ansi_split_bs_rshift/default_60_ansi_split_bs_rshift/keymap.c +++ b/layouts/default/60_ansi_split_bs_rshift/default_60_ansi_split_bs_rshift/keymap.c @@ -1,13 +1,13 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_ansi_split_bs_rshift( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO - ) + [0] = LAYOUT_60_ansi_split_bs_rshift( + KC_GRV, 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_BSPC,KC_BSPC, + 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_BSLS , + KC_CAPS , KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT , + KC_LSFT , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT ,KC_RSFT, + KC_LCTL , KC_LGUI , KC_LALT , KC_SPC , KC_RALT , KC_RGUI , KC_APP , KC_RCTL + ) }; // Runs just one time when the keyboard initializes. From fb34fdbbc969435917917f447bca12261f7d4498 Mon Sep 17 00:00:00 2001 From: Chris Peters Date: Thu, 29 Mar 2018 10:44:26 -0700 Subject: [PATCH 155/578] Added cpeters1982 keymap folder in lets_split (#2583) * Added cpeters1982 keymap folder in lets_split * Deleted tap dance. need to research error * Changed keymap to better facilitate SpaceFn * Trying to get backlighting to work * Added RGB backlight support * cleared some cache files per Drashna's instructions --- .../lets_split/keymaps/cpeters1982/config.h | 54 +++++ .../lets_split/keymaps/cpeters1982/keymap.c | 222 ++++++++++++++++++ .../lets_split/keymaps/cpeters1982/rules.mk | 8 + 3 files changed, 284 insertions(+) create mode 100644 keyboards/lets_split/keymaps/cpeters1982/config.h create mode 100644 keyboards/lets_split/keymaps/cpeters1982/keymap.c create mode 100644 keyboards/lets_split/keymaps/cpeters1982/rules.mk diff --git a/keyboards/lets_split/keymaps/cpeters1982/config.h b/keyboards/lets_split/keymaps/cpeters1982/config.h new file mode 100644 index 000000000000..3639b9c3f229 --- /dev/null +++ b/keyboards/lets_split/keymaps/cpeters1982/config.h @@ -0,0 +1,54 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ + +// #define MASTER_LEFT +#define MASTER_RIGHT +// #define EE_HANDS + +// Define Tap Dance interval +//#define TAPPING_TERM 175 + +// // Enable LED strip +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 10 + +// Space Cadet +#define LSPO_KEY KC_9 +#define RSPC_KEY KC_0 +#define DISABLE_SPACE_CADET_ROLLOVER + +// Auto Shift settings +#define AUTO_SHIFT_TIMEOUT 165 +// #define NO_AUTO_SHIFT_SPECIAL + +#endif diff --git a/keyboards/lets_split/keymaps/cpeters1982/keymap.c b/keyboards/lets_split/keymaps/cpeters1982/keymap.c new file mode 100644 index 000000000000..b5adc1641f09 --- /dev/null +++ b/keyboards/lets_split/keymaps/cpeters1982/keymap.c @@ -0,0 +1,222 @@ +#include "lets_split.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +// #define _COLEMAK 1 +// #define _DVORAK 2 +#define _LOWER 1 +#define _RAISE 2 +#define _ADJUST 16 + + + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + // COLEMAK, + // DVORAK, + LOWER, + RAISE, + ADJUST, +}; + +/* +// Tap dance declerations +enum { + TD_GRV_TILD = 0, +}; + +// Tap dance definitions +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_GRV_TILD] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, KC_TILD), +}; +*/ + + + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | ` ~ | Q | W | E | R | T | Y | U | I | O | P | Bspc | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Tab | A | S | D | F | G | H | J | K | L | ; | ' | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Rshift| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Lalt | GUI | Esc |Lower |KC_SPC |Enter |Raise | [cmd|] alt |= Hypr| - | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = KEYMAP( \ + KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, \ + KC_LCTRL,KC_LALT, KC_LGUI, KC_ESC, TG(_LOWER), LT(_ADJUST, KC_SPC), KC_ENT, TG(_RAISE), MT(MOD_RGUI, KC_LBRC), MT(MOD_RALT, KC_RBRC), MT(MOD_HYPR, KC_EQL), KC_MINS \ +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ESC | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bspc | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = KEYMAP( \ + KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,_______,_______,_______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MFFD, KC_VOLD, KC_VOLU, KC_MPLY \ +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bspc | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = KEYMAP( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MFFD, KC_VOLD, KC_VOLU, KC_MPLY \ +), + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | up | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty| | left | down |right | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | % | ` | ~ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |AShftD|AShftU|REPORT| | | | [ | ] | - | = | \ | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = KEYMAP( \ + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, KC_DEL, \ + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, KC_LEFT, KC_DOWN, KC_RGHT, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PERC, KC_GRV, KC_TILD, \ + KC_ASDN, KC_ASUP, KC_ASRP, _______, _______, _______, _______, KC_RBRC, KC_LBRC, KC_MINS, KC_EQL, KC_BSLASH \ +) + + +}; + +/* #ifdef AUDIO_ENABLE +* float tone_qwerty[][2] = SONG(QWERTY_SOUND); +* float tone_dvorak[][2] = SONG(DVORAK_SOUND); +* float tone_colemak[][2] = SONG(COLEMAK_SOUND); +#endif */ + + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_qwerty); + #endif + persistent_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + break; + } + return true; +}; + +#define rgblight_set_blue rgblight_sethsv (0xFF, 0xFF, 0xFF); +#define rgblight_set_red rgblight_sethsv (0x00, 0xFF, 0xFF); +#define rgblight_set_green rgblight_sethsv (0x78, 0xFF, 0xFF); +#define rgblight_set_orange rgblight_sethsv (0x1E, 0xFF, 0xFF); +#define rgblight_set_teal rgblight_sethsv (0xC3, 0xFF, 0xFF); +#define rgblight_set_magenta rgblight_sethsv (0x12C, 0xFF, 0xFF); +#define rgblight_set_yellow rgblight_sethsv (0x3C, 0xFF, 0xFF); +#define rgblight_set_purple rgblight_sethsv (0x10E, 0xFF, 0xFF); +#define rgblight_set_white rgblight_sethsv (0x00, 0x00, 0xFF); + +uint32_t layer_state_set_user(uint32_t state) { +#ifdef RGBLIGHT_ENABLE + uint8_t default_layer = eeconfig_read_default_layer(); + if (rgb_layer_change) { + switch (biton32(state)) { + case _RAISE: + rgblight_set_orange; + rgblight_mode(5); + break; + case _LOWER: + rgblight_set_teal; + rgblight_mode(5); + break; + case _ADJUST: + rgblight_set_purple; + rgblight_mode(23); + break; + default: + if (default_layer & (1UL << _COLEMAK)) { + rgblight_set_magenta; + } + else if (default_layer & (1UL << _DVORAK)) { + rgblight_set_green; + } + else { + rgblight_set_blue; + } + rgblight_mode(1); + break; + } + } +#endif + return state; +} diff --git a/keyboards/lets_split/keymaps/cpeters1982/rules.mk b/keyboards/lets_split/keymaps/cpeters1982/rules.mk new file mode 100644 index 000000000000..f2fde785d4e6 --- /dev/null +++ b/keyboards/lets_split/keymaps/cpeters1982/rules.mk @@ -0,0 +1,8 @@ + + + +ifndef QUANTUM_DIR + include ../../../../Makefile + AUTO_SHIFT_ENABLE = yes + RGBLIGHT_ENABLE = yes +endif From c2bec5b3f0149758f89ad6b84ea8781fde41fce1 Mon Sep 17 00:00:00 2001 From: "U-LANDSRAAD\\drashna" Date: Thu, 29 Mar 2018 12:26:09 -0700 Subject: [PATCH 156/578] Properly always copy firmware This finishes fixing #2314, which mostly copies the firmware when compiling. However, it misses `:teensy`, `:avrdude` and most importantly, `:production` --- tmk_core/avr.mk | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk index eb55dba95c0a..bd58bd285fc2 100644 --- a/tmk_core/avr.mk +++ b/tmk_core/avr.mk @@ -9,7 +9,7 @@ SIZE = avr-size AR = avr-ar rcs NM = avr-nm HEX = $(OBJCOPY) -O $(FORMAT) -R .eeprom -R .fuse -R .lock -R .signature -EEP = $(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O $(FORMAT) +EEP = $(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O $(FORMAT) BIN = COMMON_VPATH += $(DRIVER_PATH)/avr @@ -124,16 +124,16 @@ qmk: $(BUILD_DIR)/$(TARGET).hex program: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep check-size $(PROGRAM_CMD) -teensy: $(BUILD_DIR)/$(TARGET).hex check-size +teensy: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware $(TEENSY_LOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex - -BATCHISP ?= batchisp + +BATCHISP ?= batchisp flip: $(BUILD_DIR)/$(TARGET).hex check-size $(BATCHISP) -hardware usb -device $(MCU) -operation erase f $(BATCHISP) -hardware usb -device $(MCU) -operation loadbuffer $(BUILD_DIR)/$(TARGET).hex program $(BATCHISP) -hardware usb -device $(MCU) -operation start reset 0 - + DFU_PROGRAMMER ?= dfu-programmer GREP ?= grep @@ -169,7 +169,7 @@ dfu-ee: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep fi $(DFU_PROGRAMMER) $(MCU) reset -avrdude: $(BUILD_DIR)/$(TARGET).hex check-size +avrdude: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware if $(GREP) -q -s Microsoft /proc/version; then \ echo 'ERROR: AVR flashing cannot be automated within the Windows Subsystem for Linux (WSL) currently. Instead, take the .hex file generated and flash it using AVRDUDE, AVRDUDESS, or XLoader.'; \ else \ @@ -199,7 +199,7 @@ bin: $(BUILD_DIR)/$(TARGET).hex # copy bin to FLASH.bin flashbin: bin - $(COPY) $(BUILD_DIR)/$(TARGET).bin FLASH.bin; + $(COPY) $(BUILD_DIR)/$(TARGET).bin FLASH.bin; # Generate avr-gdb config/init file which does the following: # define the reset signal, load the target file, connect to target, and set @@ -250,7 +250,7 @@ extcoff: $(BUILD_DIR)/$(TARGET).elf @$(SECHO) $(MSG_EXTENDED_COFF) $(BUILD_DIR)/$(TARGET).cof $(COFFCONVERT) -O coff-ext-avr $< $(BUILD_DIR)/$(TARGET).cof -bootloader: +bootloader: make -C lib/lufa/Bootloaders/DFU/ clean echo -e "#ifndef QMK_KEYBOARD\n#define QMK_KEYBOARD\n" > lib/lufa/Bootloaders/DFU/Keyboard.h echo -e `$(GREP) "MANUFACTURER" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h @@ -264,7 +264,7 @@ bootloader: echo -e "BootloaderDFU.hex copied to $(TARGET)_bootloader.hex" cp lib/lufa/Bootloaders/DFU/BootloaderDFU.hex $(TARGET)_bootloader.hex -production: $(BUILD_DIR)/$(TARGET).hex bootloader +production: $(BUILD_DIR)/$(TARGET).hex bootloader cpfirmware @cat $(BUILD_DIR)/$(TARGET).hex | awk '/^:00000001FF/ == 0' > $(TARGET)_production.hex @cat $(TARGET)_bootloader.hex >> $(TARGET)_production.hex echo "File sizes:" From c31f7ff91b2a293995951a08979ef0f06fed111d Mon Sep 17 00:00:00 2001 From: "U-LANDSRAAD\\drashna" Date: Thu, 29 Mar 2018 14:47:02 -0700 Subject: [PATCH 157/578] Hopefully fix Travis Auto-Incrementation This reverts the changes in #2491, so that Travis will hopefully return to automatic incrementing. But this includes the layout and userspace excepts, as well. --- util/travis_compiled_push.sh | 41 +++++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/util/travis_compiled_push.sh b/util/travis_compiled_push.sh index ae2a747448f1..a49908c71e47 100644 --- a/util/travis_compiled_push.sh +++ b/util/travis_compiled_push.sh @@ -1,13 +1,26 @@ #!/bin/bash +TRAVIS_BRANCH="${TRAVIS_BRANCH:master}" +TRAVIS_PULL_REQUEST="${TRAVIS_PULL_REQUEST:false}" +TRAVIS_COMMIT_MESSAGE="${TRAVIS_COMMIT_MESSAGE:-none}" +TRAVIS_COMMIT_RANGE="${TRAVIS_COMMIT_RANGE:-HEAD~1..HEAD}" + set -o errexit -o nounset -source util/travis_push.sh rev=$(git rev-parse --short HEAD) -if ! [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_PULL_REQUEST" == "false" ]] ; then - exit 0 -fi +if [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_PULL_REQUEST" == "false" ]] ; then + +git config --global user.name "QMK Bot" +git config --global user.email "hello@qmk.fm" + +openssl aes-256-cbc -K $encrypted_b0ee987fd0fc_key -iv $encrypted_b0ee987fd0fc_iv -in secrets.tar.enc -out secrets.tar -d +tar xvf secrets.tar + +chmod 600 id_rsa_qmk_firmware +chmod 600 id_rsa_qmk.fm +eval `ssh-agent -s` +ssh-add id_rsa_qmk_firmware # convert to unix line-endings git checkout master @@ -15,12 +28,13 @@ git diff --diff-filter=M --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} | xargs -0 d git diff --diff-filter=M --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} | xargs -0 git add git commit -m "convert to unix line-endings [skip ci]" && git push git@github.com:qmk/qmk_firmware.git master -increment_version () { - declare -a part=( ${1//\./ } ) - part[2]=$((part[2] + 1)) - new="${part[*]}" - echo -e "${new// /.}" -} +increment_version () +{ + declare -a part=( ${1//\./ } ) + part[2]=$((part[2] + 1)) + new="${part[*]}" + echo -e "${new// /.}" +} git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} @@ -49,7 +63,7 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then ssh-add -D eval `ssh-agent -s` ssh-add id_rsa_qmk.fm - + # don't delete files in case not all keyboards are built # rm -f compiled/*.hex @@ -60,6 +74,9 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then for file in ../qmk_firmware/keyboards/*/*/*/*/keymaps/*/*_default.hex; do mv -v "$file" "compiled/${file##*/}" || true; done bash _util/generate_keyboard_page.sh git add -A - git commit -m "generated from qmk/qmk_firmware@${rev}" + git commit -m "generated from qmk/qmk_firmware@${rev}" git push git@github.com:qmk/qmk.fm.git + +fi + fi From a74f8669416a0f18271cb3d96b55b06e4da91d19 Mon Sep 17 00:00:00 2001 From: Ryan McLean Date: Fri, 30 Mar 2018 21:07:36 +0100 Subject: [PATCH 158/578] Just a multilayered Layout using tapdance (#2645) * Ported JJ40 Layout to Contra * Update readme.md --- keyboards/contra/keymaps/ryanm101/config.h | 45 ++++ keyboards/contra/keymaps/ryanm101/keymap.c | 261 ++++++++++++++++++++ keyboards/contra/keymaps/ryanm101/readme.md | 11 + keyboards/contra/keymaps/ryanm101/rules.mk | 1 + 4 files changed, 318 insertions(+) create mode 100644 keyboards/contra/keymaps/ryanm101/config.h create mode 100644 keyboards/contra/keymaps/ryanm101/keymap.c create mode 100644 keyboards/contra/keymaps/ryanm101/readme.md create mode 100644 keyboards/contra/keymaps/ryanm101/rules.mk diff --git a/keyboards/contra/keymaps/ryanm101/config.h b/keyboards/contra/keymaps/ryanm101/config.h new file mode 100644 index 000000000000..9a458b892d4b --- /dev/null +++ b/keyboards/contra/keymaps/ryanm101/config.h @@ -0,0 +1,45 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +#define PREVENT_STUCK_MODIFIERS +#define TAPPING_TERM 200 + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PLANCK_SOUND) + // #define STARTUP_SONG SONG(NO_SOUND) + + #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(COLEMAK_SOUND), \ + SONG(DVORAK_SOUND) \ + } +#endif + +#define MUSIC_MASK (keycode != KC_NO) + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ + +#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 2 + +#endif \ No newline at end of file diff --git a/keyboards/contra/keymaps/ryanm101/keymap.c b/keyboards/contra/keymaps/ryanm101/keymap.c new file mode 100644 index 000000000000..f8fbb960290a --- /dev/null +++ b/keyboards/contra/keymaps/ryanm101/keymap.c @@ -0,0 +1,261 @@ +#include "contra.h" +#include "action_layer.h" + +extern keymap_config_t keymap_config; + +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +// Custom Key Combos +#define LCKSCR LCTL(LGUI(KC_Q)) +//#define KC_CAD LCTL(LALT(KC_DEL)) // CTL+ALT+DEL (windows) +//#define KC_CAE LGUI(LALT(KC_ESC)) // CMD+ALT+ESC (Force Close) +//#define KC_SCREENSHOT LGUI(S(KC_4)) // CMD+SHIFT+4 (Mac Screenshot) + +#define _QWERTY 0 +#define _QWERTYMAC 1 +#define _L1 2 +#define _L2 3 +#define _L3 4 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + QWERTYMAC, + L1, + L2, + L3 +}; + +//Tap Dance Declarations +#define COLON TD(CLN) +#define QUOTE TD(QUOT) +#define PARAN TD(PAR) +#define CURLY TD(CUR) +#define SQUAR TD(SQU) +#define ANGUL TD(ANG) +#define TMUX TD(TD_TMUX) +#define CADCAE TD(CAD_CAE) +#define SHIFTSLASHPIPE TD(TD_SHIFTSLASHPIPE) + +enum { + CLN = 0, + QUOT, + CAD_CAE, + PAR, + CUR, + SQU, + ANG, + TD_TMUX, + TD_SHIFTSLASHPIPE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ;: | '@ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | ,< | .> | /? |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | \| | L1 | | | L2 | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, COLON, QUOTE}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {KC_LCTL, KC_LGUI, KC_LALT, KC_NONUS_BSLASH, MO(_L1), XXXXXXX, KC_SPC, MO(_L2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* QwertyMAC + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ;: | '@ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | ,< | .> | /? |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI | \| | L1 | | | L2 | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTYMAC] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, COLON, QUOTE}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {KC_LCTL, KC_LALT, KC_LGUI, KC_NONUS_BSLASH, MO(_L1), XXXXXXX,KC_SPC, MO(_L2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* L1 + * ,-----------------------------------------------------------------------------------. + * | `¬ |INSERT| PGUP | HOME | <> | | () | 7& | 8* | 9( | | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | |DELETE| PGDN | END | [] | {} | =+ | 4$ | 5% | 6^ | * | LMAC | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |LSHIFT|PSCRN | |CADCAE| L3 |LCKSCR| -_ | 1! | 2" | 3£ | /? |ENTER | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | #~ | | | | | 0) | .> | | MENU | + * `-----------------------------------------------------------------------------------' + */ +[_L1] = { + {KC_GRV, KC_INSERT, KC_PGUP, KC_HOME, ANGUL, XXXXXXX, PARAN, KC_7, KC_8, KC_9, XXXXXXX, KC_BSPC}, + {XXXXXXX, KC_DELETE, KC_PGDOWN, KC_END, SQUAR, CURLY, KC_EQL, KC_4, KC_5, KC_6, S(KC_8), TG(_QWERTYMAC)}, + {_______, KC_PSCREEN, XXXXXXX, CADCAE, MO(_L3), LCKSCR, KC_MINS, KC_1, KC_2, KC_3, KC_SLSH, KC_ENT}, + {_______, _______, _______, KC_NUHS, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, KC_0, ALGR_T(KC_DOT), XXXXXXX, KC_MENU} +}, + +/* L2 + * ,-----------------------------------------------------------------------------------. + * |Sysreq| F9 | F10 | F11 | F12 | |NUMLK | 7 | 8 | 9 | * |Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | F5 | F6 | F7 | F8 | | | 4 | 5 | 6 | / | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | | | 1 | 2 | 3 | + |KP_ENT| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | | | | | | 0 | . | - | | + * `-----------------------------------------------------------------------------------' + */ + [_L2] = { + {KC_SYSREQ, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, KC_NUMLOCK, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_ASTERISK, KC_BSPC}, + {XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, XXXXXXX, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_SLASH, _______}, + {XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_PLUS, KC_KP_ENTER}, + {_______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, KC_KP_0, KC_KP_DOT, KC_KP_MINUS, _______} + }, + +/* L3 + * ,-----------------------------------------------------------------------------------. + * |RGBTOG|RGBHUI|RGBHUD|RGBSAI|RGBSAD| | | PGDN | PGUP | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * |BLTOG |BLSTEP|RGBVAI|RGBVAD|RGBMOD|RGBRMD| Left | Down | Up | Right| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | TMUX | | | | | | | | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_L3] = { + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGDOWN, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, XXXXXXX, XXXXXXX}, + {TMUX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_ENT}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} + } + +}; + +// Parantheses +void paranthesis_dance (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + SEND_STRING("()"); register_code(KC_LEFT); unregister_code(KC_LEFT); + } else if (state->count == 2) { + SEND_STRING("("); + } else if (state->count == 3) { + SEND_STRING(")"); + } +} + +void curly_dance (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + SEND_STRING("{}"); register_code(KC_LEFT); unregister_code(KC_LEFT); + } else if (state->count == 2) { + SEND_STRING("{"); + } else if (state->count == 3) { + SEND_STRING("}"); + } +} + +void square_dance (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + SEND_STRING("[]"); register_code(KC_LEFT); unregister_code(KC_LEFT); + } else if (state->count == 2) { + SEND_STRING("["); + } else if (state->count == 3) { + SEND_STRING("]"); + } +} + +void angular_dance (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + SEND_STRING("<>"); register_code(KC_LEFT); unregister_code(KC_LEFT); + } else if (state->count == 2) { + SEND_STRING("<"); + } else if (state->count == 3) { + SEND_STRING(">"); + } +} + +void tmux_dance (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + SEND_STRING("tmux"); register_code(KC_ENT); unregister_code(KC_ENT); + } else if (state->count == 2) { + register_mods(MOD_BIT(KC_LCTRL)); + register_code(KC_B); unregister_code(KC_B); + unregister_mods(MOD_BIT(KC_LCTRL)); + register_mods(MOD_BIT(KC_LSHIFT)); + register_code(KC_5); unregister_code(KC_5); + unregister_mods(MOD_BIT(KC_LSHIFT)); + } +} + +void cmd_dance (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + register_mods(MOD_BIT(KC_LCTRL)); + register_mods(MOD_BIT(KC_LALT)); + register_code(KC_DELETE); + unregister_mods(MOD_BIT(KC_LCTRL)); + unregister_mods(MOD_BIT(KC_LALT)); + unregister_code(KC_DELETE); + } else if (state->count == 2) { + register_mods(MOD_BIT(KC_LGUI)); + register_mods(MOD_BIT(KC_LALT)); + register_code(KC_ESC); + unregister_mods(MOD_BIT(KC_LGUI)); + unregister_mods(MOD_BIT(KC_LALT)); + unregister_code(KC_ESC); + } else if (state->count == 3) { + register_mods(MOD_BIT(KC_LGUI)); + register_mods(MOD_BIT(KC_LSHIFT)); + register_code(KC_4); + unregister_mods(MOD_BIT(KC_LGUI)); + unregister_mods(MOD_BIT(KC_LSHIFT)); + unregister_code(KC_4); + } +} + +void cmd_sft_slash_pipe_down (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + if (state->interrupted || state->pressed==0) { + register_code (KC_NONUS_BSLASH); + } else { + register_code (KC_LSFT); + } + } else if (state->count == 2) { + register_mods(MOD_BIT(KC_LSFT)); + register_code(KC_NONUS_BSLASH); + } +} + +void cmd_sft_slash_pipe_up (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT)) { + unregister_code (KC_LSFT); + } else { + unregister_code (KC_NONUS_BSLASH); + } + } else if (state->count == 2) { + unregister_mods(MOD_BIT(KC_LSFT)); + unregister_code(KC_NONUS_BSLASH); + } +} + + //All tap dance functions would go here. Only showing this one. + qk_tap_dance_action_t tap_dance_actions[] = { + [CLN] = ACTION_TAP_DANCE_DOUBLE (KC_SCLN, S(KC_SCLN )) + ,[QUOT] = ACTION_TAP_DANCE_DOUBLE (KC_QUOT, S(KC_2)) + ,[CAD_CAE] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, NULL, cmd_dance ) + ,[PAR] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, NULL, paranthesis_dance ) + ,[CUR] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, NULL, curly_dance ) + ,[SQU] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, NULL, square_dance ) + ,[ANG] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, NULL, angular_dance ) + ,[TD_TMUX] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, NULL, tmux_dance ) + ,[TD_SHIFTSLASHPIPE] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, cmd_sft_slash_pipe_down, cmd_sft_slash_pipe_up) + }; diff --git a/keyboards/contra/keymaps/ryanm101/readme.md b/keyboards/contra/keymaps/ryanm101/readme.md new file mode 100644 index 000000000000..a289eefcb755 --- /dev/null +++ b/keyboards/contra/keymaps/ryanm101/readme.md @@ -0,0 +1,11 @@ +# Layout Info +Map is from my JJ40 but Contra has been done with a grid vs my JJ's MIT layout. Map will be updated as soon as i figure out what to do with the addional key. + +- Uses non-US keys +- Keymap can be seen: Keymap -> http://www.keyboard-layout-editor.com/#/gists/7d111d72b138c3ef03ea4ffac4ddb7e4 + +# Notes + +- .> on lower layer if tapped but ALTGR if held +- RAISE -> uses TT() so tap to enter (NUMPAD Usage) or hold for momentary (F Keys) +- LOWER on _RAISE goes straight to qwerty layout (Base layer) diff --git a/keyboards/contra/keymaps/ryanm101/rules.mk b/keyboards/contra/keymaps/ryanm101/rules.mk new file mode 100644 index 000000000000..f5e8c3d6dc82 --- /dev/null +++ b/keyboards/contra/keymaps/ryanm101/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE=yes \ No newline at end of file From c6b5ce61e8b3eea331e2b691cf4eb3b01dab5020 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Fri, 30 Mar 2018 19:20:26 -0700 Subject: [PATCH 159/578] Fix Octagon info.json issues (#2649) Change KEYMAP to LAYOUT while I'm at it. V1 and V2 now have their own info.jsons --- keyboards/octagon/info.json | 13 ------------- keyboards/octagon/v1/info.json | 16 ++++++++++++++++ keyboards/octagon/v1/keymaps/default/keymap.c | 4 ++-- keyboards/octagon/v1/v1.h | 2 +- keyboards/octagon/v2/info.json | 16 ++++++++++++++++ keyboards/octagon/v2/keymaps/default/keymap.c | 4 ++-- keyboards/octagon/v2/v2.h | 2 +- 7 files changed, 38 insertions(+), 19 deletions(-) delete mode 100644 keyboards/octagon/info.json create mode 100644 keyboards/octagon/v1/info.json create mode 100644 keyboards/octagon/v2/info.json diff --git a/keyboards/octagon/info.json b/keyboards/octagon/info.json deleted file mode 100644 index 7d3f4963b3b3..000000000000 --- a/keyboards/octagon/info.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "keyboard_name": "Octagon", - "manufacturer": "Duck", - "processor": "atmega32u4", - "bootloader": "atmel-dfu", - "width": 16, - "height": 6, - "layouts": { - "KEYMAP": { - "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":14, "y":1, "w":2}, {"x":15, "y":1}, {"x":0.5, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":6.5, "y":2}, {"x":7.5, "y":2}, {"x":8.5, "y":2}, {"x":9.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":14, "y":2, "w":1.5}, {"x":15, "y":2}, {"x":0.75, "y":3, "w":1.75}, {"x":1.75, "y":3}, {"x":2.75, "y":3}, {"x":3.75, "y":3}, {"x":4.75, "y":3}, {"x":5.75, "y":3}, {"x":6.75, "y":3}, {"x":7.75, "y":3}, {"x":8.75, "y":3}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3}, {"x":14, "y":3, "w":2.25}, {"x":15, "y":3}, {"x":1.25, "y":4, "w":2.25}, {"x":2.25, "y":4}, {"x":3.25, "y":4}, {"x":4.25, "y":4}, {"x":5.25, "y":4}, {"x":6.25, "y":4}, {"x":7.25, "y":4}, {"x":8.25, "y":4}, {"x":9.25, "y":4}, {"x":10.25, "y":4}, {"x":11.25, "y":4}, {"x":13, "y":4, "w":1.75}, {"x":14, "y":4}, {"x":15, "y":4}, {"x":0.25, "y":5, "w":1.25}, {"x":1.5, "y":5, "w":1.25}, {"x":2.75, "y":5, "w":1.25}, {"x":9, "y":5, "w":6.25}, {"x":10, "y":5}, {"x":11, "y":5}, {"x":12, "y":5}, {"x":13, "y":5}, {"x":14, "y":5}, {"x":15, "y":5}] - } - } -} diff --git a/keyboards/octagon/v1/info.json b/keyboards/octagon/v1/info.json new file mode 100644 index 000000000000..3db8a5d2b63e --- /dev/null +++ b/keyboards/octagon/v1/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "Octagon V1", + "manufacturer": "Duck", + "identifier": "", + "url": "", + "maintainer": "qmk", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "width": 16, + "height": 6, + "layouts": { + "LAYOUT": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Home", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Page Up", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"x":12.75, "y":3}, {"label":"Enter", "x":13.75, "y":3, "w":1.25}, {"label":"Page Down", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"End", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}] + } + } +} \ No newline at end of file diff --git a/keyboards/octagon/v1/keymaps/default/keymap.c b/keyboards/octagon/v1/keymaps/default/keymap.c index 0ce6abb7120c..2faf7a9fc4f0 100644 --- a/keyboards/octagon/v1/keymaps/default/keymap.c +++ b/keyboards/octagon/v1/keymaps/default/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* layer 0: qwerty */ - [0] = KEYMAP(\ + [0] = LAYOUT(\ KC_ESC, 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_PSCR, KC_PAUS, KC_GRV, 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_BSPC, KC_HOME, 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_BSLS, KC_PGUP, @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_NO, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), - [1] = KEYMAP(\ + [1] = LAYOUT(\ KC_TRNS, RGB_TOG, RGB_MOD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/octagon/v1/v1.h b/keyboards/octagon/v1/v1.h index 6ac2a81c2f3b..3a27a078ba8b 100644 --- a/keyboards/octagon/v1/v1.h +++ b/keyboards/octagon/v1/v1.h @@ -18,7 +18,7 @@ #include "../octagon.h" -#define KEYMAP( \ +#define LAYOUT( \ K5A, K5B, K5C, K5D, K5E, K5F, K5G, K5H, K5I, K5J, K5K, K5L, K5M, K5N, K5P, \ K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4P, \ K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3N, K3P, \ diff --git a/keyboards/octagon/v2/info.json b/keyboards/octagon/v2/info.json new file mode 100644 index 000000000000..2b9eccc065a5 --- /dev/null +++ b/keyboards/octagon/v2/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "Octagon V2", + "manufacturer": "Duck", + "identifier": "", + "url": "", + "maintainer": "qmk", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "width": 16, + "height": 6, + "layouts": { + "LAYOUT": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Delete", "x":15, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Home", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Page Up", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"x":12.75, "y":3}, {"label":"Enter", "x":13.75, "y":3, "w":1.25}, {"label":"Page Down", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"End", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}] + } + } +} diff --git a/keyboards/octagon/v2/keymaps/default/keymap.c b/keyboards/octagon/v2/keymaps/default/keymap.c index 0590f17c831a..5f7d179abcb2 100644 --- a/keyboards/octagon/v2/keymaps/default/keymap.c +++ b/keyboards/octagon/v2/keymaps/default/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* layer 0: qwerty */ - [0] = KEYMAP(\ + [0] = LAYOUT(\ KC_ESC, 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_PSCR, KC_PAUS, KC_DEL, KC_GRV, 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_BSPC, KC_HOME, 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_BSLS, KC_PGUP, @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [1] = KEYMAP(\ + [1] = LAYOUT(\ KC_TRNS, RGB_TOG, RGB_MOD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/octagon/v2/v2.h b/keyboards/octagon/v2/v2.h index 7ad9f3826b6f..d37db4a0c7e1 100644 --- a/keyboards/octagon/v2/v2.h +++ b/keyboards/octagon/v2/v2.h @@ -18,7 +18,7 @@ #include "../octagon.h" -#define KEYMAP( \ +#define LAYOUT( \ K5A, K5B, K5C, K5D, K5E, K5F, K5G, K5H, K5I, K5J, K5K, K5L, K5M, K5N, K5O, K5Q, \ K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4O, K4P, \ K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3O, K3P, \ From 015aed50a36ba9582fb24023f2ecc4f14b16dcfd Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Fri, 30 Mar 2018 22:57:49 -0700 Subject: [PATCH 160/578] AMJ96 Support (#2651) * Initial commit: Get things compiling * port the custom matrix code * Update readme * make second layer fully transparent * populate config.h identifiers with more correct information * Add in switch backlight support * Enable backlight LEDs, and change pin for RGB * port TMK version over * remove all that TMK stuff, it didn't work lol * Updated readme * Fix keymap - Change KEYMAP to LAYOUT - Adjust formatting of table * Edit readme to reflect NOTES * add info.json for QMK configurator support * Replaced placeholder with MechMerlin --- keyboards/amj96/amj96.c | 43 +++++ keyboards/amj96/amj96.h | 43 +++++ keyboards/amj96/config.h | 203 ++++++++++++++++++++ keyboards/amj96/info.json | 16 ++ keyboards/amj96/keymaps/default/config.h | 24 +++ keyboards/amj96/keymaps/default/keymap.c | 71 +++++++ keyboards/amj96/keymaps/default/readme.md | 1 + keyboards/amj96/matrix.c | 222 ++++++++++++++++++++++ keyboards/amj96/readme.md | 16 ++ keyboards/amj96/rules.mk | 72 +++++++ 10 files changed, 711 insertions(+) create mode 100644 keyboards/amj96/amj96.c create mode 100644 keyboards/amj96/amj96.h create mode 100644 keyboards/amj96/config.h create mode 100644 keyboards/amj96/info.json create mode 100644 keyboards/amj96/keymaps/default/config.h create mode 100644 keyboards/amj96/keymaps/default/keymap.c create mode 100644 keyboards/amj96/keymaps/default/readme.md create mode 100644 keyboards/amj96/matrix.c create mode 100644 keyboards/amj96/readme.md create mode 100644 keyboards/amj96/rules.mk diff --git a/keyboards/amj96/amj96.c b/keyboards/amj96/amj96.c new file mode 100644 index 000000000000..959e321c8f69 --- /dev/null +++ b/keyboards/amj96/amj96.c @@ -0,0 +1,43 @@ +/* Copyright 2017 MechMerlin + + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "amj96.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} diff --git a/keyboards/amj96/amj96.h b/keyboards/amj96/amj96.h new file mode 100644 index 000000000000..37bb6566fe09 --- /dev/null +++ b/keyboards/amj96/amj96.h @@ -0,0 +1,43 @@ +/* Copyright 2017 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#ifndef AMJ96_H +#define AMJ96_H + +#include "quantum.h" + +// This a shortcut to help you visually see your layout. +// The following is an example using the Planck MIT layout +// The first section contains all of the arguments +// The second converts the arguments into a two-dimensional array +#define LAYOUT( \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K09, K0A, K0C, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K0B, K0F, K6F,\ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K0D, K6D,\ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, K6E,\ + K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, K5B, K5C, K5D, K5E, K5F, K0E, K07,\ + K60, K61, K62, K63, K64, K65, K66, K68, K69, K6A, K6B, K6C\ +) { \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_##K07, KC_NO, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E, KC_##K0F}, \ + { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K1E, KC_##K1F}, \ + { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_##K2F}, \ + { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E, KC_##K3F}, \ + { KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46, KC_##K47, KC_##K48, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_##K4E, KC_##K4F}, \ + { KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57, KC_##K58, KC_##K59, KC_##K5A, KC_##K5B, KC_##K5C, KC_##K5D, KC_##K5E, KC_##K5F}, \ + { KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66, KC_NO, KC_##K68, KC_##K69, KC_##K6A, KC_##K6B, KC_##K6C, KC_##K6D, KC_##K6E, KC_##K6F} \ +} + + +#endif diff --git a/keyboards/amj96/config.h b/keyboards/amj96/config.h new file mode 100644 index 000000000000..1ba35b54d004 --- /dev/null +++ b/keyboards/amj96/config.h @@ -0,0 +1,203 @@ +/* +Copyright 2017 MechMerlin + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6074 +#define DEVICE_VER 0x0002 +#define MANUFACTURER Han Chen +#define PRODUCT AMJ96 +#define DESCRIPTION 96 key custom keyboard + +/* key matrix size */ +#define MATRIX_ROWS 7 +#define MATRIX_COLS 16 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define UNUSED_PINS + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN D4 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +/* number of backlight levels */ +#ifdef BREATHING_LED_ENABLE +#ifdef FADING_LED_ENABLE +#define BACKLIGHT_LEVELS 8 +#else +#define BACKLIGHT_LEVELS 6 +#endif +#else +#define BACKLIGHT_LEVELS 3 +#endif +#define BACKLIGHT_CUSTOM + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +//#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 1 + +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 16 +#define RGB_DI_PIN D3 + +#endif diff --git a/keyboards/amj96/info.json b/keyboards/amj96/info.json new file mode 100644 index 000000000000..13bcd6a925e0 --- /dev/null +++ b/keyboards/amj96/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "AMJ96", + "manufacturer": "AMJ", + "identifier": "", + "url": "", + "maintainer": "qmk", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "width": 19, + "height": 6, + "layouts": { + "LAYOUT": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Scroll Lock", "x":14, "y":0}, {"label":"Pause", "x":15, "y":0}, {"label":"Num Lock", "x":16, "y":0}, {"label":"/", "x":17, "y":0}, {"label":"*", "x":18, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"label":"Insert", "x":15, "y":1}, {"label":"Home", "x":16, "y":1}, {"label":"PgUp", "x":17, "y":1}, {"label":"-", "x":18, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Delete", "x":15, "y":2}, {"label":"End", "x":16, "y":2}, {"label":"PgDn", "x":17, "y":2}, {"label":"7", "x":18, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"label":"8", "x":18, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"1", "x":14, "y":4}, {"label":"\u2191", "x":15, "y":4}, {"label":"\u2190", "x":16, "y":4}, {"label":"\u2193", "x":17, "y":4}, {"label":"\u2192", "x":18, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.25}, {"label":"Win", "x":11.25, "y":5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5, "w":1.25}, {"label":"2", "x":15, "y":5}, {"label":".", "x":16, "y":5}, {"label":"3", "x":17, "y":5}, {"label":"9", "x":18, "y":5}] + } + } +} diff --git a/keyboards/amj96/keymaps/default/config.h b/keyboards/amj96/keymaps/default/config.h new file mode 100644 index 000000000000..5e346088ed1d --- /dev/null +++ b/keyboards/amj96/keymaps/default/config.h @@ -0,0 +1,24 @@ +/* Copyright 2017 MechMerlin + + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +// place overrides here + +#endif diff --git a/keyboards/amj96/keymaps/default/keymap.c b/keyboards/amj96/keymaps/default/keymap.c new file mode 100644 index 000000000000..72a44eedf7ed --- /dev/null +++ b/keyboards/amj96/keymaps/default/keymap.c @@ -0,0 +1,71 @@ +/* Copyright 2017 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "amj96.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + LAYOUT( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,PAUS, INS, DEL, PGUP,PGDN, \ + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC,NO, NLCK,PSLS,PAST,PMNS, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC, BSLS, P7, P8, P9, PPLS, \ + CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, P4, P5, P6, PPLS, \ + LSFT,NO, Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT,UP, P1, P2, P3, PENT,\ + LCTL,LGUI,LALT, SPC, RALT,FN0, LEFT,DOWN, RGHT,P0, PDOT, PENT), + + LAYOUT( + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS,TRNS,\ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,NO, TRNS,TRNS,TRNS,TRNS,\ + TRNS,TRNS,TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,\ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,\ + TRNS,NO, TRNS,TRNS, TRNS, TRNS, TRNS, TRNS,TRNS,TRNS,TRNS, TRNS, TRNS,TRNS, TRNS,TRNS,TRNS,TRNS,\ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS, TRNS,TRNS, TRNS,TRNS,TRNS,TRNS) +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/amj96/keymaps/default/readme.md b/keyboards/amj96/keymaps/default/readme.md new file mode 100644 index 000000000000..478ab99669f5 --- /dev/null +++ b/keyboards/amj96/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for amj96 diff --git a/keyboards/amj96/matrix.c b/keyboards/amj96/matrix.c new file mode 100644 index 000000000000..e41bbec728d3 --- /dev/null +++ b/keyboards/amj96/matrix.c @@ -0,0 +1,222 @@ +/* +Copyright 2014 Kai Ryu + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +/* + * scan matrix + */ +#include +#include +#include +#include +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#ifdef UART_RGB_ENABLE +#include "uart_rgb.h" +#endif + +#ifndef DEBOUNCE +# define DEBOUNCE 5 +#endif +static uint8_t debouncing = DEBOUNCE; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +static matrix_row_t read_cols(void); +static void init_cols(void); +static void init_rows(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +void matrix_init(void) +{ + +#ifdef UART_RGB_ENABLE + uart_rgb_init(); +#endif + // disable JTAG + MCUCR = _BV(JTD); + MCUCR = _BV(JTD); + + // 85 REST + DDRD |= _BV(PD7); + PORTD |= _BV(PD7); + + // initialize row and col + init_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } +} + +uint8_t matrix_scan(void) +{ + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + select_row(i); + _delay_us(30); // without this wait read unstable value. + matrix_row_t cols = read_cols(); + if (matrix_debouncing[i] != cols) { + matrix_debouncing[i] = cols; + if (debouncing) { + debug("bounce!: "); debug_hex(debouncing); debug("\n"); + } + debouncing = DEBOUNCE; + } + unselect_rows(); + } + + if (debouncing) { + if (--debouncing) { + _delay_ms(1); + } else { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = matrix_debouncing[i]; + } + } + } + + return 1; +} + +bool matrix_is_modified(void) +{ + if (debouncing) return false; + return true; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1< Date: Fri, 30 Mar 2018 07:38:49 -0700 Subject: [PATCH 161/578] Add XD60 support to QMK Configurator Add info.json Change KEYMAP to LAYOUT_ALL to better reflect that this is a LAYOUT that fits ALL the possible positions for switches. We will need to make better LAYOUTS for the future. --- keyboards/xd60/info.json | 16 ++++++++++++++++ keyboards/xd60/keymaps/Jos/keymap.c | 10 +++++----- keyboards/xd60/keymaps/cheese/keymap.c | 8 ++++---- keyboards/xd60/keymaps/default/keymap.c | 4 ++-- keyboards/xd60/keymaps/iso/keymap.c | 4 ++-- keyboards/xd60/keymaps/kmontag42/keymap.c | 4 ++-- keyboards/xd60/keymaps/krusli/keymap.c | 4 ++-- keyboards/xd60/keymaps/petesmom/keymap.c | 4 ++-- keyboards/xd60/keymaps/rooski/keymap.c | 6 +++--- .../xd60/keymaps/split_bksp_arrows/keymap.c | 4 ++-- keyboards/xd60/keymaps/stanleylai/keymap.c | 6 +++--- keyboards/xd60/keymaps/supercoffee/keymap.c | 4 ++-- keyboards/xd60/keymaps/yuuki/keymap.c | 4 ++-- keyboards/xd60/xd60.h | 2 +- 14 files changed, 48 insertions(+), 32 deletions(-) create mode 100644 keyboards/xd60/info.json diff --git a/keyboards/xd60/info.json b/keyboards/xd60/info.json new file mode 100644 index 000000000000..fa8bce4734ad --- /dev/null +++ b/keyboards/xd60/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "XD60", + "manufacturer": "", + "identifier": "", + "url": "", + "maintainer": "qmk", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_ALL": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"label":"Menu", "x":12, "y":4}, {"label":"Ctrl", "x":13, "y":4}, {"x":14, "y":4}] + } + } +} \ No newline at end of file diff --git a/keyboards/xd60/keymaps/Jos/keymap.c b/keyboards/xd60/keymaps/Jos/keymap.c index 1c530ed9ae3d..5c5f93622cce 100644 --- a/keyboards/xd60/keymaps/Jos/keymap.c +++ b/keyboards/xd60/keymaps/Jos/keymap.c @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 0: Base Layer - KEYMAP( + LAYOUT_ALL( KC_GRAVE, 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_BSPC, KC_DEL, \ 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_BSLS, \ KC_ESC, 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, \ @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, TD(0), KC_LALT, KC_SPC , KC_RALT, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RIGHT), // 1: Function 1 Layers - KEYMAP( + LAYOUT_ALL( RESET, 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_PAUS, KC_PSCR, \ KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_MSTP, KC_TRNS, KC_NO, KC_TRNS, \ @@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDOWN, KC_END), // 2: GUI/Function 2 Layer - KEYMAP( + LAYOUT_ALL( KC_ESC, 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_PAUS, KC_PSCR, \ KC_TRNS, KC_TRNS, AC_G_W, AC_G_E, KC_TRNS, AC_G_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, AC_G_S, AC_G_D, KC_TRNS, KC_TRNS, AC_G_H, KC_TRNS, KC_TRNS, AC_G_L, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, \ @@ -58,7 +58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, AC_G_SPC, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDOWN, KC_END), // 3: NumPad/Function 3 Toggle Layer - KEYMAP( + LAYOUT_ALL( KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_PSLS, KC_PMNS, KC_PPLS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_NO, KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_4, KC_5, KC_6, KC_PAST, KC_NO, KC_NO, KC_NO, \ KC_TRNS, KC_NO, KC_NO, RGB_HUD, RGB_SAD, RGB_VAD, KC_NO, KC_1, KC_2, KC_3, KC_PMNS, KC_PENT, KC_NO, KC_TRNS, \ @@ -66,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, KC_TRNS, KC_NO, KC_TRNS, KC_PENT, KC_PENT, KC_TRNS, KC_TRNS, KC_TRNS) , // TRaNSparent layer for reference -/* KEYMAP( +/* LAYOUT_ALL( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, \ diff --git a/keyboards/xd60/keymaps/cheese/keymap.c b/keyboards/xd60/keymaps/cheese/keymap.c index 25919a41f4d5..5032d0fcc239 100644 --- a/keyboards/xd60/keymaps/cheese/keymap.c +++ b/keyboards/xd60/keymaps/cheese/keymap.c @@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctrl|Gui |Alt | Space |FN|Left|Up|Down|Right| * `-----------------------------------------------------------' */ - [_BL] = KEYMAP( + [_BL] = LAYOUT_ALL( 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_BSPC, KC_BSPC, \ 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_BSLS, \ MO(_FL), 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, \ @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FL), KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT), // Function Layer - [_FL] = KEYMAP( + [_FL] = LAYOUT_ALL( KC_GRV, 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_DEL, KC_DEL, \ KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_CALC, KC_INS, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, \ KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, \ @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_PGDN, KC_END), // Left Shift Layer - [_LS] = KEYMAP( + [_LS] = LAYOUT_ALL( KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ @@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), // Right Shift Layer - [_RS] = KEYMAP( + [_RS] = LAYOUT_ALL( KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ diff --git a/keyboards/xd60/keymaps/default/keymap.c b/keyboards/xd60/keymaps/default/keymap.c index 784088d53097..95dea16b4884 100644 --- a/keyboards/xd60/keymaps/default/keymap.c +++ b/keyboards/xd60/keymaps/default/keymap.c @@ -4,7 +4,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 0: Base Layer - KEYMAP( + LAYOUT_ALL( 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_BSPC, KC_GRV, \ 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_BSLS, \ KC_CAPS, 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, \ @@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, F(0), KC_LEFT, KC_DOWN, KC_RIGHT), // 1: Function Layer - KEYMAP( + LAYOUT_ALL( RESET, 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_F13, KC_F14, \ KC_NO, KC_WH_U, KC_UP, KC_WH_D, KC_BSPC,KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \ KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \ diff --git a/keyboards/xd60/keymaps/iso/keymap.c b/keyboards/xd60/keymaps/iso/keymap.c index c036d99f7806..2d8824017c1f 100644 --- a/keyboards/xd60/keymaps/iso/keymap.c +++ b/keyboards/xd60/keymaps/iso/keymap.c @@ -7,7 +7,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 0: Base Layer - [_BL] = KEYMAP( + [_BL] = LAYOUT_ALL( 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_BSPC, KC_NO, \ 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_NO, \ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ @@ -15,7 +15,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, F(0), KC_LEFT, KC_DOWN, KC_RIGHT), // 1: Function Layer - [_FL] = KEYMAP( + [_FL] = LAYOUT_ALL( RESET, 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_DEL, KC_NO, \ KC_NO, KC_VOLD, KC_MUTE, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_TOGG, BL_DEC, BL_INC, KC_NO, \ KC_NO, KC_MPLY, KC_MSTP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ENT, \ diff --git a/keyboards/xd60/keymaps/kmontag42/keymap.c b/keyboards/xd60/keymaps/kmontag42/keymap.c index 4831a548df71..78f70299400e 100644 --- a/keyboards/xd60/keymaps/kmontag42/keymap.c +++ b/keyboards/xd60/keymaps/kmontag42/keymap.c @@ -5,7 +5,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 0: Base Layer - KEYMAP( + LAYOUT_ALL( KC_LEAD, 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_GRV, KC_BSPC, \ 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_BSLS, \ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_DOT, KC_ENT, \ @@ -13,7 +13,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, F(0), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT), // 1: Function Layer - KEYMAP( + LAYOUT_ALL( RESET, 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_F13, KC_F14, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ diff --git a/keyboards/xd60/keymaps/krusli/keymap.c b/keyboards/xd60/keymaps/krusli/keymap.c index 71f6e3c2e708..95a3e3fadf49 100644 --- a/keyboards/xd60/keymaps/krusli/keymap.c +++ b/keyboards/xd60/keymaps/krusli/keymap.c @@ -6,7 +6,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 0: Base Layer - KEYMAP( + LAYOUT_ALL( 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, KC_GRV, \ 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, \ 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, \ @@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | **** | **** | ******************** | **** | **** | |------+------+----------------------+------+------+ */ - KEYMAP( + LAYOUT_ALL( RESET, 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_F13, KC_F14, \ 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_BSPC, \ 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_NO, KC_ENT, \ diff --git a/keyboards/xd60/keymaps/petesmom/keymap.c b/keyboards/xd60/keymaps/petesmom/keymap.c index 71bb7fb811b5..f89db54b6836 100644 --- a/keyboards/xd60/keymaps/petesmom/keymap.c +++ b/keyboards/xd60/keymaps/petesmom/keymap.c @@ -9,7 +9,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 0: Base Layer - [BASE] = KEYMAP( + [BASE] = LAYOUT_ALL( KC_GESC, 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_BSPC, KC_BSPC, \ 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_BSLS, \ KC_CAPS, 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, \ @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { CTL_SLSH, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(FN), KC_LEFT, KC_DOWN, KC_RIGHT ), // 1: Function Layer - [FN] = KEYMAP( + [FN] = LAYOUT_ALL( KC_GRV, 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_DEL, KC_DEL, \ KC_TRNS, RGB_MOD, RGB_VAI, KC_TRNS, KC_TRNS, KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MRWD, KC_MFFD, KC_MSTP, \ KC_TRNS, RGB_TOG, RGB_VAD, KC_MUTE, KC_VOLU, KC_VOLD, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_NO, KC_ENT, \ diff --git a/keyboards/xd60/keymaps/rooski/keymap.c b/keyboards/xd60/keymaps/rooski/keymap.c index 4b7b03e6aaab..3083d42055f8 100644 --- a/keyboards/xd60/keymaps/rooski/keymap.c +++ b/keyboards/xd60/keymaps/rooski/keymap.c @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------' */ // 0: Base Layer - [_BL] = KEYMAP( + [_BL] = LAYOUT_ALL( KC_GESC, 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_BSPC, KC_BSPC, \ 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_BSLS, \ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, XXXXXXX, KC_ENT, \ @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RIGHT), // 1: Function Layer - [_FL] = KEYMAP( + [_FL] = LAYOUT_ALL( KC_GRV, 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_DEL, KC_DEL, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, \ XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ @@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG(_LK), _______, KC_HOME, _______, KC_END), // 2: Lighting Keys - [_LK] = KEYMAP( + [_LK] = LAYOUT_ALL( TO(_BL), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, RESET, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, \ RESET , KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ diff --git a/keyboards/xd60/keymaps/split_bksp_arrows/keymap.c b/keyboards/xd60/keymaps/split_bksp_arrows/keymap.c index 2cd677380232..100edaa78ecb 100644 --- a/keyboards/xd60/keymaps/split_bksp_arrows/keymap.c +++ b/keyboards/xd60/keymaps/split_bksp_arrows/keymap.c @@ -16,7 +16,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------' */ // 0: Base Layer - KEYMAP( + LAYOUT_ALL( KC_GESC, 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, KC_INS, \ 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, \ F(0), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_TRNS, KC_ENT, \ @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_CAPS, KC_RSFT, KC_LEFT, KC_DOWN, KC_RIGHT), // 1: Function Layer - KEYMAP( + LAYOUT_ALL( KC_GRV, 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_TRNS, KC_TRNS, \ KC_TRNS, BL_TOGG, BL_STEP, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_DEL, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ diff --git a/keyboards/xd60/keymaps/stanleylai/keymap.c b/keyboards/xd60/keymaps/stanleylai/keymap.c index feb2cd1b6dc7..675c4c5a5ef1 100644 --- a/keyboards/xd60/keymaps/stanleylai/keymap.c +++ b/keyboards/xd60/keymaps/stanleylai/keymap.c @@ -4,7 +4,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 0: Base Layer - KEYMAP( + LAYOUT_ALL( 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, KC_GRV, \ 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, \ F(0), 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, \ @@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT), // 1: Function Layer - KEYMAP( + LAYOUT_ALL( RESET, 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_F13, KC_F14, \ KC_CAPS, KC_MPRV, KC_UP, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, \ F(0), KC_LEFT, KC_DOWN, KC_RIGHT,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ENT, \ @@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_LGUI, KC_MPLY, KC_RGUI, KC_RALT, KC_HOME, KC_PGDOWN,KC_END), // 2: RGB Layer - KEYMAP( + LAYOUT_ALL( KC_NO, BL_TOGG, BL_STEP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ KC_NO, RGB_TOG, RGB_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ diff --git a/keyboards/xd60/keymaps/supercoffee/keymap.c b/keyboards/xd60/keymaps/supercoffee/keymap.c index d079fa8f90f4..22c4fbd8ec63 100644 --- a/keyboards/xd60/keymaps/supercoffee/keymap.c +++ b/keyboards/xd60/keymaps/supercoffee/keymap.c @@ -4,7 +4,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 0: Base Layer - KEYMAP( + LAYOUT_ALL( KC_GRV, 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_BSPC, KC_NO, \ 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_BSLS, \ KC_CAPS, 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, \ @@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, F(0), KC_RALT, KC_NO, KC_RGUI, KC_RCTL), // 1: Function Layer - KEYMAP( + LAYOUT_ALL( KC_ESC, 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_F13, KC_F14, \ KC_NO, KC_NO, KC_UP, KC_END, KC_NO, KC_NO, KC_CALC, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, \ KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_NO, KC_NO, KC_HOME, KC_PGDN, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_NO, KC_ENT, \ diff --git a/keyboards/xd60/keymaps/yuuki/keymap.c b/keyboards/xd60/keymaps/yuuki/keymap.c index 9adb5b116f4b..31309464b8fe 100644 --- a/keyboards/xd60/keymaps/yuuki/keymap.c +++ b/keyboards/xd60/keymaps/yuuki/keymap.c @@ -9,7 +9,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 0: Base Layer - [BASE] = KEYMAP( + [BASE] = LAYOUT_ALL( 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_BSPC, KC_BSPC, \ 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_BSLS, \ CTL_SLSH, 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, \ @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { MO(FN), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT ), // 1: Function Layer - [FN] = KEYMAP( + [FN] = LAYOUT_ALL( KC_GRV, 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_DEL, KC_DEL, \ KC_TRNS, RGB_MOD, RGB_VAI, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, \ KC_TRNS, RGB_TOG, RGB_VAD, KC_MUTE, KC_VOLU, KC_VOLD, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_NO, KC_ENT, \ diff --git a/keyboards/xd60/xd60.h b/keyboards/xd60/xd60.h index dd5f63c0ca7c..8dc0d7ee3292 100644 --- a/keyboards/xd60/xd60.h +++ b/keyboards/xd60/xd60.h @@ -20,7 +20,7 @@ inline void xd60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); } inline void xd60_bl_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); } /* XD60 Keymap Definition Macro */ -#define KEYMAP( \ +#define LAYOUT_ALL( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ From 61a2169ff9dea52136139ec156995efdc7929851 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sat, 31 Mar 2018 19:38:06 -0700 Subject: [PATCH 162/578] Update to Drashna Keymaps and Userspace (#2650) * Change global config.h settings * Make Shift LED brighter * Compatibility Tweaks * Update ASCII art and layer comments * Add comments about MOD layer * Change ASCII art for reset, since it was out of date * Use Overwatch theme for Workman layer * Fix RGB define comments * Make sure RGB set list matches * Stop all notes for custom Faux Click * Switch to OSM for everything, and remove RGB Sleep * Never use KEYMAP now * Only enable RGB Sleep on Non-Ergodox boards * Cleanup do to new rgblight_list.h file * Add redirect message for RGB codes * Update userspace documentation * Cleanup of Userspace Add unicode support, and cleaned up comments for ifdef statements * Remove unneeded slashes * Unicode handling * Force NKRO --- keyboards/orthodox/keymaps/drashna/keymap.c | 64 ++++++++++----------- keyboards/viterbi/keymaps/drashna/keymap.c | 60 +++++++++---------- layouts/community/ergodox/drashna/keymap.c | 31 +++++----- users/drashna/config.h | 12 ++-- users/drashna/drashna.c | 38 ++++++------ users/drashna/drashna.h | 52 ++++------------- users/drashna/readme.md | 39 +++++++++++-- users/drashna/rules.mk | 4 ++ 8 files changed, 152 insertions(+), 148 deletions(-) diff --git a/keyboards/orthodox/keymaps/drashna/keymap.c b/keyboards/orthodox/keymaps/drashna/keymap.c index a70da63bb68b..480540144b40 100644 --- a/keyboards/orthodox/keymaps/drashna/keymap.c +++ b/keyboards/orthodox/keymaps/drashna/keymap.c @@ -36,50 +36,50 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QWERTY] = KEYMAP_wrapper(\ - KC_ESC, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC, \ - KC_TAB, _________________QWERTY_L2_________________, KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, _________________QWERTY_R2_________________, KC_QUOT, \ - KC_MLSF, _________________QWERTY_L3_________________, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, _________________QWERTY_R3_________________, KC_LGUI \ +[_QWERTY] = LAYOUT_wrapper(\ + KC_ESC, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC, + KC_TAB, _________________QWERTY_L2_________________, KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, _________________QWERTY_R2_________________, KC_QUOT, + KC_MLSF, _________________QWERTY_L3_________________, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, _________________QWERTY_R3_________________, KC_LGUI ), -[_COLEMAK] = KEYMAP_wrapper(\ - KC_ESC, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, KC_BSPC, \ - KC_TAB, _________________COLEMAK_L2________________, KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, _________________COLEMAK_R2________________, KC_QUOT, \ - KC_MLSF, _________________COLEMAK_L3________________, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, _________________COLEMAK_R3________________, KC_LGUI \ +[_COLEMAK] = LAYOUT_wrapper(\ + KC_ESC, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, KC_BSPC, + KC_TAB, _________________COLEMAK_L2________________, KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, _________________COLEMAK_R2________________, KC_QUOT, + KC_MLSF, _________________COLEMAK_L3________________, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, _________________COLEMAK_R3________________, KC_LGUI ), -[_DVORAK] = KEYMAP_wrapper(\ - KC_ESC, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, KC_BSPC, \ - KC_TAB, _________________DVORAK_L2_________________, KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, _________________DVORAK_R2_________________, KC_MINS, \ - KC_MLSF, _________________DVORAK_L3_________________, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, _________________DVORAK_R3_________________, KC_LGUI \ +[_DVORAK] = LAYOUT_wrapper(\ + KC_ESC, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, KC_BSPC, + KC_TAB, _________________DVORAK_L2_________________, KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, _________________DVORAK_R2_________________, KC_MINS, + KC_MLSF, _________________DVORAK_L3_________________, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, _________________DVORAK_R3_________________, KC_LGUI ), -[_WORKMAN] = KEYMAP_wrapper(\ - KC_ESC, _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, KC_BSPC, \ - KC_TAB, _________________WORKMAN_L2________________, KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, _________________WORKMAN_R2________________, KC_MINS, \ - KC_MLSF, _________________WORKMAN_L3________________, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, _________________WORKMAN_R3________________, KC_LGUI \ +[_WORKMAN] = LAYOUT_wrapper(\ + KC_ESC, _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, KC_BSPC, + KC_TAB, _________________WORKMAN_L2________________, KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, _________________WORKMAN_R2________________, KC_MINS, + KC_MLSF, _________________WORKMAN_L3________________, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, _________________WORKMAN_R3________________, KC_LGUI ), -[_MODS] = KEYMAP(\ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +[_MODS] = LAYOUT(\ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -[_LOWER] = KEYMAP(\ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, _______, _______, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ - _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_PGUP, KC_COMM, KC_DOT, KC_PGDN, _______ \ +[_LOWER] = LAYOUT(\ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, _______, _______, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_PGUP, KC_COMM, KC_DOT, KC_PGDN, _______ ), -[_RAISE] = KEYMAP(\ - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, _______, KC_RCTL, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ - _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_HOME, KC_COMM, KC_DOT, KC_END, _______ \ +[_RAISE] = LAYOUT(\ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, _______, KC_RCTL, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_HOME, KC_COMM, KC_DOT, KC_END, _______ ), -[_ADJUST] = KEYMAP(\ - KC_MAKE,KC_RESET, EPRM, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - RGB_SMOD,RGB_HUI, KC_FXCL, AUD_ON, AUD_OFF, AG_NORM, _______, _______, _______, _______, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, TG(_MODS), \ - KC_RGB_T,RGB_HUD, MU_ON, MU_OFF, MU_TOG, MU_MOD, _______, _______, _______, _______, _______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY \ +[_ADJUST] = LAYOUT(\ + KC_MAKE,KC_RESET, EPRM, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_SMOD,RGB_HUI, KC_FXCL, AUD_ON, AUD_OFF, AG_NORM, _______, _______, _______, _______, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, TG(_MODS), + KC_RGB_T,RGB_HUD, MU_ON, MU_OFF, MU_TOG, MU_MOD, _______, _______, _______, _______, _______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY ) diff --git a/keyboards/viterbi/keymaps/drashna/keymap.c b/keyboards/viterbi/keymaps/drashna/keymap.c index cff6ebf69819..b5a7c18f88bc 100644 --- a/keyboards/viterbi/keymaps/drashna/keymap.c +++ b/keyboards/viterbi/keymaps/drashna/keymap.c @@ -27,51 +27,51 @@ extern keymap_config_t keymap_config; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_NUMLOCK] = LAYOUT_ortho_5x7( - LMACRO, DIABLO, GAMEPAD, KC_NLCK, KC_SLCK, KC_COLN, KC_PSLS, \ - MEDIA, KC_CALC, COVECUBE,KC_P7, KC_P8, KC_P9, KC_PAST, \ - KC_HOME, KC_DEL, KC_PGUP, KC_P4, KC_P5, KC_P6, KC_PMNS, \ - KC_END, KC_UP, KC_PGDN, KC_P1, KC_P2, KC_P3, KC_PPLS, \ - KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_COLN, KC_PENT \ + LMACRO, DIABLO, GAMEPAD, KC_NLCK, KC_SLCK, KC_COLN, KC_PSLS, + MEDIA, KC_CALC, COVECUBE,KC_P7, KC_P8, KC_P9, KC_PAST, + KC_HOME, KC_DEL, KC_PGUP, KC_P4, KC_P5, KC_P6, KC_PMNS, + KC_END, KC_UP, KC_PGDN, KC_P1, KC_P2, KC_P3, KC_PPLS, + KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_COLN, KC_PENT ), [_DIABLO] = LAYOUT_ortho_5x7( - KC_ESC, DIABLO, KC_V, KC_D, XXXXXXX, XXXXXXX, KC_L, \ - KC_TAB, KC_S, KC_F, KC_I, KC_M, KC_T, KC_J, \ - KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, KC_F, \ - KC_LCTL, KC_D3_3, KC_D3_3, KC_D3_3, KC_D3_3, KC_Z, KC_DIABLO_CLEAR, \ - KC_LALT, KC_F4, KC_F5, KC_F8, KC_F9, KC_F10, SFT_T(KC_SPACE) \ + KC_ESC, DIABLO, KC_V, KC_D, XXXXXXX, XXXXXXX, KC_L, + KC_TAB, KC_S, KC_F, KC_I, KC_M, KC_T, KC_J, + KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, KC_F, + KC_LCTL, KC_D3_3, KC_D3_3, KC_D3_3, KC_D3_3, KC_Z, KC_DIABLO_CLEAR, + KC_LALT, KC_F4, KC_F5, KC_F8, KC_F9, KC_F10, SFT_T(KC_SPACE) ), [_GAMEPAD] = LAYOUT_ortho_5x7( // Game pad layout designed primarily for Overwatch - LMACRO, KC_ESC, GAMEPAD, KC_1, KC_2, KC_3, KC_4, \ - MEDIA, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, \ - KC_Z, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, \ - KC_Y, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, \ - KC_F1, KC_U, KC_I, KC_Y, KC_V, KC_SPC, KC_V \ + LMACRO, KC_ESC, GAMEPAD, KC_1, KC_2, KC_3, KC_4, + MEDIA, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, + KC_Z, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_Y, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, + KC_F1, KC_U, KC_I, KC_Y, KC_V, KC_SPC, KC_V ), [_MACROS] = LAYOUT_ortho_5x7( - LMACRO, KC_OVERWATCH,GAMEPAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_C9, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_SYMM, KC_TORB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_GLHF, KC_GOODGAME, KC_GGEZ, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_SALT, KC_MORESALT, KC_SALTHARD, KC_JUSTGAME, KC_AIM, XXXXXXX, KC_PENT \ + LMACRO, KC_OVERWATCH,GAMEPAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_C9, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_SYMM, KC_TORB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_GLHF, KC_GOODGAME, KC_GGEZ, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_SALT, KC_MORESALT, KC_SALTHARD, KC_JUSTGAME, KC_AIM, XXXXXXX, KC_PENT ), [_COVECUBE] = LAYOUT_ortho_5x7( - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - XXXXXXX, XXXXXXX, COVECUBE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, COVECUBE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ), [_MEDIA] = LAYOUT_ortho_5x7( - KC_MAKE, KC_RESET,MU_TOG, AUD_ON, AUD_OFF, KC_FXCL, RGB_SAD, \ - MEDIA, EPRM, KC_RGB_T,RGB_M_P, RGB_M_B, RGB_M_R, RGB_SAI, \ - RGB_TOG, RGB_MOD, RGB_RMOD,RGB_M_SW,RGB_M_SN,RGB_M_K, RGB_HUD, \ - KC_MPLY, KC_MPRV, KC_MNXT, RGB_M_X, RGB_M_G, RGB_M_P, RGB_HUI, \ - KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI \ + KC_MAKE, KC_RESET,MU_TOG, AUD_ON, AUD_OFF, KC_FXCL, RGB_SAD, + MEDIA, EPRM, KC_RGB_T,RGB_M_P, RGB_M_B, RGB_M_R, RGB_SAI, + RGB_TOG, RGB_MOD, RGB_RMOD,RGB_M_SW,RGB_M_SN,RGB_M_K, RGB_HUD, + KC_MPLY, KC_MPRV, KC_MNXT, RGB_M_X, RGB_M_G, RGB_M_P, RGB_HUI, + KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI ) diff --git a/layouts/community/ergodox/drashna/keymap.c b/layouts/community/ergodox/drashna/keymap.c index 6801f4f49c15..f29c57f2e07a 100644 --- a/layouts/community/ergodox/drashna/keymap.c +++ b/layouts/community/ergodox/drashna/keymap.c @@ -30,7 +30,7 @@ bool skip_leds = false; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer +/* Keymap 0: QWERTY Layer * * * ,--------------------------------------------------. ,--------------------------------------------------. @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| TG(2)| | TG(2)|------+------+------+------+------+--------| * | Shift | Z | X | C | V | B | | | | N | M | , < | . > | ? / | Shift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | `/SYM| ' " | LGUI | [ { | ] } | | LEFT | DOWN | UP |RIGHT | SYMB | + * | `/SYM| MEH | LGUI | [ { | ] } | | LEFT | DOWN | UP |RIGHT | SYMB | * `----------------------------------' `----------------------------------' * ,--------------. ,--------------. * |Alt/Ap| Win | | Alt |Ctl/Esc| @@ -65,7 +65,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), -/* Keymap 0: Basic layer +/* Keymap 0: COLEMAK layer * * ,--------------------------------------------------. ,--------------------------------------------------. * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | @@ -76,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| OVER | | Meh |------+------+------+------+------+--------| * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * | `/SYM| MEH | LGUI | [ { | ] } | | LEFT | DOWN | UP |RIGHT | SYMB | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | App | LGui | | Alt |Ctrl/Esc| @@ -88,7 +88,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ // If it accepts an argument (i.e, is a function), it doesn't need KC_. // Otherwise, it needs KC_* -[_COLEMAK] = LAYOUT_ergodox_pretty_wrapper( + [_COLEMAK] = LAYOUT_ergodox_pretty_wrapper( // left hand // right hand KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TAB, _________________COLEMAK_L1________________, TG(_DIABLO), TG(_DIABLO), _________________COLEMAK_R1________________, KC_BSLS, @@ -99,7 +99,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_HOME, KC_PGUP, KC_SPACE,KC_BSPC, KC_END, KC_PGDN, KC_DEL, KC_ENTER ), -/* Keymap 0: Basic layer +/* Keymap 0: DVORAK Layout * * ,--------------------------------------------------. ,--------------------------------------------------. * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | \ | @@ -110,7 +110,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| * | LShift |:/Ctrl| Q | J | K | X | | | | B | M | W | V |Z/Ctrl| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * | `/SYM| MEH | LGUI | [ { | ] } | | LEFT | DOWN | UP |RIGHT | SYMB | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | App | LGui | | Alt |Ctrl/Esc| @@ -122,7 +122,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ // If it accepts an argument (i.e, is a function), it doesn't need KC_. // Otherwise, it needs KC_* -[_DVORAK] = LAYOUT_ergodox_pretty_wrapper( + [_DVORAK] = LAYOUT_ergodox_pretty_wrapper( // left hand // right hand KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, KC_TAB, _________________DVORAK_L1_________________, TG(_DIABLO), TG(_DIABLO), _________________DVORAK_R1_________________, KC_SLSH, @@ -133,7 +133,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_HOME, KC_PGUP, KC_SPACE,KC_BSPC, KC_END, KC_PGDN, KC_DEL, KC_ENTER ), -/* Keymap 0: Basic layer +/* Keymap 0: WORKMAN layer * * ,--------------------------------------------------. ,--------------------------------------------------. * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | @@ -144,7 +144,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| OVER | | Meh |------+------+------+------+------+--------| * | LShift |Z/Ctrl| X | M | C | V | | | | K | L | , | . |//Ctrl| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * | `/SYM| MEH | LGUI | [ { | ] } | | LEFT | DOWN | UP |RIGHT | SYMB | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | App | LGui | | Alt |Ctrl/Esc| @@ -156,7 +156,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ // If it accepts an argument (i.e, is a function), it doesn't need KC_. // Otherwise, it needs KC_* -[_WORKMAN] = LAYOUT_ergodox_pretty_wrapper( + [_WORKMAN] = LAYOUT_ergodox_pretty_wrapper( // left hand KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TAB, _________________WORKMAN_L1________________, TG(_DIABLO), TG(_DIABLO), _________________WORKMAN_R1________________, KC_BSLS, @@ -168,6 +168,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_SPACE,KC_BSPC, KC_END, KC_PGDN, KC_DEL, KC_ENTER ), +// Reverts OSM(Shift) to normal Shifts. However, may not need since we fixed the issue with RDP (LOCAL RESOURCES) [_MODS] = LAYOUT_ergodox_pretty( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -184,11 +185,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,--------------------------------------------------. ,--------------------------------------------------. * | ESC | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| -* | VERSION| ! | @ | { | } | | | | | | + | 7 | 8 | 9 | * | F12 | +* | RESET | ! | @ | { | } | | | | | | + | 7 | 8 | 9 | * | F12 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | MAKE | # | $ | ( | ) | ` |------| |------| - | 4 | 5 | 6 | / | PrtSc | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| -* | RESET | % | ^ | [ | ] | ~ | | | | NUM | 1 | 2 | 3 | = | PAUSE | +* | VRSN | % | ^ | [ | ] | ~ | | | | NUM | 1 | 2 | 3 | = | PAUSE | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * | LT0 | & | * | : | ; | | | 0 | NUM. | ENT | ENT | * `----------------------------------' `----------------------------------' @@ -202,7 +203,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_SYMB] = LAYOUT_ergodox_pretty( EPRM, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_QWERTY, KC_QWERTY, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_RESET, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_WORKMAN, KC_DVORAK, KC_PPLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PAST, KC_F12, + KC_RST, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_WORKMAN, KC_DVORAK, KC_PPLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PAST, KC_F12, KC_MAKE, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRAVE, KC_PMNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_PSLS, KC_PSCREEN, VRSN, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_COLEMAK, KC_COLEMAK, KC_NLCK, KC_KP_1, KC_KP_2, KC_KP_3, KC_PEQL, KC_PAUSE, KC_TRNS, KC_AMPR, KC_ASTR, KC_COLN, KC_SCLN, KC_KP_0, KC_KP_0, KC_PDOT, KC_PENT, KC_TRNS, @@ -348,7 +349,7 @@ void matrix_scan_keymap(void) { // runs frequently to update info // Also, no "else", since we want to know each, independently. if (modifiders & MODS_SHIFT_MASK || led_usb_state & (1<. #include "drashna.h" #include "version.h" -#if (__has_include("secrets.h")) +#if (__has_include("secrets.h") && !defined(NO_SECRETS)) #include "secrets.h" #else // `PROGMEM const char secret[][x]` may work better, but it takes up more space in the firmware @@ -36,10 +36,10 @@ PROGMEM const char secret[][64] = { #ifdef FAUXCLICKY_ENABLE float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_A6, 2); // (_D4, 0.25); float fauxclicky_released_note[2] = MUSICAL_NOTE(_A6, 2); // (_C4, 0.125); -#else +#else // FAUXCLICKY_ENABLE float fauxclicky_pressed[][2] = SONG(S__NOTE(_A6)); // change to your tastes float fauxclicky_released[][2] = SONG(S__NOTE(_A6)); // change to your tastes -#endif +#endif // FAUXCLICKY_ENABLE bool faux_click_enabled = false; bool is_overwatch = false; @@ -127,7 +127,7 @@ void run_diablo_macro_check(void) { } } -#endif +#endif // TAP_DANCE_ENABLE // Add reconfigurable functions here, for keymap customization @@ -178,10 +178,15 @@ void matrix_init_user(void) { } else { - rgblight_set_red; + rgblight_setrgb_red(); rgblight_mode(5); } -#endif +#endif // RGBLIGHT_ENABLE + +#if ( defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE) ) + set_unicode_input_mode(UC_WINC); +#endif //UNICODE_ENABLE + matrix_init_keymap(); } // No global matrix scan code, so just run keymap's matrix @@ -189,7 +194,7 @@ void matrix_init_user(void) { void matrix_scan_user(void) { #ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code. run_diablo_macro_check(); -#endif +#endif // TAP_DANCE_ENABLE matrix_scan_keymap(); } @@ -209,29 +214,24 @@ bool send_game_macro(const char *str, keyrecord_t *record, bool override) { return false; } -// Sent the default layer -void persistent_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); -} - // Defines actions tor my global custom keycodes. Defined in drashna.h file // Then runs the _keymap's record handier if not processed here bool process_record_user(uint16_t keycode, keyrecord_t *record) { -// If console is enabled, it will print the matrix position and status of each key pressed + // If console is enabled, it will print the matrix position and status of each key pressed #ifdef CONSOLE_ENABLE xprintf("KL: row: %u, column: %u, pressed: %u\n", record->event.key.col, record->event.key.row, record->event.pressed); #endif //CONSOLE_ENABLE -// Run custom faux click code, but only if faux clicky is enabled + // Run custom faux click code, but only if faux clicky is enabled #ifdef AUDIO_ENABLE if ( (faux_click_enabled && keycode != KC_FXCL) || (!faux_click_enabled && keycode == KC_FXCL) ) { if (record->event.pressed) { + stop_all_notes(); PLAY_SONG(fauxclicky_pressed); } else { - stop_note(NOTE_A6); + stop_all_notes(); PLAY_SONG(fauxclicky_released); } } @@ -307,7 +307,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { ":teensy" #elif defined(BOOTLOADER_CATERINA) ":avrdude" -#endif +#endif // bootloader options SS_TAP(X_ENTER)); } return false; @@ -320,7 +320,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { rgblight_enable(); rgblight_mode(1); rgblight_setrgb_red(); -#endif +#endif // RGBLIGHT_ENABLE reset_keyboard(); } return false; @@ -498,7 +498,7 @@ uint32_t layer_state_set_user(uint32_t state) { break; } } -#endif +#endif // RGBLIGHT_ENABLE return layer_state_set_keymap (state); } diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h index e723c846f8a2..1086fa02ed0e 100644 --- a/users/drashna/drashna.h +++ b/users/drashna/drashna.h @@ -46,47 +46,8 @@ along with this program. If not, see . #define MODS_ALT_MASK (MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)) #define MODS_GUI_MASK (MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)) -#ifndef RGBLIGHT_ANIMATIONS // add "EXTRA_FLADS=-DDRASHNA_SETRGB" to enable this ... but don't -#define rgblight_set_white rgblight_setrgb (0xFF, 0xFF, 0xFF); -#define rgblight_set_red rgblight_setrgb (0xFF, 0x00, 0x00); -#define rgblight_set_coral rgblight_setrgb (0xFF, 0x7C, 0x4D); -#define rgblight_set_orange rgblight_setrgb (0xFF, 0x80, 0x00); -#define rgblight_set_goldenrod rgblight_setrgb (0xD9, 0xA5, 0x21); -#define rgblight_set_gold rgblight_setrgb (0xFF, 0xD9, 0x00); -#define rgblight_set_yellow rgblight_setrgb (0xFF, 0xFF, 0x00); -#define rgblight_set_chartreuse rgblight_setrgb (0x80, 0xFF, 0x00); -#define rgblight_set_green rgblight_setrgb (0x00, 0xFF, 0x00); -#define rgblight_set_springgreen rgblight_setrgb (0x00, 0xFF, 0x80); -#define rgblight_set_turquoise rgblight_setrgb (0x47, 0x6E, 0x6A); -#define rgblight_set_teal rgblight_setrgb (0x00, 0x80, 0x80); -#define rgblight_set_cyan rgblight_setrgb (0x00, 0xFF, 0xFF); -#define rgblight_set_azure rgblight_setrgb (0x99, 0xf5, 0xFF); -#define rgblight_set_blue rgblight_setrgb (0x00, 0x00, 0xFF); -#define rgblight_set_purple rgblight_setrgb (0x7A, 0x00, 0xFF); -#define rgblight_set_magenta rgblight_setrgb (0xFF, 0x00, 0xFF); -#define rgblight_set_pink rgblight_setrgb (0xFF, 0x80, 0xBF); -#else -#define rgblight_set_white rgblight_sethsv (0, 0x00, 255); -#define rgblight_set_red rgblight_sethsv (0, 255, 255); -#define rgblight_set_coral rgblight_sethsv (16, 176, 255); -#define rgblight_set_orange rgblight_sethsv (39, 255, 255); -#define rgblight_set_goldenrod rgblight_sethsv (43, 218, 218); -#define rgblight_set_gold rgblight_sethsv (51, 255, 255); -#define rgblight_set_yellow rgblight_sethsv (60, 255, 255); -#define rgblight_set_chartreuse rgblight_sethsv (90, 255, 255); -#define rgblight_set_green rgblight_sethsv (120, 255, 255); -#define rgblight_set_springgreen rgblight_sethsv (150, 255, 255); -#define rgblight_set_turquoise rgblight_sethsv (174, 90, 112); -#define rgblight_set_teal rgblight_sethsv (180, 255, 128); -#define rgblight_set_cyan rgblight_sethsv (180, 255, 255); -#define rgblight_set_azure rgblight_sethsv (186, 102, 255); -#define rgblight_set_blue rgblight_sethsv (240, 255, 255); -#define rgblight_set_purple rgblight_sethsv (270, 255, 255); -#define rgblight_set_magenta rgblight_sethsv (300, 255, 255); -#define rgblight_set_pink rgblight_sethsv (330, 128, 255); - -//#define rgblight_set_ rgblight_sethsv (0, 255, 255); -#endif // DRASHNA_SETRGB +// RGB color codes are no longer located here anymore. Instead, you will want to +// head to https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight_list.h extern bool is_overwatch; extern bool rgb_layer_change; @@ -132,6 +93,12 @@ enum userspace_custom_keycodes { #define KC_SEC4 KC_SECRET_4 #define KC_SEC5 KC_SECRET_5 +#define QWERTY KC_QWERTY +#define DVORAK KC_DVORAK +#define COLEMAK KC_COLEMAK +#define WORKMAN KC_WORKMAN +#define KC_RST KC_RESET + #ifdef TAP_DANCE_ENABLE enum { TD_D3_1 = 0, @@ -185,6 +152,7 @@ enum { #define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__) #define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__) #define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__) +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) // Blocks for each of the four major keyboard layouts @@ -255,7 +223,7 @@ enum { // this allows us to quickly modify the bottom row for all of the layouts // so we don't have to alter it 4 times and hope that we haven't missed // anything -#define ___________ERGODOX_BOTTOM_LEFT_____________ KC_MEH, KC_LGUI, KC_LBRC, KC_RBRC +#define ___________ERGODOX_BOTTOM_LEFT_____________ OSM(MOD_MEH), OSM(MOD_LGUI), KC_LBRC, KC_RBRC #define ___________ERGODOX_BOTTOM_RIGHT____________ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT diff --git a/users/drashna/readme.md b/users/drashna/readme.md index 2229a3fe09f0..e3e5d399d8e8 100644 --- a/users/drashna/readme.md +++ b/users/drashna/readme.md @@ -12,7 +12,7 @@ The reason for using seperate files here is that the `drashna.h` file doesn't ge However, the `rules.mk` file is included when building the firmware. So we can hijack that process to "manually" add a `config.h`. To do so, you would need to add the following to the `rules.mk` in your userspace: -``` +```c ifneq ("$(wildcard users/$(KEYMAP)/config.h)","") CONFIG_H += users/$(KEYMAP)/config.h endif @@ -22,7 +22,7 @@ You can replace `$(KEYMAP)` with your name, but it's not necessary. This checks As for the `config.h` file, you want to make sure that it has an "ifdef" in it to make sure it's only used once. So you want something like this: -``` +```c #ifndef USERSPACE_CONFIG_H #define USERSPACE_CONFIG_H @@ -122,7 +122,7 @@ If you would *also* like to take advantage of this feature, you'll first want to Then you can create this file and add your macro strings to it: ###### secrets.h -``` +```c PROGMEM const char secret[][64] = { "secret1", "secret2", @@ -132,11 +132,29 @@ PROGMEM const char secret[][64] = { }; ``` -Replacing the strings with the codes that you need. +Replacing the strings with the codes that you need. +In the `.c` file, you will want to add this to the top: -These are called in the `process_record_user` function, using this block: +```c + +#if (__has_include("secrets.h") && !defined(NO_SECRETS)) +#include "secrets.h" +#else +// `PROGMEM const char secret[][x]` may work better, but it takes up more space in the firmware +// And I'm not familiar enough to know which is better or why... +PROGMEM const char secret[][64] = { + "test1", + "test2", + "test3", + "test4", + "test5" +}; +#endif ``` + +And then, in the `process_record_user` function, you'll want to add this block: +```c case KC_SECRET_1 ... KC_SECRET_5: if (!record->event.pressed) { send_string_P(secret[keycode - KC_SECRET_1]); @@ -145,4 +163,13 @@ These are called in the `process_record_user` function, using this block: break; ``` -And this requires `KC_SECRET_1` through `KC_SECRET_5` to be defined, as well. +And this requires `KC_SECRET_1` through `KC_SECRET_5` to be defined in your `.h` file fo the new macros, as well. + +Additionally, if you want to make sure that you can disable the function without messing with the file, you need to add this to your `/users//rules.mk`, so that it catches the flag: +```c +ifeq ($(strip $(NO_SECRETS)), yes) + OPT_DEFS += -DNO_SECRETS +endif +``` + +Then, if you run `make keyboard:name NO_SECRETS=yes`, it will default to the test strings in your `.c` file, rather than reading from your file. diff --git a/users/drashna/rules.mk b/users/drashna/rules.mk index 6d9f0664ea0a..53e5da43db97 100644 --- a/users/drashna/rules.mk +++ b/users/drashna/rules.mk @@ -5,3 +5,7 @@ EXTRAFLAGS += -flto ifneq ("$(wildcard users/$(KEYMAP)/config.h)","") CONFIG_H += users/$(KEYMAP)/config.h endif + +ifeq ($(strip $(NO_SECRETS)), yes) + OPT_DEFS += -DNO_SECRETS +endif From deb5a4b6a9b99c4aa294608cbf6be821b1d46917 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sat, 31 Mar 2018 19:39:00 -0700 Subject: [PATCH 163/578] Convert all Preonic keymaps to layout format (#2644) * Convert all Preonic keymaps to layout format * Make sure preonic layouts are using QMK_KEYBOARD_H --- keyboards/preonic/keymaps/0xdec/keymap.c | 49 ++++---- .../preonic/keymaps/CMD-Preonic/keymap.c | 119 +++++++++--------- .../preonic/keymaps/blake-newman/keymap.c | 101 ++++++++------- keyboards/preonic/keymaps/bucktooth/keymap.c | 34 +++-- .../preonic/keymaps/choromanski/keymap.c | 89 +++++++------ keyboards/preonic/keymaps/default/keymap.c | 87 +++++++------ keyboards/preonic/keymaps/dlaroe/keymap.c | 77 ++++++------ .../preonic/keymaps/dudeofawesome/keymap.c | 115 +++++++++-------- keyboards/preonic/keymaps/ekis_isa/keymap.c | 87 +++++++------ keyboards/preonic/keymaps/jacwib/keymap.c | 105 ++++++++-------- keyboards/preonic/keymaps/kinesis/keymap.c | 35 +++--- keyboards/preonic/keymaps/nikchi/keymap.c | 63 +++++----- keyboards/preonic/keymaps/smt/keymap.c | 91 +++++++------- .../preonic/keymaps/that_canadian/keymap.c | 78 ++++++------ keyboards/preonic/keymaps/xyverz/keymap.c | 91 +++++++------- keyboards/preonic/keymaps/zach/keymap.c | 86 ++++++------- 16 files changed, 627 insertions(+), 680 deletions(-) diff --git a/keyboards/preonic/keymaps/0xdec/keymap.c b/keyboards/preonic/keymaps/0xdec/keymap.c index a273f4ed5226..5f82087b0173 100644 --- a/keyboards/preonic/keymaps/0xdec/keymap.c +++ b/keyboards/preonic/keymaps/0xdec/keymap.c @@ -1,9 +1,4 @@ -#include "preonic.h" -#include "action_layer.h" -#include "eeconfig.h" -#ifdef AUDIO_ENABLE - #include "audio.h" -#endif +#include QMK_KEYBOARD_H // Layer names #define _COLEMAK 0 @@ -35,13 +30,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | ESC | ALT | GUI | SHIFT| CTRL | BKSP | SPACE| RAISE| SHIFT| | DEL | TAB | * `-----------------------------------------------------------------------------------' */ -[_COLEMAK] = { - {KC_GRV ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_BSLS}, - {KC_EQL ,KC_Q ,KC_W ,KC_F ,KC_P ,KC_G ,KC_J ,KC_L ,KC_U ,KC_Y ,KC_LBRC,KC_RBRC}, - {KC_MINS,KC_A ,KC_R ,KC_S ,KC_T ,KC_D ,KC_H ,KC_N ,KC_E ,KC_I ,KC_O ,KC_QUOT}, - {KC_SCLN,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_K ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_ENT }, - {KC_ESC ,KC_LALT,KC_LGUI,KC_LSFT,KC_LCTL,KC_BSPC,KC_SPC ,RAISE ,KC_RSFT,_______,KC_DEL ,KC_TAB } -}, +[_COLEMAK] = LAYOUT_preonic_grid( \ + KC_GRV ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_BSLS, \ + KC_EQL ,KC_Q ,KC_W ,KC_F ,KC_P ,KC_G ,KC_J ,KC_L ,KC_U ,KC_Y ,KC_LBRC,KC_RBRC, \ + KC_MINS,KC_A ,KC_R ,KC_S ,KC_T ,KC_D ,KC_H ,KC_N ,KC_E ,KC_I ,KC_O ,KC_QUOT, \ + KC_SCLN,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_K ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_ENT, \ + KC_ESC ,KC_LALT,KC_LGUI,KC_LSFT,KC_LCTL,KC_BSPC,KC_SPC ,RAISE ,KC_RSFT,_______,KC_DEL ,KC_TAB \ +), /* Game * ,-----------------------------------------------------------------------------------. @@ -56,13 +51,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | ALT | GUI | SPACE| CTRL | BKSP | SPACE| RAISE| , | 0 | . | TAB | * `-----------------------------------------------------------------------------------' */ -[_GAME] = { - {KC_ESC ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 ,KC_7 ,KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS}, - {KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_U ,KC_P1 ,KC_P2 ,KC_P3 ,KC_PPLS}, - {KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_J ,KC_P4 ,KC_P5 ,KC_P6 ,KC_PEQL}, - {KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_N ,KC_M ,KC_P7 ,KC_P8 ,KC_P9 ,KC_PENT}, - {XXXXXXX,KC_LALT,KC_LGUI,KC_SPC ,KC_LCTL,KC_BSPC,KC_SPC ,RAISE ,KC_PCMM,KC_P0 ,KC_PDOT,KC_TAB } -}, +[_GAME] = LAYOUT_preonic_grid( \ + KC_ESC ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 ,KC_7 ,KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \ + KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_U ,KC_P1 ,KC_P2 ,KC_P3 ,KC_PPLS, \ + KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_J ,KC_P4 ,KC_P5 ,KC_P6 ,KC_PEQL, \ + KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_N ,KC_M ,KC_P7 ,KC_P8 ,KC_P9 ,KC_PENT, \ + XXXXXXX,KC_LALT,KC_LGUI,KC_SPC ,KC_LCTL,KC_BSPC,KC_SPC ,RAISE ,KC_PCMM,KC_P0 ,KC_PDOT,KC_TAB \ +), /* Raise * ,-----------------------------------------------------------------------------------. @@ -77,13 +72,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | RESET| | | | | DEL | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = { - {KC_SLEP,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_PSCR}, - {XXXXXXX,KC_F11 ,KC_F12 ,XXXXXXX,AU_TOG ,KC_VOLU,BL_INC ,COLEMAK,GAME ,MU_TOG ,KC_MENU,KC_SLCK}, - {KC_CAPS,KC_MPRV,KC_MSTP,KC_MPLY,KC_MNXT,KC_VOLD,BL_DEC ,KC_LEFT,KC_DOWN,KC_UP ,KC_RGHT,KC_PAUS}, - {XXXXXXX,KC_WBAK,KC_WSTP,KC_WREF,KC_WFWD,KC_MUTE,BL_TOGG,KC_HOME,KC_PGDN,KC_PGUP,KC_END ,KC_INS }, - {RESET ,_______,_______,_______,_______,KC_DEL ,_______,_______,_______,_______,_______,_______} -} +[_RAISE] = LAYOUT_preonic_grid( \ + KC_SLEP,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_PSCR, \ + XXXXXXX,KC_F11 ,KC_F12 ,XXXXXXX,AU_TOG ,KC_VOLU,BL_INC ,COLEMAK,GAME ,MU_TOG ,KC_MENU,KC_SLCK, \ + KC_CAPS,KC_MPRV,KC_MSTP,KC_MPLY,KC_MNXT,KC_VOLD,BL_DEC ,KC_LEFT,KC_DOWN,KC_UP ,KC_RGHT,KC_PAUS, \ + XXXXXXX,KC_WBAK,KC_WSTP,KC_WREF,KC_WFWD,KC_MUTE,BL_TOGG,KC_HOME,KC_PGDN,KC_PGUP,KC_END ,KC_INS, \ + RESET ,_______,_______,_______,_______,KC_DEL ,_______,_______,_______,_______,_______,_______ \ +) }; diff --git a/keyboards/preonic/keymaps/CMD-Preonic/keymap.c b/keyboards/preonic/keymaps/CMD-Preonic/keymap.c index 1cbb99caab6a..6d30a9ab48ea 100644 --- a/keyboards/preonic/keymaps/CMD-Preonic/keymap.c +++ b/keyboards/preonic/keymaps/CMD-Preonic/keymap.c @@ -1,9 +1,4 @@ -#include "preonic.h" -#include "action_layer.h" -#include "eeconfig.h" -#ifdef AUDIO_ENABLE - #include "audio.h" -#endif +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -49,13 +44,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space | Raise| - | = | [ | ] | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = { - {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH}, - {LT(_RAISE, KC_ENT), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT(_LOWER, KC_SPC), KC_SPC, RAISE, KC_MINUS, KC_EQUAL, KC_LBRC, KC_RBRC} -}, +[_QWERTY] = LAYOUT_preonic_mit( \ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH, \ + LT(_RAISE, KC_ENT), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \ + M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT(_LOWER, KC_SPC), RAISE, KC_MINUS, KC_EQUAL, KC_LBRC, KC_RBRC \ +), /* Colemak * ,-----------------------------------------------------------------------------------. @@ -70,13 +65,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space | Raise| - | = | [ | ] | * `-----------------------------------------------------------------------------------' */ -[_COLEMAK] = { - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, _______}, - {_______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {_______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -}, +[_COLEMAK] = LAYOUT_preonic_mit( \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, _______, \ + _______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ + _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +), /* Dvorak * ,-----------------------------------------------------------------------------------. @@ -91,13 +86,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space | Raise| - | = | [ | ] | * `-----------------------------------------------------------------------------------' */ -[_DVORAK] = { - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, _______}, - {_______, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, _______}, - {_______, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -}, +[_DVORAK] = LAYOUT_preonic_mit( \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, _______, \ + _______, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, _______, \ + _______, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +), /* GAME * ,-----------------------------------------------------------------------------------. @@ -112,13 +107,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | XXX | Lower | Space | Raise| - | = | [ | ] | * `-----------------------------------------------------------------------------------' */ -[_GAME] = { - {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH}, - {KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {_______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______} -}, +[_GAME] = LAYOUT_preonic_mit( \ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH,\ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \ + _______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______ \ +), /* NUMPAD * ,-----------------------------------------------------------------------------------. @@ -133,13 +128,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | 0 | 0 | . | Enter| Lower| Space | Raise| - | = | [ | ] | * `-----------------------------------------------------------------------------------' */ -[_NUMPAD] = { - {KC_ESC, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______, _______, _______, _______, _______}, - {KC_P7, KC_P8, KC_P9, KC_PPLS, _______, _______, _______, _______, _______, _______, _______, _______}, - {KC_P4, KC_P5, KC_P6, KC_PPLS, _______, _______, _______, _______, _______, _______, _______, _______}, - {KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______, _______, _______, _______}, - {KC_P0, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, _______, _______}, -}, +[_NUMPAD] = LAYOUT_preonic_mit( \ + KC_ESC, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______, _______, _______, _______, _______, \ + KC_P7, KC_P8, KC_P9, KC_PPLS, _______, _______, _______, _______, _______, _______, _______, _______, \ + KC_P4, KC_P5, KC_P6, KC_PPLS, _______, _______, _______, _______, _______, _______, _______, _______, \ + KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______, _______, _______, _______, \ + KC_P0, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, _______ \ +), /* Lower * ,-----------------------------------------------------------------------------------. * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | Del | @@ -153,13 +148,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Vol- | | | | | | | + | Enter| 0 | . | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = { - {KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL}, - {KC_MUTE, KC_BSPC, KC_UP, KC_DEL, KC_WWW_FORWARD, KC_BTN1, KC_MS_U, KC_BTN2, KC_PSLS, KC_P7, KC_P8, KC_P9}, - {_______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_WWW_REFRESH, KC_MS_L, KC_MS_D, KC_MS_R, KC_PAST, KC_P4, KC_P5, KC_P6}, - {KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, KC_WWW_BACK, KC_WH_D, KC_BTN3, KC_WH_U, KC_PMNS, KC_P1, KC_P2, KC_P3}, - {KC_VOLD, _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PENT, KC_P0, KC_PDOT} -}, +[_LOWER] = LAYOUT_preonic_mit( \ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, \ + KC_MUTE, KC_BSPC, KC_UP, KC_DEL, KC_WWW_FORWARD, KC_BTN1, KC_MS_U, KC_BTN2, KC_PSLS, KC_P7, KC_P8, KC_P9, \ + _______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_WWW_REFRESH, KC_MS_L, KC_MS_D, KC_MS_R, KC_PAST, KC_P4, KC_P5, KC_P6, \ + KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, KC_WWW_BACK, KC_WH_D, KC_BTN3, KC_WH_U, KC_PMNS, KC_P1, KC_P2, KC_P3, \ + KC_VOLD, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PENT, KC_P0, KC_PDOT \ +), /* Raise * ,-----------------------------------------------------------------------------------. @@ -174,13 +169,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = { - {KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {_______, KC_BSPC, KC_PGUP, KC_DEL, _______, _______, _______, KC_PGUP, KC_UP, _______, _______, _______}, - {_______, KC_HOME, KC_PGDN, KC_END, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______}, - {_______, KC_PAUSE, KC_INS, _______, KC_PSCR, KC_PSCR, _______, KC_END, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -}, +[_RAISE] = LAYOUT_preonic_mit( \ + KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ + _______, KC_BSPC, KC_PGUP, KC_DEL, _______, _______, _______, KC_PGUP, KC_UP, _______, _______, _______, \ + _______, KC_HOME, KC_PGDN, KC_END, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, \ + _______, KC_PAUSE, KC_INS, _______, KC_PSCR, KC_PSCR, _______, KC_END, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +), /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. @@ -195,13 +190,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | Reset | | | | | | * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = { - {_______, _______, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, _______, _______, _______}, - {_______, RESET, _______, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AU_ON, AU_OFF, MI_ON, MI_OFF, QWERTY, COLEMAK, DVORAK, _______, _______}, - {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, KC_SYSTEM_SLEEP, KC_SYSTEM_WAKE, ARROW, GAME, NUMPAD, _______, _______}, - {_______, _______, _______, _______, _______, RESET, RESET, _______, _______, _______, _______, _______} -} +[_ADJUST] = LAYOUT_preonic_mit( \ + _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, _______, _______, _______, \ + _______, RESET, _______, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, _______, KC_DEL, \ + _______, _______, _______, AU_ON, AU_OFF, MI_ON, MI_OFF, QWERTY, COLEMAK, DVORAK, _______, _______, \ + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, KC_SYSTEM_SLEEP, KC_SYSTEM_WAKE, ARROW, GAME, NUMPAD, _______, _______, \ + _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______ \ +) }; diff --git a/keyboards/preonic/keymaps/blake-newman/keymap.c b/keyboards/preonic/keymaps/blake-newman/keymap.c index d14263d90c6e..17440d2c647e 100644 --- a/keyboards/preonic/keymaps/blake-newman/keymap.c +++ b/keyboards/preonic/keymaps/blake-newman/keymap.c @@ -14,8 +14,7 @@ * along with this program. If not, see . */ -#include "preonic.h" -#include "action_layer.h" +#include QMK_KEYBOARD_H enum preonic_layers { _QWERTY, @@ -52,13 +51,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | | Alt | Ctrl | Shift| * `-----------------------------------------------------------------------------------' */ - [_QWERTY] = { - {KC_GRV, KC_1, KC_2, KC_5, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, _______, KC_RALT, KC_RCTL, KC_RSFT} - }, + [_QWERTY] = LAYOUT_preonic_mit( \ + KC_GRV, KC_1, KC_2, KC_5, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, _______, KC_RALT, KC_RCTL, KC_RSFT \ + ), /* Colemak * ,-----------------------------------------------------------------------------------. @@ -73,13 +72,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | | Alt | Ctrl | Shift| * `-----------------------------------------------------------------------------------' */ - [_COLEMAK] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, _______, KC_RALT, KC_RCTL, KC_RSFT} - }, + [_COLEMAK] = LAYOUT_preonic_mit( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ + KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, _______, KC_RALT, KC_RCTL, KC_RSFT \ + ), /* Dvorak * ,-----------------------------------------------------------------------------------. @@ -94,13 +93,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | | Alt | Ctrl | Shift| * `-----------------------------------------------------------------------------------' */ - [_DVORAK] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT}, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, _______, KC_RALT, KC_RCTL, KC_RSFT} - }, + [_DVORAK] = LAYOUT_preonic_mit( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ + KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, \ + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, _______, KC_RALT, KC_RCTL, KC_RSFT \ + ), /* Numpad * ,-----------------------------------------------------------------------------------. @@ -115,13 +114,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | 0 | . | Ctrl | Shift| * `-----------------------------------------------------------------------------------' */ - [_NUMPAD] = { - {KC_ESC, _______, _______, KC_PGDN, KC_PGUP, KC_END, KC_HOME, _______, KC_PSLS, KC_PAST, KC_PMNS, KC_DEL}, - {KC_TAB, _______, KC_UP, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_BSPC}, - {KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, KC_QUOT}, - {KC_LSFT, _______, _______, _______, _______, _______, KC_COMM, KC_P1, KC_P2, KC_P3, _______, KC_RSFT}, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_P0, KC_PDOT, KC_RCTL, KC_RSFT} - }, + [_NUMPAD] = LAYOUT_preonic_mit( \ + KC_ESC, _______, _______, KC_PGDN, KC_PGUP, KC_END, KC_HOME, _______, KC_PSLS, KC_PAST, KC_PMNS, KC_DEL, \ + KC_TAB, _______, KC_UP, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_BSPC, \ + KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, KC_QUOT, \ + KC_LSFT, _______, _______, _______, _______, _______, KC_COMM, KC_P1, KC_P2, KC_P3, _______, KC_RSFT, \ + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_P0, KC_PDOT, KC_RCTL, KC_RSFT \ + ), /* Lower @@ -137,13 +136,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Enter |Raise | | Alt | Ctrl | Shift| * `-----------------------------------------------------------------------------------' */ - [_LOWER] = { - {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_ESC, _______, KC_UP, _______, _______, _______, _______, KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_BSPC}, - {KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_LSFT, KC_PIPE, _______, _______, _______, _______, _______, _______, ALGR_T(KC_4), ALGR_T(KC_5), _______, KC_RSFT}, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_ENT, KC_ENT, RAISE, _______, KC_RALT, KC_RCTL, KC_RSFT} - }, + [_LOWER] = LAYOUT_preonic_mit( \ + 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_ESC, _______, KC_UP, _______, _______, _______, _______, KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_BSPC, \ + KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_BSLS, \ + KC_LSFT, KC_PIPE, _______, _______, _______, _______, _______, _______, ALGR_T(KC_4), ALGR_T(KC_5), _______, KC_RSFT, \ + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_ENT, RAISE, _______, KC_RALT, KC_RCTL, KC_RSFT \ + ), /* Raise * ,-----------------------------------------------------------------------------------. @@ -158,13 +157,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Enter |Raise | | Alt | Ctrl | Shift| * `-----------------------------------------------------------------------------------' */ - [_RAISE] = { - {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_ESC, _______, KC_UP, _______, _______, _______, _______, KC_MINS, KC_UNDS, KC_EQL, KC_PLUS, KC_BSPC}, - {KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, KC_PIPE}, - {KC_LSFT, KC_BSLS, _______, _______, _______, _______, _______, _______, _______, ALGR_T(KC_DLR), KC_DLR, KC_RSFT}, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_ENT, KC_ENT, RAISE, _______, KC_RALT, KC_RCTL, KC_RSFT} - }, + [_RAISE] = LAYOUT_preonic_mit( \ + 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_ESC, _______, KC_UP, _______, _______, _______, _______, KC_MINS, KC_UNDS, KC_EQL, KC_PLUS, KC_BSPC, \ + KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, KC_PIPE, \ + KC_LSFT, KC_BSLS, _______, _______, _______, _______, _______, _______, _______, ALGR_T(KC_DLR), KC_DLR, KC_RSFT, \ + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_ENT, RAISE, _______, KC_RALT, KC_RCTL, KC_RSFT \ + ), /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. @@ -179,13 +178,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ - [_ADJUST] = { - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, RESET, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,LALT(KC_PSCR), LCTL(KC_PSCR), KC_PSCR}, - {KC_CAPS, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, NUMPAD, KC_INS}, - {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} - } + [_ADJUST] = LAYOUT_preonic_mit( \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, RESET, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,LALT(KC_PSCR), LCTL(KC_PSCR), KC_PSCR, \ + KC_CAPS, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, NUMPAD, KC_INS, \ + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + ) }; diff --git a/keyboards/preonic/keymaps/bucktooth/keymap.c b/keyboards/preonic/keymaps/bucktooth/keymap.c index d135db487593..d3bcf66efa50 100644 --- a/keyboards/preonic/keymaps/bucktooth/keymap.c +++ b/keyboards/preonic/keymaps/bucktooth/keymap.c @@ -1,8 +1,4 @@ -#include "preonic.h" -#include "action_layer.h" -#ifdef AUDIO_ENABLE - #include "audio.h" -#endif +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. #define L_QWERTSPLITLY 0 @@ -47,13 +43,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |ESC/fn|LCtrl | LOpt | LCmd |Space | Tab | BkSp |Space |En/Cmd|<-/fn |CRSR v|CRSR->| * `-----------------------------------------------------------------------------------' */ -[L_QWERTSPLITLY] = { - {KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINUS,KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, }, - {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, }, - {KC_A, KC_S, KC_D, KC_F, KC_G, KC_GRAVE,KC_QUOTE,KC_H, KC_J, KC_K, KC_L, KC_SCLN }, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BSLS, KC_SLASH,KC_N, KC_M, KC_COMM, MT_RSDOT}, - {LT_FNESC,KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_TAB, KC_BSPC, KC_SPC, MT_RGENT,LT_FNLFT,KC_DOWN, KC_RIGHT} -}, +[L_QWERTSPLITLY] = LAYOUT_preonic_grid( \ + KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINUS,KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, \ + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, \ + KC_A, KC_S, KC_D, KC_F, KC_G, KC_GRAVE,KC_QUOTE,KC_H, KC_J, KC_K, KC_L, KC_SCLN, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BSLS, KC_SLASH,KC_N, KC_M, KC_COMM, MT_RSDOT,\ + LT_FNESC,KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_TAB, KC_BSPC, KC_SPC, MT_RGENT,LT_FNLFT,KC_DOWN, KC_RIGHT \ +), /* Fn * ,-----------------------------------------------------------------------------------. @@ -68,13 +64,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |[ESC] |RCtrl | ROpt | RCmd |Space |Sh-Tab| Del |Space |PadEnt| [fn] | Up | Left | * `-----------------------------------------------------------------------------------' */ -[L_FN] = { - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_VOLD, KC_VOLU, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 }, - {KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_MRWD, KC_MFFD, KC_WH_U, KC_BTN1, KC_MS_U, KC_BTN2, KC_PGUP }, - {KC_CAPS, MF_LPAD, MF_DASH, MF_HELP, MF_DRWR, KC_MUTE, KC_MPLY, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, KC_PGDN }, - {KC_RSFT, MF_MENU, MF_STAT, MF_DOCK, MF_TOOL, MF_NOTI, KC_INS, KC_ACL0, KC_ACL1, KC_ACL2, KC_HOME, KC_END }, - {_______, KC_RCTL, KC_RALT, KC_RGUI, _______, LS_TAB, KC_DEL, _______, KC_PENT, _______, KC_UP, KC_LEFT } -} +[L_FN] = LAYOUT_preonic_grid( \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_VOLD, KC_VOLU, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, \ + KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_MRWD, KC_MFFD, KC_WH_U, KC_BTN1, KC_MS_U, KC_BTN2, KC_PGUP, \ + KC_CAPS, MF_LPAD, MF_DASH, MF_HELP, MF_DRWR, KC_MUTE, KC_MPLY, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, KC_PGDN, \ + KC_RSFT, MF_MENU, MF_STAT, MF_DOCK, MF_TOOL, MF_NOTI, KC_INS, KC_ACL0, KC_ACL1, KC_ACL2, KC_HOME, KC_END, \ + _______, KC_RCTL, KC_RALT, KC_RGUI, _______, LS_TAB, KC_DEL, _______, KC_PENT, _______, KC_UP, KC_LEFT \ +) }; diff --git a/keyboards/preonic/keymaps/choromanski/keymap.c b/keyboards/preonic/keymaps/choromanski/keymap.c index 195fbeec73d5..5f11a9febbe3 100644 --- a/keyboards/preonic/keymaps/choromanski/keymap.c +++ b/keyboards/preonic/keymaps/choromanski/keymap.c @@ -1,5 +1,4 @@ -#include "preonic.h" -#include "action_layer.h" +#include QMK_KEYBOARD_H enum preonic_layers { _COLEMAK, @@ -46,13 +45,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Symbol| Ctrl | Alt | GUI | Bksp | Del |Enter |Space | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_COLEMAK] = { - {TD(G1), KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TD(EQ)}, - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, TD(BRC)}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, TG(_NUMPAD)}, - {OSL(_SYMB), KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, +[_COLEMAK] = LAYOUT_preonic_grid( \ + TD(G1), KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TD(EQ), \ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, TD(BRC), \ + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, TG(_NUMPAD), \ + OSL(_SYMB), KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), /* Qwerty * ,-----------------------------------------------------------------------------------. @@ -67,13 +66,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Symbol| Ctrl | Alt | GUI | Bksp | Del |Enter |Space | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = { - {TD(G1), KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TD(EQ)}, - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(BRC)}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, TG(_NUMPAD)}, - {OSL(_SYMB), KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, +[_QWERTY] = LAYOUT_preonic_grid( \ + TD(G1), KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TD(EQ), \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(BRC), \ + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, TG(_NUMPAD), \ + OSL(_SYMB), KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), /* Function * ,-----------------------------------------------------------------------------------. @@ -88,13 +87,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Symbol| | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_FUNCT] = { - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -}, +[_FUNCT] = LAYOUT_preonic_grid( \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +), /* Numpad & Mouse * ,-----------------------------------------------------------------------------------. @@ -109,13 +108,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Symbol| | VOLD | MUTE | Bksp | Del |Enter |Space | 0 | . |Enter | | * `-----------------------------------------------------------------------------------' */ -[_NUMPAD] = { - {KC_GRV, _______, _______, KC_BTN3, _______, _______, _______, KC_NLCK, KC_SLSH, KC_ASTR, KC_MINS, KC_BSLS}, - {_______, KC_ACL0, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_7, KC_8, KC_9, KC_PLUS, KC_RBRC}, - {_______, KC_ACL1, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_4, KC_5, KC_6, KC_PLUS, _______}, - {_______, KC_ACL2, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_1, KC_2, KC_3, KC_ENT, _______}, - {OSL(_SYMB), _______, KC_VOLD, KC_MUTE, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, KC_0, KC_DOT, KC_ENT, _______} -}, +[_NUMPAD] = LAYOUT_preonic_grid( \ + KC_GRV, _______, _______, KC_BTN3, _______, _______, _______, KC_NLCK, KC_SLSH, KC_ASTR, KC_MINS, KC_BSLS, \ + _______, KC_ACL0, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_7, KC_8, KC_9, KC_PLUS, KC_RBRC, \ + _______, KC_ACL1, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_4, KC_5, KC_6, KC_PLUS, _______, \ + _______, KC_ACL2, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_1, KC_2, KC_3, KC_ENT, _______, \ + OSL(_SYMB), _______, KC_VOLD, KC_MUTE, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, KC_0, KC_DOT, KC_ENT, _______ \ +), /* Symbol * ,-----------------------------------------------------------------------------------. @@ -130,13 +129,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | FN |COLMAK|QWERTY| | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_SYMB] = { - {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_PIPE, KC_PLUS, KC_LABK, KC_RABK, KC_HASH, KC_TILD, KC_LPRN, KC_RPRN, KC_BSLS, KC_COLN, _______}, - {_______, KC_EXLM, KC_MINS, KC_EQL, KC_PERC, KC_AT, KC_UNDS, KC_LCBR, KC_RCBR, KC_SLSH, KC_QUES, _______}, - {TO(_MUSIC), KC_ASTR, KC_AMPR, KC_SLSH, KC_DLR, KC_CIRC, KC_PIPE, KC_LBRC, KC_RBRC, _______, _______, _______}, - {_______, FUNCT, TO(_COLEMAK), TO(_QWERTY), _______, _______, _______, _______, _______, _______, _______, _______} -}, +[_SYMB] = LAYOUT_preonic_grid( \ + 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_PIPE, KC_PLUS, KC_LABK, KC_RABK, KC_HASH, KC_TILD, KC_LPRN, KC_RPRN, KC_BSLS, KC_COLN, _______, \ + _______, KC_EXLM, KC_MINS, KC_EQL, KC_PERC, KC_AT, KC_UNDS, KC_LCBR, KC_RCBR, KC_SLSH, KC_QUES, _______, \ + TO(_MUSIC), KC_ASTR, KC_AMPR, KC_SLSH, KC_DLR, KC_CIRC, KC_PIPE, KC_LBRC, KC_RBRC, _______, _______, _______, \ + _______, FUNCT, TO(_COLEMAK), TO(_QWERTY), _______, _______, _______, _______, _______, _______, _______, _______ \ +), /* Music * ,-----------------------------------------------------------------------------------. @@ -151,13 +150,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |COLMAK| | | | | | | | | | MOD | TOG | * `-----------------------------------------------------------------------------------' */ -[_MUSIC] = { - {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}, - {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}, - {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}, - {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}, - {TO(_COLEMAK), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MU_MOD, MU_TOG} -} +[_MUSIC] = LAYOUT_preonic_grid( \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + TO(_COLEMAK), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MU_MOD, MU_TOG \ +) }; @@ -172,4 +171,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; } return true; -}; \ No newline at end of file +}; diff --git a/keyboards/preonic/keymaps/default/keymap.c b/keyboards/preonic/keymaps/default/keymap.c index c9d04958a0bb..de3eb2298fd5 100644 --- a/keyboards/preonic/keymaps/default/keymap.c +++ b/keyboards/preonic/keymaps/default/keymap.c @@ -14,8 +14,7 @@ * along with this program. If not, see . */ -#include "preonic.h" -#include "action_layer.h" +#include QMK_KEYBOARD_H enum preonic_layers { _QWERTY, @@ -50,13 +49,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, +[_QWERTY] = LAYOUT_preonic_grid( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, \ + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \ + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), /* Colemak * ,-----------------------------------------------------------------------------------. @@ -71,13 +70,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_COLEMAK] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, +[_COLEMAK] = LAYOUT_preonic_grid( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL, \ + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \ + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), /* Dvorak * ,-----------------------------------------------------------------------------------. @@ -92,13 +91,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_DVORAK] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL}, - {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, +[_DVORAK] = LAYOUT_preonic_grid( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL, \ + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT, \ + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), /* Lower * ,-----------------------------------------------------------------------------------. @@ -113,13 +112,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = { - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, - {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, +[_LOWER] = LAYOUT_preonic_grid( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +), /* Raise * ,-----------------------------------------------------------------------------------. @@ -134,13 +133,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, +[_RAISE] = LAYOUT_preonic_grid( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +), /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. @@ -155,13 +154,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = { - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {_______, RESET, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL}, - {_______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, - {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -} +[_ADJUST] = LAYOUT_preonic_grid( \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ + _______, RESET, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, \ + _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +) }; diff --git a/keyboards/preonic/keymaps/dlaroe/keymap.c b/keyboards/preonic/keymaps/dlaroe/keymap.c index 95ff9792b19c..0da0d68efe8d 100644 --- a/keyboards/preonic/keymaps/dlaroe/keymap.c +++ b/keyboards/preonic/keymaps/dlaroe/keymap.c @@ -1,12 +1,7 @@ // Dale's Planck with a number row, I mean Preonic. // I could have done something cooler with the top row I guess but I'm pretty much a Planck guy, that is the reason for the duplication of keys. -#include "preonic.h" -#include "action_layer.h" -#include "eeconfig.h" -#ifdef AUDIO_ENABLE - #include "audio.h" -#endif +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -48,13 +43,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | GUI | \ | Alt |Lower | Space |Raise | [ | - | = | ] | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_RSFT, KC_ENT) }, - {KC_LCTL, KC_LGUI, KC_BSLS, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, LT(_LOWER, KC_LBRC), KC_MINS, KC_EQL, MT(MOD_RCTL, KC_RBRC)} -}, +[_QWERTY] = LAYOUT_preonic_mit( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_RSFT, KC_ENT), \ + KC_LCTL, KC_LGUI, KC_BSLS, KC_LALT, LOWER, KC_SPC, RAISE, LT(_LOWER, KC_LBRC), KC_MINS, KC_EQL, MT(MOD_RCTL, KC_RBRC) \ +), /* Arrow * ,-----------------------------------------------------------------------------------. @@ -69,13 +64,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | GUI | \ | Alt |Lower | Space |Raise | Left | Down | Up | Right | * `-----------------------------------------------------------------------------------' */ -[_ARROW] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_RSFT, KC_ENT) }, - {KC_LCTL, KC_LGUI, KC_BSLS, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, MT(MOD_RCTL, KC_RGHT)} -}, +[_ARROW] = LAYOUT_preonic_mit( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_RSFT, KC_ENT), \ + KC_LCTL, KC_LGUI, KC_BSLS, KC_LALT, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, MT(MOD_RCTL, KC_RGHT) \ +), /* Lower * ,-----------------------------------------------------------------------------------. @@ -90,13 +85,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | 0 | | [ | - | + | ] | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, KC_DOT, KC_ASTR}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, _______, _______}, - {_______, _______, _______, _______, _______, KC_0, KC_0, _______, _______, _______, KC_PLUS, _______} -}, +[_LOWER] = LAYOUT_preonic_mit( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, KC_DOT, KC_ASTR, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, _______, _______, \ + _______, _______, _______, _______, _______, KC_0, _______, _______, _______, KC_PLUS, _______ \ +), /* Raise * ,-----------------------------------------------------------------------------------. @@ -111,13 +106,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | App | | | | Ins | | Home | PGDN | PGUP | End | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = { - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, - { KC_DEL, KC_WH_U, KC_BTN2, KC_MS_U, KC_BTN1, QWERTY, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_PIPE, KC_GRV}, - {_______, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLASH, _______}, - {_______, KC_APP, _______, _______, _______, KC_INS, KC_INS, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END} -}, +[_RAISE] = LAYOUT_preonic_mit( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + KC_DEL, KC_WH_U, KC_BTN2, KC_MS_U, KC_BTN1, QWERTY, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_PIPE, KC_GRV, + _______, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLASH, _______, + _______, KC_APP, _______, _______, _______, KC_INS, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END +), /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. @@ -132,13 +127,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| | | | | Play/Pause | | BL_T |BL_DEC|BL_INC|BL_ST | * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = { - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {LALT(LCTL(KC_INS)), QWERTY, _______, _______, RESET, M(0), _______, MAGIC_TOGGLE_NKRO, _______, _______, _______, LALT(LCTL(KC_DEL))}, - {KC_CAPS, ARROW, _______, AU_ON, AU_OFF, _______, AG_SWAP, AG_NORM, KC_PSCR, KC_SLCK, KC_PAUS, _______}, - {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______}, - {BACKLIT, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, BL_TOGG, BL_DEC , BL_INC , BL_STEP} -} +[_ADJUST] = LAYOUT_preonic_mit( \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + LALT(LCTL(KC_INS)), QWERTY, _______, _______, RESET, M(0), _______, MAGIC_TOGGLE_NKRO, _______, _______, _______, LALT(LCTL(KC_DEL)), + KC_CAPS, ARROW, _______, AU_ON, AU_OFF, _______, AG_SWAP, AG_NORM, KC_PSCR, KC_SLCK, KC_PAUS, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + BACKLIT, _______, _______, _______, _______, KC_MPLY, _______, BL_TOGG, BL_DEC , BL_INC , BL_STEP +) }; diff --git a/keyboards/preonic/keymaps/dudeofawesome/keymap.c b/keyboards/preonic/keymaps/dudeofawesome/keymap.c index dbe7fb6488fb..d9d720bd86d9 100644 --- a/keyboards/preonic/keymaps/dudeofawesome/keymap.c +++ b/keyboards/preonic/keymaps/dudeofawesome/keymap.c @@ -14,8 +14,7 @@ * along with this program. If not, see . */ -#include "preonic.h" -#include "action_layer.h" +#include QMK_KEYBOARD_H enum preonic_layers { _QWERTY, @@ -53,13 +52,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Num | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT)}, - {TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, +[_QWERTY] = LAYOUT_preonic_mit( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT), \ + TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), /* Workman * ,-----------------------------------------------------------------------------------. @@ -74,13 +73,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Num | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_WORKMAN] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT)}, - {TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, +[_WORKMAN] = LAYOUT_preonic_mit( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSPC, \ + KC_ESC, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT), \ + TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), /* Colemak * ,-----------------------------------------------------------------------------------. @@ -95,13 +94,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Num | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_COLEMAK] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT)}, - {TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, +[_COLEMAK] = LAYOUT_preonic_mit( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT), \ + TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), /* Dvorak * ,-----------------------------------------------------------------------------------. @@ -116,13 +115,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Num | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_DVORAK] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, RSFT_T(KC_ENT)}, - {TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, +[_DVORAK] = LAYOUT_preonic_mit( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, RSFT_T(KC_ENT), \ + TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), /* Lower * ,-----------------------------------------------------------------------------------. @@ -137,13 +136,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Play | Vol- | Vol+ | Next | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = { - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______}, - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______}, - {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MNXT} -}, +[_LOWER] = LAYOUT_preonic_mit( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______, \ + _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MNXT \ +), /* Raise * ,-----------------------------------------------------------------------------------. @@ -158,13 +157,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Play | Vol- | Vol+ | Next | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______}, - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______}, - {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MNXT} -}, +[_RAISE] = LAYOUT_preonic_mit( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, \ + _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MNXT \ +), /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. @@ -179,13 +178,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = { - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {_______, RESET, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL}, - {KC_CAPS, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, WORKMAN, DVORAK, COLEMAK, _______}, - {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -}, +[_ADJUST] = LAYOUT_preonic_mit( \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ + _______, RESET, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, \ + KC_CAPS, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, WORKMAN, DVORAK, COLEMAK, _______, \ + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +), /* Numpad * ,-----------------------------------------------------------------------------------. @@ -200,13 +199,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | ✗ | | 0 | 0 | . | Enter| = | * `-----------------------------------------------------------------------------------' */ -[_NUMPAD] = { - {_______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSLS, KC_PAST, KC_PMNS, _______}, - {_______, KC_NO, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_P7, KC_P8, KC_P9, KC_PPLS, _______}, - {_______, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_NO}, - {_______, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_PENT, KC_NO, KC_P1, KC_P2, KC_P3, KC_PENT, KC_PENT}, - {_______, _______, _______, _______, KC_NO, _______, _______, KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_PEQL} -} +[_NUMPAD] = LAYOUT_preonic_mit( \ + _______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSLS, KC_PAST, KC_PMNS, _______, \ + _______, KC_NO, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, \ + _______, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_NO, \ + _______, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_PENT, KC_NO, KC_P1, KC_P2, KC_P3, KC_PENT, KC_PENT, \ + _______, _______, _______, _______, KC_NO, _______, KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_PEQL \ +) }; diff --git a/keyboards/preonic/keymaps/ekis_isa/keymap.c b/keyboards/preonic/keymaps/ekis_isa/keymap.c index d99cbff2eb94..03874e4a9cc2 100644 --- a/keyboards/preonic/keymaps/ekis_isa/keymap.c +++ b/keyboards/preonic/keymaps/ekis_isa/keymap.c @@ -14,8 +14,7 @@ * along with this program. If not, see . */ -#include "preonic.h" -#include "action_layer.h" +#include QMK_KEYBOARD_H enum preonic_layers { _QWERTY, @@ -50,13 +49,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = { - {KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS}, - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, +[_QWERTY] = LAYOUT_preonic_mit( \ + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \ + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), /* Colemak * ,-----------------------------------------------------------------------------------. @@ -71,13 +70,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_COLEMAK] = { - {KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS}, - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_LTCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, +[_COLEMAK] = LAYOUT_preonic_mit( \ + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, \ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ + KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \ + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), /* Dvorak * ,-----------------------------------------------------------------------------------. @@ -92,13 +91,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_DVORAK] = { - {KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS}, - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_LTCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, +[_DVORAK] = LAYOUT_preonic_mit( \ + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, \ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ + KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT, \ + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), /* Lower * ,-----------------------------------------------------------------------------------. @@ -113,13 +112,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = { - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, - {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, +[_LOWER] = LAYOUT_preonic_mit( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______, \ + _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +), /* Raise * ,-----------------------------------------------------------------------------------. @@ -134,13 +133,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, +[_RAISE] = LAYOUT_preonic_mit( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, \ + _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +), /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. @@ -155,13 +154,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = { - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {_______, RESET, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL}, - {_______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, - {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -} +[_ADJUST] = LAYOUT_preonic_mit( \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ + _______, RESET, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, \ + _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +) }; diff --git a/keyboards/preonic/keymaps/jacwib/keymap.c b/keyboards/preonic/keymaps/jacwib/keymap.c index 37a7dbd9bf05..0b63abce1716 100644 --- a/keyboards/preonic/keymaps/jacwib/keymap.c +++ b/keyboards/preonic/keymaps/jacwib/keymap.c @@ -1,10 +1,5 @@ -#include "preonic.h" -#include "action_layer.h" -#include "eeconfig.h" +#include QMK_KEYBOARD_H #include "keymap_nordic.h" -#ifdef AUDIO_ENABLE - #include "audio.h" -#endif // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -46,13 +41,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | Alt | GUI |AltGr |Lower | Space| Enter|Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = { - {KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, NO_PLUS, KC_BSPC}, - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, NO_AM }, - {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, NO_AE, NO_OSLH}, - {KC_LSFT, NO_LESS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_COMM, NO_MINS}, - {KC_LCTL, KC_LALT, KC_LGUI, NO_ALGR, LOWER, KC_SPC, KC_ENT, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, +[_QWERTY] = LAYOUT_preonic_grid( \ + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, NO_PLUS, KC_BSPC, \ + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, NO_AM, \ + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, NO_AE, NO_OSLH, \ + KC_LSFT, NO_LESS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_COMM, NO_MINS, \ + KC_LCTL, KC_LALT, KC_LGUI, NO_ALGR, LOWER, KC_SPC, KC_ENT, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), /* Lower * ,-----------------------------------------------------------------------------------. @@ -67,13 +62,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | |Bspc | | |PgDn |PgUp | | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = { - {_______, NO_AT, NO_PND, NO_DLR, _______, _______, NO_LCBR, NO_LBRC, NO_RBRC, NO_RCBR, NO_BSLS, KC_DEL}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, NO_TILD}, - {_______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, LSFT(KC_BSLS)}, - {_______, NO_PIPE, _______, _______, _______, _______, _______, _______, KC_VOLD, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, KC_BSPC, _______, _______, KC_PGDN, KC_PGUP, _______} -}, +[_LOWER] = LAYOUT_preonic_grid( \ + _______, NO_AT, NO_PND, NO_DLR, _______, _______, NO_LCBR, NO_LBRC, NO_RBRC, NO_RCBR, NO_BSLS, KC_DEL, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, NO_TILD, \ + _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, LSFT(KC_BSLS), \ + _______, NO_PIPE, _______, _______, _______, _______, _______, _______, KC_VOLD, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, KC_BSPC, _______, _______, KC_PGDN, KC_PGUP, _______ \ +), /* Raise * ,-----------------------------------------------------------------------------------. @@ -88,13 +83,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | |Bspc | | | | PgDn | PgUp | | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = { - {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}, - {_______, _______, _______, KC_MS_U, _______, _______, _______, _______, KC_WH_U, _______, _______, NO_CIRC}, - {_______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN1, KC_BTN3, KC_BTN2, NO_APOS, NO_QUOT}, - {_______, NO_GRTR, _______, _______, _______, _______, _______, _______, KC_WH_D, NO_COLN, NO_SCLN, NO_UNDS}, - {_______, _______, _______, _______, _______, KC_BSPC, _______, _______, _______, KC_PGDN, KC_PGUP, _______} -}, +[_RAISE] = LAYOUT_preonic_grid( \ + 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, \ + _______, _______, _______, KC_MS_U, _______, _______, _______, _______, KC_WH_U, _______, _______, NO_CIRC, \ + _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN1, KC_BTN3, KC_BTN2, NO_APOS, NO_QUOT, \ + _______, NO_GRTR, _______, _______, _______, _______, _______, _______, KC_WH_D, NO_COLN, NO_SCLN, NO_UNDS, \ + _______, _______, _______, _______, _______, KC_BSPC, _______, _______, _______, KC_PGDN, KC_PGUP, _______ \ +), /* Mac Qwerty * ,-----------------------------------------------------------------------------------. @@ -109,13 +104,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | Alt | GUI |AltGr |Lower | Space| Enter|Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_MQWERTY] = { - {KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, NO_PLUS, KC_BSPC}, - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, NO_AM }, - {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, NO_AE, NO_OSLH}, - {KC_LSFT, NO_LESS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_COMM, NO_MINS}, - {KC_LCTL, KC_LALT, KC_LGUI, NO_ALGR, MLOWER, KC_SPC, KC_ENT, MRAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, +[_MQWERTY] = LAYOUT_preonic_grid( \ + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, NO_PLUS, KC_BSPC, \ + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, NO_AM, \ + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, NO_AE, NO_OSLH, \ + KC_LSFT, NO_LESS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_COMM, NO_MINS, \ + KC_LCTL, KC_LALT, KC_LGUI, NO_ALGR, MLOWER, KC_SPC, KC_ENT, MRAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), /* Mac Lower * ,-----------------------------------------------------------------------------------. @@ -130,13 +125,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | |Bspc | | |PgDn |PgUp | | * `-----------------------------------------------------------------------------------' */ -[_MLOWER] = { - {_______, NO_AT, NO_PND, NO_DLR, _______, _______, LSFT(LALT(KC_8)), NO_LBRC, NO_RBRC, LSFT(LALT(KC_9)), LSFT(LALT(KC_7)), KC_DEL}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, NO_TILD}, - {_______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, LSFT(KC_BSLS)}, - {_______, NO_LBRC, _______, _______, _______, _______, _______, _______, KC_VOLD, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, KC_BSPC, _______, _______, KC_PGDN, KC_PGUP, _______} -}, +[_MLOWER] = LAYOUT_preonic_grid( \ + _______, NO_AT, NO_PND, NO_DLR, _______, _______, LSFT(LALT(KC_8)), NO_LBRC, NO_RBRC, LSFT(LALT(KC_9)), LSFT(LALT(KC_7)), KC_DEL, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, NO_TILD, \ + _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, LSFT(KC_BSLS), \ + _______, NO_LBRC, _______, _______, _______, _______, _______, _______, KC_VOLD, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, KC_BSPC, _______, _______, KC_PGDN, KC_PGUP, _______ \ +), /* Mac Raise * ,-----------------------------------------------------------------------------------. @@ -151,13 +146,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | |Bspc | | | | PgDn | PgUp | | * `-----------------------------------------------------------------------------------' */ -[_MRAISE] = { - {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}, - {_______, _______, _______, KC_MS_U, _______, _______, _______, _______, KC_WH_U, _______, _______, NO_CIRC}, - {_______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN1, KC_BTN3, KC_BTN2, NO_APOS, NO_QUOT}, - {_______, NO_GRTR, _______, _______, _______, _______, _______, _______, KC_WH_D, NO_COLN, NO_SCLN, NO_UNDS}, - {_______, _______, _______, _______, _______, KC_BSPC, _______, _______, _______, KC_PGDN, KC_PGUP, _______} -}, +[_MRAISE] = LAYOUT_preonic_grid( \ + 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, \ + _______, _______, _______, KC_MS_U, _______, _______, _______, _______, KC_WH_U, _______, _______, NO_CIRC, \ + _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN1, KC_BTN3, KC_BTN2, NO_APOS, NO_QUOT, \ + _______, NO_GRTR, _______, _______, _______, _______, _______, _______, KC_WH_D, NO_COLN, NO_SCLN, NO_UNDS, \ + _______, _______, _______, _______, _______, KC_BSPC, _______, _______, _______, KC_PGDN, KC_PGUP, _______ \ +), /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. @@ -172,13 +167,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = { - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {_______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT}, - {_______, MU_ON, MU_OFF, _______, _______, _______, _______, TO(0), TO(5), _______, _______, RESET }, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -} +[_ADJUST] = LAYOUT_preonic_grid( \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ + _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT, \ + _______, MU_ON, MU_OFF, _______, _______, _______, _______, TO(0), TO(5), _______, _______, RESET, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +) }; diff --git a/keyboards/preonic/keymaps/kinesis/keymap.c b/keyboards/preonic/keymaps/kinesis/keymap.c index 69c33472e077..93fd99163583 100644 --- a/keyboards/preonic/keymaps/kinesis/keymap.c +++ b/keyboards/preonic/keymaps/kinesis/keymap.c @@ -1,9 +1,4 @@ -#include "preonic.h" -#include "action_layer.h" -#include "eeconfig.h" -#ifdef AUDIO_ENABLE -#include "audio.h" -#endif +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -41,13 +36,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | FN | ` | Alt | LGUI | Back | ESC |ENTER | SPCE | RGUI | [ | ] | FN | * `-----------------------------------------------------------------------------------' */ - [_QWERTY] = { - {EQ_LOCK, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, MIN_ULK }, - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS }, - {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_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC }, - {MO(_FN), HYP_TIC, KC_LALT, KC_LGUI, KC_BSPC, KC_ESC, KC_ENT, KC_SPC, KC_RGUI, KC_LBRC, KC_RBRC, MO(_FN) } - }, + [_QWERTY] = LAYOUT_preonic_grid( \ + EQ_LOCK, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, MIN_ULK, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, \ + 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_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, \ + MO(_FN), HYP_TIC, KC_LALT, KC_LGUI, KC_BSPC, KC_ESC, KC_ENT, KC_SPC, KC_RGUI, KC_LBRC, KC_RBRC, MO(_FN) \ + ), /* Fn * ,-----------------------------------------------------------------------------------. @@ -62,13 +57,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | |Voice-|Voice+|Mus on|MusOff| | |PLY/PS| | PREV | NEXT | | * `-----------------------------------------------------------------------------------' */ - [_FN] = { - {_______, 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_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, _______ }, - {_______, KC_VOLD, KC_VOLU, KC_MUTE, BL_TOGG, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______ }, - {_______, BL_DEC, BL_INC, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______ }, - {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, _______, _______, KC_MPLY, _______, KC_MPRV, KC_MNXT, _______ } - } + [_FN] = LAYOUT_preonic_grid( \ + _______, 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_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, _______, \ + _______, KC_VOLD, KC_VOLU, KC_MUTE, BL_TOGG, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, \ + _______, BL_DEC, BL_INC, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, \ + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, _______, _______, KC_MPLY, _______, KC_MPRV, KC_MNXT, _______ \ + ) }; diff --git a/keyboards/preonic/keymaps/nikchi/keymap.c b/keyboards/preonic/keymaps/nikchi/keymap.c index 4c2bf1fcf09c..bb7be876c24f 100644 --- a/keyboards/preonic/keymaps/nikchi/keymap.c +++ b/keyboards/preonic/keymaps/nikchi/keymap.c @@ -1,9 +1,4 @@ -#include "preonic.h" -#include "action_layer.h" -#include "eeconfig.h" -#ifdef AUDIO_ENABLE - #include "audio.h" -#endif +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -45,13 +40,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |BKSP |SHIFT |ENTER |SPC | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL}, - {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {LOWER , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RAISE }, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, KC_LSFT, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, +[_QWERTY] = LAYOUT_preonic_grid( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, \ + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + LOWER , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RAISE, \ + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, KC_LSFT, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), /* Lower * ,-----------------------------------------------------------------------------------. @@ -66,13 +61,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = { - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, - {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, +[_LOWER] = LAYOUT_preonic_grid( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +), /* Raise * ,-----------------------------------------------------------------------------------. @@ -87,13 +82,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, +[_RAISE] = LAYOUT_preonic_grid( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +), /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. @@ -108,13 +103,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = { - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______}, - {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -} +[_ADJUST] = LAYOUT_preonic_grid( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, \ + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +) }; diff --git a/keyboards/preonic/keymaps/smt/keymap.c b/keyboards/preonic/keymaps/smt/keymap.c index b27033b1b23b..3c703f473200 100644 --- a/keyboards/preonic/keymaps/smt/keymap.c +++ b/keyboards/preonic/keymaps/smt/keymap.c @@ -1,9 +1,4 @@ -#include "preonic.h" -#include "action_layer.h" -#ifdef AUDIO_ENABLE - #include "audio.h" -#endif -#include "eeconfig.h" +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -50,13 +45,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | ` | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, - {MEH_GRV, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, +[_QWERTY] = LAYOUT_preonic_grid( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT, + MEH_GRV, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), /* Colemak * ,-----------------------------------------------------------------------------------. @@ -71,13 +66,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | ` | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_COLEMAK] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, - {MEH_GRV, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, +[_COLEMAK] = LAYOUT_preonic_grid( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT, + MEH_GRV, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), /* Dvorak * ,-----------------------------------------------------------------------------------. @@ -92,13 +87,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | ` | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_DVORAK] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT}, - {MEH_GRV, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, +[_DVORAK] = LAYOUT_preonic_grid( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, + CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT, + MEH_GRV, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), /* Lower * ,-----------------------------------------------------------------------------------. @@ -113,13 +108,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = { - {ALL_T(KC_GRV), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {ALL_T(KC_0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {CTL_T(KC_DLR), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, _______, _______}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, +[_LOWER] = LAYOUT_preonic_grid( \ + ALL_T(KC_GRV), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + ALL_T(KC_0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + CTL_T(KC_DLR), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, _______, _______, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), /* Raise * ,-----------------------------------------------------------------------------------. @@ -134,13 +129,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | Home |PageDn|PageUp| End | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = { - {ALL_T(KC_TILD), KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, - {ALL_T(KC_TILD), KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, - {_______, _______, _______, _______, _______, _______, KC_UNDS, KC_QUES, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {_______, _______, _______, _______, _______, _______, KC_MINS, KC_SLSH, KC_EQL, KC_LBRC, KC_RBRC, SFT_T(KC_BSLS)}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END} -}, +[_RAISE] = LAYOUT_preonic_grid( \ + ALL_T(KC_TILD), KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + ALL_T(KC_TILD), KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + _______, _______, _______, _______, _______, _______, KC_UNDS, KC_QUES, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, _______, _______, _______, _______, _______, KC_MINS, KC_SLSH, KC_EQL, KC_LBRC, KC_RBRC, SFT_T(KC_BSLS), + _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END +), /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. @@ -155,13 +150,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = { - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET}, - {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, - {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -} +[_ADJUST] = LAYOUT_preonic_grid( \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) }; diff --git a/keyboards/preonic/keymaps/that_canadian/keymap.c b/keyboards/preonic/keymaps/that_canadian/keymap.c index 41e71697a874..968b2ae25b74 100644 --- a/keyboards/preonic/keymaps/that_canadian/keymap.c +++ b/keyboards/preonic/keymaps/that_canadian/keymap.c @@ -1,9 +1,5 @@ -#include "preonic.h" -#include "action_layer.h" -#include "eeconfig.h" -#ifdef AUDIO_ENABLE - #include "audio.h" -#endif +#include QMK_KEYBOARD_H + // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -47,13 +43,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | ` | GUI | ALT |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = { - {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {MO(_FUNCTION), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT}, - {OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT}, - {KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, +[_QWERTY] = LAYOUT_preonic_grid( \ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + MO(_FUNCTION), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \ + OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, \ + KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), /* Lower * ,-----------------------------------------------------------------------------------. @@ -68,13 +64,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | |Lower | Bksp |Raise | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = { - {KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11}, - {KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, - {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MUTE, _______, KC_PIPE}, - {_______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, +[_LOWER] = LAYOUT_preonic_grid( \ + KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \ + KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MUTE, _______, KC_PIPE, \ + _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +), /* Raise * ,-----------------------------------------------------------------------------------. @@ -89,13 +85,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | , | 0 | . |Lower | Bksp |Raise | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = { - {KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11}, - {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {_______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______}, - {KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS}, - {_______, KC_COMM, KC_0, KC_DOT, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, +[_RAISE] = LAYOUT_preonic_grid( \ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, \ + KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS, \ + _______, KC_COMM, KC_0, KC_DOT, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +), /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. @@ -110,13 +106,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | |RESET | * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = { - {KC_ESC, KC_F1, KC_F2, KC_F3, LALT(KC_F4), KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11}, - {TSKMGR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CALTDEL}, - {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______}, - {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET} -}, +[_ADJUST] = LAYOUT_preonic_grid( \ + KC_ESC, KC_F1, KC_F2, KC_F3, LALT(KC_F4), KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \ + TSKMGR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CALTDEL, \ + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, \ + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET \ +), /* Function * ,-----------------------------------------------------------------------------------. @@ -131,13 +127,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_FUNCTION] = { - {KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______}, - {KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -} +[_FUNCTION] = LAYOUT_preonic_grid( \ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, \ + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +) }; diff --git a/keyboards/preonic/keymaps/xyverz/keymap.c b/keyboards/preonic/keymaps/xyverz/keymap.c index e905c458f6d4..53e378e40422 100644 --- a/keyboards/preonic/keymaps/xyverz/keymap.c +++ b/keyboards/preonic/keymaps/xyverz/keymap.c @@ -1,9 +1,4 @@ -#include "preonic.h" -#include "action_layer.h" -#include "eeconfig.h" -#ifdef AUDIO_ENABLE - #include "audio.h" -#endif +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -44,13 +39,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | Alt | Left |Right |Lower | Bksp |Space |Raise | Up | Down | GUI |Enter | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = { - {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL }, - {KC_MINS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, - {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUI_T(KC_BSPC), KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } -}, +[_QWERTY] = LAYOUT_preonic_grid( \ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, \ + KC_MINS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ + KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUI_T(KC_BSPC), KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT \ +), /* Colemak * ,-----------------------------------------------------------------------------------. @@ -65,13 +60,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | Alt | Left |Right |Lower | Bksp |Space |Raise | Up | Down | GUI |Enter | * `-----------------------------------------------------------------------------------' */ -[_COLEMAK] = { - {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL }, - {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, - {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUI_T(KC_BSPC), KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } -}, +[_COLEMAK] = LAYOUT_preonic_grid( \ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL, \ + KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ + KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUI_T(KC_BSPC), KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT \ +), /* Dvorak * ,-----------------------------------------------------------------------------------. @@ -86,13 +81,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | Alt | Left |Right |Lower | Bksp |Space |Raise | Up | Down | GUI |Enter | * `-----------------------------------------------------------------------------------' */ -[_DVORAK] = { - {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS}, - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH}, - {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT}, - {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUI_T(KC_BSPC), KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } -}, +[_DVORAK] = LAYOUT_preonic_grid( \ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, \ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, \ + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, \ + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, \ + KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUI_T(KC_BSPC), KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT \ +), /* Lower * ,-----------------------------------------------------------------------------------. @@ -107,13 +102,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| | Home | End | | Del | Ins | | PgUp | PgDN | |Enter | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______}, - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE}, - {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______}, - {BACKLIT, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______} -}, +[_LOWER] = LAYOUT_preonic_grid( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE, \ + KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, \ + BACKLIT, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______ \ +), /* Raise * ,-----------------------------------------------------------------------------------. @@ -128,13 +123,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| | Home | End | | Del | Ins | | PgUp | PgDN | |Enter | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______}, - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSLS}, - {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______}, - {BACKLIT, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______} -}, +[_RAISE] = LAYOUT_preonic_grid( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSLS, \ + KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, \ + BACKLIT, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______ \ +), /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. @@ -149,13 +144,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = { - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 }, - {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, - {_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -} +[_ADJUST] = LAYOUT_preonic_grid( \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +) }; diff --git a/keyboards/preonic/keymaps/zach/keymap.c b/keyboards/preonic/keymaps/zach/keymap.c index 6ce37840b94b..2e3add03c073 100644 --- a/keyboards/preonic/keymaps/zach/keymap.c +++ b/keyboards/preonic/keymaps/zach/keymap.c @@ -1,54 +1,54 @@ // Zach Nielsen Custom Preonic Keyboard layout -#include "preonic.h" +#include QMK_KEYBOARD_H #define PREONIC_YES // This is the Preonic #include "zach_common_functions.c" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_COLEMAK] = { /* Base Layer */ - {KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, KC_ENT}, - {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT}, - {SHFT_CAP, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, - {CTRLB, TD(SUP), KC_LALT, KC_LCTL, TD(LOW), KC_SPC, KC_SPC, TD(RAI), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, +[_COLEMAK] = LAYOUT_preonic_mit( /* Base Layer */ + KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, KC_ENT, \ + KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT, \ + SHFT_CAP, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ + CTRLB, TD(SUP), KC_LALT, KC_LCTL, TD(LOW), KC_SPC, TD(RAI), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), -[_SWCOLE] = { /* Software Colemak */ - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, KC_QUOT, _______}, - {_______, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, _______}, - {_______, CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, CM_COMM, CM_DOT, CM_SLSH, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -}, +[_SWCOLE] = LAYOUT_preonic_mit( /* Software Colemak */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, KC_QUOT, _______, \ + _______, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, _______, \ + _______, CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, CM_COMM, CM_DOT, CM_SLSH, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +), -[_RAISE] = { /* RAISE - Numpad and Unicode symbols */ - {KC_TILD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {KC_GRV, SUPA2, FACE, DISFACE, SHRUG, PLUMIN, IBANG, KC_7, KC_8, KC_9, KC_COLN, _______}, - {KC_DEL, DEGREE, MICRO, WOMEGA, OMEGA, XXXXXXX, KC_ENT, KC_4, KC_5, KC_6, KC_SLSH, KC_ASTR}, - {_______, KC_COLN, TFLIP, LAROW, RAROW, XXXXXXX, KC_SPC, KC_1, KC_2, KC_3, KC_MINS, KC_PLUS}, - {_______, KC_PIPE, TPUT, _______, _______, KC_TAB, KC_TAB, _______, KC_0, KC_0, KC_DOT, KC_EQL} -}, +[_RAISE] = LAYOUT_preonic_mit( /* RAISE - Numpad and Unicode symbols */ + KC_TILD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + KC_GRV, SUPA2, FACE, DISFACE, SHRUG, PLUMIN, IBANG, KC_7, KC_8, KC_9, KC_COLN, _______, \ + KC_DEL, DEGREE, MICRO, WOMEGA, OMEGA, XXXXXXX, KC_ENT, KC_4, KC_5, KC_6, KC_SLSH, KC_ASTR, \ + _______, KC_COLN, TFLIP, LAROW, RAROW, XXXXXXX, KC_SPC, KC_1, KC_2, KC_3, KC_MINS, KC_PLUS, \ + _______, KC_PIPE, TPUT, _______, _______, KC_TAB, _______, KC_0, KC_0, KC_DOT, KC_EQL \ +), -[_LOWER] = { /* LOWER - Symbols, Paging, CtrAltDel */ - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_QUES, KC_DQT, KC_DEL}, - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_QUES, KC_DQT, KC_DEL}, - {KC_DEL, KC_LBRC, KC_RBRC, KC_MINS, KC_UNDS, KC_HOME, KC_END, KC_LPRN, KC_RPRN, KC_SLSH, KC_SCLN, KC_PGUP}, - {CPYPST, XXXXXXX, C(KC_X), KC_LABK, KC_RABK, XXXXXXX, XXXXXXX, KC_LCBR, KC_RCBR, KC_BSLS, KC_COLN, KC_PGDN}, - {_______, _______, _______, _______, _______, KC_TAB, KC_TAB, _______, _______, _______, _______, _______} -}, +[_LOWER] = LAYOUT_preonic_mit( /* LOWER - Symbols, Paging, CtrAltDel */ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_QUES, KC_DQT, KC_DEL, \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_QUES, KC_DQT, KC_DEL, \ + KC_DEL, KC_LBRC, KC_RBRC, KC_MINS, KC_UNDS, KC_HOME, KC_END, KC_LPRN, KC_RPRN, KC_SLSH, KC_SCLN, KC_PGUP, \ + CPYPST, XXXXXXX, C(KC_X), KC_LABK, KC_RABK, XXXXXXX, XXXXXXX, KC_LCBR, KC_RCBR, KC_BSLS, KC_COLN, KC_PGDN, \ + _______, _______, _______, _______, _______, KC_TAB, _______, _______, _______, _______, _______ \ +), -[_ADJUST] = { /* ADJUST - Macros, Layer Switching, Function Keys */ - {UNIWIN, XXXXXXX, XXXXXXX, RANDIG, RANDIG, KC_INS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AU_TOG, MU_TOG}, - {UNILIN, SUPA2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX}, - {XXXXXXX, DEGREE, IBANG, LAROW, RAROW, SWCOLE, COLEMAK, KC_F5, KC_F6, KC_F7, KC_F8, BL_INC}, - {_______, CADKEY, MICRO, WOMEGA, OMEGA, XXXXXXX, XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, BL_DEC}, - {_______, _______, _______, _______, _______, RESET, RESET, _______, XXXXXXX, MUV_DE, MUV_IN, BL_TOGG} -}, +[_ADJUST] = LAYOUT_preonic_mit( /* ADJUST - Macros, Layer Switching, Function Keys */ + UNIWIN, XXXXXXX, XXXXXXX, RANDIG, RANDIG, KC_INS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AU_TOG, MU_TOG, \ + UNILIN, SUPA2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, \ + XXXXXXX, DEGREE, IBANG, LAROW, RAROW, SWCOLE, COLEMAK, KC_F5, KC_F6, KC_F7, KC_F8, BL_INC, \ + _______, CADKEY, MICRO, WOMEGA, OMEGA, XXXXXXX, XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, BL_DEC, \ + _______, _______, _______, _______, _______, RESET, _______, XXXXXXX, MUV_DE, MUV_IN, BL_TOGG \ +), -[_UNICODES] = { /* UNICODES - Extra layer for unicode stuff */ - {_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______}, - {_______, TFLIP, XXXXXXX, XXXXXXX, IBANG, roman7, XXXXXXX, XXXXXXX, ROMAN7, XXXXXXX, XXXXXXX, _______}, - {KC_DEL, TPUT, FACE, DISFACE, SHRUG, roman4, roman5, roman6, ROMAN4, ROMAN5, ROMAN6, _______}, - {XXXXXXX, XXXXXXX, XXXXXXX, LAROW, RAROW, roman1, roman2, roman3, ROMAN1, ROMAN2, ROMAN3, XXXXXXX}, - {_______, _______, _______, _______, _______, KC_SPC, KC_SPC, _______, _______, _______, _______, _______} -} +[_UNICODES] = LAYOUT_preonic_mit( /* UNICODES - Extra layer for unicode stuff */ + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, \ + _______, TFLIP, XXXXXXX, XXXXXXX, IBANG, roman7, XXXXXXX, XXXXXXX, ROMAN7, XXXXXXX, XXXXXXX, _______, \ + KC_DEL, TPUT, FACE, DISFACE, SHRUG, roman4, roman5, roman6, ROMAN4, ROMAN5, ROMAN6, _______, \ + XXXXXXX, XXXXXXX, XXXXXXX, LAROW, RAROW, roman1, roman2, roman3, ROMAN1, ROMAN2, ROMAN3, XXXXXXX, \ + _______, _______, _______, _______, _______, KC_SPC, _______, _______, _______, _______, _______ \ +) }; From cc323df9ba8f4361660ee2a60c3261da29c1d172 Mon Sep 17 00:00:00 2001 From: Mike Kozlowski Date: Sat, 31 Mar 2018 23:54:01 -0400 Subject: [PATCH 164/578] Fix broken Markdown (#2652) Fix links in Keyboard Guidelines page --- docs/hardware_keyboard_guidelines.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/hardware_keyboard_guidelines.md b/docs/hardware_keyboard_guidelines.md index 3435c24d12af..3ecf7ad1c068 100644 --- a/docs/hardware_keyboard_guidelines.md +++ b/docs/hardware_keyboard_guidelines.md @@ -22,7 +22,7 @@ Given the amount of functionality that QMK exposes it's very easy to confuse new ### Bootmagic and Command -(Bootmagic)[feature_bootmagic.md) and (Command)[feature_command.md) are two related features that allow a user to control their keyboard in non-obvious ways. We recommend you think long and hard about if you're going to enable either feature, and how you will expose this functionality. Keep in mind that users who want this functionality can enable it in their personal keymaps without affecting all the novice users who may be using your keyboard as their first programmable board. +[Bootmagic](feature_bootmagic.md) and [Command](feature_command.md) are two related features that allow a user to control their keyboard in non-obvious ways. We recommend you think long and hard about if you're going to enable either feature, and how you will expose this functionality. Keep in mind that users who want this functionality can enable it in their personal keymaps without affecting all the novice users who may be using your keyboard as their first programmable board. By far the most common problem new users encounter is accidentally triggering Bootmagic while they're plugging in their keyboard. They're holding the keyboard by the bottom, unknowingly pressing in alt and spacebar, and then they find that these keys have been swapped on them. We recommend leaving this feature disabled by default, but if you do turn it on consider setting `BOOTMAGIC_KEY_SALT` to a key that is hard to press while plugging your keyboard in. @@ -30,7 +30,7 @@ If your keyboard does not have 2 shift keys you should provide a working default ## Custom Keyboard Programming -As documented on (Customizing Functionality)[custom_quantum_functions.md] you can define custom functions for your keyboard. Please keep in mind that your users may want to customize that behavior as well, and make it possible for them to do that. If you are providing a custom function, for example `process_record_kb()`, make sure that your function calls the `_user()` version of the call too. You should also take into account the return value of the `_user()` version, and only run your custom code if the user returns `true`. +As documented on [Customizing Functionality](custom_quantum_functions.md) you can define custom functions for your keyboard. Please keep in mind that your users may want to customize that behavior as well, and make it possible for them to do that. If you are providing a custom function, for example `process_record_kb()`, make sure that your function calls the `_user()` version of the call too. You should also take into account the return value of the `_user()` version, and only run your custom code if the user returns `true`. ## Keyboard Metadata From 162a67cbc567c11c507bfc153d155f5db2dd19bf Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sat, 31 Mar 2018 21:02:40 -0700 Subject: [PATCH 165/578] Add userspace config.h handling to build script (#2640) * Add userspace 'config.h' file * Add more robust docs * Remove config.h code from drashna userspace * Spelling error * Include links to Config Options page * Remove config.h documentation from userspace doc, as it's no longer needed --- build_keyboard.mk | 4 ++++ docs/feature_userspace.md | 24 +++++++++++++++++++++++- users/drashna/readme.md | 27 --------------------------- users/drashna/rules.mk | 6 ------ 4 files changed, 27 insertions(+), 34 deletions(-) diff --git a/build_keyboard.mk b/build_keyboard.mk index 921159a5dda8..5a82abd31541 100644 --- a/build_keyboard.mk +++ b/build_keyboard.mk @@ -204,6 +204,10 @@ endif # User space stuff USER_PATH := users/$(KEYMAP) -include $(USER_PATH)/rules.mk +ifneq ("$(wildcard users/$(KEYMAP)/config.h)","") + CONFIG_H += users/$(KEYMAP)/config.h +endif + # Object files directory # To put object files in current directory, use a dot (.), do NOT make diff --git a/docs/feature_userspace.md b/docs/feature_userspace.md index 950377423bdf..454481cb2cc5 100644 --- a/docs/feature_userspace.md +++ b/docs/feature_userspace.md @@ -3,10 +3,11 @@ If you use more than one keyboard with a similar keymap, you might see the benefit in being able to share code between them. Create your own folder in `users/` named the same as your keymap (ideally your github username, ``) with the following structure: * `/users//` (added to the path automatically) - * `readme.md` + * `readme.md` (optional, recommended) * `rules.mk` (included automatically) * `.h` (optional) * `.c` (optional) + * `config.h` (optional) `.c` will need to be added to the SRC in `rules.mk` like this: @@ -24,10 +25,31 @@ For example, Will include the `/users/jack/` folder in the path, along with `/users/jack/rules.mk`. +Additionally, `config.h` here will be processed like the same file in your keymap folder. This is handled separately from the `.h` file. + +The reason for this, is that `.h` won't be added in time to add settings (such as `#define TAPPING_TERM 100`), and including the `` file in any `config.h` files will result in compile issues. + +So you should use the `config.h` for QMK settings, and the `.h` file for user or keymap specific settings. + ## Readme Please include authorship (your name, github username, email), and optionally [a license that's GPL compatible](https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses). +## `Config.h` + +If you do add a `config,h` file, you want to make sure that it only gets processed once. So you may want to start off with something like this: + +```c +#ifndef USERSPACE_CONFIG_H +#define USERSPACE_CONFIG_H + +// Put normal config.h settings here: + +#endif // !USERSPACE_CONFIG_H +``` + +You can use any option hre that you could use in your keymap's `config.h` file. You can find a list of vales [here](config_options.md). + ## Example For a brief example, checkout `/users/_example/` , or for a more detailed examples check out [`template.h`](https://github.com/qmk/qmk_firmware/blob/master/users/drashna/template.h) and [`template.c`](https://github.com/qmk/qmk_firmware/blob/master/users/drashna/template.c) in `/users/drashna/` . diff --git a/users/drashna/readme.md b/users/drashna/readme.md index e3e5d399d8e8..c4e305e15bb2 100644 --- a/users/drashna/readme.md +++ b/users/drashna/readme.md @@ -3,33 +3,6 @@ Overview This is my personal userspace file. Most of my code exists here, as it's heavily shared. -Userspace Config.h ------------------- - -By default, the userspace feature doesn't include a `config.h` file the way that that keyboards, revisions, keymaps and layouts handle them. This means that if you want global configurations via userspace, it's very difficult to implement. - -The reason for using seperate files here is that the `drashna.h` file doesn't get called in such a way that will actually define QMK settings. Additionally, attempting to add it to the `config.h` files has issues. Namely, the `drashna.h` file requires the `quantum.h` file... but including this to the `config.h` attemps to redefines a bunch of settings and breaks the firmare. Removing the `quantum.h` include means that a number of data structures no longer get added, and the `SAFE_RANGE` value is no longer defined, as well. So we need both a `config.h` for global config, and we need a seperate h file for local settings. - -However, the `rules.mk` file is included when building the firmware. So we can hijack that process to "manually" add a `config.h`. To do so, you would need to add the following to the `rules.mk` in your userspace: - -```c -ifneq ("$(wildcard users/$(KEYMAP)/config.h)","") - CONFIG_H += users/$(KEYMAP)/config.h -endif -``` - -You can replace `$(KEYMAP)` with your name, but it's not necessary. This checks for the existence of `/users//config.h`, and if it exists, includes it like every other `config.h` file, allowing you to make global `config.h` settings. - -As for the `config.h` file, you want to make sure that it has an "ifdef" in it to make sure it's only used once. So you want something like this: - -```c -#ifndef USERSPACE_CONFIG_H -#define USERSPACE_CONFIG_H - -// put stuff here - -#endif -``` Custom userspace handlers ------------------------- diff --git a/users/drashna/rules.mk b/users/drashna/rules.mk index 53e5da43db97..062ecd3c4915 100644 --- a/users/drashna/rules.mk +++ b/users/drashna/rules.mk @@ -2,10 +2,4 @@ SRC += drashna.c EXTRAFLAGS += -flto -ifneq ("$(wildcard users/$(KEYMAP)/config.h)","") - CONFIG_H += users/$(KEYMAP)/config.h -endif -ifeq ($(strip $(NO_SECRETS)), yes) - OPT_DEFS += -DNO_SECRETS -endif From 6f3cbdb5f725f5e82579cd8c96636a1684158f69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Birkir=20Rafn=20Gu=C3=B0j=C3=B3nsson?= Date: Sun, 1 Apr 2018 10:29:19 -0400 Subject: [PATCH 166/578] Added birkir's keymap (#2653) --- keyboards/xd60/keymaps/birkir/keymap.c | 90 +++++++++++++++++++++++++ keyboards/xd60/keymaps/birkir/readme.md | 45 +++++++++++++ 2 files changed, 135 insertions(+) create mode 100644 keyboards/xd60/keymaps/birkir/keymap.c create mode 100644 keyboards/xd60/keymaps/birkir/readme.md diff --git a/keyboards/xd60/keymaps/birkir/keymap.c b/keyboards/xd60/keymaps/birkir/keymap.c new file mode 100644 index 000000000000..1f3b04e5ec71 --- /dev/null +++ b/keyboards/xd60/keymaps/birkir/keymap.c @@ -0,0 +1,90 @@ +#include "xd60.h" +#include "action_layer.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // 0: Base Layer + KEYMAP( + 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_BSPC, KC_GRV, \ + 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_BSLS, \ + KC_CAPS, 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, \ + KC_LSFT, KC_SLSH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_NO, KC_RSFT, KC_UP, TG(2), \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, F(0), KC_LEFT, KC_DOWN, KC_RIGHT + ), + + // 1: Function Layer + KEYMAP( + KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, BL_DEC, BL_INC, KC_F13, KC_F14, \ + KC_NO, KC_WH_U, KC_UP, KC_WH_D, KC_BSPC,KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \ + KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \ + KC_LSFT, KC_NO, KC_NO, KC_APP, BL_STEP,KC_NO, KC_NO, KC_VOLD,KC_VOLU,KC_MUTE, KC_END, KC_PGDN, KC_RSFT, KC_PGUP, TG(2), \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, F(0), KC_HOME, KC_PGDOWN,KC_END + ), + + // 2: Cool Layer + KEYMAP( + RESET, BL_DEC, BL_INC, BL_ON, BL_OFF, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_MODE_PLAIN, KC_TRNS, \ + KC_NO, KC_WH_U, KC_UP, KC_WH_D, KC_BSPC,KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \ + KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \ + KC_LSFT, KC_NO, KC_NO, KC_APP, BL_STEP,KC_NO, KC_NO, KC_VOLD,KC_VOLU,KC_MUTE, KC_END, KC_PGDN, KC_RSFT, KC_PGUP, TG(2), \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, F(0), KC_HOME, KC_PGDOWN,KC_END + ) +}; + +// Custom Actions +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay +}; + +// Macros +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { register_code(KC_RSFT); } + else { unregister_code(KC_RSFT); } + break; + } + + return MACRO_NONE; +}; + +// Loop +void matrix_scan_user(void) { + // empty +}; + +bool edit = false; +uint32_t mode; +uint16_t hue; +uint8_t sat; +uint8_t val; + +uint32_t layer_state_set_user(uint32_t state) { + + if (state == 0 && edit == true) { + mode = rgblight_get_mode(); + hue = rgblight_get_hue(); + sat = rgblight_get_sat(); + val = rgblight_get_val(); + edit = false; + } + + switch (biton32(state)) { + case 1: + rgblight_mode(1); + rgblight_setrgb(0xD3, 0x7F, 0xED); + break; + case 2: + rgblight_mode(1); + rgblight_setrgb(0xFF, 0x00, 0x00); + edit = true; + break; + default: + rgblight_mode(mode); + rgblight_sethsv(hue, sat, val); + break; + } + return state; +} diff --git a/keyboards/xd60/keymaps/birkir/readme.md b/keyboards/xd60/keymaps/birkir/readme.md new file mode 100644 index 000000000000..670b6bb31424 --- /dev/null +++ b/keyboards/xd60/keymaps/birkir/readme.md @@ -0,0 +1,45 @@ +# Birkir's Keymap for XIUDI's 60% XD60 PCB + +Custom layout with some custom layers. Mac friendly. + +## Layout +![Birkir's Layout](https://i.imgur.com/I69AYG1.png) + +### Layer 0 +Base layer as shown on layout above + +### Layer 1 +Active while pressing and holding `MENU` + +RGB is purple while active + +- `ESC` is `~` + +### Layer 2 +Toggled on and off with `FN` + +RGB is red while active + +RGB settings are persisted for layer 0 when done. + + - `1` Backlight DEC + - `2` Backlight INC + - `3` Backlight OFF + - `4` Backlight ON + - `5` RGB Toggle + - `6` RGB Mode + - `7` RGB Hue DEC (-) + - `8` RGB Hue INC (+) + - `9` RGB Saturation DEC (-) + - `0` RGB Saturation INC (+) + - `-/_` RGB Brightness DEC (-) + - `+/=` RGB Brightness INC (+) + - `BACKSPACE` RGB Mode set to PLAIN + +## TODO + +- Mac shortcuts on Layer 1 +- More dynamic keyboard configuration on Layer 2 + +## Build +To build the default keymap, simply run `make xd60:birkir`. From 0ca6b53f8981312415c2bf54c8cef22fdc5e2478 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Sun, 1 Apr 2018 12:12:45 -0700 Subject: [PATCH 167/578] Clueboard Double 1800 support (#2655) --- keyboards/clueboard/2x1800/2x1800.c | 62 ++++++ keyboards/clueboard/2x1800/2x1800.h | 93 +++++++++ keyboards/clueboard/2x1800/config.h | 192 ++++++++++++++++++ keyboards/clueboard/2x1800/info.json | 15 ++ .../clueboard/2x1800/keymaps/default/config.h | 24 +++ .../clueboard/2x1800/keymaps/default/keymap.c | 28 +++ .../2x1800/keymaps/default/readme.md | 1 + .../2x1800/keymaps/default_4u/config.h | 24 +++ .../2x1800/keymaps/default_4u/keymap.c | 28 +++ .../2x1800/keymaps/default_4u/readme.md | 1 + .../2x1800/keymaps/default_7u/config.h | 24 +++ .../2x1800/keymaps/default_7u/keymap.c | 28 +++ .../2x1800/keymaps/default_7u/readme.md | 1 + .../2x1800/keymaps/macroboard/config.h | 24 +++ .../2x1800/keymaps/macroboard/keymap.c | 123 +++++++++++ .../2x1800/keymaps/macroboard/readme.md | 1 + .../2x1800/keymaps/mouseboard_left/config.h | 24 +++ .../2x1800/keymaps/mouseboard_left/keymap.c | 28 +++ .../2x1800/keymaps/mouseboard_left/readme.md | 1 + .../2x1800/keymaps/mouseboard_left/rules.mk | 1 + .../2x1800/keymaps/mouseboard_right/config.h | 24 +++ .../2x1800/keymaps/mouseboard_right/keymap.c | 28 +++ .../2x1800/keymaps/mouseboard_right/readme.md | 1 + .../2x1800/keymaps/mouseboard_right/rules.mk | 1 + keyboards/clueboard/2x1800/readme.md | 13 ++ keyboards/clueboard/2x1800/rules.mk | 63 ++++++ keyboards/clueboard/readme.md | 3 +- 27 files changed, 854 insertions(+), 2 deletions(-) create mode 100644 keyboards/clueboard/2x1800/2x1800.c create mode 100644 keyboards/clueboard/2x1800/2x1800.h create mode 100644 keyboards/clueboard/2x1800/config.h create mode 100644 keyboards/clueboard/2x1800/info.json create mode 100644 keyboards/clueboard/2x1800/keymaps/default/config.h create mode 100644 keyboards/clueboard/2x1800/keymaps/default/keymap.c create mode 100644 keyboards/clueboard/2x1800/keymaps/default/readme.md create mode 100644 keyboards/clueboard/2x1800/keymaps/default_4u/config.h create mode 100644 keyboards/clueboard/2x1800/keymaps/default_4u/keymap.c create mode 100644 keyboards/clueboard/2x1800/keymaps/default_4u/readme.md create mode 100644 keyboards/clueboard/2x1800/keymaps/default_7u/config.h create mode 100644 keyboards/clueboard/2x1800/keymaps/default_7u/keymap.c create mode 100644 keyboards/clueboard/2x1800/keymaps/default_7u/readme.md create mode 100644 keyboards/clueboard/2x1800/keymaps/macroboard/config.h create mode 100644 keyboards/clueboard/2x1800/keymaps/macroboard/keymap.c create mode 100644 keyboards/clueboard/2x1800/keymaps/macroboard/readme.md create mode 100644 keyboards/clueboard/2x1800/keymaps/mouseboard_left/config.h create mode 100644 keyboards/clueboard/2x1800/keymaps/mouseboard_left/keymap.c create mode 100644 keyboards/clueboard/2x1800/keymaps/mouseboard_left/readme.md create mode 100644 keyboards/clueboard/2x1800/keymaps/mouseboard_left/rules.mk create mode 100644 keyboards/clueboard/2x1800/keymaps/mouseboard_right/config.h create mode 100644 keyboards/clueboard/2x1800/keymaps/mouseboard_right/keymap.c create mode 100644 keyboards/clueboard/2x1800/keymaps/mouseboard_right/readme.md create mode 100644 keyboards/clueboard/2x1800/keymaps/mouseboard_right/rules.mk create mode 100644 keyboards/clueboard/2x1800/readme.md create mode 100644 keyboards/clueboard/2x1800/rules.mk diff --git a/keyboards/clueboard/2x1800/2x1800.c b/keyboards/clueboard/2x1800/2x1800.c new file mode 100644 index 000000000000..4ad78899fc32 --- /dev/null +++ b/keyboards/clueboard/2x1800/2x1800.c @@ -0,0 +1,62 @@ +/* Copyright 2017 Zach White + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "2x1800.h" + +void matrix_init_kb(void) { + // Set our LED pins as output + DDRB |= (1<<4); // Numlock + DDRB |= (1<<5); // Capslock + DDRB |= (1<<6); // Scroll Lock + + // JTAG disable for PORT F. write JTD bit twice within four cycles. + MCUCR |= (1< + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#ifndef TWOX1800_H +#define TWOX1800_H + +#include "quantum.h" + +// This a shortcut to help you visually see your layout. +// The first section contains all of the arguments +// The second converts the arguments into a two-dimensional array +#define LAYOUT( \ + k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k95, k97, k98, k99, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \ + k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a, kb0, kb1, kb2, kb3, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \ +) \ +{ \ + { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \ + { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \ + { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \ + { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a }, \ + { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, KC_NO }, \ + { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \ + { kb0, kb1, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO } \ +} + +#define LAYOUT_4U_SPACE( \ + k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k95, k97, k98, k99, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \ + k51, k52, k53, k54, k55, k56, k57, k58, kb0, kb2, kb3, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \ +) \ +{ \ + { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \ + { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \ + { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, KC_NO, KC_NO }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \ + { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a }, \ + { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, KC_NO }, \ + { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \ + { kb0, KC_NO, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO } \ +} + +#define LAYOUT_7U_SPACE( \ + k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k95, k97, k98, k99, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \ + k51, k52, k53, k54, k55, k56, k57, kb0, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \ +) \ +{ \ + { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \ + { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \ + { KC_NO, k51, k52, k53, k54, k55, k56, k57, KC_NO, KC_NO, KC_NO }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \ + { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a }, \ + { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, KC_NO }, \ + { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \ + { kb0, KC_NO, KC_NO, KC_NO, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO } \ +} + +#endif diff --git a/keyboards/clueboard/2x1800/config.h b/keyboards/clueboard/2x1800/config.h new file mode 100644 index 000000000000..0aff939701bc --- /dev/null +++ b/keyboards/clueboard/2x1800/config.h @@ -0,0 +1,192 @@ +/* +Copyright 2017 Zach White + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xC1ED +#define PRODUCT_ID 0x23A0 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Clueboard +#define PRODUCT Double 1800 +#define DESCRIPTION What does it mean? + +/* key matrix size */ +#define MATRIX_ROWS 12 +#define MATRIX_COLS 11 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { C0, C1, C2, C3, C7, F7, B1, F2, F3, F4, F5, F6 } +#define MATRIX_COL_PINS { D2, D3, D4, D5, D7, E0, E1, B0, E6, B3, B2 } +#define UNUSED_PINS { D0, D1, D6, C5, C6, E4, E5, E7, F0, F1, A0, A1, A2, A3, A4, A5, A6, A7 } + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* audio support */ +#define B7_AUDIO +#define C4_AUDIO + +/* number of backlight levels */ +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +//#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 1 + +#endif diff --git a/keyboards/clueboard/2x1800/info.json b/keyboards/clueboard/2x1800/info.json new file mode 100644 index 000000000000..0a669da20b35 --- /dev/null +++ b/keyboards/clueboard/2x1800/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "CB 2x1800", + "identifier": "", + "url": "", + "maintainer": "qmk", + "processor": "at90usb1286", + "bootloader": "teensy", + "width": 24, + "height": 6.5, + "layouts": { + "LAYOUT": { + "layout": [{"label":"Home", "x":0, "y":0}, {"label":"End", "x":1, "y":0}, {"label":"PgUp", "x":2, "y":0}, {"label":"PgDn", "x":3, "y":0}, {"label":"Esc", "x":4.75, "y":0}, {"label":"F1", "x":6.25, "y":0}, {"label":"F2", "x":7.25, "y":0}, {"label":"F3", "x":8.25, "y":0}, {"label":"F4", "x":9.25, "y":0}, {"label":"F5", "x":10.75, "y":0}, {"label":"F6", "x":11.75, "y":0}, {"label":"F7", "x":12.75, "y":0}, {"label":"F8", "x":13.75, "y":0}, {"label":"F9", "x":15.25, "y":0}, {"label":"F10", "x":16.25, "y":0}, {"label":"F11", "x":17.25, "y":0}, {"label":"F12", "x":18.25, "y":0}, {"label":"PrtSc", "x":20, "y":0}, {"label":"Scroll Lock", "x":21, "y":0}, {"label":"Pause", "x":22, "y":0}, {"label":"Insert", "x":23, "y":0}, {"label":"-", "x":0, "y":1.25}, {"label":"Num Lock", "x":1, "y":1.25}, {"label":"/", "x":2, "y":1.25}, {"label":"*", "x":3, "y":1.25}, {"label":"~", "x":4.5, "y":1.25}, {"label":"!", "x":5.5, "y":1.25}, {"label":"@", "x":6.5, "y":1.25}, {"label":"#", "x":7.5, "y":1.25}, {"label":"$", "x":8.5, "y":1.25}, {"label":"%", "x":9.5, "y":1.25}, {"label":"^", "x":10.5, "y":1.25}, {"label":"&", "x":11.5, "y":1.25}, {"label":"*", "x":12.5, "y":1.25}, {"label":"(", "x":13.5, "y":1.25}, {"label":")", "x":14.5, "y":1.25}, {"label":"_", "x":15.5, "y":1.25}, {"label":"+", "x":16.5, "y":1.25}, {"label":"Backspace", "x":17.5, "y":1.25, "w":2}, {"label":"Num Lock", "x":20, "y":1.25}, {"label":"/", "x":21, "y":1.25}, {"label":"*", "x":22, "y":1.25}, {"label":"-", "x":23, "y":1.25}, {"label":"+", "x":0, "y":2.25, "h":2}, {"label":"7", "x":1, "y":2.25}, {"label":"8", "x":2, "y":2.25}, {"label":"9", "x":3, "y":2.25}, {"label":"Tab", "x":4.5, "y":2.25, "w":1.5}, {"label":"Q", "x":6, "y":2.25}, {"label":"W", "x":7, "y":2.25}, {"label":"E", "x":8, "y":2.25}, {"label":"R", "x":9, "y":2.25}, {"label":"T", "x":10, "y":2.25}, {"label":"Y", "x":11, "y":2.25}, {"label":"U", "x":12, "y":2.25}, {"label":"I", "x":13, "y":2.25}, {"label":"O", "x":14, "y":2.25}, {"label":"P", "x":15, "y":2.25}, {"label":"{", "x":16, "y":2.25}, {"label":"}", "x":17, "y":2.25}, {"label":"|", "x":18, "y":2.25, "w":1.5}, {"label":"7", "x":20, "y":2.25}, {"label":"8", "x":21, "y":2.25}, {"label":"9", "x":22, "y":2.25}, {"label":"+", "x":23, "y":2.25, "h":2}, {"label":"4", "x":1, "y":3.25}, {"label":"5", "x":2, "y":3.25}, {"label":"6", "x":3, "y":3.25}, {"label":"Caps Lock", "x":4.5, "y":3.25, "w":1.75}, {"label":"A", "x":6.25, "y":3.25}, {"label":"S", "x":7.25, "y":3.25}, {"label":"D", "x":8.25, "y":3.25}, {"label":"F", "x":9.25, "y":3.25}, {"label":"G", "x":10.25, "y":3.25}, {"label":"H", "x":11.25, "y":3.25}, {"label":"J", "x":12.25, "y":3.25}, {"label":"K", "x":13.25, "y":3.25}, {"label":"L", "x":14.25, "y":3.25}, {"label":":", "x":15.25, "y":3.25}, {"label":"\"", "x":16.25, "y":3.25}, {"label":"Enter", "x":17.25, "y":3.25, "w":2.25}, {"label":"4", "x":20, "y":3.25}, {"label":"5", "x":21, "y":3.25}, {"label":"6", "x":22, "y":3.25}, {"label":"Enter", "x":0, "y":4.25, "h":2}, {"label":"1", "x":1, "y":4.25}, {"label":"2", "x":2, "y":4.25}, {"label":"3", "x":3, "y":4.25}, {"label":"\u2191", "x":4.25, "y":4.5}, {"label":"Shift", "x":5.5, "y":4.25, "w":1.25}, {"label":"Z", "x":6.75, "y":4.25}, {"label":"X", "x":7.75, "y":4.25}, {"label":"C", "x":8.75, "y":4.25}, {"label":"V", "x":9.75, "y":4.25}, {"label":"B", "x":10.75, "y":4.25}, {"label":"N", "x":11.75, "y":4.25}, {"label":"M", "x":12.75, "y":4.25}, {"label":"<", "x":13.75, "y":4.25}, {"label":">", "x":14.75, "y":4.25}, {"label":"?", "x":15.75, "y":4.25}, {"label":"Shift", "x":16.75, "y":4.25, "w":1.75}, {"label":"\u2191", "x":18.75, "y":4.5}, {"label":"1", "x":20, "y":4.25}, {"label":"2", "x":21, "y":4.25}, {"label":"3", "x":22, "y":4.25}, {"label":"Enter", "x":23, "y":4.25, "h":2}, {"label":"0", "x":1, "y":5.25}, {"label":".", "x":2, "y":5.25}, {"label":"\u2190", "x":3.25, "y":5.5}, {"label":"\u2193", "x":4.25, "y":5.5}, {"label":"\u2192", "x":5.25, "y":5.5}, {"label":"Ctrl", "x":6.5, "y":5.25}, {"label":"Win", "x":7.5, "y":5.25}, {"label":"Alt", "x":8.5, "y":5.25}, {"label":"7u", "x":8.5, "y":5.25, "w":7}, {"label":"1u", "x":9.5, "y":5.25}, {"label":"4u", "x":9.5, "y":5.25, "w":4}, {"label":"1u", "x":10.5, "y":5.25}, {"label":"1u", "x":11.5, "y":5.25}, {"label":"1u", "x":12.5, "y":5.25}, {"label":"Alt", "x":13.5, "y":5.25}, {"label":"Win", "x":14.5, "y":5.25}, {"label":"Menu", "x":15.5, "y":5.25}, {"label":"Ctrl", "x":16.5, "y":5.25}, {"label":"\u2190", "x":17.75, "y":5.5}, {"label":"\u2193", "x":18.75, "y":5.5}, {"label":"\u2192", "x":19.75, "y":5.5}, {"label":"0", "x":21, "y":5.25}, {"label":".", "x":22, "y":5.25}] + } + } +} diff --git a/keyboards/clueboard/2x1800/keymaps/default/config.h b/keyboards/clueboard/2x1800/keymaps/default/config.h new file mode 100644 index 000000000000..f5eccb225297 --- /dev/null +++ b/keyboards/clueboard/2x1800/keymaps/default/config.h @@ -0,0 +1,24 @@ +/* Copyright 2017 Zach White + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +// place overrides here + +#endif diff --git a/keyboards/clueboard/2x1800/keymaps/default/keymap.c b/keyboards/clueboard/2x1800/keymaps/default/keymap.c new file mode 100644 index 000000000000..f0b7184e0fbb --- /dev/null +++ b/keyboards/clueboard/2x1800/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2017 Zach White + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "2x1800.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT( + KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS, KC_INS, \ + \ + KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, 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_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ + KC_PPLS, KC_P7, KC_P8, KC_P9, 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_BSLS, KC_P7, KC_P8, KC_P9, KC_PSLS, \ + KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ + KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_SLSH, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT \ +) +}; diff --git a/keyboards/clueboard/2x1800/keymaps/default/readme.md b/keyboards/clueboard/2x1800/keymaps/default/readme.md new file mode 100644 index 000000000000..4e3457efce62 --- /dev/null +++ b/keyboards/clueboard/2x1800/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for 2x1800 diff --git a/keyboards/clueboard/2x1800/keymaps/default_4u/config.h b/keyboards/clueboard/2x1800/keymaps/default_4u/config.h new file mode 100644 index 000000000000..f5eccb225297 --- /dev/null +++ b/keyboards/clueboard/2x1800/keymaps/default_4u/config.h @@ -0,0 +1,24 @@ +/* Copyright 2017 Zach White + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +// place overrides here + +#endif diff --git a/keyboards/clueboard/2x1800/keymaps/default_4u/keymap.c b/keyboards/clueboard/2x1800/keymaps/default_4u/keymap.c new file mode 100644 index 000000000000..d12a3fc8f307 --- /dev/null +++ b/keyboards/clueboard/2x1800/keymaps/default_4u/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2017 Zach White + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "2x1800.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_4U_SPACE( + KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS, KC_INS, \ + \ + KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, 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_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ + KC_PPLS, KC_P7, KC_P8, KC_P9, 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_BSLS, KC_P7, KC_P8, KC_P9, KC_PSLS, \ + KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ + KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_SLSH, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT \ +) +}; diff --git a/keyboards/clueboard/2x1800/keymaps/default_4u/readme.md b/keyboards/clueboard/2x1800/keymaps/default_4u/readme.md new file mode 100644 index 000000000000..a696972e8c4b --- /dev/null +++ b/keyboards/clueboard/2x1800/keymaps/default_4u/readme.md @@ -0,0 +1 @@ +# The default keymap for 2x1800 with 4u Spacebar diff --git a/keyboards/clueboard/2x1800/keymaps/default_7u/config.h b/keyboards/clueboard/2x1800/keymaps/default_7u/config.h new file mode 100644 index 000000000000..f5eccb225297 --- /dev/null +++ b/keyboards/clueboard/2x1800/keymaps/default_7u/config.h @@ -0,0 +1,24 @@ +/* Copyright 2017 Zach White + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +// place overrides here + +#endif diff --git a/keyboards/clueboard/2x1800/keymaps/default_7u/keymap.c b/keyboards/clueboard/2x1800/keymaps/default_7u/keymap.c new file mode 100644 index 000000000000..5df6fe0fbf6e --- /dev/null +++ b/keyboards/clueboard/2x1800/keymaps/default_7u/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2017 Zach White + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "2x1800.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_7U_SPACE( + KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS, KC_INS, \ + \ + KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, 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_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ + KC_PPLS, KC_P7, KC_P8, KC_P9, 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_BSLS, KC_P7, KC_P8, KC_P9, KC_PSLS, \ + KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ + KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_SLSH, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT \ +) +}; diff --git a/keyboards/clueboard/2x1800/keymaps/default_7u/readme.md b/keyboards/clueboard/2x1800/keymaps/default_7u/readme.md new file mode 100644 index 000000000000..f5718e842dc2 --- /dev/null +++ b/keyboards/clueboard/2x1800/keymaps/default_7u/readme.md @@ -0,0 +1 @@ +# The default keymap for 2x1800 with 7u spacebar diff --git a/keyboards/clueboard/2x1800/keymaps/macroboard/config.h b/keyboards/clueboard/2x1800/keymaps/macroboard/config.h new file mode 100644 index 000000000000..f5eccb225297 --- /dev/null +++ b/keyboards/clueboard/2x1800/keymaps/macroboard/config.h @@ -0,0 +1,24 @@ +/* Copyright 2017 Zach White + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +// place overrides here + +#endif diff --git a/keyboards/clueboard/2x1800/keymaps/macroboard/keymap.c b/keyboards/clueboard/2x1800/keymaps/macroboard/keymap.c new file mode 100644 index 000000000000..2d8ef349edd7 --- /dev/null +++ b/keyboards/clueboard/2x1800/keymaps/macroboard/keymap.c @@ -0,0 +1,123 @@ +/* Copyright 2017 Zach White + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "2x1800.h" + +enum custom_keycodes { + MACRO01 = SAFE_RANGE, + MACRO02, + MACRO03, + MACRO04, + MACRO05, + MACRO06, + MACRO07, + MACRO08, + MACRO09, + MACRO10, + MACRO11, + MACRO12, + MACRO13, + MACRO14, + MACRO15, + MACRO16, + MACRO17, + MACRO18, + MACRO19, + MACRO20, + MACRO21, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT( + MACRO01, MACRO02, MACRO03, MACRO04, KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS, KC_INS, \ + \ + MACRO05, MACRO06, MACRO07, MACRO08, KC_GRV, 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_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ + MACRO09, MACRO10, MACRO11, MACRO12, 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_BSLS, KC_P7, KC_P8, KC_P9, KC_PSLS, \ + MACRO13, MACRO14, MACRO15, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ + MACRO16, MACRO17, MACRO18, MACRO19, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_SLSH, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ + MACRO20, MACRO21, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT \ +) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch(keycode) { + case MACRO01: + SEND_STRING("This is macro 01"); + return false; + case MACRO02: + SEND_STRING("This is macro 02"); + return false; + case MACRO03: + SEND_STRING("This is macro 03"); + return false; + case MACRO04: + SEND_STRING("This is macro 04"); + return false; + case MACRO05: + SEND_STRING("This is macro 05"); + return false; + case MACRO06: + SEND_STRING("This is macro 06"); + return false; + case MACRO07: + SEND_STRING("This is macro 07"); + return false; + case MACRO08: + SEND_STRING("This is macro 08"); + return false; + case MACRO09: + SEND_STRING("This is macro 09"); + return false; + case MACRO10: + SEND_STRING("This is macro 10"); + return false; + case MACRO11: + SEND_STRING("This is macro 11"); + return false; + case MACRO12: + SEND_STRING("This is macro 12"); + return false; + case MACRO13: + SEND_STRING("This is macro 13"); + return false; + case MACRO14: + SEND_STRING("This is macro 14"); + return false; + case MACRO15: + SEND_STRING("This is macro 15"); + return false; + case MACRO16: + SEND_STRING("This is macro 16"); + return false; + case MACRO17: + SEND_STRING("This is macro 17"); + return false; + case MACRO18: + SEND_STRING("This is macro 18"); + return false; + case MACRO19: + SEND_STRING("This is macro 19"); + return false; + case MACRO20: + SEND_STRING("This is macro 20"); + return false; + case MACRO21: + SEND_STRING("This is macro 21"); + return false; + } + } + return true; +}; diff --git a/keyboards/clueboard/2x1800/keymaps/macroboard/readme.md b/keyboards/clueboard/2x1800/keymaps/macroboard/readme.md new file mode 100644 index 000000000000..61c9468e7dc1 --- /dev/null +++ b/keyboards/clueboard/2x1800/keymaps/macroboard/readme.md @@ -0,0 +1 @@ +# A macro keymap template diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_left/config.h b/keyboards/clueboard/2x1800/keymaps/mouseboard_left/config.h new file mode 100644 index 000000000000..f5eccb225297 --- /dev/null +++ b/keyboards/clueboard/2x1800/keymaps/mouseboard_left/config.h @@ -0,0 +1,24 @@ +/* Copyright 2017 Zach White + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +// place overrides here + +#endif diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_left/keymap.c b/keyboards/clueboard/2x1800/keymaps/mouseboard_left/keymap.c new file mode 100644 index 000000000000..d4108a779f4c --- /dev/null +++ b/keyboards/clueboard/2x1800/keymaps/mouseboard_left/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2017 Zach White + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "2x1800.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT( + KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS, KC_INS, \ + \ + KC_NO, KC_NO, KC_BTN4, KC_BTN5, KC_GRV, 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_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ + KC_WH_U, KC_NO, KC_MS_U, KC_NO, 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_BSLS, KC_P7, KC_P8, KC_P9, KC_PSLS, \ + KC_MS_L, KC_BTN3, KC_MS_R, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ + KC_WH_D, KC_BTN1, KC_MS_D, KC_BTN2, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_SLSH, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ + KC_WH_L, KC_WH_R, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT \ +) +}; diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_left/readme.md b/keyboards/clueboard/2x1800/keymaps/mouseboard_left/readme.md new file mode 100644 index 000000000000..41304eca5e91 --- /dev/null +++ b/keyboards/clueboard/2x1800/keymaps/mouseboard_left/readme.md @@ -0,0 +1 @@ +# Mouse keys in the left numpad diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_left/rules.mk b/keyboards/clueboard/2x1800/keymaps/mouseboard_left/rules.mk new file mode 100644 index 000000000000..6c605daecf53 --- /dev/null +++ b/keyboards/clueboard/2x1800/keymaps/mouseboard_left/rules.mk @@ -0,0 +1 @@ +MOUSEKEY_ENABLE = yes diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_right/config.h b/keyboards/clueboard/2x1800/keymaps/mouseboard_right/config.h new file mode 100644 index 000000000000..f5eccb225297 --- /dev/null +++ b/keyboards/clueboard/2x1800/keymaps/mouseboard_right/config.h @@ -0,0 +1,24 @@ +/* Copyright 2017 Zach White + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +// place overrides here + +#endif diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_right/keymap.c b/keyboards/clueboard/2x1800/keymaps/mouseboard_right/keymap.c new file mode 100644 index 000000000000..ee255e239203 --- /dev/null +++ b/keyboards/clueboard/2x1800/keymaps/mouseboard_right/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2017 Zach White + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "2x1800.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT( + KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS, KC_INS, \ + \ + KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, 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_BSPC, KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, \ + KC_PPLS, KC_P7, KC_P8, KC_P9, 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_BSLS, KC_NO, KC_MS_U, KC_NO, KC_WH_U, \ + KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_MS_L, KC_BTN3, KC_MS_R, \ + KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_SLSH, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_BTN1, KC_MS_D, KC_BTN2, KC_WH_D, \ + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_WH_L, KC_WH_R \ +) +}; diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_right/readme.md b/keyboards/clueboard/2x1800/keymaps/mouseboard_right/readme.md new file mode 100644 index 000000000000..51939d6347fc --- /dev/null +++ b/keyboards/clueboard/2x1800/keymaps/mouseboard_right/readme.md @@ -0,0 +1 @@ +# Mouse keys in the right numpad diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_right/rules.mk b/keyboards/clueboard/2x1800/keymaps/mouseboard_right/rules.mk new file mode 100644 index 000000000000..6c605daecf53 --- /dev/null +++ b/keyboards/clueboard/2x1800/keymaps/mouseboard_right/rules.mk @@ -0,0 +1 @@ +MOUSEKEY_ENABLE = yes diff --git a/keyboards/clueboard/2x1800/readme.md b/keyboards/clueboard/2x1800/readme.md new file mode 100644 index 000000000000..a820852c1e85 --- /dev/null +++ b/keyboards/clueboard/2x1800/readme.md @@ -0,0 +1,13 @@ +# Clueboard 2x1800 + +Clueboard Double 1800 All The Way + +* Keyboard Maintainer: [Zach White](https://github.com/skullydazed) +* Hardware Supported: Clueboard 2x1800 PCB +* Hardware Availability: 2018 Apr 1 Group Buy + +Make example for this keyboard (after setting up your build environment): + + make 2x1800:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/clueboard/2x1800/rules.mk b/keyboards/clueboard/2x1800/rules.mk new file mode 100644 index 000000000000..2f09f9b9ca69 --- /dev/null +++ b/keyboards/clueboard/2x1800/rules.mk @@ -0,0 +1,63 @@ +# MCU name +MCU = at90usb1286 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=1024 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = no # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/clueboard/readme.md b/keyboards/clueboard/readme.md index 5dfa1e35379b..226bc079c65f 100644 --- a/keyboards/clueboard/readme.md +++ b/keyboards/clueboard/readme.md @@ -1,5 +1,3 @@ -# Clueboard - ![Clueboard Logo](https://static1.squarespace.com/static/55c13bdee4b099be5dcb82eb/t/59c9703318b27d1ab34f40df/1508257572555/) Clueboard makes fully customizable custom keyboards in a variety of formfactors. Inside this directory you'll find support for the entire line of Clueboard products. @@ -9,5 +7,6 @@ Clueboard makes fully customizable custom keyboards in a variety of formfactors. * [`17`](17/): Clueboard "Cluepad" PCB * [`60`](60/): Clueboard 60% PCB * [`66`](66/): Clueboard 66% PCB + * [`2x1800`](2x1800/): Clueboard 2x1800 PCB * [`card`](card/): Special Cluecard PCB * Hardware Availability: [clueboard.co](https://clueboard.co/) From 67053712f885641d3a8332239416ff8163a68647 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Mon, 2 Apr 2018 13:23:21 -0700 Subject: [PATCH 168/578] Refactor/eagle viper with new layouts for QMK Configurator (#2659) * rename KEYMAP to LAYOUT_ALL * Standard Layout Eagle Refactor New layout LAYOUT_EAGLE Got standard layout backspace working * Remove split right shift support for standard layout eagle * add back the KC_NO for split right shift * Remove KC_NO from bottom row to support standard 60 layout * Fix formatting issues with mechmerlin keymap * remove extra KC_NO from split right shift in LAYOUT_EAGLE * Preliminary checkin for new layout LAYOUT_VIPER * Remove some of the KC_NO from the layout * Fix formatting * missed a KC_NO for the LAYOUT_EAGLE * remove KC_NO from enter key of LAYOUT_VIPER * some more formatting changes * Default 60 with split left right shift and backspace * add info.json layouts to match the new LAYOUTs * change formatting of LAYOUT names * propogate renames to info.json --- keyboards/eagle_viper/info.json | 28 ++++++++---- .../eagle_viper/v2/keymaps/default/keymap.c | 4 +- .../v2/keymaps/mechmerlin/keymap.c | 30 ++++++------- .../v2/keymaps/profanum429/keymap.c | 26 +++++------ keyboards/eagle_viper/v2/v2.h | 44 ++++++++++++++++++- 5 files changed, 93 insertions(+), 39 deletions(-) diff --git a/keyboards/eagle_viper/info.json b/keyboards/eagle_viper/info.json index 45dba95bbf38..9668c502001b 100644 --- a/keyboards/eagle_viper/info.json +++ b/keyboards/eagle_viper/info.json @@ -1,13 +1,25 @@ { - "keyboard_name": "Eagle/Viper", - "manufacturer": "Duck", - "processor": "atmega32u4", - "bootloader": "atmel-dfu", - "width": 15, - "height": 5, + "keyboard_name": "Eagle/Viper", + "manufacturer": "Duck", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "width": 15, + "height": 5, "layouts": { - "KEYMAP": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"iso", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":5}, {"x":9, "y":4}, {"x":10, "y":4}, {"label":"Win", "x":11, "y":4, "w":1.5}, {"label":"Menu", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}, {"label":"|", "x":13.75, "y":5}] + "LAYOUT_all": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"iso", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":5}, {"x":9, "y":4}, {"x":10, "y":4}, {"label":"Win", "x":11, "y":4, "w":1.5}, {"label":"Menu", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}, {"label":"|", "x":13.75, "y":5}] + }, + + "LAYOUT_eagle": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + }, + + "LAYOUT_eagle_splits": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + }, + + "LAYOUT_viper": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}] } } } diff --git a/keyboards/eagle_viper/v2/keymaps/default/keymap.c b/keyboards/eagle_viper/v2/keymaps/default/keymap.c index c76eaa7be4d1..3fdd1cfdd36f 100644 --- a/keyboards/eagle_viper/v2/keymaps/default/keymap.c +++ b/keyboards/eagle_viper/v2/keymaps/default/keymap.c @@ -17,14 +17,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* layer 0: qwerty */ - [0] = KEYMAP(\ + [0] = LAYOUT_all(\ KC_GRV, 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_NO, KC_BSPC, 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_BSLS, KC_CAPS, 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, KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_NO, KC_RALT, KC_RGUI, KC_RCTL), - [1] = KEYMAP(\ + [1] = LAYOUT_all(\ KC_TRNS, RGB_TOG, RGB_MOD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/eagle_viper/v2/keymaps/mechmerlin/keymap.c b/keyboards/eagle_viper/v2/keymaps/mechmerlin/keymap.c index 2dc3f0190f6e..a7f14b67827f 100644 --- a/keyboards/eagle_viper/v2/keymaps/mechmerlin/keymap.c +++ b/keyboards/eagle_viper/v2/keymaps/mechmerlin/keymap.c @@ -17,26 +17,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* layer 0: qwerty */ - [0] = KEYMAP(\ - KC_GESC, 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_NO, KC_BSPC, - 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_BSLS, - 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, - KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_NO, KC_RALT, KC_RGUI, KC_RCTL), + [0] = LAYOUT_eagle(\ + KC_GESC, 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_BSPC, + 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_BSLS, + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_RGUI, KC_RCTL), - [1] = KEYMAP(\ - KC_TRNS, 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_TRNS, KC_DEL, + [1] = LAYOUT_eagle(\ + KC_TRNS, 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_DEL, RGB_TOG, RGB_MOD, RGB_VAI, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, - KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_PGDN, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, TG(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_PGDN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, TG(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - [2] = KEYMAP(\ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + [2] = LAYOUT_eagle(\ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT), }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { diff --git a/keyboards/eagle_viper/v2/keymaps/profanum429/keymap.c b/keyboards/eagle_viper/v2/keymaps/profanum429/keymap.c index 4141f612285d..bd53fc3e76bc 100644 --- a/keyboards/eagle_viper/v2/keymaps/profanum429/keymap.c +++ b/keyboards/eagle_viper/v2/keymaps/profanum429/keymap.c @@ -17,19 +17,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* layer 0: qwerty */ - [0] = KEYMAP(\ - 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, KC_GRV, - 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, - 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, - KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_NO, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_NO, KC_RALT, KC_RGUI, KC_NO), - - [1] = KEYMAP(\ - KC_TRNS, 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, - KC_CAPS, RGB_TOG, RGB_MOD, RGB_VAI, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, - KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_TRNS, KC_ENT, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [0] = LAYOUT_viper(\ + 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, KC_GRV, + 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, + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI), + + [1] = LAYOUT_viper(\ + KC_TRNS, 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, + KC_CAPS, RGB_TOG, RGB_MOD, RGB_VAI, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, + KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_ENT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { diff --git a/keyboards/eagle_viper/v2/v2.h b/keyboards/eagle_viper/v2/v2.h index db4d09007ab4..63e52690fa6a 100644 --- a/keyboards/eagle_viper/v2/v2.h +++ b/keyboards/eagle_viper/v2/v2.h @@ -18,7 +18,7 @@ #include "../eagle_viper.h" -#define KEYMAP( \ +#define LAYOUT_all( \ K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4O, \ K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3O, \ K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2M, K2O, \ @@ -31,4 +31,46 @@ { K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, KC_NO, K1M, K1N, K1O, }, \ { K0A, K0B, K0C, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K0J, KC_NO, K0K, K0L, K0M, K0N, K0O } \ } + +#define LAYOUT_eagle( \ + K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4O, \ + K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3O, \ + K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2O, \ + K1A, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1M, K1N, \ + K0A, K0B, K0C, K0J, K0K, K0M, K0N, K0O \ +) { \ + { K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, KC_NO, K4O, }, \ + { K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, KC_NO, K3O, }, \ + { K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, KC_NO, KC_NO, K2O, }, \ + { K1A, KC_NO, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, KC_NO, K1M, K1N, KC_NO, }, \ + { K0A, K0B, K0C, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K0J, KC_NO, K0K, KC_NO, K0M, K0N, K0O } \ +} + +#define LAYOUT_eagle_splits( \ + K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4O, \ + K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3O, \ + K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2O, \ + K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1M, K1N, K1O, \ + K0A, K0B, K0C, K0J, K0K, K0M, K0N, K0O \ +) { \ + { K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4O, }, \ + { K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, KC_NO, K3O, }, \ + { K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, KC_NO, KC_NO, K2O, }, \ + { K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, KC_NO, K1M, K1N, K1O, }, \ + { K0A, K0B, K0C, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K0J, KC_NO, K0K, KC_NO, K0M, K0N, K0O } \ +} + +#define LAYOUT_viper( \ + K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4O, \ + K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3O, \ + K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2O, \ + K1A, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1M, K1N, K1O, \ + K0B, K0C, K0J, K0M, K0N \ +) { \ + { K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4O, }, \ + { K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, KC_NO, K3O, }, \ + { K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, KC_NO, KC_NO, K2O, }, \ + { K1A, KC_NO, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, KC_NO, K1M, K1N, K1O, }, \ + { KC_NO, K0B, K0C, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K0J, KC_NO, KC_NO, KC_NO, K0M, K0N, KC_NO } \ +} #endif From f6b3c67678d346b57c965142ca4a2b6ba588bbb7 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Tue, 3 Apr 2018 19:43:40 -0700 Subject: [PATCH 169/578] Update whitefox to use the K-Type teensy workaround --- build_keyboard.mk | 2 ++ .../boards/IC_TEENSY_3_1}/board.c | 0 .../boards/IC_TEENSY_3_1}/board.h | 0 drivers/boards/IC_TEENSY_3_1/board.mk | 5 +++++ keyboards/k_type/boards/K_TYPE_TEENSY_3_1/board.mk | 5 ----- keyboards/k_type/rules.mk | 2 +- keyboards/whitefox/rules.mk | 10 ++++++---- tmk_core/chibios.mk | 3 +++ 8 files changed, 17 insertions(+), 10 deletions(-) rename {keyboards/k_type/boards/K_TYPE_TEENSY_3_1 => drivers/boards/IC_TEENSY_3_1}/board.c (100%) rename {keyboards/k_type/boards/K_TYPE_TEENSY_3_1 => drivers/boards/IC_TEENSY_3_1}/board.h (100%) create mode 100644 drivers/boards/IC_TEENSY_3_1/board.mk delete mode 100644 keyboards/k_type/boards/K_TYPE_TEENSY_3_1/board.mk diff --git a/build_keyboard.mk b/build_keyboard.mk index 5a82abd31541..90a3df7768c3 100644 --- a/build_keyboard.mk +++ b/build_keyboard.mk @@ -143,6 +143,8 @@ ifeq ($(PLATFORM),CHIBIOS) OPT_DEFS += -include $(KEYBOARD_PATH_1)/bootloader_defs.h else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/boards/$(BOARD)/bootloader_defs.h)","") OPT_DEFS += -include $(KEYBOARD_PATH_1)/boards/$(BOARD)/bootloader_defs.h + else ifneq ("$(wildcard $(TOP_DIR)/drivers/boards/$(BOARD)/bootloader_defs.h)","") + OPT_DEFS += -include $(TOP_DIR)/drivers/boards/$(BOARD)/bootloader_defs.h endif endif diff --git a/keyboards/k_type/boards/K_TYPE_TEENSY_3_1/board.c b/drivers/boards/IC_TEENSY_3_1/board.c similarity index 100% rename from keyboards/k_type/boards/K_TYPE_TEENSY_3_1/board.c rename to drivers/boards/IC_TEENSY_3_1/board.c diff --git a/keyboards/k_type/boards/K_TYPE_TEENSY_3_1/board.h b/drivers/boards/IC_TEENSY_3_1/board.h similarity index 100% rename from keyboards/k_type/boards/K_TYPE_TEENSY_3_1/board.h rename to drivers/boards/IC_TEENSY_3_1/board.h diff --git a/drivers/boards/IC_TEENSY_3_1/board.mk b/drivers/boards/IC_TEENSY_3_1/board.mk new file mode 100644 index 000000000000..62f5b751c7d1 --- /dev/null +++ b/drivers/boards/IC_TEENSY_3_1/board.mk @@ -0,0 +1,5 @@ +# List of all the board related files. +BOARDSRC = $(BOARD_PATH)/boards/IC_TEENSY_3_1/board.c + +# Required include directories +BOARDINC = $(BOARD_PATH)/boards/IC_TEENSY_3_1 diff --git a/keyboards/k_type/boards/K_TYPE_TEENSY_3_1/board.mk b/keyboards/k_type/boards/K_TYPE_TEENSY_3_1/board.mk deleted file mode 100644 index c946e27fcf33..000000000000 --- a/keyboards/k_type/boards/K_TYPE_TEENSY_3_1/board.mk +++ /dev/null @@ -1,5 +0,0 @@ -# List of all the board related files. -BOARDSRC = $(BOARD_PATH)/boards/K_TYPE_TEENSY_3_1/board.c - -# Required include directories -BOARDINC = $(BOARD_PATH)/boards/K_TYPE_TEENSY_3_1 diff --git a/keyboards/k_type/rules.mk b/keyboards/k_type/rules.mk index ca6c844fb1a6..a1c56903b5c6 100644 --- a/keyboards/k_type/rules.mk +++ b/keyboards/k_type/rules.mk @@ -40,7 +40,7 @@ MCU_STARTUP = k20x7 # This board was copied from PJRC_TEENSY_3_1. The only difference should be a # hack to ensure the watchdog has started before trying to disable it. -BOARD = K_TYPE_TEENSY_3_1 +BOARD = IC_TEENSY_3_1 # Cortex version # Teensy LC is cortex-m0; Teensy 3.x are cortex-m4 diff --git a/keyboards/whitefox/rules.mk b/keyboards/whitefox/rules.mk index 32273e08aae0..9f222bf4f300 100644 --- a/keyboards/whitefox/rules.mk +++ b/keyboards/whitefox/rules.mk @@ -38,7 +38,7 @@ MCU_STARTUP = k20x7 # - PJRC_TEENSY_3 for Teensy 3.0 # - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2 # - MCHCK_K20 for Infinity KB -BOARD = PJRC_TEENSY_3_1 +BOARD = IC_TEENSY_3_1 # Cortex version # Teensy LC is cortex-m0; Teensy 3.x are cortex-m4 @@ -52,7 +52,9 @@ ARMV = 7 # 0x00000000-0x00001000 area is occupied by bootlaoder.*/ # The CORTEX_VTOR... is needed only for MCHCK/Infinity KB #OPT_DEFS = -DCORTEX_VTOR_INIT=0x00001000 -OPT_DEFS = +OPT_DEFS = + +DFU_ARGS = -d 1c11:b007 # Build Options # comment out to disable the options. @@ -70,5 +72,5 @@ BACKLIGHT_ENABLE = yes VISUALIZER_ENABLE = yes LED_DRIVER = is31fl3731c -LED_WIDTH = 16 -LED_HEIGHT = 5 \ No newline at end of file +LED_WIDTH = 16 +LED_HEIGHT = 5 diff --git a/tmk_core/chibios.mk b/tmk_core/chibios.mk index 7c7f658b25a2..e53204905fb2 100644 --- a/tmk_core/chibios.mk +++ b/tmk_core/chibios.mk @@ -63,6 +63,9 @@ else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/boards/$(BOARD)/board.mk)","") else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/boards/$(BOARD)/board.mk)","") BOARD_PATH = $(KEYBOARD_PATH_1) BOARD_MK += $(KEYBOARD_PATH_1)/boards/$(BOARD)/board.mk +else ifneq ("$(wildcard $(TOP_DIR)/drivers/boards/$(BOARD)/board.mk)","") + BOARD_PATH = $(TOP_DIR)/drivers + BOARD_MK += $(TOP_DIR)/drivers/boards/$(BOARD)/board.mk endif ifeq ("$(wildcard $(BOARD_MK))","") From c25f0e698345a2cc326b569df122facd6cea2408 Mon Sep 17 00:00:00 2001 From: mechmerlin Date: Tue, 3 Apr 2018 21:07:23 -0700 Subject: [PATCH 170/578] Fix readme to explicitly call out that there are two different versions of this board and how to compile them --- keyboards/s60_x/readme.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/keyboards/s60_x/readme.md b/keyboards/s60_x/readme.md index cd7049536f1f..efb52fbba7fb 100644 --- a/keyboards/s60_x/readme.md +++ b/keyboards/s60_x/readme.md @@ -6,8 +6,14 @@ Keyboard Maintainer: QMK Community Hardware Supported: S60-x PCB Hardware Availability: https://www.massdrop.com/buy/sentraq-60-diy-keyboard-kit?mode=guest_open +There are two versions of this keyboard, an RGB and a non RGB one. + Make example for this keyboard (after setting up your build environment): make s60_x:default +Make example for rgb version of this keyboard: + + make s60_x/rgb:default + See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. From 67268db576f2d486982f622a06f401c753617356 Mon Sep 17 00:00:00 2001 From: QMK Bot Date: Wed, 4 Apr 2018 04:21:53 +0000 Subject: [PATCH 171/578] convert to unix line-endings [skip ci] --- keyboards/s60_x/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/s60_x/readme.md b/keyboards/s60_x/readme.md index efb52fbba7fb..1a309e4fe89b 100644 --- a/keyboards/s60_x/readme.md +++ b/keyboards/s60_x/readme.md @@ -1,4 +1,4 @@ -S60-x +S60-x ===== DIY compact keyboard designed by VinnyCordeiro for Sentraq. Most of the keymaps are based on GH60 code. This is a port from TMK to QMK based on the [original S60-X Repo](https://github.com/VinnyCordeiro/tmk_keyboard). From 738588618bd4e09c9ce81bb2f6e417ef4b80c757 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Tue, 3 Apr 2018 20:30:22 -0700 Subject: [PATCH 172/578] Update input:club boards to use the proper vendor and device --- keyboards/ergodox_infinity/config.h | 6 +++--- keyboards/ergodox_infinity/keymaps/halfkeyboard/config.h | 6 ++---- keyboards/infinity60/config.h | 6 +++--- keyboards/k_type/config.h | 8 +++----- keyboards/whitefox/config.h | 6 +++--- 5 files changed, 14 insertions(+), 18 deletions(-) diff --git a/keyboards/ergodox_infinity/config.h b/keyboards/ergodox_infinity/config.h index 2f1be0d28288..c08356cb0610 100644 --- a/keyboards/ergodox_infinity/config.h +++ b/keyboards/ergodox_infinity/config.h @@ -20,11 +20,11 @@ along with this program. If not, see . /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6464 +#define VENDOR_ID 0x1c11 +#define PRODUCT_ID 0xb04d #define DEVICE_VER 0x0001 #define MANUFACTURER Input Club -#define PRODUCT Ergodox Infinity (QMK) +#define PRODUCT Infinity_Ergodox/QMK #define MOUSEKEY_INTERVAL 20 #define MOUSEKEY_DELAY 0 diff --git a/keyboards/ergodox_infinity/keymaps/halfkeyboard/config.h b/keyboards/ergodox_infinity/keymaps/halfkeyboard/config.h index d86251946a9d..187ce87034e3 100644 --- a/keyboards/ergodox_infinity/keymaps/halfkeyboard/config.h +++ b/keyboards/ergodox_infinity/keymaps/halfkeyboard/config.h @@ -25,10 +25,8 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 /* in python2: list(u"whatever".encode('utf-16-le')) */ /* at most 32 characters or the ugly hack in usb_main.c borks */ -#define MANUFACTURER "TMK" -#define USBSTR_MANUFACTURER 'T', '\x00', 'M', '\x00', 'K', '\x00', ' ', '\x00' -#define PRODUCT "Infinity keyboard/TMK" -#define USBSTR_PRODUCT 'I', '\x00', 'n', '\x00', 'f', '\x00', 'i', '\x00', 'n', '\x00', 'i', '\x00', 't', '\x00', 'y', '\x00', ' ', '\x00', 'k', '\x00', 'e', '\x00', 'y', '\x00', 'b', '\x00', 'o', '\x00', 'a', '\x00', 'r', '\x00', 'd', '\x00', '/', '\x00', 'T', '\x00', 'M', '\x00', 'K', '\x00' +#define MANUFACTURER "QMK" +#define PRODUCT "Infinity keyboard/QMK" #define MOUSEKEY_INTERVAL 20 #define MOUSEKEY_DELAY 0 diff --git a/keyboards/infinity60/config.h b/keyboards/infinity60/config.h index 0a2f93e22bde..bffe6489ec29 100644 --- a/keyboards/infinity60/config.h +++ b/keyboards/infinity60/config.h @@ -21,13 +21,13 @@ along with this program. If not, see . #define PREVENT_STUCK_MODIFIERS /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6464 +#define VENDOR_ID 0x1c11 +#define PRODUCT_ID 0xb04d #define DEVICE_VER 0x0001 /* in python2: list(u"whatever".encode('utf-16-le')) */ /* at most 32 characters or the ugly hack in usb_main.c borks */ #define MANUFACTURER Input Club -#define PRODUCT Infinity 60% keyboard (QMK) +#define PRODUCT Infinity_60%/QMK /* key matrix size */ #define MATRIX_ROWS 9 #define MATRIX_COLS 7 diff --git a/keyboards/k_type/config.h b/keyboards/k_type/config.h index 7aca243988a6..d19e0ff64901 100644 --- a/keyboards/k_type/config.h +++ b/keyboards/k_type/config.h @@ -23,13 +23,11 @@ along with this program. If not, see . /* USB Device descriptor parameter */ #define VENDOR_ID 0x1c11 #define PRODUCT_ID 0xb04d -#define DEVICE_VER 673 +#define DEVICE_VER 0x0001 /* in python2: list(u"whatever".encode('utf-16-le')) */ /* at most 32 characters or the ugly hack in usb_main.c borks */ -#define MANUFACTURER "Input Club" -#define USBSTR_MANUFACTURER 'I', '\x00', 'n', '\x00', 'p', '\x00', 'u', '\x00', 't', '\x00', ' ', '\x00', 'C', '\x00', 'l', '\x00', 'u', '\x00', 'b', '\x00' -#define PRODUCT "K-Type/QMK" -#define USBSTR_PRODUCT 'K', '\x00', '-', '\x00', 'T', '\x00', 'y', '\x00', 'p', '\x00', 'e', '\x00', '/', '\x00', 'Q', '\x00', 'M', '\x00', 'K', '\x00' +#define MANUFACTURER Input Club +#define PRODUCT K-Type/QMK /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 10 diff --git a/keyboards/whitefox/config.h b/keyboards/whitefox/config.h index 9397bd61f84e..9989a92df55d 100644 --- a/keyboards/whitefox/config.h +++ b/keyboards/whitefox/config.h @@ -21,13 +21,13 @@ along with this program. If not, see . #define PREVENT_STUCK_MODIFIERS /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0F0F +#define VENDOR_ID 0x1c11 +#define PRODUCT_ID 0xb04d #define DEVICE_VER 0x0001 /* in python2: list(u"whatever".encode('utf-16-le')) */ /* at most 32 characters or the ugly hack in usb_main.c borks */ #define MANUFACTURER Input Club -#define PRODUCT WhiteFox (QMK) +#define PRODUCT WhiteFox/QMK /* key matrix size */ #define MATRIX_ROWS 9 From ba2cab1a896ee6a76dcf9bb559a8de7848f82c87 Mon Sep 17 00:00:00 2001 From: markhuguet <30506876+markhuguet@users.noreply.github.com> Date: Wed, 4 Apr 2018 12:15:43 -0400 Subject: [PATCH 173/578] This adds a keymap to the MF68 labeled factory. It is an attempt to mimic the layout on the factory keycaps of the non-backlit board. (#2674) There are some small differences: 1) FN+WASD are an arrow cluster 2) FN+Z (Start media player) and FN+] (Start Calculator) are not mapped 3) FN+GHJKL are Backlight controls 4) An FN2 layer exists for future growth 5) The CAPS key is maped as FN2, for CAPS Lock use FN+CAPS --- keyboards/mf68/keymaps/factory/keymap.c | 74 +++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 keyboards/mf68/keymaps/factory/keymap.c diff --git a/keyboards/mf68/keymaps/factory/keymap.c b/keyboards/mf68/keymaps/factory/keymap.c new file mode 100644 index 000000000000..2533c93c3909 --- /dev/null +++ b/keyboards/mf68/keymaps/factory/keymap.c @@ -0,0 +1,74 @@ +#include "mf68.h" + +#define _QWERTY 0 +#define _FN1 1 +#define _FN2 2 +#define KC_ KC_TRNS +#define KC_X0 LT(_FN2, KC_GRV) +#define KC_X1 MO(_FN1) +#define KC_X2 BL_STEP +#define KC_X3 BL_BRTG +#define KC_X4 BL_TOGG +#define KC_X5 BL_INC +#define KC_X6 BL_DEC + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = KC_KEYMAP( + /*,----+----+----+----+----+----+----+----+----+----+----+----+----+--------. ,----+----. */ + ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL , BSPC , INS ,PGUP, + /*|----`----`----`----`----`----`----`----`----`----`----`----`----`--------| |----`----| */ + TAB , Q , W , E , R , T , Y , U , I , O , P ,LBRC,RBRC, BSLS , DEL ,PGDN, + /*|------`----`----`----`----`----`----`----`----`----`----`----`----`------| `----`----' */ + X0 , A , S , D , F , G , H , J , K , L ,SCLN,QUOT, ENTER , + /*|-------`----`----`----`----`----`----`----`----`----`----`----`----------| ,----. */ + LSFT , Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, RSFT , UP , + /*|---------`----`----`----`----`----`----`----`----`----`----`-------------.--|----|----. */ + LCTL ,LGUI ,LALT , SPACE , X1 ,RALT ,RCTL , LEFT,DOWN,RGHT + /*`-----+-----+-----+------------------------------+------+-----+-----' `----+----+----' */ + ), + + [_FN1] = KC_KEYMAP( + /*,----+----+----+----+----+----+----+----+----+----+----+----+----+--------. ,----+----. */ + GRV , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,F12 , BSPC , ,HOME, + /*|esc-`-1--`-2--`-3--`-4--`-5--`-6--`-7--`-8--`-9--`-0--`mnus`plus`--bksp--| |ins-`pgup| */ + , , UP , , , , , , ,PSCR,SLCK,PAUS, X2 , , ,END, + /*|tab---`-q--`-w--`-e--`-r--`-t--`-y--`-u--`-i--`-o--`-p--`-{--`-}--`--|---| `del-`pgdn' */ + CAPS ,LEFT,DOWN,RGHT, , X6 , X5 , X4 , X3 , X2 ,HOME, , , + /*|caps---`-a--`-s--`-d--`-f--`-g--`-h--`-j--`-k--`-l--`-;--`-'--`----enter-| ,----. */ + , ,MPLY,MSTP,MPRV,MNXT,VOLD,VOLU,MUTE, ,END , , , + /*|shift----`-z--`-x--`-c--`-v--`-b--`-n--`-m--`-,--`-.--`-/--`-------shift-.--|-up-|----. */ + , , , , , , , , , + /*`ctrl-+-gui-+-alt-+----------space---------------+-fn---+-alt-+ctrl-' `left+down+rght' */ + ), + + [_FN2] = KC_KEYMAP( + /*,----+----+----+----+----+----+----+----+----+----+----+----+----+--------. ,----+----. */ + GRV , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,F12 , BSPC , VOLU,HOME, + /*|esc-`-1--`-2--`-3--`-4--`-5--`-6--`-7--`-8--`-9--`-0--`mnus`plus`--bksp--| |ins-`pgup| */ + , , , UP , , , , 7 , 8 , 9 , , , , , VOLD,END, + /*|tab---`-q--`-w--`-e--`-r--`-t--`-y--`-u--`-i--`-o--`-p--`-{--`-}--`--|---| `del-`pgdn' */ + , ,LEFT,DOWN,RGHT, , , 4 , 5 , 6 , , , , + /*|caps---`-a--`-s--`-d--`-f--`-g--`-h--`-j--`-k--`-l--`-;--`-'--`----enter-| ,----. */ + , , , , , , 0 , 1 , 2 , 3 , , , MUTE, + /*|shift----`-z--`-x--`-c--`-v--`-b--`-n--`-m--`-,--`-.--`-/--`-------shift-.--|-up-|----. */ + , , , , , , , MPRV,MPLY,MNXT + /*`ctrl-+-gui-+-alt-+----------space---------------+-fn---+-alt-+ctrl-' `left+down+rght' */ + ) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; From f281f7dc3a0495a014ec05a94d2347bfbe530fc3 Mon Sep 17 00:00:00 2001 From: Florian Date: Wed, 4 Apr 2018 18:16:49 +0200 Subject: [PATCH 174/578] i got a new toy (#2673) Personal keymap for Waples --- keyboards/jj40/keymaps/waples/README.md | 55 ++++++++++ keyboards/jj40/keymaps/waples/config.h | 9 ++ keyboards/jj40/keymaps/waples/jj40.h | 70 +++++++++++++ keyboards/jj40/keymaps/waples/keymap.c | 134 ++++++++++++++++++++++++ keyboards/jj40/keymaps/waples/rules.mk | 11 ++ 5 files changed, 279 insertions(+) create mode 100644 keyboards/jj40/keymaps/waples/README.md create mode 100644 keyboards/jj40/keymaps/waples/config.h create mode 100644 keyboards/jj40/keymaps/waples/jj40.h create mode 100644 keyboards/jj40/keymaps/waples/keymap.c create mode 100644 keyboards/jj40/keymaps/waples/rules.mk diff --git a/keyboards/jj40/keymaps/waples/README.md b/keyboards/jj40/keymaps/waples/README.md new file mode 100644 index 000000000000..3394971b965e --- /dev/null +++ b/keyboards/jj40/keymaps/waples/README.md @@ -0,0 +1,55 @@ +# Waples jj40 keymap +> based heavily on my lets split +[Waples](https://www.github.com/Waples) + +### Layers +I currently have the following layers in my keymap: +* Qwerty (as default) +* Dvorak (still learning this type of layout, so not really used much) +* Gaming (WIP! I tried some I found, but didn't like them, so I'm in the progress of making my own) +* Lefty (lower) +* Righty (raise) +* Dual (adjust) + +#### QWERTY + | Tab | Q | W | E | R | T | Y | U | I | O | P | Bsp | + |C_Esc| A | S | D | F | G | H | J | K | L | ; |S_Ent| + | Sft | Z | X | C | V | B | N | M | , | . | / | " | + |P_SCR| GUI | Alt | Cps | ^L^ | Bsp | Spc | ^R^ | Lft | Dwn | Up! | Rgt | + + +#### DVORAK + | Tab | " | , | . | P | Y | F | G | C | R | L | Bsp | + |C_Esc| A | O | E | U | I | D | H | T | N | S |S_Ent| + | Sft | ; | Q | J | K | X | B | M | W | V | Z | / | + |P_SCR| GUI | Alt | Cps | ^L^ | Bsp | Spc | ^R^ | Lft | Dwn | Up! | Rgt | + + +#### GAMING + | Tab | Q | W | E | R | T | | | | | |QWERT| + | Esc | A | S | D | F | G | | | | | | | + | Sft | Z | X | C | V | B | | | | | | | + | Ctl | 1 | 2 | 3 | ^L^ | Spc | Bsp | ^R^ | Lft | Dwn | Up | Rgt | + + +#### LEFTY (lower) + | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bsp | + | Del | | | | | | | ( | ) | [ | ] | | + | | | | | | | | | | | | | + | | | | | | | Ins | | Hme | PgD | PgU | End | + + +#### RIGHTY (raise) + | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bsp | + | Del | F1 | F2 | F3 | F4 | | = | - | \ | / | | | + | | F5 | F6 | F7 | F8 | | | | | | | | + | | F9 | F10 | F11 | | | | | | | | | + + +#### DUAL + |Reset| | | | |QWERT| GAME| | | | |Reset| + | | Prv | Stp | Tog | Nxt | Nrm | Swp | | | | | | + | | | Mte | Vol-| Vol+| | NKRO| | | | | | + | | | | | | |DVORK| | | | | | + + diff --git a/keyboards/jj40/keymaps/waples/config.h b/keyboards/jj40/keymaps/waples/config.h new file mode 100644 index 000000000000..52aaa8f24dce --- /dev/null +++ b/keyboards/jj40/keymaps/waples/config.h @@ -0,0 +1,9 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +#define PREVENT_STUCK_MODIFIERS +#define TAPPING_TERM 300 + +#endif diff --git a/keyboards/jj40/keymaps/waples/jj40.h b/keyboards/jj40/keymaps/waples/jj40.h new file mode 100644 index 000000000000..a6162d9c084f --- /dev/null +++ b/keyboards/jj40/keymaps/waples/jj40.h @@ -0,0 +1,70 @@ +/* +Copyright 2017 Luiz Ribeiro + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef KEYMAP_COMMON_H +#define KEYMAP_COMMON_H + +#include "quantum.h" +// #include "keycode.h" +// #include "action.h" + +#define KEYMAP_GRID( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, \ + K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \ + K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \ + K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, K312 \ +) \ +{ \ + { K012, K011, K010, K09, K05, K06, K07, K08, K04, K03, K02, K01 }, \ + { K112, K111, K110, K19, K15, K16, K17, K18, K14, K13, K12, K11 }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K212, K211, K210, K29, K25, K26, K27, K28, K24, K23, K22, K21 }, \ + { K312, K311, K310, K39, K35, K36, K37, K38, K34, K33, K32, K31 } \ +} + +#define KEYMAP_MIT( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, \ + K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \ + K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \ + K31, K32, K33, K34, K35, K3X, K38, K39, K310, K311, K312 \ +) \ +{ \ + { K012, K011, K010, K09, K05, K06, K07, K08, K04, K03, K02, K01 }, \ + { K112, K111, K110, K19, K15, K16, K17, K18, K14, K13, K12, K11 }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K212, K211, K210, K29, K25, K26, K27, K28, K24, K23, K22, K21 }, \ + { K312, K311, K310, K39, K35, K3X, KC_NO, K38, K34, K33, K32, K31 } \ +} + +#define KEYMAP_OFFSET( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, \ + K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \ + K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \ + K31, K32, K33, K34, K35, K36, K3X, K39, K310, K311, K312 \ +) \ +{ \ + { K012, K011, K010, K09, K05, K06, K07, K08, K04, K03, K02, K01 }, \ + { K112, K111, K110, K19, K15, K16, K17, K18, K14, K13, K12, K11 }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K212, K211, K210, K29, K25, K26, K27, K28, K24, K23, K22, K21 }, \ + { K312, K311, K310, K39, K35, K36, K3X, KC_NO, K34, K33, K32, K31 } \ +} + +#define KEYMAP KEYMAP_GRID +#define LAYOUT_ortho_4x12 LAYOUT_planck_grid + +#endif diff --git a/keyboards/jj40/keymaps/waples/keymap.c b/keyboards/jj40/keymaps/waples/keymap.c new file mode 100644 index 000000000000..a8f2f631a8b8 --- /dev/null +++ b/keyboards/jj40/keymaps/waples/keymap.c @@ -0,0 +1,134 @@ +#include "jj40.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +#define _QWERTY 0 +#define _DVORAK 1 +#define _GAME 2 +#define _LEFTY 3 +#define _RIGHTY 4 +#define _DUAL 5 + +enum jj40_keycodes { + QWERTY = SAFE_RANGE, + DVORAK, + GAME, + LEFTY, + RIGHTY, + DUAL, +}; + +#define TG_NKRO MAGIC_TOGGLE_NKRO // Toggle NKRO +#define CTLESC MT(MOD_LCTL, KC_ESC) // Hold for left Ctrl, tap for Esc +#define SHFTENT MT(MOD_RSFT, KC_ENT) // Hold for right Shift, tap for Enter +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_QWERTY] = KEYMAP( \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + CTLESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, SHFTENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, \ + KC_PSCR, KC_BSPC, KC_LALT, _______, LEFTY, KC_LGUI, KC_SPC, RIGHTY, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +[_DVORAK] = KEYMAP( \ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ + CTLESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, SHFTENT, \ + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_SLSH, \ + KC_PSCR, KC_LGUI, KC_LALT, KC_CAPS, LEFTY, KC_BSPC, KC_SPC, RIGHTY, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +[_GAME] = KEYMAP( \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, _______, _______, _______, _______, QWERTY, \ + CTLESC, KC_A, KC_S, KC_D, KC_F, KC_G, _______, _______, _______, _______, _______, _______, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, _______, _______, _______, _______, \ + KC_LCTL, KC_1, KC_2, KC_3, LEFTY, KC_SPC, KC_BSPC, RIGHTY, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT \ +), + +[_LEFTY] = KEYMAP( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ + KC_DEL, _______, _______, _______, _______, _______, _______, KC_LPRN, KC_RPRN, KC_LBRC, KC_RBRC, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, KC_INS, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END \ +), + +[_RIGHTY] = KEYMAP( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, _______, KC_EQL, KC_MINS, KC_BSLS, KC_SLSH, _______, _______, \ + _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F9, KC_F10, KC_F11, _______, _______, _______, _______, _______, _______, _______, _______ \ +), + +[_DUAL] = KEYMAP( \ + RESET, _______, _______, _______, _______, QWERTY, GAME, _______, _______, _______, BL_BRTG, RESET, \ + _______, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, AG_NORM, AG_SWAP, _______, _______, _______, BL_TOGG, _______, \ + _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, TG_NKRO, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, DVORAK, _______, _______, _______, _______, _______ \ +) +}; + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + persistent_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + persistent_default_layer_set(1UL<<_DVORAK); + } + return false; + break; + case GAME: + if (record->event.pressed) { + persistent_default_layer_set(1UL<<_GAME); + } + return false; + break; + case LEFTY: + if (record->event.pressed) { + layer_on(_LEFTY); + update_tri_layer(_LEFTY, _RIGHTY, _DUAL); + } else { + layer_off(_LEFTY); + update_tri_layer(_LEFTY, _RIGHTY, _DUAL); + } + return false; + break; + case RIGHTY: + if (record->event.pressed) { + layer_on(_RIGHTY); + update_tri_layer(_LEFTY, _RIGHTY, _DUAL); + } else { + layer_off(_RIGHTY); + update_tri_layer(_LEFTY, _RIGHTY, _DUAL); + } + return false; + break; + case DUAL: + if (record->event.pressed) { + layer_on(_DUAL); + } else { + layer_off(_DUAL); + } + return false; + break; + } + return true; +} + +// Loop +void matrix_scan_user(void) { + // Empty +}; diff --git a/keyboards/jj40/keymaps/waples/rules.mk b/keyboards/jj40/keymaps/waples/rules.mk new file mode 100644 index 000000000000..18c5638d005a --- /dev/null +++ b/keyboards/jj40/keymaps/waples/rules.mk @@ -0,0 +1,11 @@ +# build options +BOOTMAGIC_ENABLE = yes +MOUSEKEY_ENABLE = no +EXTRAKEY_ENABLE = yes +CONSOLE_ENABLE = no +COMMAND_ENABLE = yes +BACKLIGHT_ENABLE = yes +BACKLIGHT_CUSTOM_DRIVER = yes +RGBLIGHT_ENABLE = yes +RGBLIGHT_CUSTOM_DRIVER = yes +KEY_LOCK_ENABLE = yes From 6cc9d59ee8c3eb6fbf4a3936046add277c0ad722 Mon Sep 17 00:00:00 2001 From: Nicholas Date: Wed, 4 Apr 2018 11:17:38 -0500 Subject: [PATCH 175/578] Enables unicode for Mitosis (#2668) * fixed comment typo * Fixes invalid capitalization Uppercase yes is invalid, so make treats it as no, which is confusing when it seems like it should have found the method definition for unicode. * Own keymap, comma in mitosis Own keymap is qwerty, workman, numbers, punctuation, function/mouse layers, gaming, unicode, numberpad. --- keyboards/mitosis/config.h | 2 +- keyboards/mitosis/keymaps/nzen/keymap.c | 210 +++++++++++++++++++++++ keyboards/mitosis/keymaps/nzen/readme.md | 75 ++++++++ keyboards/mitosis/keymaps/nzen/rules.mk | 8 + keyboards/mitosis/mitosis.h | 6 +- keyboards/mitosis/rules.mk | 4 +- 6 files changed, 299 insertions(+), 6 deletions(-) create mode 100644 keyboards/mitosis/keymaps/nzen/keymap.c create mode 100644 keyboards/mitosis/keymaps/nzen/readme.md create mode 100644 keyboards/mitosis/keymaps/nzen/rules.mk diff --git a/keyboards/mitosis/config.h b/keyboards/mitosis/config.h index cb6378ab4cd1..6101ee12379f 100644 --- a/keyboards/mitosis/config.h +++ b/keyboards/mitosis/config.h @@ -25,7 +25,7 @@ along with this program. If not, see . #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x6060 #define DEVICE_VER 0x0001 -#define MANUFACTURER unknown +#define MANUFACTURER Unknown #define PRODUCT Mitosis #define DESCRIPTION q.m.k. keyboard firmware for Mitosis diff --git a/keyboards/mitosis/keymaps/nzen/keymap.c b/keyboards/mitosis/keymaps/nzen/keymap.c new file mode 100644 index 000000000000..bdd63a17bbbf --- /dev/null +++ b/keyboards/mitosis/keymaps/nzen/keymap.c @@ -0,0 +1,210 @@ + + +#include "mitosis.h" + +enum mitosis_layers +{ + _QWERTY, + _WORKMAN, + _NUMBERS, + _PUNCT, + _MOUSE, + _LAYERS, + _GAMING, + _UNICODE, + _NUMPAD +}; + + +//Mousekeys +#define MOUSEKEY_DELAY 300 +#define MOUSEKEY_INTERNAL 50 +#define MOUSEKEY_MAX_SPEED 20 +#define MOUSEKEY_TIME_TO_MAX 30 +#define MOUSEKEY_WHEEL_MAX_SPEED 8 +#define MOUSEKEY_WHEEL_TIME_TO_MAX 40 + +// Fillers to make layering more clear +#define ___ KC_TRNS +#define XXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// https://github.com/nhou7/qmk_firmware_amj40/blob/master/doc/keycode.txt +/* QWERTY +['Q', 'W', 'E', 'R', 'T',// 'Y', 'U', 'I', 'O', 'P' ], +['A', 'S', 'D', 'F', 'G',// 'H', 'J', 'K', 'L', '; :' ], +['Z', 'X', 'C', 'V', 'B',// 'N', 'M', ', <', '. >', '\' "' ], +[ 'back', 'del', 'ctrl', 'L_n',// 'L_p', 'ctrl', 'ent', 'back', ], +[ 'alt', '0', 'shif', 'spac',// 'spac', 'shif', 'cap', 'alt', ] + */ +[_QWERTY] = { + {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P}, + {KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON}, + {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOTE}, + {XXX, KC_BSPACE, KC_DELETE, KC_LCTRL, TG( 2 ), TG( 3 ), KC_RCTRL, KC_ENTER, KC_BSPACE, XXX}, + {XXX, KC_LALT, KC_0, KC_LSHIFT, KC_SPACE, KC_SPACE, KC_RSHIFT, KC_CAPSLOCK, KC_RALT, XXX} +}, +/* +['Q', 'D', 'R', 'W', 'B',/ ** / 'J', 'F', 'U', 'P', '; :' ], +['A', 'S', 'H', 'T', 'G',/ ** / 'Y', 'N', 'E', 'O', 'I' ], +['Z', 'X', 'M', 'C', 'V',/ ** / 'K', 'L', ', <', '. >', '\' "' ], +[ '', '', '', '',/ ** / '', '', '', '', ], +[ '', '4', '', '',/ ** / '', '', '', '', ] + */ +[_WORKMAN] = { + {KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCOLON}, + {KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I}, + {KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMMA, KC_DOT, KC_QUOTE}, + {XXX, ___, ___, ___, ___, ___, ___, ___, ___, XXX}, + {XXX, ___, KC_1, ___, ___, ___, ___, ___, ___, XXX} +}, +/* +['9', '8', '7', '6', '5',/ ** / 'F2', 'pDn', *up* /, '*tab* /, 'pUp' ], +[' 4', ' 3', ' 2', ' 1', ' 0',/ ** / 'home', *lf* /, '*dn* /, *rt* /, 'end' ], +['undo', 'cut', 'copy', 'paste', 'os',/ ** / 'D', '_', ',', '-', '.' ], +// -- +[ '', '', '', 'L_=6',/ ** / 'L_7', '', '', '', ], +[ '', '6', '', '',/ ** / '', '', '', '', ] + */ +[_NUMBERS] = { + {KC_9, KC_8, KC_7, KC_6, KC_5, KC_F2, KC_PGDOWN, KC_UP, KC_TAB, KC_PGUP}, + {KC_4, KC_3, KC_2, KC_1, KC_0, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END}, + {LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_LGUI, KC_D, KC_UNDERSCORE, KC_COMMA, KC_MINUS, KC_DOT}, + {XXX, ___, ___, ___, TG( 2 ), TG( 3 ), ___, ___, ___, XXX}, + {XXX, ___, KC_2, ___, ___, ___, ___, ___, ___, XXX} +}, +/* +[ '#', '@', '&', '.', ';',/ ** / '_', ',', '|', '^', '%' ], +[ '*', '+', '{', '(', ':',/ ** / '"', ')', '}', '-', '=' ], +[ '\\', '?', '<', '[', '$',/ ** / '~', ']', '>', '!', '/' ], +// -- +['', '', '', 'L_8',/ ** / 'L_=7', '', '', '', ], +['', '7', '', '',/ ** / '', '', '', '', ] + */ +[_PUNCT] = { + {KC_HASH, KC_AT, KC_AMPERSAND, KC_DOT, KC_SCOLON, KC_UNDERSCORE, KC_COMMA, KC_PIPE, KC_CIRCUMFLEX, KC_PERCENT}, + {KC_ASTERISK, KC_PLUS, KC_LCBR, KC_LPRN, KC_COLON, KC_DQUO, KC_RPRN, KC_RCBR, KC_MINUS, KC_EQUAL}, + {KC_BSLASH, KC_QUESTION, KC_LT, KC_LBRACKET, KC_DOLLAR, KC_TILDE, KC_RBRACKET, KC_GT, KC_EXCLAIM, KC_SLASH}, + {XXX, ___, ___, ___, TG( 4 ), TG( 3 ), ___, ___, ___, XXX}, + {XXX, ___, KC_3, ___, ___, ___, ___, ___, ___, XXX} +}, +/* +['F6', 'F7', 'F8', 'F9', 'F10',/ ** / 'app', 'mb1', 'mmU', 'mb2', 'mwU' ], +['F1', 'F2', 'F3', 'F4', 'F5',/ ** / 'mnu', 'mmL', 'mmD', 'mmR', 'mwD' ], +['F11', 'F12', '`', 'mute', 'ESC',/ ** / 'prtSc', 'scrLk', 'mwL', 'mwR', 'mb3' ], +// -- +[ '', '', '', 'L_=8',/ ** / 'L_9', '', '', '', ], +[ '', '8', '', '',/ ** / '', '', '', '', ] + */ +[_MOUSE] = { + {KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_MENU, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_MS_WH_UP}, + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MENU, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_DOWN}, + {KC_F11, KC_F12, KC_GRAVE, KC__MUTE, KC_ESCAPE, KC_PSCREEN, KC_SLCK, KC_MS_WH_LEFT, KC_MS_WH_RIGHT, KC_MS_BTN3}, + {XXX, ___, ___, ___, TG( 4 ), TG( 5 ), ___, ___, ___, XXX}, + {XXX, ___, KC_4, ___, ___, ___, ___, ___, ___, XXX} +}, +/* +['L_ma1', '!', 'L_dv2', '!', 'L_cl3',/ ** / 'L_wk4', '!', 'L_ar5', '!', '!' ], +['!', '!', '!', '!', '!',/ ** / '!', '!', '!', '!', '!' ], +['L_gmA', '!', 'L_ucB', '!', 'L_npC',/ ** / '!', '!', '!', '!', '!' ], +// -- +[ '', '', '', 'L_=9',/ ** / 'L_=9', '', '', '', ], +[ '', '9', '', '',/ ** / '', '', '', '', ] + */ +[_LAYERS] = { + {KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, TG( 1 ), KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM}, + {KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM}, + {TG( 6 ), KC_EXCLAIM, TG( 7 ), KC_EXCLAIM, TG( 8 ), KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM}, + {XXX, ___, ___, ___, TG( 5 ), TG( 5 ), ___, ___, ___, XXX}, + {XXX, ___, KC_5, ___, ___, ___, ___, ___, ___, XXX} +}, +/* +['Q', 'W', 'E', 'R', 'T',/ ** / 'P', 'Y', '\u2191'*up* /, 'K', '1' ], +['A', 'S', 'D', 'F', 'G',/ ** / 'H', '\u2190'*lf* /, '\u2193'*dn* /, '\u2192'*rt* /, '2' ], +['Z', 'X', 'C', 'V', 'B',/ ** / 'M', '*', '*', '*', '3' ], +// -- +[ '', '', '', 'L_=A',/ ** / 'A', '', '', '', ], +[ '', 'A', '', '',/ ** / '', '', '', '', ] + */ +[_GAMING] = { + {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_P, KC_Y, KC_UP, KC_K, KC_1}, + {KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_LEFT, KC_DOWN, KC_RIGHT, KC_2}, + {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_M, KC_ASTERISK, KC_ASTERISK, KC_ASTERISK, KC_3}, + {XXX, ___, ___, ___, TG( 6 ), KC_6, ___, ___, ___, XXX}, + {XXX, ___, KC_6, ___, ___, ___, ___, ___, ___, XXX} +}, +/* +['\u00a2'cent* /, '\u00bc'1/4* /, '\u00bd'1/2* /, '\u03a3'sum* /, '\u00d8'Oslash* /,/ ** / '\u250f'box ul* /, '\u2533'box um* /, '\u2513'box ur* /, '\u03bb'lambda* /, '\u2018'sm'dn* / ], +['\u00F1'n~* /, '\u00a9'©* /, '\u00b0'degrees* /, '\u00b1'+-* /, '\u2b0f'arrow up* /,/ ** / '\u2523'box ml* /, '\u254B'box mm* /, '\u252B'box mr* /, '\u0394'delta* /, '\u2019'sm'up* / ], +['\u00a1'down !* /, '\u00bf'down ?* /, '\u00d7'mult x* /, '\u00f7'div/ * /, '\u03c0'pi* /,/ ** / '\u2517'box ll* /, '\u253b'bos lm* /, '\u251b'box lr* /, '\u201c'sm"dn* /, '\u201d'sm"up* / ], +// -- +[ '', '', '', 'L_=B',/ ** / 'B', '', '', '', ], +[ '', 'B', '', '',/ ** / '', '', '', '', ] + */ +[_UNICODE] = { + {UC(0x00A2), UC(0x00BC), UC(0x00BD), UC(0x03A3), UC(0x00D8), UC(0x250F), UC(0x2533), UC(0x2513), UC(0x03BB), UC(0x2018)}, + {UC(0x00F1), UC(0x00A9), UC(0x00B0), UC(0x00B1), UC(0x2B0F), UC(0x2523), UC(0x254B), UC(0x252B), UC(0x0394), UC(0x2019)}, + {UC(0x00A1), UC(0x00BF), UC(0x00D7), UC(0x00F7), UC(0x03C0), UC(0x2517), UC(0x253B), UC(0x251B), UC(0x201C), UC(0x201D)}, + {XXX, ___, ___, ___, TG( 7 ), KC_7, ___, ___, ___, XXX}, + {XXX, ___, KC_7, ___, ___, ___, ___, ___, ___, XXX} +}, +/* +['n-.', 'n-7', 'n-8', 'n-9', 'n--',/ ** / 'n-=', 'volU', 'volD', 'volU', 'volD' ], +['n-0', 'n-4', 'n-5', 'n-6', 'n-+',/ ** / 'N-lck', 'BACK', 'MUTE', 'RGUI', 'paus' ], +['n -*', 'n-1', 'n-2', 'n-3', 'n-/',/ ** / 'n-ent', 'PLAY', 'PREV', 'NEXT', 'insr' ], +// -- +[ '', '', '', 'L_=C',/ ** / 'C', '', '', '', ], +[ '', 'C', '', '',/ ** / '', '', '', '', ] + */ +[_NUMPAD] = { + {KC_KP_DOT, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, KC_KP_EQUAL, KC_AUDIO_VOL_UP, KC_AUDIO_VOL_DOWN, KC__VOLUP, KC__VOLDOWN/*sic on double underscore here*/}, + {KC_KP_0, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_NUMLOCK, KC_WWW_BACK, KC_AUDIO_MUTE, KC_RGUI, KC_PAUSE}, + {KC_KP_ASTERISK, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_SLASH, KC_KP_ENTER, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_PREV_TRACK, KC_MEDIA_NEXT_TRACK, KC_INSERT}, + {XXX, ___, ___, ___, TG( 8 ), KC_8, ___, ___, ___, XXX}, + {XXX, ___, KC_8, ___, ___, ___, ___, ___, ___, XXX} +}// , +/* + * / +[_] = { + {, , , , , , , , ,}, + {, , , , , , , , ,}, + {, , , , , , , , ,}, + {XXX, ___, ___, ___, TG( ), TG( ), ___, ___, ___, XXX}, + {XXX, ___, KC_, ___, ___, ___, ___, ___, ___, XXX} +} + */ +}; + +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + switch (layer) { + case _QWERTY: + case _WORKMAN: + set_led_off; + break; + case _NUMBERS: + set_led_blue; + break; + case _PUNCT: + set_led_red; + break; + case _MOUSE: + set_led_green; + break; + case _LAYERS: + set_led_yellow; + break; + case _UNICODE: + set_led_cyan; + break; + default: + break; + } +}; + +void matrix_init_user(void) { + set_unicode_input_mode(UC_LNX); // or UC_WINC +}; + + diff --git a/keyboards/mitosis/keymaps/nzen/readme.md b/keyboards/mitosis/keymaps/nzen/readme.md new file mode 100644 index 000000000000..d08c3988e428 --- /dev/null +++ b/keyboards/mitosis/keymaps/nzen/readme.md @@ -0,0 +1,75 @@ + +### personal layout: Nzen + +Levels + +* Qwerty, with quotes in place of slash question. +* Workman +* Numbers and navigation, left and right hands respectively +* Punctuation, mostly symmetric +* Function and mouse, l/r respectively +* Layer hub, to reach workman or upper layers +* Gaming, qwert and arrows +* Unicode, some numerics and one of the box styles +* Numpad and media, l/r respectively + +Bottom cluster is the same on all levels and mostly symmetric. The 'ring fingers' differ between the two sides. N is a number corresponding to the current layer. Toggle layer will be one down and one up. + +* back del/enter ctrl toggle-layer +* alt N/caps shift space + +You can preview the layout by cloning [https://gitlab.com/Nzen/impatient-broth-nenem](this webpage). The page imitates qmk's fallthrough. + +['Q', 'W', 'E', 'R', 'T',// 'Y', 'U', 'I', 'O', 'P' +['A', 'S', 'D', 'F', 'G',// 'H', 'J', 'K', 'L', '; :' +['Z', 'X', 'C', 'V', 'B',// 'N', 'M', ', <', '. >', '\' "' +[ 'back', 'del', 'ctrl', 'L_n',// 'L_p', 'ctrl', 'ent', 'back', +[ 'alt', '0', 'shif', 'spac',// 'spac', 'shif', 'cap', 'alt', + +['Q', 'D', 'R', 'W', 'B',/ ** / 'J', 'F', 'U', 'P', '; :' +['A', 'S', 'H', 'T', 'G',/ ** / 'Y', 'N', 'E', 'O', 'I' +['Z', 'X', 'M', 'C', 'V',/ ** / 'K', 'L', ', <', '. >', '\' "' +[ '', '', '', '',/ ** / '', '', '', '', +[ '', '4', '', '',/ ** / '', '', '', '', + +['9', '8', '7', '6', '5',/ ** / 'F2', 'pDn', *up* /, '*tab* /, 'pUp' +[' 4', ' 3', ' 2', ' 1', ' 0',/ ** / 'home', *lf* /, '*dn* /, *rt* /, 'end' +['undo', 'cut', 'copy', 'paste', 'os',/ ** / 'D', '_', ',', '-', '.' +[ '', '', '', 'L_=6',/ ** / 'L_7', '', '', '', +[ '', '6', '', '',/ ** / '', '', '', '', + +[ '#', '@', '&', '.', ';',/ ** / '_', ',', '|', '^', '%' +[ '*', '+', '{', '(', ':',/ ** / '"', ')', '}', '-', '=' +[ '\\', '?', '<', '[', '$',/ ** / '~', ']', '>', '!', '/' +['', '', '', 'L_8',/ ** / 'L_=7', '', '', '', +['', '7', '', '',/ ** / '', '', '', '', + +['F6', 'F7', 'F8', 'F9', 'F10',/ ** / 'app', 'mb1', 'mmU', 'mb2', 'mwU' +['F1', 'F2', 'F3', 'F4', 'F5',/ ** / 'mnu', 'mmL', 'mmD', 'mmR', 'mwD' +['F11', 'F12', '`', 'mute', 'ESC',/ ** / 'prtSc', 'scrLk', 'mwL', 'mwR', 'mb3' +[ '', '', '', 'L_=8',/ ** / 'L_9', '', '', '', +[ '', '8', '', '',/ ** / '', '', '', '', + +['L_ma1', '!', 'L_dv2', '!', 'L_cl3',/ ** / 'L_wk4', '!', 'L_ar5', '!', '!' +['!', '!', '!', '!', '!',/ ** / '!', '!', '!', '!', '!' +['L_gmA', '!', 'L_ucB', '!', 'L_npC',/ ** / '!', '!', '!', '!', '!' +[ '', '', '', 'L_=9',/ ** / 'L_=9', '', '', '', +[ '', '9', '', '',/ ** / '', '', '', '', + +['Q', 'W', 'E', 'R', 'T',/ ** / 'P', 'Y', '\u2191'*up* /, 'K', '1' +['A', 'S', 'D', 'F', 'G',/ ** / 'H', '\u2190'*lf* /, '\u2193'*dn* /, '\u2192'*rt* /, '2' +['Z', 'X', 'C', 'V', 'B',/ ** / 'M', '*', '*', '*', '3' +[ '', '', '', 'L_=A',/ ** / 'A', '', '', '', +[ '', 'A', '', '',/ ** / '', '', '', '', + +['\u00a2'cent* /, '\u00bc'1/4* /, '\u00bd'1/2* /, '\u03a3'sum* /, '\u00d8'Oslash* /,/ ** / '\u250f'box ul* /, '\u2533'box um* /, '\u2513'box ur* /, '\u03bb'lambda* /, '\u2018'sm'dn* / ], +['\u00F1'n~* /, '\u00a9'©* /, '\u00b0'degrees* /, '\u00b1'+-* /, '\u2b0f'arrow up* /,/ ** / '\u2523'box ml* /, '\u254B'box mm* /, '\u252B'box mr* /, '\u0394'delta* /, '\u2019'sm'up* / ], +['\u00a1'down !* /, '\u00bf'down ?* /, '\u00d7'mult x* /, '\u00f7'div/ * /, '\u03c0'pi* /,/ ** / '\u2517'box ll* /, '\u253b'bos lm* /, '\u251b'box lr* /, '\u201c'sm"dn* /, '\u201d'sm"up* / +[ '', '', '', 'L_=B',/ ** / 'B', '', '', '', +[ '', 'B', '', '',/ ** / '', '', '', '', + +['n-.', 'n-7', 'n-8', 'n-9', 'n--',/ ** / 'n-=', 'volU', 'volD', 'volU', 'volD' +['n-0', 'n-4', 'n-5', 'n-6', 'n-+',/ ** / 'N-lck', 'BACK', 'MUTE', 'RGUI', 'paus' +['n -*', 'n-1', 'n-2', 'n-3', 'n-/',/ ** / 'n-ent', 'PLAY', 'PREV', 'NEXT', 'insr' +[ '', '', '', 'L_=C',/ ** / 'C', '', '', '', +[ '', 'C', '', '',/ ** / '', '', '', '', diff --git a/keyboards/mitosis/keymaps/nzen/rules.mk b/keyboards/mitosis/keymaps/nzen/rules.mk new file mode 100644 index 000000000000..eaba18db9699 --- /dev/null +++ b/keyboards/mitosis/keymaps/nzen/rules.mk @@ -0,0 +1,8 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration diff --git a/keyboards/mitosis/mitosis.h b/keyboards/mitosis/mitosis.h index 1b04600e8e31..9389d5bb6d5b 100644 --- a/keyboards/mitosis/mitosis.h +++ b/keyboards/mitosis/mitosis.h @@ -47,7 +47,7 @@ */ // This a shortcut to help you visually see your layout. -// The first section contains all of the arguements +// The first section contains all of the arguments // The second converts the arguments into a two-dimensional array #define KEYMAP( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \ @@ -60,8 +60,8 @@ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \ - { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, KC_NO } \ - { KC_NO, k41, k42, k43, k44, k45, k46, k47, k48, KC_NO }, \ + { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, KC_NO }, \ + { KC_NO, k41, k42, k43, k44, k45, k46, k47, k48, KC_NO } \ } #endif diff --git a/keyboards/mitosis/rules.mk b/keyboards/mitosis/rules.mk index 0db144ed32c7..0ca4ef1f0682 100644 --- a/keyboards/mitosis/rules.mk +++ b/keyboards/mitosis/rules.mk @@ -65,8 +65,8 @@ CUSTOM_MATRIX = yes # Remote matrix from the wireless bridge # SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA # BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -# MIDI_ENABLE = YES # MIDI controls -UNICODE_ENABLE = YES # Unicode +# MIDI_ENABLE = yes # MIDI controls +UNICODE_ENABLE = yes # Unicode # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID USB = /dev/ttyACM0 From 011039afcae0dabbbd0e836836de0284e66330cb Mon Sep 17 00:00:00 2001 From: adiabatic Date: Wed, 4 Apr 2018 09:18:15 -0700 Subject: [PATCH 176/578] Zweihander: swap space and enter keys (#2665) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * zweihander-osx: Remove app keys, etc. - add right command keys - add F16 on ;' for Siri - remove command-Q (too easy to hit) * Rename zweihander-osx to zweihander-macos zweihander-macos: / / ^ → / / ⌥; README revamp zweihander: rename, ⌃ → ⌥, README revamp * Zweihander: swap space, enter keys Left thumb needs a break. --- layouts/community/ergodox/zweihander-macos/keymap.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/layouts/community/ergodox/zweihander-macos/keymap.c b/layouts/community/ergodox/zweihander-macos/keymap.c index 6dd2b04f4bba..b4a9efb3ee00 100644 --- a/layouts/community/ergodox/zweihander-macos/keymap.c +++ b/layouts/community/ergodox/zweihander-macos/keymap.c @@ -6,7 +6,7 @@ #define SYMB 1 // symbols #define MDIA 2 // media keys -// Best viewed in Xcode in Menlo Regular. +// Best viewed in Xcode in Menlo Regular or SF Mono. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer @@ -20,13 +20,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| L⌘ | | R⌘ |------+------+------+------+------+--------| * | L⇧ | Z | X | C | V | B | | | | N | M | , | . | / /R⌥| R⇧ | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | L⌃ | L⌥ | L⌘ | ← | → | | ↑ | ↓ | [ | ] | | + * | L⌃ | L⌥ | L⌘ | ← | → | | ↑ | ↓ | [ | ] | ↩︎ | * `----------------------------------' `----------------------------------' * ,-------------. ,---------------. * | `~ | '" | | ⎋ | ⌫ | * ,------|------|------| |------+--------+------. * | | | PgUp | | PgDn | | | - * | | ⇥ |------| |------| ⇥ |Enter | + * | ↩︎ | ⇥ |------| |------| ⇥ | | * | | | R⌥ | | R⌃ | | | * `--------------------' `----------------------' */ @@ -41,16 +41,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_LGUI,KC_LEFT,KC_RGHT, KC_GRV, KC_QUOT, KC_PGUP, - KC_SPC,KC_TAB ,KC_RALT, + KC_ENT ,KC_TAB ,KC_RALT, // right hand TG(SYMB), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, MO(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),RGUI_T(KC_QUOT), KC_RGUI, KC_N, KC_M, KC_COMM,KC_DOT, RALT_T(KC_SLSH), KC_RSFT, - KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_SPC , + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_ENT , KC_ESC, KC_BSPC, KC_PGDN, - KC_RCTL, KC_TAB, KC_ENT + KC_RCTL, KC_TAB, KC_SPC ), /* Keymap 1: Symbol Layer * From 0d0664a2149d93d1898615cfa5e02a9c2110345f Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Wed, 4 Apr 2018 15:13:42 -0700 Subject: [PATCH 177/578] Various tweaks for some Input:Club build processes --- keyboards/ergodox_infinity/rules.mk | 2 ++ keyboards/infinity60/config.h | 4 +--- keyboards/infinity60/rules.mk | 5 ++++- keyboards/whitefox/config.h | 2 -- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/keyboards/ergodox_infinity/rules.mk b/keyboards/ergodox_infinity/rules.mk index c243c258bac3..1cc95193cb55 100644 --- a/keyboards/ergodox_infinity/rules.mk +++ b/keyboards/ergodox_infinity/rules.mk @@ -58,6 +58,8 @@ OPT_DEFS += -DCORTEX_VTOR_INIT=0x00002000 # comment out to disable the options. # +DFU_ARGS = -d 1c11:b007 + BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) diff --git a/keyboards/infinity60/config.h b/keyboards/infinity60/config.h index bffe6489ec29..8306c8f7efc8 100644 --- a/keyboards/infinity60/config.h +++ b/keyboards/infinity60/config.h @@ -24,10 +24,8 @@ along with this program. If not, see . #define VENDOR_ID 0x1c11 #define PRODUCT_ID 0xb04d #define DEVICE_VER 0x0001 -/* in python2: list(u"whatever".encode('utf-16-le')) */ -/* at most 32 characters or the ugly hack in usb_main.c borks */ #define MANUFACTURER Input Club -#define PRODUCT Infinity_60%/QMK +#define PRODUCT Infinity_60%_LED/QMK /* key matrix size */ #define MATRIX_ROWS 9 #define MATRIX_COLS 7 diff --git a/keyboards/infinity60/rules.mk b/keyboards/infinity60/rules.mk index f689b5475159..8cb2b3755951 100644 --- a/keyboards/infinity60/rules.mk +++ b/keyboards/infinity60/rules.mk @@ -56,6 +56,9 @@ OPT_DEFS = -DCORTEX_VTOR_INIT=0x00001000 # Build Options # comment out to disable the options. # + +DFU_ARGS = -d 1c11:b007 + BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration ## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) MOUSEKEY_ENABLE = yes # Mouse keys @@ -66,4 +69,4 @@ SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover CUSTOM_MATRIX = yes # Custom matrix file -LAYOUTS = 60_ansi_split_bs_rshift \ No newline at end of file +LAYOUTS = 60_ansi_split_bs_rshift diff --git a/keyboards/whitefox/config.h b/keyboards/whitefox/config.h index 9989a92df55d..e508c3e9e2e6 100644 --- a/keyboards/whitefox/config.h +++ b/keyboards/whitefox/config.h @@ -24,8 +24,6 @@ along with this program. If not, see . #define VENDOR_ID 0x1c11 #define PRODUCT_ID 0xb04d #define DEVICE_VER 0x0001 -/* in python2: list(u"whatever".encode('utf-16-le')) */ -/* at most 32 characters or the ugly hack in usb_main.c borks */ #define MANUFACTURER Input Club #define PRODUCT WhiteFox/QMK From 7bbc9ccc31b2bc4dda8dc4c000df48a024f072a9 Mon Sep 17 00:00:00 2001 From: mechmerlin Date: Thu, 5 Apr 2018 15:35:38 -0700 Subject: [PATCH 178/578] change KEYMAP to LAYOUT for all new keyboards made using this script --- quantum/template/keymaps/default/keymap.c | 2 +- quantum/template/template.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/quantum/template/keymaps/default/keymap.c b/quantum/template/keymaps/default/keymap.c index a123cd7bab53..508b4c79b526 100644 --- a/quantum/template/keymaps/default/keymap.c +++ b/quantum/template/keymaps/default/keymap.c @@ -16,7 +16,7 @@ #include "%KEYBOARD%.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( /* Base */ +[0] = LAYOUT( /* Base */ KC_A, KC_1, KC_H, \ KC_TAB, KC_SPC \ ), diff --git a/quantum/template/template.h b/quantum/template/template.h index 7e2b14f3c106..c24bb1650fbf 100644 --- a/quantum/template/template.h +++ b/quantum/template/template.h @@ -22,7 +22,7 @@ // The following is an example using the Planck MIT layout // The first section contains all of the arguments // The second converts the arguments into a two-dimensional array -#define KEYMAP( \ +#define LAYOUT( \ k00, k01, k02, \ k10, k11 \ ) \ From d777a058642326921785961d6a2e10f2eb826c44 Mon Sep 17 00:00:00 2001 From: Maarten Dekkers Date: Fri, 6 Apr 2018 01:16:35 +0200 Subject: [PATCH 179/578] Add support for rev3 of the Atom47 (#2672) * Added support for rev3 of the Atom47 * Updated Atom47 readme's * Fix redefine error on rev2 and add maartenwut's keymap * Fix redefine error on LEdiodes keymap --- keyboards/atom47/atom47.c | 11 +-- keyboards/atom47/atom47.h | 8 +- keyboards/atom47/config.h | 20 ++--- keyboards/atom47/keymaps/default/keymap.c | 35 ++++++--- keyboards/atom47/keymaps/default/readme.md | 11 +-- keyboards/atom47/keymaps/maartenwut/keymap.c | 46 ++++++++++++ keyboards/atom47/keymaps/maartenwut/readme.md | 1 + keyboards/atom47/readme.md | 28 ++++--- .../{keymaps/LEdiodes => rev2}/atom47.c | 0 .../{keymaps/LEdiodes => rev2}/atom47.h | 0 .../{keymaps/LEdiodes => rev2}/config.h | 6 +- .../atom47/rev2/keymaps/LEdiodes/atom47.c | 31 ++++++++ .../atom47/rev2/keymaps/LEdiodes/atom47.h | 25 +++++++ .../atom47/rev2/keymaps/LEdiodes/config.h | 74 +++++++++++++++++++ .../{ => rev2}/keymaps/LEdiodes/keymap.c | 2 +- .../{ => rev2}/keymaps/LEdiodes/rules.mk | 0 .../atom47/rev2/keymaps/default/keymap.c | 39 ++++++++++ .../atom47/rev2/keymaps/default/readme.md | 1 + keyboards/atom47/rev2/readme.md | 23 ++++++ keyboards/atom47/rev2/rules.mk | 65 ++++++++++++++++ keyboards/atom47/rules.mk | 4 +- 21 files changed, 363 insertions(+), 67 deletions(-) create mode 100644 keyboards/atom47/keymaps/maartenwut/keymap.c create mode 100644 keyboards/atom47/keymaps/maartenwut/readme.md rename keyboards/atom47/{keymaps/LEdiodes => rev2}/atom47.c (100%) rename keyboards/atom47/{keymaps/LEdiodes => rev2}/atom47.h (100%) rename keyboards/atom47/{keymaps/LEdiodes => rev2}/config.h (99%) create mode 100644 keyboards/atom47/rev2/keymaps/LEdiodes/atom47.c create mode 100644 keyboards/atom47/rev2/keymaps/LEdiodes/atom47.h create mode 100644 keyboards/atom47/rev2/keymaps/LEdiodes/config.h rename keyboards/atom47/{ => rev2}/keymaps/LEdiodes/keymap.c (98%) rename keyboards/atom47/{ => rev2}/keymaps/LEdiodes/rules.mk (100%) create mode 100644 keyboards/atom47/rev2/keymaps/default/keymap.c create mode 100644 keyboards/atom47/rev2/keymaps/default/readme.md create mode 100644 keyboards/atom47/rev2/readme.md create mode 100644 keyboards/atom47/rev2/rules.mk diff --git a/keyboards/atom47/atom47.c b/keyboards/atom47/atom47.c index 7b839e796755..fac22f778689 100644 --- a/keyboards/atom47/atom47.c +++ b/keyboards/atom47/atom47.c @@ -16,16 +16,9 @@ void matrix_scan_kb(void) { void led_init_ports(void) { // * Set our LED pins as output - DDRB &= ~(1<<5); + DDRE |= (1 << 6); } void led_set_kb(uint8_t usb_led) { - if (usb_led & (1<. // ROWS: Top to bottom, COLS: Left to right -#define MATRIX_ROW_PINS {B1,B2,B3,B7} -#define MATRIX_COL_PINS {D7,D5,F0,F1,F4,F6,F7,D4,C7,C6,D6,B5,B4} +#define MATRIX_ROW_PINS {B3,B2,B1,B0} +#define MATRIX_COL_PINS {B7,F0,F1,F4,F6,D4,D6,D7,B4,B5,C6,C7,F7} #define UNUSED_PINS #define BACKLIGHT_PIN B6 @@ -49,10 +49,6 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE /* key combination for command */ #define IS_COMMAND() ( \ @@ -63,11 +59,11 @@ along with this program. If not, see . */ #define BACKLIGHT_LEVELS 4 -#endif +#define RGB_DI_PIN F5 // The pin the LED strip is connected to +#define RGBLED_NUM 6 // Number of LEDs in your strip -#define RGB_DI_PIN D0 // The pin the LED strip is connected to -#define RGBLED_NUM 1 // Number of LEDs in your strip +#define QMK_ESC_OUTPUT B7 // usually COL +#define QMK_ESC_INPUT B3 // usually ROW +#define QMK_LED E6 -#define QMK_ESC_OUTPUT D7 // usually COL -#define QMK_ESC_INPUT B1 // usually ROW -#define QMK_LED B6 \ No newline at end of file +#endif diff --git a/keyboards/atom47/keymaps/default/keymap.c b/keyboards/atom47/keymaps/default/keymap.c index cd8e622f2087..233ff2b8b7fb 100644 --- a/keyboards/atom47/keymaps/default/keymap.c +++ b/keyboards/atom47/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -#include QMK_KEYBOARD_H +#include "atom47.h" // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -16,24 +16,37 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MA] = KEYMAP_ANSI( KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, \ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, MO(_FN1), \ - KC_LCTL, KC_LGUI, KC_LALT, MO(_PN), KC_SPC, KC_SPC, MO(_FN), KC_RALT, KC_APP, KC_RCTRL), \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, MO(_FN1), \ + KC_LCTL, KC_LGUI, KC_LALT, MO(_PN), KC_SPC, KC_SPC, MO(_FN), KC_RALT, KC_APP, KC_RCTRL), \ [_FN] = KEYMAP_ANSI( _______, KC_VOLD, KC_VOLU, KC_MUTE, RESET, _______, KC_CALC, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, \ KC_CAPS, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_INS, _______, \ - _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \ + _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \ [_FN1] = KEYMAP_ANSI( KC_GRV, 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, \ - _______, _______, _______, _______, _______, KC_QUOT, KC_SLSH, KC_LBRC, KC_RBRC, KC_BSLS, KC_RSFT, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \ + _______, _______, _______, _______, _______, KC_QUOT, KC_SLSH, KC_LBRC, KC_RBRC, KC_BSLS, KC_RSFT, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \ [_PN] = KEYMAP_ANSI( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET), -}; \ No newline at end of file + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, \ + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET), +}; + +void led_set_user(uint8_t usb_led) { + if (usb_led & (1<. */ #define BACKLIGHT_LEVELS 4 -#endif - #define RGB_DI_PIN D0 // The pin the LED strip is connected to #define RGBLED_NUM 1 // Number of LEDs in your strip #define QMK_ESC_OUTPUT D7 // usually COL #define QMK_ESC_INPUT B1 // usually ROW -#define QMK_LED B6 \ No newline at end of file +#define QMK_LED B6 + +#endif diff --git a/keyboards/atom47/rev2/keymaps/LEdiodes/atom47.c b/keyboards/atom47/rev2/keymaps/LEdiodes/atom47.c new file mode 100644 index 000000000000..7b839e796755 --- /dev/null +++ b/keyboards/atom47/rev2/keymaps/LEdiodes/atom47.c @@ -0,0 +1,31 @@ +#include "atom47.h" +#include "led.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + matrix_init_user(); + led_init_ports(); +}; + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + matrix_scan_user(); +}; + +void led_init_ports(void) { + // * Set our LED pins as output + DDRB &= ~(1<<5); +} + +void led_set_kb(uint8_t usb_led) { + if (usb_led & (1<. +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0003 +#define MANUFACTURER Vortex +#define PRODUCT Core +#define DESCRIPTION Atom47 PCB for the Vortex Core + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 13 + +// ROWS: Top to bottom, COLS: Left to right + +#define MATRIX_ROW_PINS {B1,B2,B3,B7} +#define MATRIX_COL_PINS {D7,D5,F0,F1,F4,F6,F7,D4,C7,C6,D6,B5,B4} +#define UNUSED_PINS + +#define BACKLIGHT_PIN B6 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* Backlight configuration + */ +#define BACKLIGHT_LEVELS 4 + +#define RGB_DI_PIN D0 // The pin the LED strip is connected to +#define RGBLED_NUM 1 // Number of LEDs in your strip + +#define QMK_ESC_OUTPUT D7 // usually COL +#define QMK_ESC_INPUT B1 // usually ROW +#define QMK_LED B6 + +#endif + diff --git a/keyboards/atom47/keymaps/LEdiodes/keymap.c b/keyboards/atom47/rev2/keymaps/LEdiodes/keymap.c similarity index 98% rename from keyboards/atom47/keymaps/LEdiodes/keymap.c rename to keyboards/atom47/rev2/keymaps/LEdiodes/keymap.c index 3ea8609b61cc..75c8654ba64a 100644 --- a/keyboards/atom47/keymaps/LEdiodes/keymap.c +++ b/keyboards/atom47/rev2/keymaps/LEdiodes/keymap.c @@ -1,4 +1,4 @@ -#include QMK_KEYBOARD_H +#include "atom47.h" // These are all aliases for the function layers. #define _L0 0 diff --git a/keyboards/atom47/keymaps/LEdiodes/rules.mk b/keyboards/atom47/rev2/keymaps/LEdiodes/rules.mk similarity index 100% rename from keyboards/atom47/keymaps/LEdiodes/rules.mk rename to keyboards/atom47/rev2/keymaps/LEdiodes/rules.mk diff --git a/keyboards/atom47/rev2/keymaps/default/keymap.c b/keyboards/atom47/rev2/keymaps/default/keymap.c new file mode 100644 index 000000000000..1473863c4e0f --- /dev/null +++ b/keyboards/atom47/rev2/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +#include "atom47.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. + +#define _MA 0 //Main layer +#define _FN 1 //Fn +#define _FN1 2 //Fn1 +#define _PN 3 //Pn + +#define _______ KC_TRNS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_MA] = KEYMAP_ANSI( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, \ + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, MO(_FN1), \ + KC_LCTL, KC_LGUI, KC_LALT, MO(_PN), KC_SPC, KC_SPC, MO(_FN), KC_RALT, KC_APP, KC_RCTRL), \ + +[_FN] = KEYMAP_ANSI( + _______, KC_VOLD, KC_VOLU, KC_MUTE, RESET, _______, KC_CALC, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, \ + KC_CAPS, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_INS, _______, \ + _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \ + +[_FN1] = KEYMAP_ANSI( + KC_GRV, 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, \ + _______, _______, _______, _______, _______, KC_QUOT, KC_SLSH, KC_LBRC, KC_RBRC, KC_BSLS, KC_RSFT, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \ + +[_PN] = KEYMAP_ANSI( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET), +}; diff --git a/keyboards/atom47/rev2/keymaps/default/readme.md b/keyboards/atom47/rev2/keymaps/default/readme.md new file mode 100644 index 000000000000..ab86b4f128c3 --- /dev/null +++ b/keyboards/atom47/rev2/keymaps/default/readme.md @@ -0,0 +1 @@ +This is the default keymap as found on the Vortex Core, with some added buttons for backlight control. diff --git a/keyboards/atom47/rev2/readme.md b/keyboards/atom47/rev2/readme.md new file mode 100644 index 000000000000..18ee85d54f32 --- /dev/null +++ b/keyboards/atom47/rev2/readme.md @@ -0,0 +1,23 @@ +# Atom47 rev2 + +This is the keymap for rev2 of the Atom47. Only 9 of those have been sold for testing purposes. It had a slightly misaligned usb port and the pcb was too thick (should've been 1.2mm instead of 1.6mm). The pcb only supports the default hardware layout, although /u/ChrisSwires has [modified his](https://www.reddit.com/r/MechanicalKeyboards/comments/7n2dua/not_your_average_core_with_honeywell/) and put a big spacebar in it. + +## Support +Keyboard Maintainer: [Matthew Kerfoot(https://github.com/mkerfoot) +Hardware Supported: Atom47 rev2 +Hardware Availability: None + + +## Features +- QMK Firmware +- In-switch leds +- Through-hole micro usb connector (less likely to break off!) +- Easily reachable reset button under the spacebar +- In-switch CapsLock indicator + +## Build +To build the default keymap, simply run `make atom47/rev2:default`. + +For an alternative, heavily modified layout you would just need to run `make atom47/rev2:LEdiodes`. + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/atom47/rev2/rules.mk b/keyboards/atom47/rev2/rules.mk new file mode 100644 index 000000000000..d446d3a69956 --- /dev/null +++ b/keyboards/atom47/rev2/rules.mk @@ -0,0 +1,65 @@ +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality (+4870) +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality (+1150) +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID diff --git a/keyboards/atom47/rules.mk b/keyboards/atom47/rules.mk index d446d3a69956..9b3263afd696 100644 --- a/keyboards/atom47/rules.mk +++ b/keyboards/atom47/rules.mk @@ -56,8 +56,8 @@ MOUSEKEY_ENABLE = no # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality (+4870) +NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality (+4870) BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality (+1150) MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no From 4feaf1fd764a09fe4e6eb1c8223a7f0540e52a77 Mon Sep 17 00:00:00 2001 From: Daniel H Klein Date: Thu, 5 Apr 2018 23:44:28 -0700 Subject: [PATCH 180/578] Add Nyquist keymap (#2692) * nyquist * danielhklein nyquist setup * shift left controls * remove readme * cleanup before pr * ready for pr --- .../nyquist/keymaps/danielhklein/config.h | 25 +++ .../nyquist/keymaps/danielhklein/keymap.c | 148 ++++++++++++++++++ .../nyquist/keymaps/danielhklein/rules.mk | 34 ++++ 3 files changed, 207 insertions(+) create mode 100644 keyboards/nyquist/keymaps/danielhklein/config.h create mode 100644 keyboards/nyquist/keymaps/danielhklein/keymap.c create mode 100644 keyboards/nyquist/keymaps/danielhklein/rules.mk diff --git a/keyboards/nyquist/keymaps/danielhklein/config.h b/keyboards/nyquist/keymaps/danielhklein/config.h new file mode 100644 index 000000000000..7ed90b6cdf2a --- /dev/null +++ b/keyboards/nyquist/keymaps/danielhklein/config.h @@ -0,0 +1,25 @@ +/* +Copyright 2017 James Morgan + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + + +#define TAPPING_TERM 150 +#define USE_SERIAL +#define EE_HANDS + +#ifdef SUBPROJECT_rev1 + #include "../../rev1/config.h" +#endif diff --git a/keyboards/nyquist/keymaps/danielhklein/keymap.c b/keyboards/nyquist/keymaps/danielhklein/keymap.c new file mode 100644 index 000000000000..1eae967b95f5 --- /dev/null +++ b/keyboards/nyquist/keymaps/danielhklein/keymap.c @@ -0,0 +1,148 @@ +#include "nyquist.h" +#include "action_layer.h" +#include "eeconfig.h" + +/* + Keymap is loosely based on DivergeJM's Nyquist keymap + Major changes made: + - DVORAK, COLEMAK, FUNCTION, MOUSE, and ADJUST layers have been removed + - right 2u key performs backspace, not enter + - no right ctrl key + - direction keys added to bottom row + - LOWER layer controls function keys, media controls, and underglow +*/ +extern keymap_config_t keymap_config; + +enum custom_layers { + _QWERTY, + _LOWER, + _RAISE +}; + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE +}; + + // Enable these functions using FUNC(n) macro. + const uint16_t PROGMEM fn_actions[] = { //ACTION_LAYER_TAP_TOGGLE requires that number of taps be defined in *config.h* - default set to 5 + [0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_SPC), //Hold for momentary Lower layer, Tap for Space, + [1] = ACTION_LAYER_TAP_KEY(_RAISE, KC_BSPC) //Hold for momentary Raise layer, Tap for Backspace, + }; + +#define SPC_LWR FUNC(0) +#define BSP_RSE FUNC(1) + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +// Underglow setup +#define RGBLIGHT_SLEEP +#define RGBLIGHT_ANIMATIONS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* QWERTY + * .----------------------------------------. .-----------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | [ | + * |-----+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | ] | + * |-----+------+------+------+------+------| |------+------+------+------+------+------| + * | Caps| A | S | D | F | G | | H | J | K | L | ; | " | + * |-----+------+------+------+------+------| |------+------+------+------+------+------| + * |Lshft| Z | X | C | V | B | | N | M | , | . | / |Enter | + * |-----+------+------+------+------+------| |------+------+------+------+------+------| + * | | Ctrl | LAlt | LGui | Bspc/Raise | | Spc/Lower | Left | Down | Up |Right | + * `----------------------------------------' '-----------------------------------------' + */ + +[_QWERTY] = KEYMAP( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRACKET, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRACKET, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \ + XXXXXXX, KC_LCTL, KC_LALT, KC_LGUI, BSP_RSE, BSP_RSE, SPC_LWR, SPC_LWR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + ), + +/* Raise + * ,-----------------------------------------. .-----------------------------------------. + * | | | | | | | | = | / | * | - | \ | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | 7 | 8 | 9 | + | ` | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | 4 | 5 | 6 | Enter| | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Lshft| | | | | | | 1 | 2 | 3 | Space| | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | Bspc/Raise | | 0 | . | Bspc | | | + * `-----------------------------------------' `-----------------------------------------' + */ + +[_RAISE] = KEYMAP( \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PEQL, KC_PSLS, KC_PAST, KC_MINS, KC_BSLS, KC_DEL, \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_7, KC_8, KC_9, KC_PPLS, KC_GRV, XXXXXXX,\ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_4, KC_5, KC_6, KC_PENT, XXXXXXX, XXXXXXX,\ + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_SPC, XXXXXXX, XXXXXXX,\ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, KC_0, KC_0, KC_DOT, KC_BSPC, XXXXXXX, XXXXXXX \ +), + +/* Lower + * ,-----------------------------------------. .-----------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | F7 | F8 | F9 | F10 | F11 | F12 | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | >/|| | Mute | Vol- | Vol+ | |<< | >>| | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |RGB IO|RGB >>|RGB <<|Hue++ |Hue-- | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |Sat++ |Sat-- |Val++ |Val-- | | | Spc/Lower | | | | | + * `-----------------------------------------' `-----------------------------------------' +*/ + +[_LOWER] = KEYMAP( \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ + ), + +}; + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +/* Cases to switch default layer to QWERTY, COLEMAK or DVORAK + and to access ADJUST layer to access the switch keys */ +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + } else { + layer_off(_LOWER); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + } else { + layer_off(_RAISE); + } + return false; + break; + } + return true; +} diff --git a/keyboards/nyquist/keymaps/danielhklein/rules.mk b/keyboards/nyquist/keymaps/danielhklein/rules.mk new file mode 100644 index 000000000000..ba799d47f46b --- /dev/null +++ b/keyboards/nyquist/keymaps/danielhklein/rules.mk @@ -0,0 +1,34 @@ +# Copyright 2017 James Morgan +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +# QMK Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +TAP_DANCE_ENABLE = no # Enable Tap Dance From 25b1d0215709aa0f2f75de88e9c3ff4b2c6bf6c5 Mon Sep 17 00:00:00 2001 From: Yan-Fa Li Date: Fri, 6 Apr 2018 00:42:44 -0700 Subject: [PATCH 181/578] Adds Phantom TKL support (#2696) * Add an info.json to phantom keyboard * Add layouts - KEYMAP_WINKEYLESS - KEYMAP_7BIT - KEYMAP_ISO - KEYMAP_ISO_WINKEYLESS * Add key_counts --- keyboards/phantom/info.json | 2317 +++++++++++++++++++++++++++++++++++ 1 file changed, 2317 insertions(+) create mode 100644 keyboards/phantom/info.json diff --git a/keyboards/phantom/info.json b/keyboards/phantom/info.json new file mode 100644 index 000000000000..2210f829d15d --- /dev/null +++ b/keyboards/phantom/info.json @@ -0,0 +1,2317 @@ +{ + "keyboard_name": "Phantom", + "manufacturer": "bpiphany", + "identifier": "PHANTOM", + "url": "https://deskthority.net/wiki/Phantom", + "maintainer": "qmk", + "processor": "atmega32u4", + "bootloader": "halfkay", + "width": 18.25, + "height": 6.5, + "layouts": { + "KEYMAP": { + "key_count": 87, + "layout": [ + { + "label": "Esc", + "x": 0, + "y": 0 + }, + { + "label": "F1", + "x": 2, + "y": 0 + }, + { + "label": "F2", + "x": 3, + "y": 0 + }, + { + "label": "F3", + "x": 4, + "y": 0 + }, + { + "label": "F4", + "x": 5, + "y": 0 + }, + { + "label": "F5", + "x": 6.5, + "y": 0 + }, + { + "label": "F6", + "x": 7.5, + "y": 0 + }, + { + "label": "F7", + "x": 8.5, + "y": 0 + }, + { + "label": "F8", + "x": 9.5, + "y": 0 + }, + { + "label": "F9", + "x": 11, + "y": 0 + }, + { + "label": "F10", + "x": 12, + "y": 0 + }, + { + "label": "F11", + "x": 13, + "y": 0 + }, + { + "label": "F12", + "x": 14, + "y": 0 + }, + { + "label": "PrtSc", + "x": 15.25, + "y": 0 + }, + { + "label": "Scroll Lock", + "x": 16.25, + "y": 0 + }, + { + "label": "Pause", + "x": 17.25, + "y": 0 + }, + { + "label": "~", + "x": 0, + "y": 1.5 + }, + { + "label": "!", + "x": 1, + "y": 1.5 + }, + { + "label": "@", + "x": 2, + "y": 1.5 + }, + { + "label": "#", + "x": 3, + "y": 1.5 + }, + { + "label": "$", + "x": 4, + "y": 1.5 + }, + { + "label": "%", + "x": 5, + "y": 1.5 + }, + { + "label": "^", + "x": 6, + "y": 1.5 + }, + { + "label": "&", + "x": 7, + "y": 1.5 + }, + { + "label": "*", + "x": 8, + "y": 1.5 + }, + { + "label": "(", + "x": 9, + "y": 1.5 + }, + { + "label": ")", + "x": 10, + "y": 1.5 + }, + { + "label": "_", + "x": 11, + "y": 1.5 + }, + { + "label": "+", + "x": 12, + "y": 1.5 + }, + { + "label": "Backspace", + "x": 13, + "y": 1.5, + "w": 2 + }, + { + "label": "Insert", + "x": 15.25, + "y": 1.5 + }, + { + "label": "Home", + "x": 16.25, + "y": 1.5 + }, + { + "label": "PgUp", + "x": 17.25, + "y": 1.5 + }, + { + "label": "Tab", + "x": 0, + "y": 2.5, + "w": 1.5 + }, + { + "label": "Q", + "x": 1.5, + "y": 2.5 + }, + { + "label": "W", + "x": 2.5, + "y": 2.5 + }, + { + "label": "E", + "x": 3.5, + "y": 2.5 + }, + { + "label": "R", + "x": 4.5, + "y": 2.5 + }, + { + "label": "T", + "x": 5.5, + "y": 2.5 + }, + { + "label": "Y", + "x": 6.5, + "y": 2.5 + }, + { + "label": "U", + "x": 7.5, + "y": 2.5 + }, + { + "label": "I", + "x": 8.5, + "y": 2.5 + }, + { + "label": "O", + "x": 9.5, + "y": 2.5 + }, + { + "label": "P", + "x": 10.5, + "y": 2.5 + }, + { + "label": "{", + "x": 11.5, + "y": 2.5 + }, + { + "label": "}", + "x": 12.5, + "y": 2.5 + }, + { + "label": "|", + "x": 13.5, + "y": 2.5, + "w": 1.5 + }, + { + "label": "Delete", + "x": 15.25, + "y": 2.5 + }, + { + "label": "End", + "x": 16.25, + "y": 2.5 + }, + { + "label": "PgDn", + "x": 17.25, + "y": 2.5 + }, + { + "label": "Caps Lock", + "x": 0, + "y": 3.5, + "w": 1.75 + }, + { + "label": "A", + "x": 1.75, + "y": 3.5 + }, + { + "label": "S", + "x": 2.75, + "y": 3.5 + }, + { + "label": "D", + "x": 3.75, + "y": 3.5 + }, + { + "label": "F", + "x": 4.75, + "y": 3.5 + }, + { + "label": "G", + "x": 5.75, + "y": 3.5 + }, + { + "label": "H", + "x": 6.75, + "y": 3.5 + }, + { + "label": "J", + "x": 7.75, + "y": 3.5 + }, + { + "label": "K", + "x": 8.75, + "y": 3.5 + }, + { + "label": "L", + "x": 9.75, + "y": 3.5 + }, + { + "label": ":", + "x": 10.75, + "y": 3.5 + }, + { + "label": "\"", + "x": 11.75, + "y": 3.5 + }, + { + "label": "Enter", + "x": 12.75, + "y": 3.5, + "w": 2.25 + }, + { + "label": "Shift", + "x": 0, + "y": 4.5, + "w": 2.25 + }, + { + "label": "Z", + "x": 2.25, + "y": 4.5 + }, + { + "label": "X", + "x": 3.25, + "y": 4.5 + }, + { + "label": "C", + "x": 4.25, + "y": 4.5 + }, + { + "label": "V", + "x": 5.25, + "y": 4.5 + }, + { + "label": "B", + "x": 6.25, + "y": 4.5 + }, + { + "label": "N", + "x": 7.25, + "y": 4.5 + }, + { + "label": "M", + "x": 8.25, + "y": 4.5 + }, + { + "label": "<", + "x": 9.25, + "y": 4.5 + }, + { + "label": ">", + "x": 10.25, + "y": 4.5 + }, + { + "label": "?", + "x": 11.25, + "y": 4.5 + }, + { + "label": "Shift", + "x": 12.25, + "y": 4.5, + "w": 2.75 + }, + { + "label": "\\u2191", + "x": 16.25, + "y": 4.5 + }, + { + "label": "Ctrl", + "x": 0, + "y": 5.5, + "w": 1.25 + }, + { + "label": "Win", + "x": 1.25, + "y": 5.5, + "w": 1.25 + }, + { + "label": "Alt", + "x": 2.5, + "y": 5.5, + "w": 1.25 + }, + { + "x": 3.75, + "y": 5.5, + "w": 6.25 + }, + { + "label": "Alt", + "x": 10, + "y": 5.5, + "w": 1.25 + }, + { + "label": "Win", + "x": 11.25, + "y": 5.5, + "w": 1.25 + }, + { + "label": "FN", + "x": 12.5, + "y": 5.5, + "w": 1.25 + }, + { + "label": "Ctrl", + "x": 13.75, + "y": 5.5, + "w": 1.25 + }, + { + "label": "\\u2190", + "x": 15.25, + "y": 5.5 + }, + { + "label": "\\u2193", + "x": 16.25, + "y": 5.5 + }, + { + "label": "\\u2192", + "x": 17.25, + "y": 5.5 + } + ] + }, + "KEYMAP_WINKEYLESS": { + "key_count": 86, + "layout": [ + { + "label": "Esc", + "x": 0, + "y": 0 + }, + { + "label": "F1", + "x": 2, + "y": 0 + }, + { + "label": "F2", + "x": 3, + "y": 0 + }, + { + "label": "F3", + "x": 4, + "y": 0 + }, + { + "label": "F4", + "x": 5, + "y": 0 + }, + { + "label": "F5", + "x": 6.5, + "y": 0 + }, + { + "label": "F6", + "x": 7.5, + "y": 0 + }, + { + "label": "F7", + "x": 8.5, + "y": 0 + }, + { + "label": "F8", + "x": 9.5, + "y": 0 + }, + { + "label": "F9", + "x": 11, + "y": 0 + }, + { + "label": "F10", + "x": 12, + "y": 0 + }, + { + "label": "F11", + "x": 13, + "y": 0 + }, + { + "label": "F12", + "x": 14, + "y": 0 + }, + { + "label": "PrtSc", + "x": 15.25, + "y": 0 + }, + { + "label": "Scroll Lock", + "x": 16.25, + "y": 0 + }, + { + "label": "Pause", + "x": 17.25, + "y": 0 + }, + { + "label": "~", + "x": 0, + "y": 1.5 + }, + { + "label": "!", + "x": 1, + "y": 1.5 + }, + { + "label": "@", + "x": 2, + "y": 1.5 + }, + { + "label": "#", + "x": 3, + "y": 1.5 + }, + { + "label": "$", + "x": 4, + "y": 1.5 + }, + { + "label": "%", + "x": 5, + "y": 1.5 + }, + { + "label": "^", + "x": 6, + "y": 1.5 + }, + { + "label": "&", + "x": 7, + "y": 1.5 + }, + { + "label": "*", + "x": 8, + "y": 1.5 + }, + { + "label": "(", + "x": 9, + "y": 1.5 + }, + { + "label": ")", + "x": 10, + "y": 1.5 + }, + { + "label": "_", + "x": 11, + "y": 1.5 + }, + { + "label": "+", + "x": 12, + "y": 1.5 + }, + { + "label": "Backspace", + "x": 13, + "y": 1.5, + "w": 2 + }, + { + "label": "Insert", + "x": 15.25, + "y": 1.5 + }, + { + "label": "Home", + "x": 16.25, + "y": 1.5 + }, + { + "label": "PgUp", + "x": 17.25, + "y": 1.5 + }, + { + "label": "Tab", + "x": 0, + "y": 2.5, + "w": 1.5 + }, + { + "label": "Q", + "x": 1.5, + "y": 2.5 + }, + { + "label": "W", + "x": 2.5, + "y": 2.5 + }, + { + "label": "E", + "x": 3.5, + "y": 2.5 + }, + { + "label": "R", + "x": 4.5, + "y": 2.5 + }, + { + "label": "T", + "x": 5.5, + "y": 2.5 + }, + { + "label": "Y", + "x": 6.5, + "y": 2.5 + }, + { + "label": "U", + "x": 7.5, + "y": 2.5 + }, + { + "label": "I", + "x": 8.5, + "y": 2.5 + }, + { + "label": "O", + "x": 9.5, + "y": 2.5 + }, + { + "label": "P", + "x": 10.5, + "y": 2.5 + }, + { + "label": "{", + "x": 11.5, + "y": 2.5 + }, + { + "label": "}", + "x": 12.5, + "y": 2.5 + }, + { + "label": "|", + "x": 13.5, + "y": 2.5, + "w": 1.5 + }, + { + "label": "Delete", + "x": 15.25, + "y": 2.5 + }, + { + "label": "End", + "x": 16.25, + "y": 2.5 + }, + { + "label": "PgDn", + "x": 17.25, + "y": 2.5 + }, + { + "label": "Caps Lock", + "x": 0, + "y": 3.5, + "w": 1.75 + }, + { + "label": "A", + "x": 1.75, + "y": 3.5 + }, + { + "label": "S", + "x": 2.75, + "y": 3.5 + }, + { + "label": "D", + "x": 3.75, + "y": 3.5 + }, + { + "label": "F", + "x": 4.75, + "y": 3.5 + }, + { + "label": "G", + "x": 5.75, + "y": 3.5 + }, + { + "label": "H", + "x": 6.75, + "y": 3.5 + }, + { + "label": "J", + "x": 7.75, + "y": 3.5 + }, + { + "label": "K", + "x": 8.75, + "y": 3.5 + }, + { + "label": "L", + "x": 9.75, + "y": 3.5 + }, + { + "label": ":", + "x": 10.75, + "y": 3.5 + }, + { + "label": "\"", + "x": 11.75, + "y": 3.5 + }, + { + "label": "Enter", + "x": 12.75, + "y": 3.5, + "w": 2.25 + }, + { + "label": "Shift", + "x": 0, + "y": 4.5, + "w": 2.25 + }, + { + "label": "Z", + "x": 2.25, + "y": 4.5 + }, + { + "label": "X", + "x": 3.25, + "y": 4.5 + }, + { + "label": "C", + "x": 4.25, + "y": 4.5 + }, + { + "label": "V", + "x": 5.25, + "y": 4.5 + }, + { + "label": "B", + "x": 6.25, + "y": 4.5 + }, + { + "label": "N", + "x": 7.25, + "y": 4.5 + }, + { + "label": "M", + "x": 8.25, + "y": 4.5 + }, + { + "label": "<", + "x": 9.25, + "y": 4.5 + }, + { + "label": ">", + "x": 10.25, + "y": 4.5 + }, + { + "label": "?", + "x": 11.25, + "y": 4.5 + }, + { + "label": "Shift", + "x": 12.25, + "y": 4.5, + "w": 2.75 + }, + { + "label": "\\u2191", + "x": 16.25, + "y": 4.5 + }, + { + "label": "Ctrl", + "x": 0, + "y": 5.5, + "w": 1.5 + }, + { + "label": "Win", + "x": 1.5, + "y": 5.5 + }, + { + "label": "Alt", + "x": 2.5, + "y": 5.5, + "w": 1.5 + }, + { + "x": 4, + "y": 5.5, + "w": 7 + }, + { + "label": "Alt", + "x": 11, + "y": 5.5, + "w": 1.5 + }, + { + "label": "Win", + "x": 12.5, + "y": 5.5 + }, + { + "label": "Ctrl", + "x": 13.5, + "y": 5.5, + "w": 1.5 + }, + { + "label": "\\u2190", + "x": 15.25, + "y": 5.5 + }, + { + "label": "\\u2193", + "x": 16.25, + "y": 5.5 + }, + { + "label": "\\u2192", + "x": 17.25, + "y": 5.5 + } + ] + }, + "KEYMAP_7BIT": { + "key_count": 99, + "layout": [ + { + "label": "Esc", + "x": 0, + "y": 0 + }, + { + "label": "F1", + "x": 2, + "y": 0 + }, + { + "label": "F2", + "x": 3, + "y": 0 + }, + { + "label": "F3", + "x": 4, + "y": 0 + }, + { + "label": "F4", + "x": 5, + "y": 0 + }, + { + "label": "F5", + "x": 6.5, + "y": 0 + }, + { + "label": "F6", + "x": 7.5, + "y": 0 + }, + { + "label": "F7", + "x": 8.5, + "y": 0 + }, + { + "label": "F8", + "x": 9.5, + "y": 0 + }, + { + "label": "F9", + "x": 11, + "y": 0 + }, + { + "label": "F10", + "x": 12, + "y": 0 + }, + { + "label": "F11", + "x": 13, + "y": 0 + }, + { + "label": "F12", + "x": 14, + "y": 0 + }, + { + "label": "PrtSc", + "x": 15.25, + "y": 0 + }, + { + "label": "Scroll Lock", + "x": 16.25, + "y": 0 + }, + { + "label": "Pause", + "x": 17.25, + "y": 0 + }, + { + "label": "~", + "x": 0, + "y": 1.5 + }, + { + "label": "!", + "x": 1, + "y": 1.5 + }, + { + "label": "@", + "x": 2, + "y": 1.5 + }, + { + "label": "#", + "x": 3, + "y": 1.5 + }, + { + "label": "$", + "x": 4, + "y": 1.5 + }, + { + "label": "%", + "x": 5, + "y": 1.5 + }, + { + "label": "^", + "x": 6, + "y": 1.5 + }, + { + "label": "&", + "x": 7, + "y": 1.5 + }, + { + "label": "*", + "x": 8, + "y": 1.5 + }, + { + "label": "(", + "x": 9, + "y": 1.5 + }, + { + "label": ")", + "x": 10, + "y": 1.5 + }, + { + "label": "_", + "x": 11, + "y": 1.5 + }, + { + "label": "+", + "x": 12, + "y": 1.5 + }, + { + "x": 13, + "y": 1.5 + }, + { + "x": 14, + "y": 1.5 + }, + { + "label": "Insert", + "x": 15.25, + "y": 1.5 + }, + { + "label": "Home", + "x": 16.25, + "y": 1.5 + }, + { + "label": "PgUp", + "x": 17.25, + "y": 1.5 + }, + { + "label": "Tab", + "x": 0, + "y": 2.5, + "w": 1.5 + }, + { + "label": "Q", + "x": 1.5, + "y": 2.5 + }, + { + "label": "W", + "x": 2.5, + "y": 2.5 + }, + { + "label": "E", + "x": 3.5, + "y": 2.5 + }, + { + "label": "R", + "x": 4.5, + "y": 2.5 + }, + { + "label": "T", + "x": 5.5, + "y": 2.5 + }, + { + "label": "Y", + "x": 6.5, + "y": 2.5 + }, + { + "label": "U", + "x": 7.5, + "y": 2.5 + }, + { + "label": "I", + "x": 8.5, + "y": 2.5 + }, + { + "label": "O", + "x": 9.5, + "y": 2.5 + }, + { + "label": "P", + "x": 10.5, + "y": 2.5 + }, + { + "label": "{", + "x": 11.5, + "y": 2.5 + }, + { + "label": "}", + "x": 12.5, + "y": 2.5 + }, + { + "label": "|", + "x": 13.5, + "y": 2.5, + "w": 1.5 + }, + { + "label": "Delete", + "x": 15.25, + "y": 2.5 + }, + { + "label": "End", + "x": 16.25, + "y": 2.5 + }, + { + "label": "PgDn", + "x": 17.25, + "y": 2.5 + }, + { + "label": "Caps Lock", + "x": 0, + "y": 3.5, + "w": 1.75 + }, + { + "label": "A", + "x": 1.75, + "y": 3.5 + }, + { + "label": "S", + "x": 2.75, + "y": 3.5 + }, + { + "label": "D", + "x": 3.75, + "y": 3.5 + }, + { + "label": "F", + "x": 4.75, + "y": 3.5 + }, + { + "label": "G", + "x": 5.75, + "y": 3.5 + }, + { + "label": "H", + "x": 6.75, + "y": 3.5 + }, + { + "label": "J", + "x": 7.75, + "y": 3.5 + }, + { + "label": "K", + "x": 8.75, + "y": 3.5 + }, + { + "label": "L", + "x": 9.75, + "y": 3.5 + }, + { + "label": ":", + "x": 10.75, + "y": 3.5 + }, + { + "label": "\"", + "x": 11.75, + "y": 3.5 + }, + { + "x": 12.75, + "y": 3.5 + }, + { + "label": "Enter", + "x": 13.75, + "y": 3.5, + "w": 1.25 + }, + { + "x": 15.25, + "y": 3.5 + }, + { + "x": 16.25, + "y": 3.5 + }, + { + "x": 17.25, + "y": 3.5 + }, + { + "x": 0, + "y": 4.5 + }, + { + "label": "Shift", + "x": 1, + "y": 4.5, + "w": 1.25 + }, + { + "label": "Z", + "x": 2.25, + "y": 4.5 + }, + { + "label": "X", + "x": 3.25, + "y": 4.5 + }, + { + "label": "C", + "x": 4.25, + "y": 4.5 + }, + { + "label": "V", + "x": 5.25, + "y": 4.5 + }, + { + "label": "B", + "x": 6.25, + "y": 4.5 + }, + { + "label": "N", + "x": 7.25, + "y": 4.5 + }, + { + "label": "M", + "x": 8.25, + "y": 4.5 + }, + { + "label": "<", + "x": 9.25, + "y": 4.5 + }, + { + "label": ">", + "x": 10.25, + "y": 4.5 + }, + { + "label": "?", + "x": 11.25, + "y": 4.5 + }, + { + "label": "Shift", + "x": 12.25, + "y": 4.5, + "w": 1.75 + }, + { + "x": 14, + "y": 4.5 + }, + { + "x": 15.25, + "y": 4.5 + }, + { + "label": "\\u2191", + "x": 16.25, + "y": 4.5 + }, + { + "x": 17.25, + "y": 4.5 + }, + { + "label": "Ctrl", + "x": 0, + "y": 5.5, + "w": 1.5 + }, + { + "label": "Win", + "x": 1.5, + "y": 5.5 + }, + { + "label": "Alt", + "x": 2.5, + "y": 5.5, + "w": 1.5 + }, + { + "x": 4, + "y": 5.5, + "w": 1.5 + }, + { + "x": 5.5, + "y": 5.5, + "w": 1.5 + }, + { + "x": 7, + "y": 5.5 + }, + { + "x": 8, + "y": 5.5, + "w": 1.5 + }, + { + "x": 9.5, + "y": 5.5, + "w": 1.5 + }, + { + "label": "Alt", + "x": 11, + "y": 5.5, + "w": 1.5 + }, + { + "label": "Win", + "x": 12.5, + "y": 5.5 + }, + { + "label": "Ctrl", + "x": 13.5, + "y": 5.5, + "w": 1.5 + }, + { + "label": "\\u2190", + "x": 15.25, + "y": 5.5 + }, + { + "label": "\\u2193", + "x": 16.25, + "y": 5.5 + }, + { + "label": "\\u2192", + "x": 17.25, + "y": 5.5 + } + ] + }, + "KEYMAP_ISO_WINKEYLESS": { + "key_count": 87, + "layout": [ + { + "label": "Esc", + "x": 0, + "y": 0 + }, + { + "label": "F1", + "x": 2, + "y": 0 + }, + { + "label": "F2", + "x": 3, + "y": 0 + }, + { + "label": "F3", + "x": 4, + "y": 0 + }, + { + "label": "F4", + "x": 5, + "y": 0 + }, + { + "label": "F5", + "x": 6.5, + "y": 0 + }, + { + "label": "F6", + "x": 7.5, + "y": 0 + }, + { + "label": "F7", + "x": 8.5, + "y": 0 + }, + { + "label": "F8", + "x": 9.5, + "y": 0 + }, + { + "label": "F9", + "x": 11, + "y": 0 + }, + { + "label": "F10", + "x": 12, + "y": 0 + }, + { + "label": "F11", + "x": 13, + "y": 0 + }, + { + "label": "F12", + "x": 14, + "y": 0 + }, + { + "label": "PrtSc", + "x": 15.25, + "y": 0 + }, + { + "label": "Scroll Lock", + "x": 16.25, + "y": 0 + }, + { + "label": "Pause", + "x": 17.25, + "y": 0 + }, + { + "label": "~", + "x": 0, + "y": 1.5 + }, + { + "label": "!", + "x": 1, + "y": 1.5 + }, + { + "label": "@", + "x": 2, + "y": 1.5 + }, + { + "label": "#", + "x": 3, + "y": 1.5 + }, + { + "label": "$", + "x": 4, + "y": 1.5 + }, + { + "label": "%", + "x": 5, + "y": 1.5 + }, + { + "label": "^", + "x": 6, + "y": 1.5 + }, + { + "label": "&", + "x": 7, + "y": 1.5 + }, + { + "label": "*", + "x": 8, + "y": 1.5 + }, + { + "label": "(", + "x": 9, + "y": 1.5 + }, + { + "label": ")", + "x": 10, + "y": 1.5 + }, + { + "label": "_", + "x": 11, + "y": 1.5 + }, + { + "label": "+", + "x": 12, + "y": 1.5 + }, + { + "label": "Backspace", + "x": 13, + "y": 1.5, + "w": 2 + }, + { + "label": "Insert", + "x": 15.25, + "y": 1.5 + }, + { + "label": "Home", + "x": 16.25, + "y": 1.5 + }, + { + "label": "PgUp", + "x": 17.25, + "y": 1.5 + }, + { + "label": "Tab", + "x": 0, + "y": 2.5, + "w": 1.5 + }, + { + "label": "Q", + "x": 1.5, + "y": 2.5 + }, + { + "label": "W", + "x": 2.5, + "y": 2.5 + }, + { + "label": "E", + "x": 3.5, + "y": 2.5 + }, + { + "label": "R", + "x": 4.5, + "y": 2.5 + }, + { + "label": "T", + "x": 5.5, + "y": 2.5 + }, + { + "label": "Y", + "x": 6.5, + "y": 2.5 + }, + { + "label": "U", + "x": 7.5, + "y": 2.5 + }, + { + "label": "I", + "x": 8.5, + "y": 2.5 + }, + { + "label": "O", + "x": 9.5, + "y": 2.5 + }, + { + "label": "P", + "x": 10.5, + "y": 2.5 + }, + { + "label": "{", + "x": 11.5, + "y": 2.5 + }, + { + "label": "}", + "x": 12.5, + "y": 2.5 + }, + { + "label": "Enter", + "x": 13.75, + "y": 2.5, + "w": 1.25, + "h": 2 + }, + { + "label": "Delete", + "x": 15.25, + "y": 2.5 + }, + { + "label": "End", + "x": 16.25, + "y": 2.5 + }, + { + "label": "PgDn", + "x": 17.25, + "y": 2.5 + }, + { + "label": "Caps Lock", + "x": 0, + "y": 3.5, + "w": 1.75 + }, + { + "label": "A", + "x": 1.75, + "y": 3.5 + }, + { + "label": "S", + "x": 2.75, + "y": 3.5 + }, + { + "label": "D", + "x": 3.75, + "y": 3.5 + }, + { + "label": "F", + "x": 4.75, + "y": 3.5 + }, + { + "label": "G", + "x": 5.75, + "y": 3.5 + }, + { + "label": "H", + "x": 6.75, + "y": 3.5 + }, + { + "label": "J", + "x": 7.75, + "y": 3.5 + }, + { + "label": "K", + "x": 8.75, + "y": 3.5 + }, + { + "label": "L", + "x": 9.75, + "y": 3.5 + }, + { + "label": ":", + "x": 10.75, + "y": 3.5 + }, + { + "label": "\"", + "x": 11.75, + "y": 3.5 + }, + { + "x": 12.75, + "y": 3.5 + }, + { + "label": "Shift", + "x": 0, + "y": 4.5, + "w": 1.25 + }, + { + "x": 1.25, + "y": 4.5 + }, + { + "label": "Z", + "x": 2.25, + "y": 4.5 + }, + { + "label": "X", + "x": 3.25, + "y": 4.5 + }, + { + "label": "C", + "x": 4.25, + "y": 4.5 + }, + { + "label": "V", + "x": 5.25, + "y": 4.5 + }, + { + "label": "B", + "x": 6.25, + "y": 4.5 + }, + { + "label": "N", + "x": 7.25, + "y": 4.5 + }, + { + "label": "M", + "x": 8.25, + "y": 4.5 + }, + { + "label": "<", + "x": 9.25, + "y": 4.5 + }, + { + "label": ">", + "x": 10.25, + "y": 4.5 + }, + { + "label": "?", + "x": 11.25, + "y": 4.5 + }, + { + "label": "Shift", + "x": 12.25, + "y": 4.5, + "w": 2.75 + }, + { + "label": "\\u2191", + "x": 16.25, + "y": 4.5 + }, + { + "label": "Ctrl", + "x": 0, + "y": 5.5, + "w": 1.5 + }, + { + "label": "Win", + "x": 1.5, + "y": 5.5 + }, + { + "label": "Alt", + "x": 2.5, + "y": 5.5, + "w": 1.5 + }, + { + "x": 4, + "y": 5.5, + "w": 7 + }, + { + "label": "Alt", + "x": 11, + "y": 5.5, + "w": 1.5 + }, + { + "label": "Win", + "x": 12.5, + "y": 5.5 + }, + { + "label": "Ctrl", + "x": 13.5, + "y": 5.5, + "w": 1.5 + }, + { + "label": "\\u2190", + "x": 15.25, + "y": 5.5 + }, + { + "label": "\\u2193", + "x": 16.25, + "y": 5.5 + }, + { + "label": "\\u2192", + "x": 17.25, + "y": 5.5 + } + ] + }, + "KEYMAP_ISO": { + "key_count": 88, + "layout": [ + { + "label": "Esc", + "x": 0, + "y": 0 + }, + { + "label": "F1", + "x": 2, + "y": 0 + }, + { + "label": "F2", + "x": 3, + "y": 0 + }, + { + "label": "F3", + "x": 4, + "y": 0 + }, + { + "label": "F4", + "x": 5, + "y": 0 + }, + { + "label": "F5", + "x": 6.5, + "y": 0 + }, + { + "label": "F6", + "x": 7.5, + "y": 0 + }, + { + "label": "F7", + "x": 8.5, + "y": 0 + }, + { + "label": "F8", + "x": 9.5, + "y": 0 + }, + { + "label": "F9", + "x": 11, + "y": 0 + }, + { + "label": "F10", + "x": 12, + "y": 0 + }, + { + "label": "F11", + "x": 13, + "y": 0 + }, + { + "label": "F12", + "x": 14, + "y": 0 + }, + { + "label": "PrtSc", + "x": 15.25, + "y": 0 + }, + { + "label": "Scroll Lock", + "x": 16.25, + "y": 0 + }, + { + "label": "Pause", + "x": 17.25, + "y": 0 + }, + { + "label": "~", + "x": 0, + "y": 1.5 + }, + { + "label": "!", + "x": 1, + "y": 1.5 + }, + { + "label": "@", + "x": 2, + "y": 1.5 + }, + { + "label": "#", + "x": 3, + "y": 1.5 + }, + { + "label": "$", + "x": 4, + "y": 1.5 + }, + { + "label": "%", + "x": 5, + "y": 1.5 + }, + { + "label": "^", + "x": 6, + "y": 1.5 + }, + { + "label": "&", + "x": 7, + "y": 1.5 + }, + { + "label": "*", + "x": 8, + "y": 1.5 + }, + { + "label": "(", + "x": 9, + "y": 1.5 + }, + { + "label": ")", + "x": 10, + "y": 1.5 + }, + { + "label": "_", + "x": 11, + "y": 1.5 + }, + { + "label": "+", + "x": 12, + "y": 1.5 + }, + { + "label": "Backspace", + "x": 13, + "y": 1.5, + "w": 2 + }, + { + "label": "Insert", + "x": 15.25, + "y": 1.5 + }, + { + "label": "Home", + "x": 16.25, + "y": 1.5 + }, + { + "label": "PgUp", + "x": 17.25, + "y": 1.5 + }, + { + "label": "Tab", + "x": 0, + "y": 2.5, + "w": 1.5 + }, + { + "label": "Q", + "x": 1.5, + "y": 2.5 + }, + { + "label": "W", + "x": 2.5, + "y": 2.5 + }, + { + "label": "E", + "x": 3.5, + "y": 2.5 + }, + { + "label": "R", + "x": 4.5, + "y": 2.5 + }, + { + "label": "T", + "x": 5.5, + "y": 2.5 + }, + { + "label": "Y", + "x": 6.5, + "y": 2.5 + }, + { + "label": "U", + "x": 7.5, + "y": 2.5 + }, + { + "label": "I", + "x": 8.5, + "y": 2.5 + }, + { + "label": "O", + "x": 9.5, + "y": 2.5 + }, + { + "label": "P", + "x": 10.5, + "y": 2.5 + }, + { + "label": "{", + "x": 11.5, + "y": 2.5 + }, + { + "label": "}", + "x": 12.5, + "y": 2.5 + }, + { + "label": "Enter", + "x": 13.75, + "y": 2.5, + "w": 1.25, + "h": 2 + }, + { + "label": "Delete", + "x": 15.25, + "y": 2.5 + }, + { + "label": "End", + "x": 16.25, + "y": 2.5 + }, + { + "label": "PgDn", + "x": 17.25, + "y": 2.5 + }, + { + "label": "Caps Lock", + "x": 0, + "y": 3.5, + "w": 1.75 + }, + { + "label": "A", + "x": 1.75, + "y": 3.5 + }, + { + "label": "S", + "x": 2.75, + "y": 3.5 + }, + { + "label": "D", + "x": 3.75, + "y": 3.5 + }, + { + "label": "F", + "x": 4.75, + "y": 3.5 + }, + { + "label": "G", + "x": 5.75, + "y": 3.5 + }, + { + "label": "H", + "x": 6.75, + "y": 3.5 + }, + { + "label": "J", + "x": 7.75, + "y": 3.5 + }, + { + "label": "K", + "x": 8.75, + "y": 3.5 + }, + { + "label": "L", + "x": 9.75, + "y": 3.5 + }, + { + "label": ":", + "x": 10.75, + "y": 3.5 + }, + { + "label": "\"", + "x": 11.75, + "y": 3.5 + }, + { + "x": 12.75, + "y": 3.5 + }, + { + "label": "Shift", + "x": 0, + "y": 4.5, + "w": 1.25 + }, + { + "x": 1.25, + "y": 4.5 + }, + { + "label": "Z", + "x": 2.25, + "y": 4.5 + }, + { + "label": "X", + "x": 3.25, + "y": 4.5 + }, + { + "label": "C", + "x": 4.25, + "y": 4.5 + }, + { + "label": "V", + "x": 5.25, + "y": 4.5 + }, + { + "label": "B", + "x": 6.25, + "y": 4.5 + }, + { + "label": "N", + "x": 7.25, + "y": 4.5 + }, + { + "label": "M", + "x": 8.25, + "y": 4.5 + }, + { + "label": "<", + "x": 9.25, + "y": 4.5 + }, + { + "label": ">", + "x": 10.25, + "y": 4.5 + }, + { + "label": "?", + "x": 11.25, + "y": 4.5 + }, + { + "label": "Shift", + "x": 12.25, + "y": 4.5, + "w": 2.75 + }, + { + "label": "\\u2191", + "x": 16.25, + "y": 4.5 + }, + { + "label": "Ctrl", + "x": 0, + "y": 5.5, + "w": 1.25 + }, + { + "label": "Win", + "x": 1.25, + "y": 5.5, + "w": 1.25 + }, + { + "label": "Alt", + "x": 2.5, + "y": 5.5, + "w": 1.25 + }, + { + "x": 3.75, + "y": 5.5, + "w": 6.25 + }, + { + "label": "Alt", + "x": 10, + "y": 5.5, + "w": 1.25 + }, + { + "label": "Win", + "x": 11.25, + "y": 5.5, + "w": 1.25 + }, + { + "x": 12.5, + "y": 5.5, + "w": 1.25 + }, + { + "label": "Ctrl", + "x": 13.75, + "y": 5.5, + "w": 1.25 + }, + { + "label": "\\u2190", + "x": 15.25, + "y": 5.5 + }, + { + "label": "\\u2193", + "x": 16.25, + "y": 5.5 + }, + { + "label": "\\u2192", + "x": 17.25, + "y": 5.5 + } + ] + } + } +} From 4cb7907547bb6575c2889885e6454c338cc64af2 Mon Sep 17 00:00:00 2001 From: Yan-Fa Li Date: Fri, 6 Apr 2018 08:55:43 -0700 Subject: [PATCH 182/578] Add 2 missing F-Row keys --- keyboards/phantom/info.json | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/keyboards/phantom/info.json b/keyboards/phantom/info.json index 2210f829d15d..6c5ef8de90b0 100644 --- a/keyboards/phantom/info.json +++ b/keyboards/phantom/info.json @@ -910,13 +910,17 @@ ] }, "KEYMAP_7BIT": { - "key_count": 99, + "key_count": 101, "layout": [ { "label": "Esc", "x": 0, "y": 0 }, + { + "x": 1, + "y": 0 + }, { "label": "F1", "x": 2, @@ -937,24 +941,28 @@ "x": 5, "y": 0 }, + { + "x": 6, + "y": 0 + }, { "label": "F5", - "x": 6.5, + "x": 7, "y": 0 }, { "label": "F6", - "x": 7.5, + "x": 8, "y": 0 }, { "label": "F7", - "x": 8.5, + "x": 9, "y": 0 }, { "label": "F8", - "x": 9.5, + "x": 10, "y": 0 }, { From 8478ef648f3685a26eeec4043c8379a5cedaae6f Mon Sep 17 00:00:00 2001 From: mdnt <33212583+mdnt@users.noreply.github.com> Date: Wed, 4 Apr 2018 12:11:33 -0500 Subject: [PATCH 183/578] Add TKC1800 info.json Created an info.json for the tkc1800. --- keyboards/tkc1800/info.json | 16 ++++++++++++++++ keyboards/tkc1800/keymaps/default/keymap.c | 4 ++-- keyboards/tkc1800/keymaps/wkl/keymap.c | 4 ++-- keyboards/tkc1800/tkc1800.h | 2 +- 4 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 keyboards/tkc1800/info.json diff --git a/keyboards/tkc1800/info.json b/keyboards/tkc1800/info.json new file mode 100644 index 000000000000..9520a20b4efb --- /dev/null +++ b/keyboards/tkc1800/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "TKC1800", + "manufacturer": "The Key Company", + "identifier": "", + "url": "", + "maintainer": "qmk", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "width": 19.5, + "height": 7, + "layouts": { + "LAYOUT": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.2, "y":0}, {"label":"F2", "x":2.2, "y":0}, {"label":"F3", "x":3.2, "y":0}, {"label":"F4", "x":4.2, "y":0}, {"label":"F5", "x":5.4, "y":0}, {"label":"F6", "x":6.4, "y":0}, {"label":"F7", "x":7.4, "y":0}, {"label":"F8", "x":8.4, "y":0}, {"label":"F9", "x":9.6, "y":0}, {"label":"F10", "x":10.6, "y":0}, {"label":"F11", "x":11.6, "y":0}, {"label":"F12", "x":12.5, "y":0}, {"label":"Insert", "x":15.5, "y":0}, {"label":"Home", "x":16.5, "y":0}, {"label":"Pg Up", "x":17.5, "y":0}, {"label":"Prt Sc", "x":18.5, "y":0}, {"label":"Delete", "x":15.5, "y":1}, {"label":"End", "x":16.5, "y":1}, {"label":"Pg Dn", "x":17.5, "y":1}, {"label":"Scroll Lock", "x":18.5, "y":1}, {"label":"~", "x":0, "y":2}, {"label":"!", "x":1, "y":2}, {"label":"@", "x":2, "y":2}, {"label":"#", "x":3, "y":2}, {"label":"$", "x":4, "y":2}, {"label":"%", "x":5, "y":2}, {"label":"^", "x":6, "y":2}, {"label":"&", "x":7, "y":2}, {"label":"*", "x":8, "y":2}, {"label":"(", "x":9, "y":2}, {"label":")", "x":10, "y":2}, {"label":"_", "x":11, "y":2}, {"label":"+", "x":12, "y":2}, {"label":"Backspace", "x":13, "y":2}, {"x":14, "y":2}, {"label":"Num Lock", "x":15.5, "y":2}, {"label":"/", "x":16.5, "y":2}, {"label":"*", "x":17.5, "y":2}, {"label":"-", "x":18.5, "y":2}, {"label":"Tab", "x":0, "y":3, "w":1.5}, {"label":"Q", "x":1.5, "y":3}, {"label":"W", "x":2.5, "y":3}, {"label":"E", "x":3.5, "y":3}, {"label":"R", "x":4.5, "y":3}, {"label":"T", "x":5.5, "y":3}, {"label":"Y", "x":6.5, "y":3}, {"label":"U", "x":7.5, "y":3}, {"label":"I", "x":8.5, "y":3}, {"label":"O", "x":9.5, "y":3}, {"label":"P", "x":10.5, "y":3}, {"label":"{", "x":11.5, "y":3}, {"label":"}", "x":12.5, "y":3}, {"label":"|", "x":13.5, "y":3, "w":1.5}, {"label":"7", "x":15.5, "y":3}, {"label":"8", "x":16.5, "y":3}, {"label":"9", "x":17.5, "y":3}, {"label":"+", "x":18.5, "y":3}, {"label":"Caps Lock", "x":0, "y":4, "w":1.75}, {"label":"A", "x":1.75, "y":4}, {"label":"S", "x":2.75, "y":4}, {"label":"D", "x":3.75, "y":4}, {"label":"F", "x":4.75, "y":4}, {"label":"G", "x":5.75, "y":4}, {"label":"H", "x":6.75, "y":4}, {"label":"J", "x":7.75, "y":4}, {"label":"K", "x":8.75, "y":4}, {"label":"L", "x":9.75, "y":4}, {"label":":", "x":10.75, "y":4}, {"label":"\"", "x":11.75, "y":4}, {"x":12.75, "y":4}, {"label":"Enter", "x":13.75, "y":4, "w":1.25}, {"label":"4", "x":15.5, "y":4}, {"label":"5", "x":16.5, "y":4}, {"label":"6", "x":17.5, "y":4}, {"x":18.5, "y":4}, {"label":"Shift", "x":0, "y":5, "w":2.25}, {"label":"Z", "x":2.25, "y":5}, {"label":"X", "x":3.25, "y":5}, {"label":"C", "x":4.25, "y":5}, {"label":"V", "x":5.25, "y":5}, {"label":"B", "x":6.25, "y":5}, {"label":"N", "x":7.25, "y":5}, {"label":"M", "x":8.25, "y":5}, {"label":"<", "x":9.25, "y":5}, {"label":">", "x":10.25, "y":5}, {"label":"?", "x":11.25, "y":5}, {"label":"Shift", "x":12.25, "y":5}, {"x":13.25, "y":5}, {"label":"\u2191", "x":14.25, "y":5}, {"label":"1", "x":15.5, "y":5}, {"label":"2", "x":16.5, "y":5}, {"label":"3", "x":17.5, "y":5}, {"label":"Enter", "x":18.5, "y":5}, {"label":"Ctrl", "x":0, "y":6, "w":1.25}, {"label":"Win", "x":1.25, "y":6, "w":1.25}, {"label":"Alt", "x":2.5, "y":6, "w":1.25}, {"x":3.75, "y":6, "w":6.25}, {"label":"Alt", "x":10, "y":6}, {"label":"Win", "x":11, "y":6}, {"label":"Fn", "x":12, "y":6}, {"label":"\u2190", "x":13.25, "y":6}, {"label":"\u2193", "x":14.25, "y":6}, {"label":"\u2192", "x":15.25, "y":6}, {"label":"0", "x":16.5, "y":6}, {"label":".", "x":17.5, "y":6}, {"x":18.5, "y":6}] + } + } +} diff --git a/keyboards/tkc1800/keymaps/default/keymap.c b/keyboards/tkc1800/keymaps/default/keymap.c index 7821f0f3156e..30a661986ca6 100644 --- a/keyboards/tkc1800/keymaps/default/keymap.c +++ b/keyboards/tkc1800/keymaps/default/keymap.c @@ -57,7 +57,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctrl|Gui |Alt | Space |Alt |Gui|Ctr|Left |Down|Rght| 0 | . | | * `---------------------------------------------------------------------------------' */ - [BASE] = KEYMAP( + [BASE] = LAYOUT( KC_ESC, 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_HOME, KC_PGUP, KC_PSCR, \ KC_DEL, KC_END, KC_PGDN, KC_SLCK, \ KC_GRV, 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_BSPC, XXXXXX, KC_NLCK, KC_PSLS, KC_PAST, KC_PAUS, \ @@ -66,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, XXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT,KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, XXXXXX, \ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(FUNCTION), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT ), - [FUNCTION] = KEYMAP( + [FUNCTION] = LAYOUT( KC_ESC, 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_HOME, KC_PGUP, KC_PSCR, \ KC_DEL, KC_END, KC_PGDN, KC_SLCK, \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, RESET, XXXXXX, KC_NLCK, KC_PSLS, KC_PAST, KC_PAUS, \ diff --git a/keyboards/tkc1800/keymaps/wkl/keymap.c b/keyboards/tkc1800/keymaps/wkl/keymap.c index b72a77c21e7e..1696dc12b95b 100644 --- a/keyboards/tkc1800/keymaps/wkl/keymap.c +++ b/keyboards/tkc1800/keymaps/wkl/keymap.c @@ -57,7 +57,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctrl|Gui |Alt | Space |Alt |Gui|Ctr|Left |Down|Rght| 0 | . | | * `---------------------------------------------------------------------------------' */ - [BASE] = KEYMAP( + [BASE] = LAYOUT( KC_ESC, 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_HOME, KC_PGUP, KC_PSCR, \ KC_DEL, KC_END, KC_PGDN, KC_SLCK, \ KC_GRV, 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_BSPC, XXXXXX, KC_NLCK, KC_PSLS, KC_PAST, KC_PAUS, \ @@ -66,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, XXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT,KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, XXXXXX, \ KC_LCTL, KC_LALT, XXXXXX, KC_SPC, XXXXXX, MO(FUNCTION), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT ), - [FUNCTION] = KEYMAP( + [FUNCTION] = LAYOUT( KC_ESC, 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_HOME, KC_PGUP, KC_PSCR, \ KC_DEL, KC_END, KC_PGDN, KC_SLCK, \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, RESET, XXXXXX, KC_NLCK, KC_PSLS, KC_PAST, KC_PAUS, \ diff --git a/keyboards/tkc1800/tkc1800.h b/keyboards/tkc1800/tkc1800.h index 56b5e3614e8f..0a872ef88368 100644 --- a/keyboards/tkc1800/tkc1800.h +++ b/keyboards/tkc1800/tkc1800.h @@ -18,7 +18,7 @@ #include "quantum.h" -#define KEYMAP( \ +#define LAYOUT( \ K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, K0G, K0H, K0I, \ K1F, K1G, K1H, K1I, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, \ From d78e630641087ac5147d6c764de31c35cd9686cb Mon Sep 17 00:00:00 2001 From: Yan-Fa Li Date: Sat, 7 Apr 2018 08:45:57 -0700 Subject: [PATCH 184/578] Clueboard 60 info.json - adds - LAYOUT_60_ansi - LAYOUT_60_iso - KEYMAP_AEK - KEYMAP - LAYOUT_60_ansi_split_bs_rshift --- keyboards/clueboard/60/info.json | 1654 ++++++++++++++++++++++++++++++ 1 file changed, 1654 insertions(+) create mode 100644 keyboards/clueboard/60/info.json diff --git a/keyboards/clueboard/60/info.json b/keyboards/clueboard/60/info.json new file mode 100644 index 000000000000..516c45fe5051 --- /dev/null +++ b/keyboards/clueboard/60/info.json @@ -0,0 +1,1654 @@ +{ + "keyboard_name": "clueboard/60", + "manufacturer": "Clueboard", + "identifier": "0483:df11", + "maintainer": "skullydazed", + "url": "", + "processor": "stm32f303", + "bootloader": "stm32-dfu-util", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_60_ansi": { + "key_count": 61, + "layout": [ + { + "label": "~", + "x": 0, + "y": 0 + }, + { + "label": "!", + "x": 1, + "y": 0 + }, + { + "label": "@", + "x": 2, + "y": 0 + }, + { + "label": "#", + "x": 3, + "y": 0 + }, + { + "label": "$", + "x": 4, + "y": 0 + }, + { + "label": "%", + "x": 5, + "y": 0 + }, + { + "label": "^", + "x": 6, + "y": 0 + }, + { + "label": "&", + "x": 7, + "y": 0 + }, + { + "label": "*", + "x": 8, + "y": 0 + }, + { + "label": "(", + "x": 9, + "y": 0 + }, + { + "label": ")", + "x": 10, + "y": 0 + }, + { + "label": "_", + "x": 11, + "y": 0 + }, + { + "label": "+", + "x": 12, + "y": 0 + }, + { + "label": "Backspace", + "x": 13, + "y": 0, + "w": 2 + }, + { + "label": "Tab", + "x": 0, + "y": 1, + "w": 1.5 + }, + { + "label": "Q", + "x": 1.5, + "y": 1 + }, + { + "label": "W", + "x": 2.5, + "y": 1 + }, + { + "label": "E", + "x": 3.5, + "y": 1 + }, + { + "label": "R", + "x": 4.5, + "y": 1 + }, + { + "label": "T", + "x": 5.5, + "y": 1 + }, + { + "label": "Y", + "x": 6.5, + "y": 1 + }, + { + "label": "U", + "x": 7.5, + "y": 1 + }, + { + "label": "I", + "x": 8.5, + "y": 1 + }, + { + "label": "O", + "x": 9.5, + "y": 1 + }, + { + "label": "P", + "x": 10.5, + "y": 1 + }, + { + "label": "{", + "x": 11.5, + "y": 1 + }, + { + "label": "}", + "x": 12.5, + "y": 1 + }, + { + "label": "|", + "x": 13.5, + "y": 1, + "w": 1.5 + }, + { + "label": "Caps Lock", + "x": 0, + "y": 2, + "w": 1.75 + }, + { + "label": "A", + "x": 1.75, + "y": 2 + }, + { + "label": "S", + "x": 2.75, + "y": 2 + }, + { + "label": "D", + "x": 3.75, + "y": 2 + }, + { + "label": "F", + "x": 4.75, + "y": 2 + }, + { + "label": "G", + "x": 5.75, + "y": 2 + }, + { + "label": "H", + "x": 6.75, + "y": 2 + }, + { + "label": "J", + "x": 7.75, + "y": 2 + }, + { + "label": "K", + "x": 8.75, + "y": 2 + }, + { + "label": "L", + "x": 9.75, + "y": 2 + }, + { + "label": ":", + "x": 10.75, + "y": 2 + }, + { + "label": "\"", + "x": 11.75, + "y": 2 + }, + { + "label": "Enter", + "x": 12.75, + "y": 2, + "w": 2.25 + }, + { + "label": "Shift", + "x": 0, + "y": 3, + "w": 2.25 + }, + { + "label": "Z", + "x": 2.25, + "y": 3 + }, + { + "label": "X", + "x": 3.25, + "y": 3 + }, + { + "label": "C", + "x": 4.25, + "y": 3 + }, + { + "label": "V", + "x": 5.25, + "y": 3 + }, + { + "label": "B", + "x": 6.25, + "y": 3 + }, + { + "label": "N", + "x": 7.25, + "y": 3 + }, + { + "label": "M", + "x": 8.25, + "y": 3 + }, + { + "label": "<", + "x": 9.25, + "y": 3 + }, + { + "label": ">", + "x": 10.25, + "y": 3 + }, + { + "label": "?", + "x": 11.25, + "y": 3 + }, + { + "label": "Shift", + "x": 12.25, + "y": 3, + "w": 2.75 + }, + { + "label": "Ctrl", + "x": 0, + "y": 4, + "w": 1.25 + }, + { + "label": "Win", + "x": 1.25, + "y": 4, + "w": 1.25 + }, + { + "label": "Alt", + "x": 2.5, + "y": 4, + "w": 1.25 + }, + { + "x": 3.75, + "y": 4, + "w": 6.25 + }, + { + "label": "Alt", + "x": 10, + "y": 4, + "w": 1.25 + }, + { + "label": "Win", + "x": 11.25, + "y": 4, + "w": 1.25 + }, + { + "label": "Menu", + "x": 12.5, + "y": 4, + "w": 1.25 + }, + { + "label": "Ctrl", + "x": 13.75, + "y": 4, + "w": 1.25 + } + ] + }, + "LAYOUT_60_iso": { + "key_count": 62, + "layout": [ + { + "label": "\\u00ac", + "x": 0, + "y": 0 + }, + { + "label": "!", + "x": 1, + "y": 0 + }, + { + "label": "\"", + "x": 2, + "y": 0 + }, + { + "label": "\\u00a3", + "x": 3, + "y": 0 + }, + { + "label": "$", + "x": 4, + "y": 0 + }, + { + "label": "%", + "x": 5, + "y": 0 + }, + { + "label": "^", + "x": 6, + "y": 0 + }, + { + "label": "&", + "x": 7, + "y": 0 + }, + { + "label": "*", + "x": 8, + "y": 0 + }, + { + "label": "(", + "x": 9, + "y": 0 + }, + { + "label": ")", + "x": 10, + "y": 0 + }, + { + "label": "_", + "x": 11, + "y": 0 + }, + { + "label": "+", + "x": 12, + "y": 0 + }, + { + "label": "Backspace", + "x": 13, + "y": 0, + "w": 2 + }, + { + "label": "Tab", + "x": 0, + "y": 1, + "w": 1.5 + }, + { + "label": "Q", + "x": 1.5, + "y": 1 + }, + { + "label": "W", + "x": 2.5, + "y": 1 + }, + { + "label": "E", + "x": 3.5, + "y": 1 + }, + { + "label": "R", + "x": 4.5, + "y": 1 + }, + { + "label": "T", + "x": 5.5, + "y": 1 + }, + { + "label": "Y", + "x": 6.5, + "y": 1 + }, + { + "label": "U", + "x": 7.5, + "y": 1 + }, + { + "label": "I", + "x": 8.5, + "y": 1 + }, + { + "label": "O", + "x": 9.5, + "y": 1 + }, + { + "label": "P", + "x": 10.5, + "y": 1 + }, + { + "label": "{", + "x": 11.5, + "y": 1 + }, + { + "label": "}", + "x": 12.5, + "y": 1 + }, + { + "label": "Enter", + "x": 13.75, + "y": 1, + "w": 1.25, + "h": 2 + }, + { + "label": "Caps Lock", + "x": 0, + "y": 2, + "w": 1.75 + }, + { + "label": "A", + "x": 1.75, + "y": 2 + }, + { + "label": "S", + "x": 2.75, + "y": 2 + }, + { + "label": "D", + "x": 3.75, + "y": 2 + }, + { + "label": "F", + "x": 4.75, + "y": 2 + }, + { + "label": "G", + "x": 5.75, + "y": 2 + }, + { + "label": "H", + "x": 6.75, + "y": 2 + }, + { + "label": "J", + "x": 7.75, + "y": 2 + }, + { + "label": "K", + "x": 8.75, + "y": 2 + }, + { + "label": "L", + "x": 9.75, + "y": 2 + }, + { + "label": ":", + "x": 10.75, + "y": 2 + }, + { + "label": "@", + "x": 11.75, + "y": 2 + }, + { + "label": "~", + "x": 12.75, + "y": 2 + }, + { + "label": "Shift", + "x": 0, + "y": 3, + "w": 1.25 + }, + { + "label": "|", + "x": 1.25, + "y": 3 + }, + { + "label": "Z", + "x": 2.25, + "y": 3 + }, + { + "label": "X", + "x": 3.25, + "y": 3 + }, + { + "label": "C", + "x": 4.25, + "y": 3 + }, + { + "label": "V", + "x": 5.25, + "y": 3 + }, + { + "label": "B", + "x": 6.25, + "y": 3 + }, + { + "label": "N", + "x": 7.25, + "y": 3 + }, + { + "label": "M", + "x": 8.25, + "y": 3 + }, + { + "label": "<", + "x": 9.25, + "y": 3 + }, + { + "label": ">", + "x": 10.25, + "y": 3 + }, + { + "label": "?", + "x": 11.25, + "y": 3 + }, + { + "label": "Shift", + "x": 12.25, + "y": 3, + "w": 2.75 + }, + { + "label": "Ctrl", + "x": 0, + "y": 4, + "w": 1.25 + }, + { + "label": "Win", + "x": 1.25, + "y": 4, + "w": 1.25 + }, + { + "label": "Alt", + "x": 2.5, + "y": 4, + "w": 1.25 + }, + { + "x": 3.75, + "y": 4, + "w": 6.25 + }, + { + "label": "AltGr", + "x": 10, + "y": 4, + "w": 1.25 + }, + { + "label": "Win", + "x": 11.25, + "y": 4, + "w": 1.25 + }, + { + "label": "Menu", + "x": 12.5, + "y": 4, + "w": 1.25 + }, + { + "label": "Ctrl", + "x": 13.75, + "y": 4, + "w": 1.25 + } + ] + }, + "KEYMAP_AEK": { + "key_count": 60, + "layout": [ + { + "label": "~", + "x": 0, + "y": 0 + }, + { + "label": "!", + "x": 1, + "y": 0 + }, + { + "label": "@", + "x": 2, + "y": 0 + }, + { + "label": "#", + "x": 3, + "y": 0 + }, + { + "label": "$", + "x": 4, + "y": 0 + }, + { + "label": "%", + "x": 5, + "y": 0 + }, + { + "label": "^", + "x": 6, + "y": 0 + }, + { + "label": "&", + "x": 7, + "y": 0 + }, + { + "label": "*", + "x": 8, + "y": 0 + }, + { + "label": "(", + "x": 9, + "y": 0 + }, + { + "label": ")", + "x": 10, + "y": 0 + }, + { + "label": "_", + "x": 11, + "y": 0 + }, + { + "label": "+", + "x": 12, + "y": 0 + }, + { + "label": "Backspace", + "x": 13, + "y": 0, + "w": 2 + }, + { + "label": "Tab", + "x": 0, + "y": 1, + "w": 1.5 + }, + { + "label": "Q", + "x": 1.5, + "y": 1 + }, + { + "label": "W", + "x": 2.5, + "y": 1 + }, + { + "label": "E", + "x": 3.5, + "y": 1 + }, + { + "label": "R", + "x": 4.5, + "y": 1 + }, + { + "label": "T", + "x": 5.5, + "y": 1 + }, + { + "label": "Y", + "x": 6.5, + "y": 1 + }, + { + "label": "U", + "x": 7.5, + "y": 1 + }, + { + "label": "I", + "x": 8.5, + "y": 1 + }, + { + "label": "O", + "x": 9.5, + "y": 1 + }, + { + "label": "P", + "x": 10.5, + "y": 1 + }, + { + "label": "{", + "x": 11.5, + "y": 1 + }, + { + "label": "}", + "x": 12.5, + "y": 1 + }, + { + "label": "|", + "x": 13.5, + "y": 1, + "w": 1.5 + }, + { + "label": "Caps Lock", + "x": 0, + "y": 2, + "w": 1.75 + }, + { + "label": "A", + "x": 1.75, + "y": 2 + }, + { + "label": "S", + "x": 2.75, + "y": 2 + }, + { + "label": "D", + "x": 3.75, + "y": 2 + }, + { + "label": "F", + "x": 4.75, + "y": 2 + }, + { + "label": "G", + "x": 5.75, + "y": 2 + }, + { + "label": "H", + "x": 6.75, + "y": 2 + }, + { + "label": "J", + "x": 7.75, + "y": 2 + }, + { + "label": "K", + "x": 8.75, + "y": 2 + }, + { + "label": "L", + "x": 9.75, + "y": 2 + }, + { + "label": ":", + "x": 10.75, + "y": 2 + }, + { + "label": "\"", + "x": 11.75, + "y": 2 + }, + { + "label": "Enter", + "x": 12.75, + "y": 2, + "w": 2.25 + }, + { + "label": "Shift", + "x": 0, + "y": 3, + "w": 2.25 + }, + { + "label": "Z", + "x": 2.25, + "y": 3 + }, + { + "label": "X", + "x": 3.25, + "y": 3 + }, + { + "label": "C", + "x": 4.25, + "y": 3 + }, + { + "label": "V", + "x": 5.25, + "y": 3 + }, + { + "label": "B", + "x": 6.25, + "y": 3 + }, + { + "label": "N", + "x": 7.25, + "y": 3 + }, + { + "label": "M", + "x": 8.25, + "y": 3 + }, + { + "label": "<", + "x": 9.25, + "y": 3 + }, + { + "label": ">", + "x": 10.25, + "y": 3 + }, + { + "label": "?", + "x": 11.25, + "y": 3 + }, + { + "label": "Shift", + "x": 12.25, + "y": 3, + "w": 2.75 + }, + { + "label": "Ctrl", + "x": 0, + "y": 4, + "w": 1.5 + }, + { + "label": "Win", + "x": 1.5, + "y": 4, + "w": 1.25 + }, + { + "label": "Alt", + "x": 2.75, + "y": 4, + "w": 1.5 + }, + { + "x": 4.25, + "y": 4, + "w": 6.5 + }, + { + "label": "AltGr", + "x": 10.75, + "y": 4, + "w": 1.5 + }, + { + "label": "Win", + "x": 12.25, + "y": 4, + "w": 1.25 + }, + { + "label": "Ctrl", + "x": 13.5, + "y": 4, + "w": 1.5 + } + ] + }, + "KEYMAP": { + "key_count": 65, + "layout": [ + { + "label": "~", + "x": 0, + "y": 0 + }, + { + "label": "!", + "x": 1, + "y": 0 + }, + { + "label": "@", + "x": 2, + "y": 0 + }, + { + "label": "#", + "x": 3, + "y": 0 + }, + { + "label": "$", + "x": 4, + "y": 0 + }, + { + "label": "%", + "x": 5, + "y": 0 + }, + { + "label": "^", + "x": 6, + "y": 0 + }, + { + "label": "&", + "x": 7, + "y": 0 + }, + { + "label": "*", + "x": 8, + "y": 0 + }, + { + "label": "(", + "x": 9, + "y": 0 + }, + { + "label": ")", + "x": 10, + "y": 0 + }, + { + "label": "_", + "x": 11, + "y": 0 + }, + { + "label": "+", + "x": 12, + "y": 0 + }, + { + "x": 13, + "y": 0 + }, + { + "label": "Back", + "x": 14, + "y": 0 + }, + { + "label": "Tab", + "x": 0, + "y": 1, + "w": 1.5 + }, + { + "label": "Q", + "x": 1.5, + "y": 1 + }, + { + "label": "W", + "x": 2.5, + "y": 1 + }, + { + "label": "E", + "x": 3.5, + "y": 1 + }, + { + "label": "R", + "x": 4.5, + "y": 1 + }, + { + "label": "T", + "x": 5.5, + "y": 1 + }, + { + "label": "Y", + "x": 6.5, + "y": 1 + }, + { + "label": "U", + "x": 7.5, + "y": 1 + }, + { + "label": "I", + "x": 8.5, + "y": 1 + }, + { + "label": "O", + "x": 9.5, + "y": 1 + }, + { + "label": "P", + "x": 10.5, + "y": 1 + }, + { + "label": "{", + "x": 11.5, + "y": 1 + }, + { + "label": "}", + "x": 12.5, + "y": 1 + }, + { + "label": "|", + "x": 13.5, + "y": 1, + "w": 1.5 + }, + { + "label": "Caps Lock", + "x": 0, + "y": 2, + "w": 1.75 + }, + { + "label": "A", + "x": 1.75, + "y": 2 + }, + { + "label": "S", + "x": 2.75, + "y": 2 + }, + { + "label": "D", + "x": 3.75, + "y": 2 + }, + { + "label": "F", + "x": 4.75, + "y": 2 + }, + { + "label": "G", + "x": 5.75, + "y": 2 + }, + { + "label": "H", + "x": 6.75, + "y": 2 + }, + { + "label": "J", + "x": 7.75, + "y": 2 + }, + { + "label": "K", + "x": 8.75, + "y": 2 + }, + { + "label": "L", + "x": 9.75, + "y": 2 + }, + { + "label": ":", + "x": 10.75, + "y": 2 + }, + { + "label": "\"", + "x": 11.75, + "y": 2 + }, + { + "x": 12.75, + "y": 2 + }, + { + "label": "Enter", + "x": 13.75, + "y": 2, + "w": 1.25 + }, + { + "x": 0, + "y": 3 + }, + { + "label": "Shift", + "x": 1, + "y": 3, + "w": 1.25 + }, + { + "label": "Z", + "x": 2.25, + "y": 3 + }, + { + "label": "X", + "x": 3.25, + "y": 3 + }, + { + "label": "C", + "x": 4.25, + "y": 3 + }, + { + "label": "V", + "x": 5.25, + "y": 3 + }, + { + "label": "B", + "x": 6.25, + "y": 3 + }, + { + "label": "N", + "x": 7.25, + "y": 3 + }, + { + "label": "M", + "x": 8.25, + "y": 3 + }, + { + "label": "<", + "x": 9.25, + "y": 3 + }, + { + "label": ">", + "x": 10.25, + "y": 3 + }, + { + "label": "?", + "x": 11.25, + "y": 3 + }, + { + "label": "Shift", + "x": 12.25, + "y": 3, + "w": 1.75 + }, + { + "x": 14, + "y": 3 + }, + { + "label": "Ctrl", + "x": 0, + "y": 4, + "w": 1.25 + }, + { + "label": "Win", + "x": 1.25, + "y": 4, + "w": 1.25 + }, + { + "label": "Alt", + "x": 2.5, + "y": 4, + "w": 1.25 + }, + { + "x": 3.75, + "y": 4, + "w": 6.25 + }, + { + "label": "Alt", + "x": 10, + "y": 4, + "w": 1.25 + }, + { + "label": "Win", + "x": 11.25, + "y": 4, + "w": 1.25 + }, + { + "label": "Menu", + "x": 12.5, + "y": 4, + "w": 1.25 + }, + { + "label": "Ctrl", + "x": 13.75, + "y": 4, + "w": 1.25 + } + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "key_count": 63, + "layout": [ + { + "label": "~", + "x": 0, + "y": 0 + }, + { + "label": "!", + "x": 1, + "y": 0 + }, + { + "label": "@", + "x": 2, + "y": 0 + }, + { + "label": "#", + "x": 3, + "y": 0 + }, + { + "label": "$", + "x": 4, + "y": 0 + }, + { + "label": "%", + "x": 5, + "y": 0 + }, + { + "label": "^", + "x": 6, + "y": 0 + }, + { + "label": "&", + "x": 7, + "y": 0 + }, + { + "label": "*", + "x": 8, + "y": 0 + }, + { + "label": "(", + "x": 9, + "y": 0 + }, + { + "label": ")", + "x": 10, + "y": 0 + }, + { + "label": "_", + "x": 11, + "y": 0 + }, + { + "label": "+", + "x": 12, + "y": 0 + }, + { + "x": 13, + "y": 0 + }, + { + "label": "Back", + "x": 14, + "y": 0 + }, + { + "label": "Tab", + "x": 0, + "y": 1, + "w": 1.5 + }, + { + "label": "Q", + "x": 1.5, + "y": 1 + }, + { + "label": "W", + "x": 2.5, + "y": 1 + }, + { + "label": "E", + "x": 3.5, + "y": 1 + }, + { + "label": "R", + "x": 4.5, + "y": 1 + }, + { + "label": "T", + "x": 5.5, + "y": 1 + }, + { + "label": "Y", + "x": 6.5, + "y": 1 + }, + { + "label": "U", + "x": 7.5, + "y": 1 + }, + { + "label": "I", + "x": 8.5, + "y": 1 + }, + { + "label": "O", + "x": 9.5, + "y": 1 + }, + { + "label": "P", + "x": 10.5, + "y": 1 + }, + { + "label": "{", + "x": 11.5, + "y": 1 + }, + { + "label": "}", + "x": 12.5, + "y": 1 + }, + { + "label": "|", + "x": 13.5, + "y": 1, + "w": 1.5 + }, + { + "label": "Caps Lock", + "x": 0, + "y": 2, + "w": 1.75 + }, + { + "label": "A", + "x": 1.75, + "y": 2 + }, + { + "label": "S", + "x": 2.75, + "y": 2 + }, + { + "label": "D", + "x": 3.75, + "y": 2 + }, + { + "label": "F", + "x": 4.75, + "y": 2 + }, + { + "label": "G", + "x": 5.75, + "y": 2 + }, + { + "label": "H", + "x": 6.75, + "y": 2 + }, + { + "label": "J", + "x": 7.75, + "y": 2 + }, + { + "label": "K", + "x": 8.75, + "y": 2 + }, + { + "label": "L", + "x": 9.75, + "y": 2 + }, + { + "label": ":", + "x": 10.75, + "y": 2 + }, + { + "label": "\"", + "x": 11.75, + "y": 2 + }, + { + "label": "Enter", + "x": 12.75, + "y": 2, + "w": 2.25 + }, + { + "label": "Shift", + "x": 0, + "y": 3, + "w": 2.25 + }, + { + "label": "Z", + "x": 2.25, + "y": 3 + }, + { + "label": "X", + "x": 3.25, + "y": 3 + }, + { + "label": "C", + "x": 4.25, + "y": 3 + }, + { + "label": "V", + "x": 5.25, + "y": 3 + }, + { + "label": "B", + "x": 6.25, + "y": 3 + }, + { + "label": "N", + "x": 7.25, + "y": 3 + }, + { + "label": "M", + "x": 8.25, + "y": 3 + }, + { + "label": "<", + "x": 9.25, + "y": 3 + }, + { + "label": ">", + "x": 10.25, + "y": 3 + }, + { + "label": "?", + "x": 11.25, + "y": 3 + }, + { + "label": "Shift", + "x": 12.25, + "y": 3, + "w": 1.75 + }, + { + "x": 14, + "y": 3 + }, + { + "label": "Ctrl", + "x": 0, + "y": 4, + "w": 1.25 + }, + { + "label": "Win", + "x": 1.25, + "y": 4, + "w": 1.25 + }, + { + "label": "Alt", + "x": 2.5, + "y": 4, + "w": 1.25 + }, + { + "x": 3.75, + "y": 4, + "w": 6.25 + }, + { + "label": "Alt", + "x": 10, + "y": 4, + "w": 1.25 + }, + { + "label": "Win", + "x": 11.25, + "y": 4, + "w": 1.25 + }, + { + "label": "Menu", + "x": 12.5, + "y": 4, + "w": 1.25 + }, + { + "label": "Ctrl", + "x": 13.75, + "y": 4, + "w": 1.25 + } + ] + } + } +} From 0f0c2da983a031334b09891adac0ad33ca840838 Mon Sep 17 00:00:00 2001 From: Paul Ewing Date: Tue, 3 Apr 2018 22:47:02 -0700 Subject: [PATCH 185/578] Add the Speedo keyboard --- keyboards/speedo/config.h | 191 +++++++++++++++++++++ keyboards/speedo/keymaps/default/config.h | 24 +++ keyboards/speedo/keymaps/default/keymap.c | 93 ++++++++++ keyboards/speedo/keymaps/default/readme.md | 1 + keyboards/speedo/readme.md | 23 +++ keyboards/speedo/rules.mk | 68 ++++++++ keyboards/speedo/speedo.c | 43 +++++ keyboards/speedo/speedo.h | 41 +++++ 8 files changed, 484 insertions(+) create mode 100644 keyboards/speedo/config.h create mode 100644 keyboards/speedo/keymaps/default/config.h create mode 100644 keyboards/speedo/keymaps/default/keymap.c create mode 100644 keyboards/speedo/keymaps/default/readme.md create mode 100644 keyboards/speedo/readme.md create mode 100644 keyboards/speedo/rules.mk create mode 100644 keyboards/speedo/speedo.c create mode 100644 keyboards/speedo/speedo.h diff --git a/keyboards/speedo/config.h b/keyboards/speedo/config.h new file mode 100644 index 000000000000..6d6a3f7c8032 --- /dev/null +++ b/keyboards/speedo/config.h @@ -0,0 +1,191 @@ +/* +Copyright 2017 Paul Ewing + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER You +#define PRODUCT speedo +#define DESCRIPTION A custom keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +//#define MATRIX_ROW_PINS { D0, D5 } +#define MATRIX_ROW_PINS { D1, D2, D3, C6, C7 } +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, B6, B5, D0, B7, B3, B2, B1, B0 } +#define UNUSED_PINS { D5, D4, D6, D7, B4 } + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +//#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 1 + +#endif diff --git a/keyboards/speedo/keymaps/default/config.h b/keyboards/speedo/keymaps/default/config.h new file mode 100644 index 000000000000..112836e5e74c --- /dev/null +++ b/keyboards/speedo/keymaps/default/config.h @@ -0,0 +1,24 @@ +/* Copyright 2017 Paul Ewing + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +// place overrides here + +#endif diff --git a/keyboards/speedo/keymaps/default/keymap.c b/keyboards/speedo/keymaps/default/keymap.c new file mode 100644 index 000000000000..d2a8f54b8b8d --- /dev/null +++ b/keyboards/speedo/keymaps/default/keymap.c @@ -0,0 +1,93 @@ +/* Copyright 2017 Paul Ewing + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "speedo.h" + +#define _______ KC_TRNS +#define FN MO(_FN) +#define TORST TO(_RESET) +#define TODFT TO(_DEFAULT) +#define TODO KC_NO + +enum speedo_layers { + _DEFAULT, + _FN, + _RESET +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + +[_DEFAULT] = KEYMAP( + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_UP, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, \ + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_DOWN, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LEFT, KC_RGHT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_GRV, FN, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, FN, TODO, KC_RALT, KC_RGUI, KC_RCTL \ +), + +[_FN] = KEYMAP( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TORST, \ + _______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, _______, KC_PGUP, KC_HOME, KC_END, _______, _______, _______, \ + KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_PAUS, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, \ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_INS, _______, _______, KC_PGDN, KC_LBRC, KC_RBRC, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +), + +[_RESET] = KEYMAP( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TODFT, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO \ +) + +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/speedo/keymaps/default/readme.md b/keyboards/speedo/keymaps/default/readme.md new file mode 100644 index 000000000000..6d373b4c6529 --- /dev/null +++ b/keyboards/speedo/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for speedo \ No newline at end of file diff --git a/keyboards/speedo/readme.md b/keyboards/speedo/readme.md new file mode 100644 index 000000000000..0e281b0388af --- /dev/null +++ b/keyboards/speedo/readme.md @@ -0,0 +1,23 @@ +# Speedo + +![Speedo](https://raw.githubusercontent.com/pcewing/speedo/master/build_log/images/04-03_23-09-56_00.jpg) + +#### Keyboard Maintainer +[Paul Ewing](https://github.com/pcewing) + +#### Hardware Supported +Teensy 2.0 + +#### Hardware Availability +You will have to get the plates cut by an online service such as Ponoko. Case files are available in the [Speedo Repository](https://github.com/pcewing/speedo) + +## Building the Firmware: +``` +make speedo:default +``` + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. + +## Flashing the Firmware +See the QMK docs for handwiring a keyboard; there is a section with instructions on how to flash the *.hex* file to the Teensy 2.0 controller. + diff --git a/keyboards/speedo/rules.mk b/keyboards/speedo/rules.mk new file mode 100644 index 000000000000..45eb6ee3766f --- /dev/null +++ b/keyboards/speedo/rules.mk @@ -0,0 +1,68 @@ +# MCU name +#MCU = at90usb1286 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/speedo/speedo.c b/keyboards/speedo/speedo.c new file mode 100644 index 000000000000..74c97c841f2e --- /dev/null +++ b/keyboards/speedo/speedo.c @@ -0,0 +1,43 @@ +/* Copyright 2017 Paul Ewing + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "speedo.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} diff --git a/keyboards/speedo/speedo.h b/keyboards/speedo/speedo.h new file mode 100644 index 000000000000..ad2e4dd4ac8d --- /dev/null +++ b/keyboards/speedo/speedo.h @@ -0,0 +1,41 @@ +/* Copyright 2017 Paul Ewing + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#ifndef SPEEDO_H +#define SPEEDO_H + +#include "quantum.h" + +// This a shortcut to help you visually see your layout. +// The following is an example using the Planck MIT layout +// The first section contains all of the arguments +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, \ + k12, k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, \ + k25, k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, k37, \ + k38, k39, k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, \ + k52, k53, k54, k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65 \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, KC_NO, KC_NO, k06, k07, k08, k09, k10, k11 }, \ + { k12, k13, k14, k15, k16, k17, k18, KC_NO, k19, k20, k21, k22, k23, k24 }, \ + { k25, k26, k27, k28, k29, k30, KC_NO, k31, k32, k33, k34, k35, k36, k37 }, \ + { k38, k39, k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51 }, \ + { k52, k53, k54, k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65 } \ +} + +#endif + From a859a2ee9607c50abb42bf06f1067955d5524d33 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Sat, 7 Apr 2018 10:04:36 -0700 Subject: [PATCH 186/578] Fix KC60 info.json file (#2707) * change KEYMAP to LAYOUT in all the KC60 files * Redo the info.json file --- keyboards/kc60/info.json | 29 ++++++++++++-------- keyboards/kc60/kc60.h | 4 +-- keyboards/kc60/keymaps/dbroqua/keymap.c | 6 ++-- keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c | 4 +-- keyboards/kc60/keymaps/default/keymap.c | 2 +- keyboards/kc60/keymaps/mechmerlin/keymap.c | 14 +++++----- keyboards/kc60/keymaps/sgoodwin/keymap.c | 6 ++-- keyboards/kc60/keymaps/stanleylai/keymap.c | 6 ++-- keyboards/kc60/keymaps/wigguno/keymap.c | 12 ++++---- keyboards/kc60/keymaps/workman-dead/keymap.c | 10 +++---- keyboards/kc60/keymaps/ws2812/keymap.c | 4 +-- 11 files changed, 52 insertions(+), 45 deletions(-) diff --git a/keyboards/kc60/info.json b/keyboards/kc60/info.json index 81d18ffdf7a3..80a4535ab64d 100644 --- a/keyboards/kc60/info.json +++ b/keyboards/kc60/info.json @@ -1,13 +1,20 @@ { - "keyboard_name": "KC60", - "manufacturer": "NKPC", - "processor": "atmega32u4", - "bootloader": "atmel-dfu", - "width": 15, - "height": 5, - "layouts": { - "KEYMAP": { - "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":14, "y":0, "w":2}, {"x":0.5, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":14, "y":1, "w":1.5}, {"x":0.75, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":14, "y":2, "w":2.25}, {"x":1.25, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":14, "y":3, "w":2.75}, {"x":0.25, "y":4, "w":1.25}, {"x":1.5, "y":4, "w":1.25}, {"x":2.75, "y":4, "w":1.25}, {"x":9, "y":4, "w":6.25}, {"x":10.25, "y":4, "w":1.25}, {"x":11.5, "y":4, "w":1.25}, {"x":12.75, "y":4, "w":1.25}, {"x":14, "y":4, "w":1.25}] - } - } + "keyboard_name": "KC60", + "manufacturer": "", + "identifier": "", + "url": "", + "maintainer": "qmk", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":5}, {"x":8.75, "y":4, "w":1.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + }, + + "LAYOUT_60_ansi": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + } + } } diff --git a/keyboards/kc60/kc60.h b/keyboards/kc60/kc60.h index 0fdd3701a9f7..227d1f130d9a 100644 --- a/keyboards/kc60/kc60.h +++ b/keyboards/kc60/kc60.h @@ -21,7 +21,7 @@ * | K40 | K41 | K42 | K45 | K4A | K4B | K4C | K4D | * `-----------------------------------------------------------------------------------------' */ -#define KEYMAP( \ +#define LAYOUT( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ @@ -105,4 +105,4 @@ * `-----------------------------------------------------------------------------------------' */ -#endif \ No newline at end of file +#endif diff --git a/keyboards/kc60/keymaps/dbroqua/keymap.c b/keyboards/kc60/keymaps/dbroqua/keymap.c index dc83fb7a018e..4834659ae18c 100644 --- a/keyboards/kc60/keymaps/dbroqua/keymap.c +++ b/keyboards/kc60/keymaps/dbroqua/keymap.c @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | Gui | Alt | Space | AltGr | Left | Down | Right | * `-----------------------------------------------------------------------------------------' */ - [0] = KEYMAP( /* Basic QWERTY */ + [0] = LAYOUT( /* Basic QWERTY */ 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, \ 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, \ LT(_FNCAPS, KC_CAPS), 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, \ @@ -64,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | Prev | Stop | Next | * `-----------------------------------------------------------------------------------------' */ - [_FNCAPS] = KEYMAP( /* Layer 1 */ + [_FNCAPS] = LAYOUT( /* Layer 1 */ ______, 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_PSCR,______, ______, ______, ______, ______, ______, \ @@ -85,7 +85,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | Home | PgDown| End | * `-----------------------------------------------------------------------------------------' */ - [_FNRIGHTSHIFT] = KEYMAP( /* Layer 2 */ + [_FNRIGHTSHIFT] = LAYOUT( /* Layer 2 */ ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ diff --git a/keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c b/keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c index 119281492dd8..93b3adae2789 100644 --- a/keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c +++ b/keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | LGUI | LAlt | Space | RAlt | RGUI | * `-----------------------------------------------------------------' */ - [0] = KEYMAP( /* Basic QWERTY */ + [0] = LAYOUT( /* Basic QWERTY */ 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, \ 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, \ 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, \ @@ -55,7 +55,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | Stop | | * `-----------------------------------------------------------------' */ - [_FN] = KEYMAP( /* Layer 1 */ + [_FN] = LAYOUT( /* Layer 1 */ ______, 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_CAPS, S_LED, S_LEDI, S_LEDD, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, ______, \ ______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS,KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, ______, ______, \ diff --git a/keyboards/kc60/keymaps/default/keymap.c b/keyboards/kc60/keymaps/default/keymap.c index a35cd9950393..2736745f2e94 100644 --- a/keyboards/kc60/keymaps/default/keymap.c +++ b/keyboards/kc60/keymaps/default/keymap.c @@ -2,7 +2,7 @@ #include "kc60.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP( /* Basic QWERTY */ + [0] = LAYOUT( /* Basic QWERTY */ 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_BSPC, \ 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_BSLS, \ KC_CAPS, 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, \ diff --git a/keyboards/kc60/keymaps/mechmerlin/keymap.c b/keyboards/kc60/keymaps/mechmerlin/keymap.c index 97d458dec4f7..d27493e16527 100644 --- a/keyboards/kc60/keymaps/mechmerlin/keymap.c +++ b/keyboards/kc60/keymaps/mechmerlin/keymap.c @@ -1,46 +1,46 @@ // This is the 60% layout preferred by u/merlin36 the host of the MechMerlin YouTube channel. // The layout is highly influenced by the WKL B.Face and KBP V60 standard layouts. -// Layout designed for use on KC60 with no inswitch or underglow lighting. +// Layout designed for use on KC60 with no inswitch or underglow lighting. #include "kc60.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP( /* Basic QWERTY */ + [0] = LAYOUT( /* Basic QWERTY */ 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_BSPC, \ 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_BSLS, \ 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, \ KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, \ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, MO(2), KC_RALT, KC_RGUI, KC_RCTL \ ), - [1] = KEYMAP( /* HHKB-ish Base Layout */ + [1] = LAYOUT( /* HHKB-ish Base Layout */ 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, \ 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_DEL, \ 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, \ KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, \ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, MO(3), KC_RALT, KC_RGUI, KC_RCTL \ ), - [2] = KEYMAP( /* FN Layer 1 - Basic QWERTY */ + [2] = LAYOUT( /* FN Layer 1 - Basic QWERTY */ KC_GRV, 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_DEL, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, \ KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_NO, KC_PGUP, \ KC_TRNS, KC_TRNS, KC_TRNS, TG(4), KC_NO, KC_TRNS, KC_HOME, KC_PGDN, KC_END \ ), - [3] = KEYMAP( /* FN Layer 2 - HHKB-ish Base Layout */ + [3] = LAYOUT( /* FN Layer 2 - HHKB-ish Base Layout */ KC_GRV, 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_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_BSPC, \ KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, TO(0), KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_NO, KC_TRNS, \ KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_NO, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \ ), - [4] = KEYMAP( /* Arrow Layers - Basic QWERTY ONLY */ + [4] = LAYOUT( /* Arrow Layers - Basic QWERTY ONLY */ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, \ KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_UP, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT \ ), - [5] = KEYMAP( /* Blank Layer for later usage */ + [5] = LAYOUT( /* Blank Layer for later usage */ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, \ diff --git a/keyboards/kc60/keymaps/sgoodwin/keymap.c b/keyboards/kc60/keymaps/sgoodwin/keymap.c index 101b9c9b7712..fc7d6c84406e 100644 --- a/keyboards/kc60/keymaps/sgoodwin/keymap.c +++ b/keyboards/kc60/keymaps/sgoodwin/keymap.c @@ -6,21 +6,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * Toggles between colemak and qwerty by tapping the bottom right key. * Holding capslock key gives a layer like the KBParadise v60. */ - [0] = KEYMAP( /* Basic Colemak */ + [0] = LAYOUT( /* Basic Colemak */ 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_BSPC, \ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, \ MO(2), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_NO, KC_ENT, \ KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, \ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_NO, KC_RGUI, KC_RALT, KC_RCTL, DF(1) \ ), - [1] = KEYMAP( /* Basic QWERTY */ + [1] = LAYOUT( /* Basic QWERTY */ 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_BSPC, \ 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_BSLS, \ MO(2), 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, \ KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, \ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_NO, KC_RGUI, KC_RALT, KC_RCTL, DF(0) \ ), - [2] = KEYMAP( /* KBP v60-like arrows, media keys, etc */ + [2] = LAYOUT( /* KBP v60-like arrows, media keys, etc */ KC_GRV, 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_DEL, \ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, BL_INC, BL_DEC, BL_STEP, \ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_TRNS, \ diff --git a/keyboards/kc60/keymaps/stanleylai/keymap.c b/keyboards/kc60/keymaps/stanleylai/keymap.c index 44a10848bd1d..7f7afdf75c36 100644 --- a/keyboards/kc60/keymaps/stanleylai/keymap.c +++ b/keyboards/kc60/keymaps/stanleylai/keymap.c @@ -15,7 +15,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Base Default Layer // Mac Modifier Layout. Use BootMagic to toggle GUI and ALT positions. -[_BL] = KEYMAP( +[_BL] = LAYOUT( F(0), 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_BSPC, \ 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_BSLS, \ LT(_FL, KC_CAPS), 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, \ @@ -23,7 +23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_NO, KC_RGUI,KC_LEFT, KC_DOWN, KC_RGHT), // Function layer -[_FL] = KEYMAP( +[_FL] = LAYOUT( KC_GRV, 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_DEL, \ KC_NO, KC_MPRV,KC_UP, KC_MNXT,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR,KC_SLCK, KC_PAUS, KC_INS, \ KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ @@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS,KC_TRNS,KC_TRNS, KC_MPLY, KC_NO, KC_TRNS,KC_HOME, KC_PGDN, KC_END), // RGB Layer -[_RGBL] = KEYMAP( +[_RGBL] = LAYOUT( #ifdef RGBLIGHT_ENABLE RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ diff --git a/keyboards/kc60/keymaps/wigguno/keymap.c b/keyboards/kc60/keymaps/wigguno/keymap.c index dca2826eb1b9..caff9b837cdb 100644 --- a/keyboards/kc60/keymaps/wigguno/keymap.c +++ b/keyboards/kc60/keymaps/wigguno/keymap.c @@ -1,11 +1,11 @@ // This keymap was designed to close to the default kc60 layout, with some useful changes, such as adding media keys. // It also moves the reset key off the base layer, as in the default kc60 layout for this firmware. -// I have swapped FN and RGUI as my rainbow keyset has them in the opposite order. +// I have swapped FN and RGUI as my rainbow keyset has them in the opposite order. #include "kc60.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - + /* Basic QWERTY * ,-----------------------------------------------------------. * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | @@ -19,14 +19,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctrl|Gui |Alt | Space |Alt |FN |Gui |Ctrl | * `-----------------------------------------------------------' */ - [0] = KEYMAP( + [0] = LAYOUT( 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_BSPC, \ 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_BSLS, \ KC_CAPS, 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, \ KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, \ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_RALT, MO(1), KC_RGUI, KC_RCTL \ ), - + /* * ,-----------------------------------------------------------. * | ` |F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| Del | @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * PS = Print Screen * PP = Play/Pause */ - [1] = KEYMAP( /* Function Layer */ + [1] = LAYOUT( /* Function Layer */ KC_GRV, 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_DELETE, \ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, BL_DEC, BL_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ @@ -54,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM fn_actions[] = { }; - + const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function diff --git a/keyboards/kc60/keymaps/workman-dead/keymap.c b/keyboards/kc60/keymaps/workman-dead/keymap.c index 36e1c6506de2..abb9785c3a1d 100644 --- a/keyboards/kc60/keymaps/workman-dead/keymap.c +++ b/keyboards/kc60/keymaps/workman-dead/keymap.c @@ -48,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctrl | Alt | GUI | Space/FN | Alt | GUI | Ctrl | qwerty | * `-----------------------------------------------------------' */ -[_WM] = KEYMAP( /* Workman */ +[_WM] = LAYOUT( /* Workman */ 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_BSPC, \ KC_TABM, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, \ KC_LCTL, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, _______, KC_ENT, \ @@ -69,7 +69,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctrl | Alt | GUI | Space/FN | Alt | GUI | Ctrl | workman | * `-----------------------------------------------------------' */ -[_QW] = KEYMAP( /* QWERTY */ +[_QW] = LAYOUT( /* QWERTY */ 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_BSPC, \ KC_TABM, 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_BSLS, \ 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_ENT, \ @@ -90,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctrl | Alt | GUI | , | Alt | GUI | Ctrl | | * `-----------------------------------------------------------' */ -[_DK] = KEYMAP( /* dead key layer */ +[_DK] = LAYOUT( /* dead key layer */ XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSPC, \ XXXXXXX, KC_PERC, KC_AMPR, KC_QUES, KC_PLUS, KC_AT, KC_DLR, KC_UNDS, KC_LBRC, KC_RBRC, KC_EXLM, KC_TILD, KC_CIRC, _______, \ _______, KC_HASH, KC_LPRN, KC_EQL, KC_0, KC_LCBR, KC_RCBR, KC_1, KC_ASTR, KC_RPRN, KC_MINS, KC_GRV, _______, KC_CENT, \ @@ -111,7 +111,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctrl | Alt | GUI | | Alt | GUI | Ctrl | Reset | * `-----------------------------------------------------------' */ -[_FUN] = KEYMAP( /* function layer */ +[_FUN] = LAYOUT( /* function layer */ KC_TRNS, 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_DEL, \ KC_ESC, KC_CMDQ, KC_CMDD, KC_CSTB, KC_C_TB, _______, _______, KC_PGDN, KC_UP, KC_PGUP, _______, _______, _______, KC_INS, \ KC_LSFT, KC_CMDA, KC_CMDS, KC_C_LF, KC_C_RT, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_END, _______, KC_BSPC, \ @@ -132,7 +132,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | lc | | | | | * `-----------------------------------------------------------' */ -[_MS] = KEYMAP( /* mouse layer */ +[_MS] = LAYOUT( /* mouse layer */ XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ XXXXXXX, KC_ACL2, KC_ACL1, KC_ACL0, _______, _______, _______, _______, KC_MS_U, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN2, _______, _______, _______, \ diff --git a/keyboards/kc60/keymaps/ws2812/keymap.c b/keyboards/kc60/keymaps/ws2812/keymap.c index 541d6cd67a28..50b30ac23d91 100644 --- a/keyboards/kc60/keymaps/ws2812/keymap.c +++ b/keyboards/kc60/keymaps/ws2812/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl | * `-----------------------------------------------------------' */ -[_BL] = KEYMAP( +[_BL] = LAYOUT( F(0), 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_BSPC, \ 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_BSLS, \ KC_CAPS, 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, \ @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | |RSET| * `-----------------------------------------------------------' */ -[_FL] = KEYMAP( +[_FL] = LAYOUT( #ifdef RGBLIGHT_ENABLE KC_GRV, 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_DEL, \ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \ From b7dc17ef33fe85d0ab5a837da7bed0ad194e455b Mon Sep 17 00:00:00 2001 From: Yan-Fa Li Date: Sat, 7 Apr 2018 11:27:49 -0700 Subject: [PATCH 187/578] Small fixes to TKC1800 - adjust F-row to use 0.25 spacing - split left shift - add key_count --- keyboards/tkc1800/info.json | 547 +++++++++++++++++++++++++++++++++++- 1 file changed, 544 insertions(+), 3 deletions(-) diff --git a/keyboards/tkc1800/info.json b/keyboards/tkc1800/info.json index 9520a20b4efb..e5ef201bc55a 100644 --- a/keyboards/tkc1800/info.json +++ b/keyboards/tkc1800/info.json @@ -9,8 +9,549 @@ "width": 19.5, "height": 7, "layouts": { - "LAYOUT": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.2, "y":0}, {"label":"F2", "x":2.2, "y":0}, {"label":"F3", "x":3.2, "y":0}, {"label":"F4", "x":4.2, "y":0}, {"label":"F5", "x":5.4, "y":0}, {"label":"F6", "x":6.4, "y":0}, {"label":"F7", "x":7.4, "y":0}, {"label":"F8", "x":8.4, "y":0}, {"label":"F9", "x":9.6, "y":0}, {"label":"F10", "x":10.6, "y":0}, {"label":"F11", "x":11.6, "y":0}, {"label":"F12", "x":12.5, "y":0}, {"label":"Insert", "x":15.5, "y":0}, {"label":"Home", "x":16.5, "y":0}, {"label":"Pg Up", "x":17.5, "y":0}, {"label":"Prt Sc", "x":18.5, "y":0}, {"label":"Delete", "x":15.5, "y":1}, {"label":"End", "x":16.5, "y":1}, {"label":"Pg Dn", "x":17.5, "y":1}, {"label":"Scroll Lock", "x":18.5, "y":1}, {"label":"~", "x":0, "y":2}, {"label":"!", "x":1, "y":2}, {"label":"@", "x":2, "y":2}, {"label":"#", "x":3, "y":2}, {"label":"$", "x":4, "y":2}, {"label":"%", "x":5, "y":2}, {"label":"^", "x":6, "y":2}, {"label":"&", "x":7, "y":2}, {"label":"*", "x":8, "y":2}, {"label":"(", "x":9, "y":2}, {"label":")", "x":10, "y":2}, {"label":"_", "x":11, "y":2}, {"label":"+", "x":12, "y":2}, {"label":"Backspace", "x":13, "y":2}, {"x":14, "y":2}, {"label":"Num Lock", "x":15.5, "y":2}, {"label":"/", "x":16.5, "y":2}, {"label":"*", "x":17.5, "y":2}, {"label":"-", "x":18.5, "y":2}, {"label":"Tab", "x":0, "y":3, "w":1.5}, {"label":"Q", "x":1.5, "y":3}, {"label":"W", "x":2.5, "y":3}, {"label":"E", "x":3.5, "y":3}, {"label":"R", "x":4.5, "y":3}, {"label":"T", "x":5.5, "y":3}, {"label":"Y", "x":6.5, "y":3}, {"label":"U", "x":7.5, "y":3}, {"label":"I", "x":8.5, "y":3}, {"label":"O", "x":9.5, "y":3}, {"label":"P", "x":10.5, "y":3}, {"label":"{", "x":11.5, "y":3}, {"label":"}", "x":12.5, "y":3}, {"label":"|", "x":13.5, "y":3, "w":1.5}, {"label":"7", "x":15.5, "y":3}, {"label":"8", "x":16.5, "y":3}, {"label":"9", "x":17.5, "y":3}, {"label":"+", "x":18.5, "y":3}, {"label":"Caps Lock", "x":0, "y":4, "w":1.75}, {"label":"A", "x":1.75, "y":4}, {"label":"S", "x":2.75, "y":4}, {"label":"D", "x":3.75, "y":4}, {"label":"F", "x":4.75, "y":4}, {"label":"G", "x":5.75, "y":4}, {"label":"H", "x":6.75, "y":4}, {"label":"J", "x":7.75, "y":4}, {"label":"K", "x":8.75, "y":4}, {"label":"L", "x":9.75, "y":4}, {"label":":", "x":10.75, "y":4}, {"label":"\"", "x":11.75, "y":4}, {"x":12.75, "y":4}, {"label":"Enter", "x":13.75, "y":4, "w":1.25}, {"label":"4", "x":15.5, "y":4}, {"label":"5", "x":16.5, "y":4}, {"label":"6", "x":17.5, "y":4}, {"x":18.5, "y":4}, {"label":"Shift", "x":0, "y":5, "w":2.25}, {"label":"Z", "x":2.25, "y":5}, {"label":"X", "x":3.25, "y":5}, {"label":"C", "x":4.25, "y":5}, {"label":"V", "x":5.25, "y":5}, {"label":"B", "x":6.25, "y":5}, {"label":"N", "x":7.25, "y":5}, {"label":"M", "x":8.25, "y":5}, {"label":"<", "x":9.25, "y":5}, {"label":">", "x":10.25, "y":5}, {"label":"?", "x":11.25, "y":5}, {"label":"Shift", "x":12.25, "y":5}, {"x":13.25, "y":5}, {"label":"\u2191", "x":14.25, "y":5}, {"label":"1", "x":15.5, "y":5}, {"label":"2", "x":16.5, "y":5}, {"label":"3", "x":17.5, "y":5}, {"label":"Enter", "x":18.5, "y":5}, {"label":"Ctrl", "x":0, "y":6, "w":1.25}, {"label":"Win", "x":1.25, "y":6, "w":1.25}, {"label":"Alt", "x":2.5, "y":6, "w":1.25}, {"x":3.75, "y":6, "w":6.25}, {"label":"Alt", "x":10, "y":6}, {"label":"Win", "x":11, "y":6}, {"label":"Fn", "x":12, "y":6}, {"label":"\u2190", "x":13.25, "y":6}, {"label":"\u2193", "x":14.25, "y":6}, {"label":"\u2192", "x":15.25, "y":6}, {"label":"0", "x":16.5, "y":6}, {"label":".", "x":17.5, "y":6}, {"x":18.5, "y":6}] - } + "LAYOUT": { + "key_count": 107, + "layout": [ + { + "label": "Esc", + "x": 0, + "y": 0 + }, + { + "label": "F1", + "x": 1.25, + "y": 0 + }, + { + "label": "F2", + "x": 2.25, + "y": 0 + }, + { + "label": "F3", + "x": 3.25, + "y": 0 + }, + { + "label": "F4", + "x": 4.25, + "y": 0 + }, + { + "label": "F5", + "x": 5.5, + "y": 0 + }, + { + "label": "F6", + "x": 6.5, + "y": 0 + }, + { + "label": "F7", + "x": 7.5, + "y": 0 + }, + { + "label": "F8", + "x": 8.5, + "y": 0 + }, + { + "label": "F9", + "x": 9.75, + "y": 0 + }, + { + "label": "F10", + "x": 10.75, + "y": 0 + }, + { + "label": "F11", + "x": 11.75, + "y": 0 + }, + { + "label": "F12", + "x": 12.75, + "y": 0 + }, + { + "label": "Insert", + "x": 15.5, + "y": 0 + }, + { + "label": "Home", + "x": 16.5, + "y": 0 + }, + { + "label": "Pg Up", + "x": 17.5, + "y": 0 + }, + { + "label": "Prt Sc", + "x": 18.5, + "y": 0 + }, + { + "label": "Delete", + "x": 15.5, + "y": 1 + }, + { + "label": "End", + "x": 16.5, + "y": 1 + }, + { + "label": "Pg Dn", + "x": 17.5, + "y": 1 + }, + { + "label": "Scroll Lock", + "x": 18.5, + "y": 1 + }, + { + "label": "~", + "x": 0, + "y": 2 + }, + { + "label": "!", + "x": 1, + "y": 2 + }, + { + "label": "@", + "x": 2, + "y": 2 + }, + { + "label": "#", + "x": 3, + "y": 2 + }, + { + "label": "$", + "x": 4, + "y": 2 + }, + { + "label": "%", + "x": 5, + "y": 2 + }, + { + "label": "^", + "x": 6, + "y": 2 + }, + { + "label": "&", + "x": 7, + "y": 2 + }, + { + "label": "*", + "x": 8, + "y": 2 + }, + { + "label": "(", + "x": 9, + "y": 2 + }, + { + "label": ")", + "x": 10, + "y": 2 + }, + { + "label": "_", + "x": 11, + "y": 2 + }, + { + "label": "+", + "x": 12, + "y": 2 + }, + { + "label": "Backspace", + "x": 13, + "y": 2 + }, + { + "x": 14, + "y": 2 + }, + { + "label": "Num Lock", + "x": 15.5, + "y": 2 + }, + { + "label": "/", + "x": 16.5, + "y": 2 + }, + { + "label": "*", + "x": 17.5, + "y": 2 + }, + { + "label": "-", + "x": 18.5, + "y": 2 + }, + { + "label": "Tab", + "x": 0, + "y": 3, + "w": 1.5 + }, + { + "label": "Q", + "x": 1.5, + "y": 3 + }, + { + "label": "W", + "x": 2.5, + "y": 3 + }, + { + "label": "E", + "x": 3.5, + "y": 3 + }, + { + "label": "R", + "x": 4.5, + "y": 3 + }, + { + "label": "T", + "x": 5.5, + "y": 3 + }, + { + "label": "Y", + "x": 6.5, + "y": 3 + }, + { + "label": "U", + "x": 7.5, + "y": 3 + }, + { + "label": "I", + "x": 8.5, + "y": 3 + }, + { + "label": "O", + "x": 9.5, + "y": 3 + }, + { + "label": "P", + "x": 10.5, + "y": 3 + }, + { + "label": "{", + "x": 11.5, + "y": 3 + }, + { + "label": "}", + "x": 12.5, + "y": 3 + }, + { + "label": "|", + "x": 13.5, + "y": 3, + "w": 1.5 + }, + { + "label": "7", + "x": 15.5, + "y": 3 + }, + { + "label": "8", + "x": 16.5, + "y": 3 + }, + { + "label": "9", + "x": 17.5, + "y": 3 + }, + { + "label": "+", + "x": 18.5, + "y": 3 + }, + { + "label": "Caps Lock", + "x": 0, + "y": 4, + "w": 1.75 + }, + { + "label": "A", + "x": 1.75, + "y": 4 + }, + { + "label": "S", + "x": 2.75, + "y": 4 + }, + { + "label": "D", + "x": 3.75, + "y": 4 + }, + { + "label": "F", + "x": 4.75, + "y": 4 + }, + { + "label": "G", + "x": 5.75, + "y": 4 + }, + { + "label": "H", + "x": 6.75, + "y": 4 + }, + { + "label": "J", + "x": 7.75, + "y": 4 + }, + { + "label": "K", + "x": 8.75, + "y": 4 + }, + { + "label": "L", + "x": 9.75, + "y": 4 + }, + { + "label": ":", + "x": 10.75, + "y": 4 + }, + { + "label": "\"", + "x": 11.75, + "y": 4 + }, + { + "x": 12.75, + "y": 4 + }, + { + "label": "Enter", + "x": 13.75, + "y": 4, + "w": 1.25 + }, + { + "label": "4", + "x": 15.5, + "y": 4 + }, + { + "label": "5", + "x": 16.5, + "y": 4 + }, + { + "label": "6", + "x": 17.5, + "y": 4 + }, + { + "x": 18.5, + "y": 4 + }, + { + "x": 0, + "y": 5 + }, + { + "label": "Shift", + "x": 1, + "y": 5, + "w": 1.25 + }, + { + "label": "Z", + "x": 2.25, + "y": 5 + }, + { + "label": "X", + "x": 3.25, + "y": 5 + }, + { + "label": "C", + "x": 4.25, + "y": 5 + }, + { + "label": "V", + "x": 5.25, + "y": 5 + }, + { + "label": "B", + "x": 6.25, + "y": 5 + }, + { + "label": "N", + "x": 7.25, + "y": 5 + }, + { + "label": "M", + "x": 8.25, + "y": 5 + }, + { + "label": "<", + "x": 9.25, + "y": 5 + }, + { + "label": ">", + "x": 10.25, + "y": 5 + }, + { + "label": "?", + "x": 11.25, + "y": 5 + }, + { + "label": "Shift", + "x": 12.25, + "y": 5, + "w": 1.75 + }, + { + "label": "\\u2191", + "x": 14.25, + "y": 5 + }, + { + "label": "1", + "x": 15.5, + "y": 5 + }, + { + "label": "2", + "x": 16.5, + "y": 5 + }, + { + "label": "3", + "x": 17.5, + "y": 5 + }, + { + "label": "Enter", + "x": 18.5, + "y": 5 + }, + { + "label": "Ctrl", + "x": 0, + "y": 6, + "w": 1.25 + }, + { + "label": "Win", + "x": 1.25, + "y": 6, + "w": 1.25 + }, + { + "label": "Alt", + "x": 2.5, + "y": 6, + "w": 1.25 + }, + { + "x": 3.75, + "y": 6, + "w": 6.25 + }, + { + "label": "Alt", + "x": 10, + "y": 6 + }, + { + "label": "Win", + "x": 11, + "y": 6 + }, + { + "label": "Fn", + "x": 12, + "y": 6 + }, + { + "label": "\\u2190", + "x": 13.25, + "y": 6 + }, + { + "label": "\\u2193", + "x": 14.25, + "y": 6 + }, + { + "label": "\\u2192", + "x": 15.25, + "y": 6 + }, + { + "label": "0", + "x": 16.5, + "y": 6 + }, + { + "label": ".", + "x": 17.5, + "y": 6 + }, + { + "x": 18.5, + "y": 6 + } + ] + } } } From 5f4c2dfd84467dc7f04e8e07c294ebfa5b4ca459 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Sat, 7 Apr 2018 12:14:53 -0700 Subject: [PATCH 188/578] Fix some Configurator Warnings regarding LAYOUT vs KEYMAP (#2708) * change diverge 3 KC_KEYMAP to LAYOUT * Change KEYMAP to LAYOUT for handwired arrow pad * change M10A to LAYOUT for m10-a * Change KC_KEYMAP to LAYOUT_kc and KEYMAP to LAYOUT for mf68 * change KC_KEYMAP to LAYOUT for nano * Refactor to LAYOUT * refactor to LAYOUT-ansi and LAYOUT_iso for s65 * LAYOUT conversions for lfkkeyboards * missed a few renames * mini1800 for lfkeyobards support of LAYOUT --- keyboards/diverge3/diverge3.h | 2 +- keyboards/diverge3/keymaps/default/keymap.c | 4 ++-- .../arrow_pad/keymaps/default/keymap.c | 10 +++++----- .../arrow_pad/keymaps/pad_21/keymap.c | 10 +++++----- .../arrow_pad/keymaps/pad_24/keymap.c | 10 +++++----- .../lfk78/keymaps/ca178858/keymap.c | 10 +++++----- .../lfkeyboards/lfk78/keymaps/default/keymap.c | 6 +++--- .../lfkeyboards/lfk78/keymaps/iso/keymap.c | 6 +++--- .../lfk78/keymaps/split_bs_osx/keymap.c | 6 +++--- keyboards/lfkeyboards/lfk78/lfk78.c | 2 +- keyboards/lfkeyboards/lfk78/lfk78.h | 8 ++++---- .../lfk87/keymaps/ca178858/keymap.c | 12 ++++++------ .../lfkeyboards/lfk87/keymaps/default/keymap.c | 6 +++--- .../lfkeyboards/lfk87/keymaps/gbchk/keymap.c | 6 +++--- .../lfkeyboards/lfk87/keymaps/iso/keymap.c | 6 +++--- keyboards/lfkeyboards/lfk87/lfk87.c | 2 +- keyboards/lfkeyboards/lfk87/lfk87.h | 18 +++++++++--------- .../lfkpad/keymaps/default/keymap.c | 4 ++-- keyboards/lfkeyboards/lfkpad/lfkpad.h | 4 ++-- .../mini1800/keymaps/ca178858/keymap.c | 6 +++--- .../mini1800/keymaps/default/keymap.c | 6 +++--- keyboards/lfkeyboards/mini1800/mini1800.c | 2 +- keyboards/lfkeyboards/mini1800/mini1800.h | 2 +- .../lfkeyboards/smk65/keymaps/default/keymap.c | 4 ++-- .../lfkeyboards/smk65/keymaps/iso/keymap.c | 4 ++-- keyboards/lfkeyboards/smk65/smk65.h | 4 ++-- keyboards/m10a/m10a.h | 4 ++-- keyboards/mf68_ble/keymaps/default/keymap.c | 6 +++--- keyboards/mf68_ble/mf68.h | 6 +++--- keyboards/nano/keymaps/default/keymap.c | 6 +++--- keyboards/nano/nano.h | 2 +- keyboards/niu_mini/niu_mini.h | 8 ++++---- keyboards/s65_x/keymaps/default/keymap.c | 8 ++++---- keyboards/s65_x/keymaps/iso/keymap.c | 8 ++++---- keyboards/s65_x/keymaps/kelorean/keymap.c | 14 +++++++------- keyboards/s65_x/keymaps/nall/keymap.c | 8 ++++---- keyboards/s65_x/keymaps/smt/keymap.c | 10 +++++----- keyboards/s65_x/s65_x.h | 4 ++-- 38 files changed, 122 insertions(+), 122 deletions(-) diff --git a/keyboards/diverge3/diverge3.h b/keyboards/diverge3/diverge3.h index 0d508677818e..37bad2ee7caa 100644 --- a/keyboards/diverge3/diverge3.h +++ b/keyboards/diverge3/diverge3.h @@ -29,7 +29,7 @@ // This a shortcut to help you visually see your layout. // The second converts the arguments into a two-dimensional array // Used to create a keymap using only KC_ prefixed keys -#define KC_KEYMAP( \ +#define LAYOUT( \ L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \ L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \ diff --git a/keyboards/diverge3/keymaps/default/keymap.c b/keyboards/diverge3/keymaps/default/keymap.c index c24a6328e485..94ff01304eae 100644 --- a/keyboards/diverge3/keymaps/default/keymap.c +++ b/keyboards/diverge3/keymaps/default/keymap.c @@ -119,7 +119,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = KC_KEYMAP( + [_QWERTY] = LAYOUT( //,----+----+----+----+----+----+----| |----+----+----+----+----+----+----| ESC, 1 , 2 , 3 , 4 , 5 ,MUTE, MPLY, 6 , 7 , 8 , 9 , 0 ,PSCR, //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| @@ -132,7 +132,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LCTL,LGUI, APP,LALT,HOME,SPNT,DEL1,BSHT , ENT ,TAB1,BSHT,END ,DOWN, UP ,LEFT,RIGHT ), - [_LOWER] = KC_KEYMAP( + [_LOWER] = LAYOUT( //,----+----+----+----+----+----+----| |----+----+----+----+----+----+----| , F1 , F2 , F3 , F4 , F5 ,F11 , F12, F6 , F7 , F8 , F9 , , , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| diff --git a/keyboards/handwired/arrow_pad/keymaps/default/keymap.c b/keyboards/handwired/arrow_pad/keymaps/default/keymap.c index 03adf746dc0b..b5d3047081e9 100644 --- a/keyboards/handwired/arrow_pad/keymaps/default/keymap.c +++ b/keyboards/handwired/arrow_pad/keymaps/default/keymap.c @@ -3,7 +3,7 @@ #include "led.h" // This is the 21-key keypad to 2x11 element matrix mapping -#define KEYMAP( \ +#define LAYOUT( \ KM_ESC, KM_TAB, KM_BSL, KM_ARR, \ KM_NUM, KM_FSL, KM_AST, KM_MIN, \ KM___7, KM___8, KM___9, KM_EQU, \ @@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[LAYER_BASE] = KEYMAP( \ +[LAYER_BASE] = LAYOUT( \ KC_ESC, KC_TAB, KC_BSLS, KC_FN0, \ KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ KC_P7, KC_P8, KC_P9, KC_PEQL, \ @@ -55,7 +55,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P1, KC_P2, KC_P3, XXXXXXX, \ KC_P0, KC_PCMM, KC_PDOT, KC_PENT ), -[LAYER_EDIT] = KEYMAP( \ +[LAYER_EDIT] = LAYOUT( \ KC_ESC, KC_TAB, KC_SPC, _______, \ KC_FN1, SC_PSTE, SC_REDO, SC_UNDO, \ KC_HOME, KC_UP, KC_PGUP, KC_LALT, \ @@ -63,7 +63,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_END, KC_DOWN, KC_PGDN, XXXXXXX, \ KC_BSPC, KC_PENT, KC_DEL, M_SHFCT), -[LAYER_FUNCTION] = KEYMAP( \ +[LAYER_FUNCTION] = LAYOUT( \ KC_FN2, KC_FN3, KC_FN4, _______, \ KC_FN1, _______, _______, _______, \ _______, _______, _______, _______, \ @@ -158,4 +158,4 @@ void led_set_user(uint8_t usb_led) DDRC &= ~(1<<7); PORTC &= ~(1<<7); } -} \ No newline at end of file +} diff --git a/keyboards/handwired/arrow_pad/keymaps/pad_21/keymap.c b/keyboards/handwired/arrow_pad/keymaps/pad_21/keymap.c index d93ccb1ae4d5..a29f9e101175 100644 --- a/keyboards/handwired/arrow_pad/keymaps/pad_21/keymap.c +++ b/keyboards/handwired/arrow_pad/keymaps/pad_21/keymap.c @@ -3,7 +3,7 @@ #include "led.h" // This is the 21-key keypad to 2x11 element matrix mapping -#define KEYMAP( \ +#define LAYOUT( \ KM_ESC, KM_TAB, KM_BSL, KM_ARR, \ KM_NUM, KM_FSL, KM_AST, KM_MIN, \ KM___7, KM___8, KM___9, ___PLS, \ @@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[LAYER_BASE] = KEYMAP( \ +[LAYER_BASE] = LAYOUT( \ KC_ESC, KC_TAB, KC_BSLS, KC_FN0, \ KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ KC_P7, KC_P8, KC_P9, XXXXXXX, \ @@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P1, KC_P2, KC_P3, XXXXXXX, \ KC_P0, XXXXXXX, KC_PDOT, KC_PENT ), -[LAYER_EDIT] = KEYMAP( \ +[LAYER_EDIT] = LAYOUT( \ KC_ESC, KC_TAB, KC_SPC, _______, \ KC_FN1, SC_PSTE, SC_REDO, SC_UNDO, \ KC_HOME, KC_UP, KC_PGUP, XXXXXXX, \ @@ -60,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_END, KC_DOWN, KC_PGDN, XXXXXXX, \ KC_BSPC, XXXXXXX, KC_DEL, M_SHFCT), -[LAYER_FUNCTION] = KEYMAP( \ +[LAYER_FUNCTION] = LAYOUT( \ KC_FN2, KC_FN3, KC_FN4, _______, \ KC_FN1, _______, _______, _______, \ _______, _______, _______, XXXXXXX, \ @@ -155,4 +155,4 @@ void led_set_user(uint8_t usb_led) DDRC &= ~(1<<7); PORTC &= ~(1<<7); } -} \ No newline at end of file +} diff --git a/keyboards/handwired/arrow_pad/keymaps/pad_24/keymap.c b/keyboards/handwired/arrow_pad/keymaps/pad_24/keymap.c index 03adf746dc0b..b5d3047081e9 100644 --- a/keyboards/handwired/arrow_pad/keymaps/pad_24/keymap.c +++ b/keyboards/handwired/arrow_pad/keymaps/pad_24/keymap.c @@ -3,7 +3,7 @@ #include "led.h" // This is the 21-key keypad to 2x11 element matrix mapping -#define KEYMAP( \ +#define LAYOUT( \ KM_ESC, KM_TAB, KM_BSL, KM_ARR, \ KM_NUM, KM_FSL, KM_AST, KM_MIN, \ KM___7, KM___8, KM___9, KM_EQU, \ @@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[LAYER_BASE] = KEYMAP( \ +[LAYER_BASE] = LAYOUT( \ KC_ESC, KC_TAB, KC_BSLS, KC_FN0, \ KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ KC_P7, KC_P8, KC_P9, KC_PEQL, \ @@ -55,7 +55,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P1, KC_P2, KC_P3, XXXXXXX, \ KC_P0, KC_PCMM, KC_PDOT, KC_PENT ), -[LAYER_EDIT] = KEYMAP( \ +[LAYER_EDIT] = LAYOUT( \ KC_ESC, KC_TAB, KC_SPC, _______, \ KC_FN1, SC_PSTE, SC_REDO, SC_UNDO, \ KC_HOME, KC_UP, KC_PGUP, KC_LALT, \ @@ -63,7 +63,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_END, KC_DOWN, KC_PGDN, XXXXXXX, \ KC_BSPC, KC_PENT, KC_DEL, M_SHFCT), -[LAYER_FUNCTION] = KEYMAP( \ +[LAYER_FUNCTION] = LAYOUT( \ KC_FN2, KC_FN3, KC_FN4, _______, \ KC_FN1, _______, _______, _______, \ _______, _______, _______, _______, \ @@ -158,4 +158,4 @@ void led_set_user(uint8_t usb_led) DDRC &= ~(1<<7); PORTC &= ~(1<<7); } -} \ No newline at end of file +} diff --git a/keyboards/lfkeyboards/lfk78/keymaps/ca178858/keymap.c b/keyboards/lfkeyboards/lfk78/keymaps/ca178858/keymap.c index c94552de46aa..0c2e3f69984c 100644 --- a/keyboards/lfkeyboards/lfk78/keymaps/ca178858/keymap.c +++ b/keyboards/lfkeyboards/lfk78/keymaps/ca178858/keymap.c @@ -55,14 +55,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | F9 | F10| |Func|Alt |Cmd | Space |Cmd |Alt |Func | |Lft| Dn |Rig | * `---------' `------------------------------------------------------' `-------------' */ -[VANILLA] = SPLIT_SHIFT_KEYMAP( +[VANILLA] = LAYOUT_split_shift( KC_VOLD, KC_VOLU, KC_GESC,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_BSPC, LALT(KC_F5), KC_PGUP, KC_F3, KC_F4, 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_BSLS, KC_DEL, KC_PGDN, KC_F5, KC_F6, TD(TD_ESC_FUNC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(CS_GO), KC_UP, KC_F9, KC_F10, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RCTL, MO(FUNC), KC_LEFT, KC_DOWN, KC_RGHT), -[CS_GO] = SPLIT_SHIFT_KEYMAP( +[CS_GO] = LAYOUT_split_shift( KC_TR, KC_TR, KC_GESC, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_FN0, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_LCTL, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, @@ -82,7 +82,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | F10| |Func|Win |Alt | PgD |Alt |Ctrl |Func | |Lft| Dn |Rig | * `---------' `------------------------------------------------------' `-------------' */ -[FUNC] = SPLIT_SHIFT_KEYMAP( +[FUNC] = LAYOUT_split_shift( KC_TR, KC_TR, KC_GRV, 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_DEL, TO(CS_GO), KC_HOME, KC_TR, KC_TR, KC_NO,KC_PGUP, KC_UP, KC_PGDN, KC_HOME, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TR, KC_END, KC_TR, KC_TR, KC_TR, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, @@ -102,7 +102,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | Print Debug | | | | |Sat-|Hue-|Sat+| * `---------' `------------------------------------------------------' `--------------' */ -[SETTINGS] = SPLIT_SHIFT_KEYMAP( +[SETTINGS] = LAYOUT_split_shift( KC_NO, KC_NO, KC_FN0,KC_FN3,KC_FN4,KC_FN5, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, KC_NO, KC_NO, DEBUG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_MOD, RGB_VAD, KC_NO, KC_NO, KC_FN0, KC_FN6,KC_FN8, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET, @@ -194,4 +194,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { void led_set_user(uint8_t usb_led) { -} \ No newline at end of file +} diff --git a/keyboards/lfkeyboards/lfk78/keymaps/default/keymap.c b/keyboards/lfkeyboards/lfk78/keymaps/default/keymap.c index 613213f0674b..d7d211709e35 100644 --- a/keyboards/lfkeyboards/lfk78/keymaps/default/keymap.c +++ b/keyboards/lfkeyboards/lfk78/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const Layer_Info layer_info[] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[VANILLA] = KEYMAP( +[VANILLA] = LAYOUT( /* Keymap VANILLA: (Base Layer) Default Layer * ,---------. ,------------------------------------------------------------. ,---------. * | F1 | F2 | |Esc~| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backspa| | Ins|PgUp| @@ -57,7 +57,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | |Ctrl|Win |Alt | Enter |Alt |Func |CTRL | |Lft| Dn |Rig | * `---------' `------------------------------------------------------' `-------------' */ -[FUNC] = KEYMAP( +[FUNC] = LAYOUT( KC_TR, KC_TR, KC_GRV, 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_DEL, KC_TR, KC_HOME, KC_TR, KC_TR, KC_NO,KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TR, KC_END, KC_TR, KC_TR, KC_TR, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_NO, @@ -77,7 +77,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | |Sat-|Hue-|Sat+| * `---------' `--------------------------------------------------------' `--------------' */ -[SETTINGS] = KEYMAP( +[SETTINGS] = LAYOUT( KC_NO, KC_NO, KC_FN0,KC_NO,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, KC_NO, KC_NO, MU_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_MOD, RGB_VAD, KC_NO, KC_NO, AU_TOG, KC_FN1,KC_FN3, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET, diff --git a/keyboards/lfkeyboards/lfk78/keymaps/iso/keymap.c b/keyboards/lfkeyboards/lfk78/keymaps/iso/keymap.c index 609e27eaf869..e4d48791c96a 100644 --- a/keyboards/lfkeyboards/lfk78/keymaps/iso/keymap.c +++ b/keyboards/lfkeyboards/lfk78/keymaps/iso/keymap.c @@ -25,7 +25,7 @@ const Layer_Info layer_info[] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[VANILLA] = ISO_KEYMAP( +[VANILLA] = LAYOUT_iso( /* Keymap VANILLA: (Base Layer) Default Layer * ,---------. ,------------------------------------------------------------. ,---------. * | F1 | F2 | |Esc~| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backspa| | Ins|PgUp| @@ -57,7 +57,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | |Ctrl|Win |Alt | PgD |Alt |Func |CTRL | |Lft| Dn |Rig | * `---------' `------------------------------------------------------' `-------------' */ -[FUNC] = KEYMAP( +[FUNC] = LAYOUT( KC_TR, KC_TR, KC_GRV, 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_DEL, KC_TR, KC_HOME, KC_TR, KC_TR, KC_NO,KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TR, KC_END, KC_TR, KC_TR, KC_TR, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_NO, @@ -77,7 +77,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | |Sat-|Hue-|Sat+| * `---------' `--------------------------------------------------------' `--------------' */ -[SETTINGS] = KEYMAP( +[SETTINGS] = LAYOUT( KC_NO, KC_NO, KC_FN0,KC_NO,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, KC_NO, KC_NO, MU_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_MOD, RGB_VAD, KC_NO, KC_NO, AU_TOG, KC_FN1,KC_FN3, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET, diff --git a/keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/keymap.c b/keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/keymap.c index 6bbfe55d9877..a1662e2eed03 100644 --- a/keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/keymap.c +++ b/keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/keymap.c @@ -25,7 +25,7 @@ const Layer_Info layer_info[] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[VANILLA] = SPLIT_BS_KEYMAP( +[VANILLA] = LAYOUT_split_bs( /* Keymap VANILLA: (Base Layer) Default Layer * ,---------. ,------------------------------------------------------------. ,---------. * | F1 | F2 | |Esc~| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = | / | ` | | Ins|PgUp| @@ -57,7 +57,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | |Ctrl|Alt |Cmd | Enter |Alt |Func |CTRL | |Lft| Dn |Rig | * `---------' `------------------------------------------------------' `-------------' */ -[FUNC] = SPLIT_BS_KEYMAP( +[FUNC] = LAYOUT_split_bs( KC_TR, KC_TR, KC_GRV, 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, KC_TR, KC_HOME, KC_TR, KC_TR, KC_NO,KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TR, KC_END, KC_TR, KC_TR, KC_TR, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_NO, @@ -77,7 +77,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | |Sat-|Hue-|Sat+| * `---------' `--------------------------------------------------------' `--------------' */ -[SETTINGS] = SPLIT_BS_KEYMAP( +[SETTINGS] = LAYOUT_split_bs( KC_NO, KC_NO, KC_FN0,KC_NO,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, BL_INC, KC_NO, KC_NO, RGB_TOG, RGB_VAI, KC_NO, KC_NO, MU_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_TOGG, RGB_MOD, RGB_VAD, KC_NO, KC_NO, AU_TOG, KC_FN1,KC_FN3, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET, diff --git a/keyboards/lfkeyboards/lfk78/lfk78.c b/keyboards/lfkeyboards/lfk78/lfk78.c index 753cf70756db..e02739e4f5aa 100644 --- a/keyboards/lfkeyboards/lfk78/lfk78.c +++ b/keyboards/lfkeyboards/lfk78/lfk78.c @@ -225,7 +225,7 @@ const uint8_t rgb_sequence[] = { // / \ ISSI Col | ISSI Row | // matrix idx const uint8_t switch_leds[MATRIX_ROWS][MATRIX_COLS] = -KEYMAP( +LAYOUT( 0x19, 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x99, 0x98, 0x97, 0x96, 0x95, 0x94, 0x93, 0x92, 0x91, 0x29, 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21, 0xA9, 0xA8, 0xA7, 0xA6, 0xA5, 0xA4, 0xA3, 0xA2, 0xA1, 0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0xB9, 0xB8, 0xB7, 0xB6, 0xB5, 0xB3, diff --git a/keyboards/lfkeyboards/lfk78/lfk78.h b/keyboards/lfkeyboards/lfk78/lfk78.h index 4ec74d9723c3..1cef2663eed1 100644 --- a/keyboards/lfkeyboards/lfk78/lfk78.h +++ b/keyboards/lfkeyboards/lfk78/lfk78.h @@ -108,7 +108,7 @@ void click(uint16_t freq, uint16_t duration); */ // The first section contains all of the arguements // The second converts the arguments into a two-dimensional array - #define KEYMAP( \ + #define LAYOUT( \ k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G, k1H, k1I, \ k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, k2G, k2H, k2I, \ k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, \ @@ -122,7 +122,7 @@ void click(uint16_t freq, uint16_t duration); {k51, k52, k53, k54, k55, KC_NO, KC_NO, KC_NO, k59, KC_NO, KC_NO, KC_NO, k5D, k5E, k5F, k5G, k5H, k5I} \ } - #define SPLIT_BS_KEYMAP( \ + #define LAYOUT_split_bs( \ k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G, k3G, k1H, k1I, \ k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, k2G, k2H, k2I, \ k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, \ @@ -136,7 +136,7 @@ void click(uint16_t freq, uint16_t duration); {k51, k52, k53, k54, k55, KC_NO, KC_NO, KC_NO, k59, KC_NO, KC_NO, KC_NO, k5D, k5E, k5F, k5G, k5H, k5I} \ } - #define SPLIT_SHIFT_KEYMAP( \ + #define LAYOUT_split_shift( \ k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G, k1H, k1I, \ k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, k2G, k2H, k2I, \ k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, \ @@ -150,7 +150,7 @@ void click(uint16_t freq, uint16_t duration); {k51, k52, k53, k54, k55, KC_NO, KC_NO, KC_NO, k59, KC_NO, KC_NO, KC_NO, k5D, k5E, k5F, k5G, k5H, k5I} \ } - #define ISO_KEYMAP( \ + #define LAYOUT_iso( \ k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G, k1H, k1I, \ k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, k2G, k2H, k2I, \ k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, \ diff --git a/keyboards/lfkeyboards/lfk87/keymaps/ca178858/keymap.c b/keyboards/lfkeyboards/lfk87/keymaps/ca178858/keymap.c index 37505ae6d1b3..1edede2d5bae 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/ca178858/keymap.c +++ b/keyboards/lfkeyboards/lfk87/keymaps/ca178858/keymap.c @@ -34,7 +34,7 @@ const Layer_Info layer_info[] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[VANILLA] = KEYMAP( +[VANILLA] = LAYOUT( /* Keymap VANILLA: (Base Layer) Default Layer * ,-----------------------------------------------------------------------------. * |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus| @@ -71,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctrl| |Alt | Space |ALT | |CTRL |Func| |Lft| Dn |Rig | * `-----------------------------------------------------------' `-------------' */ -[DEFAULT_WKL] = KEYMAP( +[DEFAULT_WKL] = LAYOUT( KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS, \ KC_GRV, 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_BSPC, KC_INS, KC_HOME, KC_PGUP, \ 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_BSLS, KC_DELETE, KC_END, KC_PGDN, \ @@ -94,14 +94,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctrl| Opt |Cmd | Space |Cmd |Opt |CTRL |Func| |Lft| Dn |Rig | * `-----------------------------------------------------------' `-------------' */ -[DEFAULT_OSX] = KEYMAP( +[DEFAULT_OSX] = LAYOUT( KC_ESC, 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_SLCK, KC_PAUS, LALT(KC_F5), \ KC_GRV, 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_BSPC, KC_INS, KC_HOME, KC_PGUP, \ 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_BSLS, KC_DELETE, KC_END, KC_PGDN, \ TD(TD_ESC_FUNC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RCTL, MO(FUNC),MO(SETTINGS), KC_LEFT, KC_DOWN, KC_RGHT), -[CS_GO] = KEYMAP( +[CS_GO] = LAYOUT( KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, \ KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_FN0, KC_TR, KC_TR, \ KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, \ @@ -124,7 +124,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Func|Win |Alt | PgD |Alt |Ctrl |Func | |Lft| Dn |Rig | * `------------------------------------------------------' `-------------' */ -[FUNC] = KEYMAP( +[FUNC] = LAYOUT( KC_ESC, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_PSCR, KC_SLCK, KC_PAUS, \ KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_DEL, TO(CS_GO), KC_TR, KC_TR, \ KC_NO,KC_PGUP, KC_UP, KC_PGDN, KC_HOME, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TR, KC_TR, KC_TR, \ @@ -147,7 +147,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | Print Debug | | | | |Sat-|Hue-|Sat+| * `------------------------------------------------------' `--------------' */ -[SETTINGS] = KEYMAP( +[SETTINGS] = LAYOUT( KC_FN13, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, KC_NO, KC_NO, KC_NO, KC_FN0,KC_FN3,KC_FN4,KC_FN5, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, KC_NO, MU_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_FN2, RGB_MOD, RGB_VAD, KC_NO, diff --git a/keyboards/lfkeyboards/lfk87/keymaps/default/keymap.c b/keyboards/lfkeyboards/lfk87/keymaps/default/keymap.c index 79affb51c328..2a7248334585 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/default/keymap.c +++ b/keyboards/lfkeyboards/lfk87/keymaps/default/keymap.c @@ -24,7 +24,7 @@ const Layer_Info layer_info[] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[VANILLA] = KEYMAP( +[VANILLA] = LAYOUT( /* Keymap VANILLA: (Base Layer) Default Layer * ,-----------------------------------------------------------------------------. * |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus| @@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Func|Win |Alt | PgD |Alt |Ctrl |Func | |Lft| Dn |Rig | * `------------------------------------------------------' `-------------' */ -[FUNC] = KEYMAP( +[FUNC] = LAYOUT( KC_ESC, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_PSCR, KC_SLCK, KC_PAUS, \ KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_DEL, KC_TR, KC_TR, KC_TR, \ KC_NO,KC_NO, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TR, KC_TR, KC_TR, \ @@ -84,7 +84,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | |Sat-|Hue-|Sat+| * `----------------------------------------------------------------------------' */ -[SETTINGS] = KEYMAP( +[SETTINGS] = LAYOUT( KC_FN0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, KC_NO, KC_NO, KC_NO, KC_FN0,KC_NO,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, KC_NO, MU_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_FN2, RGB_MOD, RGB_VAD, KC_NO, diff --git a/keyboards/lfkeyboards/lfk87/keymaps/gbchk/keymap.c b/keyboards/lfkeyboards/lfk87/keymaps/gbchk/keymap.c index 269340398491..fdfb779ecc69 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/gbchk/keymap.c +++ b/keyboards/lfkeyboards/lfk87/keymaps/gbchk/keymap.c @@ -24,7 +24,7 @@ const Layer_Info layer_info[] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[VANILLA] = KEYMAP( +[VANILLA] = LAYOUT( /* Keymap VANILLA: (Base Layer) Default Layer * ,-----------------------------------------------------------------------------. * |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus| @@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Func|Win |Alt | PgD |Alt |Ctrl |Func | |Lft| Dn |Rig | * `------------------------------------------------------' `-------------' */ -[FUNC] = KEYMAP( +[FUNC] = LAYOUT( KC_ESC, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_PSCR, KC_SLCK, KC_PAUS, \ KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_DEL, KC_TR, KC_TR, KC_TR, \ KC_NO,KC_NO, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TR, KC_TR, KC_TR, \ @@ -84,7 +84,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | |Sat-|Hue-|Sat+| * `----------------------------------------------------------------------------' */ -[SETTINGS] = KEYMAP( +[SETTINGS] = LAYOUT( KC_FN0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, KC_NO, KC_NO, KC_NO, KC_FN0,KC_NO,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, KC_NO, MU_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_FN2, RGB_MOD, RGB_VAD, KC_NO, diff --git a/keyboards/lfkeyboards/lfk87/keymaps/iso/keymap.c b/keyboards/lfkeyboards/lfk87/keymaps/iso/keymap.c index 10248e08cd53..0630695f02d5 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/iso/keymap.c +++ b/keyboards/lfkeyboards/lfk87/keymaps/iso/keymap.c @@ -24,7 +24,7 @@ const Layer_Info layer_info[] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[VANILLA] = ISO_KEYMAP( +[VANILLA] = LAYOUT_iso( /* Keymap VANILLA: (Base Layer) Default Layer * ,-----------------------------------------------------------------------------. * |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus| @@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Func|Win |Alt | PgD |ALT |GUI | Func|CTRL| |Lft| Dn |Rig | * `-------------------------------------------------------------' `-------------' */ -[FUNC] = ISO_KEYMAP( +[FUNC] = LAYOUT_iso( KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_PSCR, KC_SLCK, KC_PAUS, \ KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_DEL, KC_TR, KC_TR, KC_TR, \ KC_NO,KC_NO, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TR, KC_TR, KC_TR, \ @@ -84,7 +84,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | |Sat-|Hue-|Sat+| * `------------------------------------------------------' `--------------' */ -[SETTINGS] = ISO_KEYMAP( +[SETTINGS] = LAYOUT_iso( KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, KC_NO, KC_NO, KC_NO, KC_FN0,KC_FN3,KC_FN4,KC_FN5, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, KC_NO, MU_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET, RGB_MOD, RGB_VAD, KC_NO, diff --git a/keyboards/lfkeyboards/lfk87/lfk87.c b/keyboards/lfkeyboards/lfk87/lfk87.c index 831d9d2815e5..5772e72c3803 100644 --- a/keyboards/lfkeyboards/lfk87/lfk87.c +++ b/keyboards/lfkeyboards/lfk87/lfk87.c @@ -206,7 +206,7 @@ const uint8_t rgb_sequence[] = { // / | // Device const uint8_t switch_leds[MATRIX_ROWS][MATRIX_COLS] = -KEYMAP( +LAYOUT( 0x19, 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x99, 0x98, 0x97, 0x96, 0x95, 0x94, 0x93, 0x92, 0x91, 0x29, 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21, 0xA9, 0xA8, 0xA7, 0xA6, 0xA5, 0xA4, 0xA3, 0xA2, 0xA1, 0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0xB9, 0xB8, 0xB7, 0xB6, 0xB5, 0xB3, diff --git a/keyboards/lfkeyboards/lfk87/lfk87.h b/keyboards/lfkeyboards/lfk87/lfk87.h index cf16c8e2f3f8..f6d5da1c3c00 100644 --- a/keyboards/lfkeyboards/lfk87/lfk87.h +++ b/keyboards/lfkeyboards/lfk87/lfk87.h @@ -57,8 +57,8 @@ void click(uint16_t freq, uint16_t duration); #define k00 KC_NO #ifdef LFK_TKL_REV_A - #ifndef KEYMAP - #define KEYMAP( \ + #ifndef LAYOUT + #define LAYOUT( \ k11, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, k1h, \ k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, k2h, \ k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, k3g, k3h, \ @@ -76,8 +76,8 @@ void click(uint16_t freq, uint16_t duration); } #endif //!KEYMAP#endif - #ifndef ISO_KEYMAP - #define ISO_KEYMAP( \ + #ifndef LAYOUT_iso + #define LAYOUT_iso( \ k11, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, k1h, \ k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, k2h, \ k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, k3g, k3h, \ @@ -95,8 +95,8 @@ void click(uint16_t freq, uint16_t duration); } #endif //!ISO_KEYMAP #else // RevC+ keymaps - #ifndef KEYMAP - #define KEYMAP( \ + #ifndef LAYOUT + #define LAYOUT( \ k71, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, k1f, k1g, \ k72, k73, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, k2f, k2g, \ k74, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, k3g, \ @@ -115,8 +115,8 @@ void click(uint16_t freq, uint16_t duration); } #endif //!KEYMAP#endif - #ifndef ISO_KEYMAP - #define ISO_KEYMAP( \ + #ifndef LAYOUT_iso + #define LAYOUT_iso( \ k71, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, k1f, k1g, \ k72, k73, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, k2f, k2g, \ k74, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, k3g, \ @@ -133,7 +133,7 @@ void click(uint16_t freq, uint16_t duration); {k61, k62, k63, k64, k65, k00, k67, k00, k00, k6a, k6b, k6c, k6d, k6e, k6f, k6g}, \ {k71, k72, k73, k74, k00, k00, k00, k00, k00, k00, k00, k00, k00, k00, k00, k00}, \ } - #endif //!ISO_KEYMAP + #endif //!LAYOUT_iso #endif //Rev #endif //LFK87_H diff --git a/keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c b/keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c index 33ecfd56bfa1..e73b8a99ecc9 100644 --- a/keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c +++ b/keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c @@ -4,7 +4,7 @@ #include "action_layer.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( /* Base */ +[0] = LAYOUT( /* Base */ KC_ESC, KC_TAB, KC_PEQL, MO(1), \ KC_LNUM, KC_PSLS, KC_PAST, KC_PMNS, \ KC_P7, KC_P8, KC_P9, KC_PPLS, \ @@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P1, KC_P2, KC_P3, KC_PENT, \ KC_P0, KC_PDOT), -[1] = KEYMAP( /* RGB */ +[1] = LAYOUT( /* RGB */ RGB_SAI, RGB_VAI, RGB_HUI, KC_TRNS, \ RGB_SAD, RGB_VAD, RGB_HUD, KC_TRNS, \ RGB_M_X, RGB_M_G, RGB_MOD, RGB_RMOD, \ diff --git a/keyboards/lfkeyboards/lfkpad/lfkpad.h b/keyboards/lfkeyboards/lfkpad/lfkpad.h index d7d66ea7af34..b82581b93907 100644 --- a/keyboards/lfkeyboards/lfkpad/lfkpad.h +++ b/keyboards/lfkeyboards/lfkpad/lfkpad.h @@ -54,7 +54,7 @@ enum action_functions { void reset_keyboard_kb(void); void click(uint16_t freq, uint16_t duration); -#define KEYMAP( \ +#define LAYOUT( \ k00, k01, k02, k03,\ k10, k11, k12, k13,\ k20, k21, k22, k23,\ @@ -70,4 +70,4 @@ void click(uint16_t freq, uint16_t duration); { k50, KC_NO, k52, KC_NO } \ } -#endif //LFKPAD_H \ No newline at end of file +#endif //LFKPAD_H diff --git a/keyboards/lfkeyboards/mini1800/keymaps/ca178858/keymap.c b/keyboards/lfkeyboards/mini1800/keymaps/ca178858/keymap.c index e633486fefab..9d19747e7801 100644 --- a/keyboards/lfkeyboards/mini1800/keymaps/ca178858/keymap.c +++ b/keyboards/lfkeyboards/mini1800/keymaps/ca178858/keymap.c @@ -31,7 +31,7 @@ const Layer_Info layer_info[] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[VANILLA] = KEYMAP( +[VANILLA] = LAYOUT( /* Keymap VANILLA: (Base Layer) Default Layer * ,-----------------------------------------------------------------------------. * |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus| @@ -67,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Func|Win |Alt | PgD |Alt |Ctrl |Func | |Lft| Dn |Rig | * `------------------------------------------------------' `-------------' */ -[FUNC] = KEYMAP( +[FUNC] = LAYOUT( KC_GRV, 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_DEL, KC_TR, KC_TR, KC_TR, KC_TR, KC_NO,KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO,KC_NO, KC_TR, KC_TR, KC_TR, KC_TR, @@ -89,7 +89,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | |Sat-|Hue-|Sat+| * `----------------------------------------------------------------------------' */ -[SETTINGS] = KEYMAP( +[SETTINGS] = LAYOUT( KC_FN0,KC_NO,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, KC_NO, KC_NO, MU_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_FN2, RGB_MOD, RGB_VAD, KC_NO, KC_NO, AU_TOG, KC_F1,KC_FN3, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET, KC_NO, KC_NO, KC_NO, KC_NO, diff --git a/keyboards/lfkeyboards/mini1800/keymaps/default/keymap.c b/keyboards/lfkeyboards/mini1800/keymaps/default/keymap.c index d5d869452c60..e7d4f11005f4 100644 --- a/keyboards/lfkeyboards/mini1800/keymaps/default/keymap.c +++ b/keyboards/lfkeyboards/mini1800/keymaps/default/keymap.c @@ -24,7 +24,7 @@ const Layer_Info layer_info[] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[VANILLA] = KEYMAP( +[VANILLA] = LAYOUT( /* Keymap VANILLA: (Base Layer) Default Layer * ,-----------------------------------------------------------------------------. * |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus| @@ -60,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Func|Win |Alt | PgD |Alt |Ctrl |Func | |Lft| Dn |Rig | * `------------------------------------------------------' `-------------' */ -[FUNC] = KEYMAP( +[FUNC] = LAYOUT( KC_GRV, 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_DEL, KC_TR, KC_TR, KC_TR, KC_TR, KC_NO,KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO,KC_NO, KC_TR, KC_TR, KC_TR, KC_TR, @@ -82,7 +82,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | |Sat-|Hue-|Sat+| * `----------------------------------------------------------------------------' */ -[SETTINGS] = KEYMAP( +[SETTINGS] = LAYOUT( KC_FN0,KC_NO,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, KC_NO, KC_NO, MU_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_FN2, RGB_MOD, RGB_VAD, KC_NO, KC_NO, AU_TOG, KC_F1,KC_FN3, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET, KC_NO, KC_NO, KC_NO, KC_NO, diff --git a/keyboards/lfkeyboards/mini1800/mini1800.c b/keyboards/lfkeyboards/mini1800/mini1800.c index 20c198422f96..f0692d46c764 100644 --- a/keyboards/lfkeyboards/mini1800/mini1800.c +++ b/keyboards/lfkeyboards/mini1800/mini1800.c @@ -214,7 +214,7 @@ const uint8_t rgb_sequence[] = { // / | // Device const uint8_t switch_leds[MATRIX_ROWS][MATRIX_COLS] = -KEYMAP( +LAYOUT( 0x19, 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x99, 0x98, 0x97, 0x96, 0x95, 0x94, 0x93, 0x92, 0x91, 0x29, 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21, 0xA9, 0xA8, 0xA7, 0xA6, 0xA5, 0xA4, 0xA3, 0xA2, 0xA1, 0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0xB9, 0xB8, 0xB7, 0xB6, 0xB5, 0xB3, diff --git a/keyboards/lfkeyboards/mini1800/mini1800.h b/keyboards/lfkeyboards/mini1800/mini1800.h index 5f17337be9a8..712a1cd51394 100644 --- a/keyboards/lfkeyboards/mini1800/mini1800.h +++ b/keyboards/lfkeyboards/mini1800/mini1800.h @@ -69,7 +69,7 @@ void click(uint16_t freq, uint16_t duration); // j = 19 #ifndef KEYMAP - #define KEYMAP( \ + #define LAYOUT( \ k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1f, k1g, k1h, k1i, k1j,\ k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2g, k2h, k2i, k2j,\ k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k2f, k3g, k3h, k3i, k3j,\ diff --git a/keyboards/lfkeyboards/smk65/keymaps/default/keymap.c b/keyboards/lfkeyboards/smk65/keymaps/default/keymap.c index 4a6ce371e2a5..b4cd506f7504 100644 --- a/keyboards/lfkeyboards/smk65/keymaps/default/keymap.c +++ b/keyboards/lfkeyboards/smk65/keymaps/default/keymap.c @@ -12,7 +12,7 @@ enum keymap_layout { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[VANILLA] = KEYMAP( +[VANILLA] = LAYOUT( /* Keymap VANILLA: (Base Layer) Default Layer * ,------------------------------------------------------------.----. * |Esc~| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backspa| Ins| @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(FUNC), KC_LEFT, KC_DOWN, KC_RGHT), -[FUNC] = KEYMAP( +[FUNC] = LAYOUT( /* Keymap VANILLA: Function Layer * ,------------------------------------------------------------.----. * |Esc~| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backspa| Ins| diff --git a/keyboards/lfkeyboards/smk65/keymaps/iso/keymap.c b/keyboards/lfkeyboards/smk65/keymaps/iso/keymap.c index 7ba98e64650b..b876fdc2818a 100644 --- a/keyboards/lfkeyboards/smk65/keymaps/iso/keymap.c +++ b/keyboards/lfkeyboards/smk65/keymaps/iso/keymap.c @@ -12,7 +12,7 @@ enum keymap_layout { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[VANILLA] = ISO_KEYMAP( +[VANILLA] = LAYOUT_iso( /* Keymap VANILLA: (Base Layer) Default Layer * ,------------------------------------------------------------.----. * |Esc~| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backspa| Ins| @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(FUNC), KC_LEFT, KC_DOWN, KC_RGHT), -[FUNC] = ISO_KEYMAP( +[FUNC] = LAYOUT_iso( /* Keymap VANILLA: Function Layer * ,------------------------------------------------------------.----. * |Esc~| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backspa| Ins| diff --git a/keyboards/lfkeyboards/smk65/smk65.h b/keyboards/lfkeyboards/smk65/smk65.h index 401b231cf4e6..13f36a8b9323 100644 --- a/keyboards/lfkeyboards/smk65/smk65.h +++ b/keyboards/lfkeyboards/smk65/smk65.h @@ -73,7 +73,7 @@ void click(uint16_t freq, uint16_t duration); */ // The first section contains all of the arguements // The second converts the arguments into a two-dimensional array -#define KEYMAP( \ +#define LAYOUT( \ k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1F, k1G, \ k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2F, k2G, \ k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3F, k3G, \ @@ -87,7 +87,7 @@ void click(uint16_t freq, uint16_t duration); {k51, k52, k53, KC_NO, KC_NO, KC_NO, k57, KC_NO, KC_NO, KC_NO, k5B, k5C, k5D, k5E, KC_NO, KC_NO}, \ } -#define ISO_KEYMAP( \ +#define LAYOUT_iso( \ k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1G, \ k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2F, k2G, \ k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3F, k3G, \ diff --git a/keyboards/m10a/m10a.h b/keyboards/m10a/m10a.h index 6ec334fb3c21..a62913aa2c3d 100644 --- a/keyboards/m10a/m10a.h +++ b/keyboards/m10a/m10a.h @@ -3,7 +3,7 @@ #include "quantum.h" -#define M10A( \ +#define LAYOUT( \ k00, k01, k02, \ k10, k11, k12, \ k20, k21, k22, \ @@ -14,6 +14,6 @@ { k10, k11, k12 }, \ { k20, k21, k22 }, \ { k30, k31, k32 } \ -} +} #endif diff --git a/keyboards/mf68_ble/keymaps/default/keymap.c b/keyboards/mf68_ble/keymaps/default/keymap.c index fd8810d5281e..f4afd912ae46 100644 --- a/keyboards/mf68_ble/keymaps/default/keymap.c +++ b/keyboards/mf68_ble/keymaps/default/keymap.c @@ -9,7 +9,7 @@ #define KC_X2 BL_STEP const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = KC_KEYMAP( + [_QWERTY] = LAYOUT_kc( /*,----+----+----+----+----+----+----+----+----+----+----+----+----+--------. ,----+----. */ ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL , BSPC , INS ,PGUP, /*|----`----`----`----`----`----`----`----`----`----`----`----`----`--------| |----`----| */ @@ -23,7 +23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /*`-----+-----+-----+------------------------------+------+-----+-----' `----+----+----' */ ), - [_FN1] = KC_KEYMAP( + [_FN1] = LAYOUT_kc( /*,----+----+----+----+----+----+----+----+----+----+----+----+----+--------. ,----+----. */ GRV , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,F12 , BSPC , VOLU,HOME, /*|esc-`-1--`-2--`-3--`-4--`-5--`-6--`-7--`-8--`-9--`-0--`mnus`plus`--bksp--| |ins-`pgup| */ @@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /*`ctrl-+-gui-+-alt-+----------space---------------+-fn---+-alt-+ctrl-' `left+down+rght' */ ), - [_FN2] = KC_KEYMAP( + [_FN2] = LAYOUT_kc( /*,----+----+----+----+----+----+----+----+----+----+----+----+----+--------. ,----+----. */ GRV , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,F12 , BSPC , VOLU,HOME, /*|esc-`-1--`-2--`-3--`-4--`-5--`-6--`-7--`-8--`-9--`-0--`mnus`plus`--bksp--| |ins-`pgup| */ diff --git a/keyboards/mf68_ble/mf68.h b/keyboards/mf68_ble/mf68.h index 316e3b87fcfd..a7aefc64792f 100644 --- a/keyboards/mf68_ble/mf68.h +++ b/keyboards/mf68_ble/mf68.h @@ -3,7 +3,7 @@ #include "quantum.h" -#define KEYMAP( \ +#define LAYOUT( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K10, K11, K12, K13, K14, K15, K16, \ K17, K18, K20, K21, K22, K23, K24, K25, K26, K27, K28, K30, K31, K32, K33, K34, \ K35, K36, K37, K38, K40, K41, K42, K43, K44, K45, K46, K47, K48, \ @@ -20,13 +20,13 @@ { K70, K71, K72, K73, K74 } \ } -#define KC_KEYMAP( \ +#define LAYOUT_kc( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K10, K11, K12, K13, K14, K15, K16, \ K17, K18, K20, K21, K22, K23, K24, K25, K26, K27, K28, K30, K31, K32, K33, K34, \ K35, K36, K37, K38, K40, K41, K42, K43, K44, K45, K46, K47, K48, \ K50, K51, K52, K53, K54, K55, K56, K57, K58, K60, K61, K62, K63, \ K64, K65, K66, K67, K68, K70, K71, K72, K73, K74 \ -) KEYMAP( \ +) LAYOUT( \ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, \ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, \ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, \ diff --git a/keyboards/nano/keymaps/default/keymap.c b/keyboards/nano/keymaps/default/keymap.c index 26e00bf52f7a..5fe92aab2413 100644 --- a/keyboards/nano/keymaps/default/keymap.c +++ b/keyboards/nano/keymaps/default/keymap.c @@ -11,13 +11,13 @@ #define KC_RHUD RGB_HUD const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_MAIN] = KC_KEYMAP( + [_MAIN] = LAYOUT( VOLU,MPLY,MPRV,PGUP, VOLD,MUTE,MNXT,PGDN ), - [_FN] = KC_KEYMAP( + [_FN] = LAYOUT( F , ,RHUI, , - RTOG,RMOD,RHUD, + RTOG,RMOD,RHUD, ) }; diff --git a/keyboards/nano/nano.h b/keyboards/nano/nano.h index 2d48962bf8f7..4d69dc6f8bb0 100644 --- a/keyboards/nano/nano.h +++ b/keyboards/nano/nano.h @@ -3,7 +3,7 @@ #include "quantum.h" -#define KC_KEYMAP(k01, k02, k03, k04, k05, k06, k07, k08) \ +#define LAYOUT(k01, k02, k03, k04, k05, k06, k07, k08) \ { \ {KC_##k01, KC_##k02, KC_##k03, KC_##k04}, \ {KC_##k05, KC_##k06, KC_##k07, KC_##k08} \ diff --git a/keyboards/niu_mini/niu_mini.h b/keyboards/niu_mini/niu_mini.h index f4a55272a092..88c5af11b096 100644 --- a/keyboards/niu_mini/niu_mini.h +++ b/keyboards/niu_mini/niu_mini.h @@ -3,7 +3,7 @@ #include "quantum.h" -#define MIT( \ +#define LAYOUT_mit( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ @@ -16,7 +16,7 @@ { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \ } -#define GRID( \ +#define LAYOUT_grid( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ @@ -29,7 +29,7 @@ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \ } -#define KEYMAP GRID -#define LAYOUT_ortho_4x12 GRID +#define LAYOUT LAYOUT_grid +#define LAYOUT_ortho_4x12 LAYOUT_grid #endif diff --git a/keyboards/s65_x/keymaps/default/keymap.c b/keyboards/s65_x/keymaps/default/keymap.c index 27c9e7c942e9..3d0b9d72d74a 100644 --- a/keyboards/s65_x/keymaps/default/keymap.c +++ b/keyboards/s65_x/keymaps/default/keymap.c @@ -21,7 +21,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* 0: ANSI qwerty */ - [_BL] = ANSI_KEYMAP( + [_BL] = LAYOUT_ansi( KC_GESC, 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_BSPC, KC_DEL, \ 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_BSLS, KC_END, \ F(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \ @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - [_AL] = ANSI_KEYMAP( + [_AL] = LAYOUT_ansi( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ @@ -64,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - [_FL] = ANSI_KEYMAP( + [_FL] = LAYOUT_ansi( KC_GRAVE, 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_TRNS, KC_TRNS, \ KC_TRNS, F(1), KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ @@ -85,7 +85,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - [_UL] = ANSI_KEYMAP( + [_UL] = LAYOUT_ansi( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, BL_TOGG, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ diff --git a/keyboards/s65_x/keymaps/iso/keymap.c b/keyboards/s65_x/keymaps/iso/keymap.c index 2be27b4637bd..9e888d9a87b2 100644 --- a/keyboards/s65_x/keymaps/iso/keymap.c +++ b/keyboards/s65_x/keymaps/iso/keymap.c @@ -21,7 +21,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* 0: ISO qwerty */ - [_BL] = ISO_KEYMAP( + [_BL] = LAYOUT_iso( KC_GESC, 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_BSPC, KC_DEL, \ 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_END, \ F(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_GRAVE, KC_ENT, KC_PGUP, \ @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - [_AL] = ISO_KEYMAP( + [_AL] = LAYOUT_iso( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ @@ -64,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - [_FL] = ISO_KEYMAP( + [_FL] = LAYOUT_iso( KC_GRAVE, 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_TRNS, KC_TRNS, \ KC_TRNS, F(1), KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ @@ -85,7 +85,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - [_UL] = ISO_KEYMAP( + [_UL] = LAYOUT_iso( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, BL_TOGG, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ diff --git a/keyboards/s65_x/keymaps/kelorean/keymap.c b/keyboards/s65_x/keymaps/kelorean/keymap.c index 22fe7b072e26..696b664e0ca8 100644 --- a/keyboards/s65_x/keymaps/kelorean/keymap.c +++ b/keyboards/s65_x/keymaps/kelorean/keymap.c @@ -20,10 +20,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ * │LCTRL│L_ALT│L_GUI│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │ APP │LEFT │DOWN │RIGHT│ * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ - */ + */ /* 0: ANSI qwerty */ - [_BL] = ANSI_KEYMAP( + [_BL] = LAYOUT_ansi( KC_GESC, 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_BSPC, KC_DEL, \ 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_BSLS, KC_END, \ F(4), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \ @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* 1: Colemak layer */ - [_CM] = ANSI_KEYMAP( + [_CM] = LAYOUT_ansi( KC_GESC, 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_BSPC, KC_DEL, \ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, \ F(4), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_PGUP, \ @@ -68,7 +68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* 2: Dvorak layer */ - [_DV] = ANSI_KEYMAP( + [_DV] = LAYOUT_ansi( KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_DEL, \ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_END, \ F(4), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_PGUP, \ @@ -89,7 +89,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ /* 3: Locking arrow keys to WASD*/ - [_AL] = ANSI_KEYMAP( + [_AL] = LAYOUT_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ @@ -110,7 +110,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - [_FL] = ANSI_KEYMAP( + [_FL] = LAYOUT_ansi( KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, \ _______, F(3), KC_UP, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, \ _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, _______, \ @@ -131,7 +131,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - [_UL] = ANSI_KEYMAP( + [_UL] = LAYOUT_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, BL_TOGG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ diff --git a/keyboards/s65_x/keymaps/nall/keymap.c b/keyboards/s65_x/keymaps/nall/keymap.c index 651f7441b20a..9361d78ba71d 100644 --- a/keyboards/s65_x/keymaps/nall/keymap.c +++ b/keyboards/s65_x/keymaps/nall/keymap.c @@ -21,7 +21,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* 0: ANSI qwerty */ - [_BL] = ANSI_KEYMAP( + [_BL] = LAYOUT_ansi( KC_GESC,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_BSPC, KC_DEL, \ 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_BSLS, KC_END, \ F(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \ @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - [_AL] = ANSI_KEYMAP( + [_AL] = LAYOUT_ansi( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ @@ -64,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - [_FL] = ANSI_KEYMAP( + [_FL] = LAYOUT_ansi( KC_GRAVE, 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_TRNS, KC_TRNS, \ KC_TRNS, F(1), KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ @@ -85,7 +85,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - [_UL] = ANSI_KEYMAP( + [_UL] = LAYOUT_ansi( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, BL_TOGG, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ diff --git a/keyboards/s65_x/keymaps/smt/keymap.c b/keyboards/s65_x/keymaps/smt/keymap.c index 0620c5e2dae8..ce21859acd6b 100644 --- a/keyboards/s65_x/keymaps/smt/keymap.c +++ b/keyboards/s65_x/keymaps/smt/keymap.c @@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* 0: ANSI qwerty */ - [_QWERTY] = ANSI_KEYMAP( + [_QWERTY] = LAYOUT_ansi( KC_GESC, 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_BSPC, KC_GRV, \ HPR_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_BSLS, KC_DEL, \ CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \ @@ -59,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* 1: ANSI colemak */ - [_COLEMAK] = ANSI_KEYMAP( + [_COLEMAK] = LAYOUT_ansi( KC_GESC, 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_BSPC, KC_GRV, \ HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, \ CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_PGUP, \ @@ -81,7 +81,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* 2: ANSI dvorak */ - [_DVORAK] = ANSI_KEYMAP( + [_DVORAK] = LAYOUT_ansi( KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_GRV, \ HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_DEL, \ CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_PGUP, \ @@ -103,7 +103,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* 3: ANSI Fn layer */ - [_FL] = ANSI_KEYMAP( + [_FL] = LAYOUT_ansi( KC_GRV, 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_F13, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, _______, \ _______, _______, MO(_CL), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ @@ -125,7 +125,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* 4: ANSI control layer */ - [_CL] = ANSI_KEYMAP( + [_CL] = LAYOUT_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, \ _______, _______, _______, _______, RESET, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, RGB_VAI, \ _______, _______, MO(_CL), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, \ diff --git a/keyboards/s65_x/s65_x.h b/keyboards/s65_x/s65_x.h index ed1ac402c9b5..abba9909c88e 100644 --- a/keyboards/s65_x/s65_x.h +++ b/keyboards/s65_x/s65_x.h @@ -5,7 +5,7 @@ // There's an extra 2 x 5 column on the left. Not sure what that's all about // ANSI has more standard width shift, delete, and enter keys, doesn't use all of the 1U keys -#define ANSI_KEYMAP( \ +#define LAYOUT_ansi( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, K015, \ K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, K215, \ @@ -20,7 +20,7 @@ } -#define ISO_KEYMAP( \ +#define LAYOUT_iso( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, K015, \ K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K115, \ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ From c0baf2a964b10d708281c704c0b049a1cf0f4914 Mon Sep 17 00:00:00 2001 From: Seebs Date: Sat, 18 Nov 2017 09:38:15 -0600 Subject: [PATCH 189/578] Improve state/chord handling and clean up namespace Some values that can never, ever, change were held in local variables, rather than in PROGMEM. Fixed. Change "pressed" to a signed int so the test for < 0 makes sense, and to avoid possible weird failure modes in the case where a key release comes in when pressed is already zero. (Shouldn't happen, sure, but computers are weird.) A lot of things in process_steno had external linkage for no particular reason. They've been marked static. Stuff still builds. Distinguish between currently-held keys and keys that have been held, and expose these values through a nicely-named API so other code could, say, check on the current set of steno chording in order to make displays. Also in passing fix up the "state" value having external linkage so it could clash with other people's variable declarations. The API also provides hooks for key processing and steno chord events, so you can monitor those events without having to run in matrix_scan_user and recheck the values directly. Also document these. There is no path through processing a key that doesn't end with a return false, so the nested return foo() are gone and we just return false. --- docs/feature_stenography.md | 24 +++++ quantum/process_keycode/process_steno.c | 136 +++++++++++++++--------- quantum/process_keycode/process_steno.h | 4 +- 3 files changed, 115 insertions(+), 49 deletions(-) diff --git a/docs/feature_stenography.md b/docs/feature_stenography.md index 9fb224b5da0e..0b2c82422b66 100644 --- a/docs/feature_stenography.md +++ b/docs/feature_stenography.md @@ -56,6 +56,29 @@ On the display tab click 'Open stroke display'. With Plover disabled you should * [Steno Jig](https://joshuagrams.github.io/steno-jig/) * More resources at the Plover [Learning Stenography](https://github.com/openstenoproject/plover/wiki/Learning-Stenography) wiki +## Interfacing with the code + +The steno code has three interceptible hooks. If you define these functions, they will be called at certain points in processing; if they return true, processing continues, otherwise it's assumed you handled things. + +```C +bool send_steno_chord_user(steno_mode_t mode, uint8_t chord[6]); +``` + +This function is called when a chord is about to be sent. Mode will be one of `STENO_MODE_BOLT` or `STENO_MODE_GEMINI`. This represents the actual chord that would be sent via whichever protocol. You can modify the chord provided to alter what gets sent. Remember to return true if you want the regular sending process to happen. + +```C +bool process_steno_user(uint16_t keycode, keyrecord_t *record) { return true; } +``` + +This function is called when a keypress has come in, before it is processed. The keycode should be one of `QK_STENO_BOLT`, `QK_STENO_GEMINI`, or one of the `STN_*` key values. + +```C +bool postprocess_steno_user(uint16_t keycode, keyrecord_t *record, steno_mode_t mode, uint8_t chord[6], int8_t pressed); +``` + +This function is called after a key has been processed, but before any decision about whether or not to send a chord. If `IS_PRESSED(record->event)` is false, and `pressed` is 0 or 1, the chord will be sent shortly, but has not yet been sent. This is where to put hooks for things like, say, live displays of steno chords or keys. + + ## Keycode Reference As defined in `keymap_steno.h`. @@ -106,3 +129,4 @@ As defined in `keymap_steno.h`. |`STN_RES1`||(GeminiPR only)| |`STN_RES2`||(GeminiPR only)| |`STN_PWR`||(GeminiPR only)| + diff --git a/quantum/process_keycode/process_steno.c b/quantum/process_keycode/process_steno.c index 16bbf154fd0c..3051fade912d 100644 --- a/quantum/process_keycode/process_steno.c +++ b/quantum/process_keycode/process_steno.c @@ -18,6 +18,7 @@ #include "eeprom.h" #include "keymap_steno.h" #include "virtser.h" +#include // TxBolt Codes #define TXB_NUL 0 @@ -57,11 +58,12 @@ #define GEMINI_STATE_SIZE 6 #define MAX_STATE_SIZE GEMINI_STATE_SIZE -uint8_t state[MAX_STATE_SIZE] = {0}; -uint8_t pressed = 0; -steno_mode_t mode; +static uint8_t state[MAX_STATE_SIZE] = {0}; +static uint8_t chord[MAX_STATE_SIZE] = {0}; +static int8_t pressed = 0; +static steno_mode_t mode; -uint8_t boltmap[64] = { +static const uint8_t boltmap[64] PROGMEM = { TXB_NUL, TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM, TXB_S_L, TXB_S_L, TXB_T_L, TXB_K_L, TXB_P_L, TXB_W_L, TXB_H_L, TXB_R_L, TXB_A_L, TXB_O_L, TXB_STR, TXB_STR, TXB_NUL, TXB_NUL, @@ -70,8 +72,17 @@ uint8_t boltmap[64] = { TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM, TXB_Z_R }; -void steno_clear_state(void) { - __builtin_memset(state, 0, sizeof(state)); +static void steno_clear_state(void) { + memset(state, 0, sizeof(state)); + memset(chord, 0, sizeof(chord)); +} + +static void send_steno_state(uint8_t size, bool send_empty) { + for (uint8_t i = 0; i < size; ++i) { + if (chord[i] || send_empty) { + virtser_send(chord[i]); + } + } } void steno_init() { @@ -87,79 +98,108 @@ void steno_set_mode(steno_mode_t new_mode) { eeprom_update_byte(EECONFIG_STENOMODE, mode); } -void send_steno_state(uint8_t size, bool send_empty) { - for (uint8_t i = 0; i < size; ++i) { - if (state[i] || send_empty) { - virtser_send(state[i]); +/* override to intercept chords right before they get sent. + * return zero to suppress normal sending behavior. + */ +__attribute__ ((weak)) +bool send_steno_chord_user(steno_mode_t mode, uint8_t chord[6]) { return true; } + +__attribute__ ((weak)) +bool postprocess_steno_user(uint16_t keycode, keyrecord_t *record, steno_mode_t mode, uint8_t chord[6], int8_t pressed) { return true; } + +__attribute__ ((weak)) +bool process_steno_user(uint16_t keycode, keyrecord_t *record) { return true; } + +static void send_steno_chord(void) { + if (send_steno_chord_user(mode, chord)) { + switch(mode) { + case STENO_MODE_BOLT: + send_steno_state(BOLT_STATE_SIZE, false); + virtser_send(0); // terminating byte + break; + case STENO_MODE_GEMINI: + chord[0] |= 0x80; // Indicate start of packet + send_steno_state(GEMINI_STATE_SIZE, true); + break; } } steno_clear_state(); } -bool update_state_bolt(uint8_t key) { - uint8_t boltcode = boltmap[key]; - state[TXB_GET_GROUP(boltcode)] |= boltcode; - return false; +uint8_t *steno_get_state(void) { + return &state[0]; } -bool send_state_bolt(void) { - send_steno_state(BOLT_STATE_SIZE, false); - virtser_send(0); // terminating byte - return false; +uint8_t *steno_get_chord(void) { + return &chord[0]; } -bool update_state_gemini(uint8_t key) { - state[key / 7] |= 1 << (6 - (key % 7)); +static bool update_state_bolt(uint8_t key, bool press) { + uint8_t boltcode = pgm_read_byte(boltmap + key); + if (press) { + state[TXB_GET_GROUP(boltcode)] |= boltcode; + chord[TXB_GET_GROUP(boltcode)] |= boltcode; + } else { + state[TXB_GET_GROUP(boltcode)] &= ~boltcode; + } return false; } -bool send_state_gemini(void) { - state[0] |= 0x80; // Indicate start of packet - send_steno_state(GEMINI_STATE_SIZE, true); +static bool update_state_gemini(uint8_t key, bool press) { + int idx = key / 7; + uint8_t bit = 1 << (6 - (key % 7)); + if (press) { + state[idx] |= bit; + chord[idx] |= bit; + } else { + state[idx] &= ~bit; + } return false; } bool process_steno(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QK_STENO_BOLT: + if (!process_steno_user(keycode, record)) { + return false; + } if (IS_PRESSED(record->event)) { steno_set_mode(STENO_MODE_BOLT); } return false; case QK_STENO_GEMINI: + if (!process_steno_user(keycode, record)) { + return false; + } if (IS_PRESSED(record->event)) { steno_set_mode(STENO_MODE_GEMINI); } return false; case STN__MIN...STN__MAX: - if (IS_PRESSED(record->event)) { - uint8_t key = keycode - QK_STENO; - ++pressed; - switch(mode) { - case STENO_MODE_BOLT: - return update_state_bolt(key); - case STENO_MODE_GEMINI: - return update_state_gemini(key); - default: - return false; - } - } else { - --pressed; - if (pressed <= 0) { - pressed = 0; - switch(mode) { - case STENO_MODE_BOLT: - return send_state_bolt(); - case STENO_MODE_GEMINI: - return send_state_gemini(); - default: - return false; - } - } + if (!process_steno_user(keycode, record)) { + return false; } - + switch(mode) { + case STENO_MODE_BOLT: + update_state_bolt(keycode - QK_STENO, IS_PRESSED(record->event)); + case STENO_MODE_GEMINI: + update_state_gemini(keycode - QK_STENO, IS_PRESSED(record->event)); + } + // allow postprocessing hooks + if (postprocess_steno_user(keycode, record, mode, chord, pressed)) { + if (IS_PRESSED(record->event)) { + ++pressed; + } else { + --pressed; + if (pressed <= 0) { + pressed = 0; + send_steno_chord(); + } + } + } + return false; } return true; } diff --git a/quantum/process_keycode/process_steno.h b/quantum/process_keycode/process_steno.h index 3bbcbeaaf8a5..71f9731224a3 100644 --- a/quantum/process_keycode/process_steno.h +++ b/quantum/process_keycode/process_steno.h @@ -27,5 +27,7 @@ typedef enum { STENO_MODE_BOLT, STENO_MODE_GEMINI } steno_mode_t; bool process_steno(uint16_t keycode, keyrecord_t *record); void steno_init(void); void steno_set_mode(steno_mode_t mode); +uint8_t *steno_get_state(void); +uint8_t *steno_get_chord(void); -#endif \ No newline at end of file +#endif From f4a9e983839c2f19b91da109f21fe6cabde8f2ea Mon Sep 17 00:00:00 2001 From: skullydazed Date: Sat, 7 Apr 2018 16:13:48 -0700 Subject: [PATCH 190/578] Pull information from config.h and rules.mk (#2711) * Pull information from config.h and rules.mk * Readd the kbd75 maintainer --- keyboards/1up60rgb/info.json | 3 --- keyboards/amj96/info.json | 3 --- keyboards/chimera_ortho/info.json | 3 --- keyboards/christmas_tree/V2017/info.json | 3 --- keyboards/christmas_tree/info.json | 5 +---- keyboards/clueboard/2x1800/info.json | 4 +--- keyboards/clueboard/60/info.json | 3 --- keyboards/clueboard/66/info.json | 1 - keyboards/clueboard/66/rev1/info.json | 3 --- keyboards/clueboard/66/rev2/info.json | 3 --- keyboards/clueboard/66/rev3/info.json | 3 --- keyboards/clueboard/66_hotswap/gen1/info.json | 3 --- keyboards/clueboard/66_hotswap/info.json | 1 - keyboards/contra/info.json | 3 --- keyboards/deltasplit75/info.json | 3 --- keyboards/dz60/info.json | 5 +---- keyboards/e6v2/info.json | 5 +---- keyboards/eagle_viper/info.json | 2 -- keyboards/ergodox_ez/info.json | 3 --- keyboards/ergodox_infinity/info.json | 3 --- keyboards/gh60/info.json | 1 - keyboards/iris/info.json | 3 --- keyboards/jc65/v32a/info.json | 3 --- keyboards/jc65/v32u4/info.json | 3 --- keyboards/k_type/info.json | 3 --- keyboards/kbd75/info.json | 5 +---- keyboards/kc60/info.json | 3 --- keyboards/octagon/v1/info.json | 5 +---- keyboards/octagon/v2/info.json | 3 --- keyboards/orthodox/rev1/info.json | 3 --- keyboards/orthodox/rev3/info.json | 3 --- keyboards/orthodox/rev3_teensy/info.json | 3 --- keyboards/phantom/info.json | 3 --- keyboards/planck/info.json | 5 +---- keyboards/planck/light/info.json | 4 +--- keyboards/planck/rev3/info.json | 3 --- keyboards/planck/rev4/info.json | 3 --- keyboards/planck/rev5/info.json | 3 --- keyboards/preonic/info.json | 3 --- keyboards/preonic/rev1/info.json | 3 --- keyboards/preonic/rev2/info.json | 4 ---- keyboards/sweet16/info.json | 3 --- keyboards/tada68/info.json | 3 --- keyboards/tkc1800/info.json | 3 --- keyboards/tv44/info.json | 3 --- keyboards/v60_type_r/info.json | 3 --- keyboards/whitefox/info.json | 3 --- keyboards/xd60/info.json | 5 +---- 48 files changed, 9 insertions(+), 145 deletions(-) delete mode 100644 keyboards/christmas_tree/V2017/info.json delete mode 100644 keyboards/clueboard/66/rev1/info.json delete mode 100644 keyboards/clueboard/66/rev2/info.json delete mode 100644 keyboards/clueboard/66/rev3/info.json delete mode 100644 keyboards/clueboard/66_hotswap/gen1/info.json delete mode 100644 keyboards/planck/rev3/info.json delete mode 100644 keyboards/planck/rev4/info.json delete mode 100644 keyboards/planck/rev5/info.json delete mode 100644 keyboards/preonic/rev1/info.json delete mode 100644 keyboards/preonic/rev2/info.json diff --git a/keyboards/1up60rgb/info.json b/keyboards/1up60rgb/info.json index a3b218dceb98..5fcb6cab3596 100644 --- a/keyboards/1up60rgb/info.json +++ b/keyboards/1up60rgb/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "1up60rgb", - "manufacturer": "1UP Keyboards", - "identifier": "", "url": "", "maintainer": "qmk", - "processor": "atmega32u4", "bootloader": "atmel-dfu", "width": 15, "height": 5, diff --git a/keyboards/amj96/info.json b/keyboards/amj96/info.json index 13bcd6a925e0..a8fb7d2ae0e9 100644 --- a/keyboards/amj96/info.json +++ b/keyboards/amj96/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "AMJ96", - "manufacturer": "AMJ", - "identifier": "", "url": "", "maintainer": "qmk", - "processor": "atmega32u4", "bootloader": "atmel-dfu", "width": 19, "height": 6, diff --git a/keyboards/chimera_ortho/info.json b/keyboards/chimera_ortho/info.json index 846ad8e2f889..9fb2d3366abb 100644 --- a/keyboards/chimera_ortho/info.json +++ b/keyboards/chimera_ortho/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "", - "manufacturer": "", - "identifier": "", "url": "", "maintainer": "qmk", - "processor": "", "bootloader": "", "width": 15.5, "height": 4.25, diff --git a/keyboards/christmas_tree/V2017/info.json b/keyboards/christmas_tree/V2017/info.json deleted file mode 100644 index 6f47bdb3b529..000000000000 --- a/keyboards/christmas_tree/V2017/info.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "identifier": "FEED:3070:2017" -} \ No newline at end of file diff --git a/keyboards/christmas_tree/info.json b/keyboards/christmas_tree/info.json index fde41acc2b52..0159876e2469 100644 --- a/keyboards/christmas_tree/info.json +++ b/keyboards/christmas_tree/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "Christmas Tree", "keyboard_folder": "christmas_tree", - "manufacturer": "Maple Computing", - "identifier": "FEED:3070:2017", "url": "https://www.reddit.com/r/MechanicalKeyboards/comments/7cqxpf/gb_christmas_tree_pcb_gb_now_live/", - "processor": "atmega32u4", "bootloader": "catarina", "maintainer": "That-Canadian", "width": 3, @@ -14,4 +11,4 @@ "key_count": 6 } } -} \ No newline at end of file +} diff --git a/keyboards/clueboard/2x1800/info.json b/keyboards/clueboard/2x1800/info.json index 0a669da20b35..1f3c69ba7663 100644 --- a/keyboards/clueboard/2x1800/info.json +++ b/keyboards/clueboard/2x1800/info.json @@ -1,9 +1,7 @@ { "keyboard_name": "CB 2x1800", - "identifier": "", "url": "", - "maintainer": "qmk", - "processor": "at90usb1286", + "maintainer": "skullydazed", "bootloader": "teensy", "width": 24, "height": 6.5, diff --git a/keyboards/clueboard/60/info.json b/keyboards/clueboard/60/info.json index 516c45fe5051..57114db11242 100644 --- a/keyboards/clueboard/60/info.json +++ b/keyboards/clueboard/60/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "clueboard/60", - "manufacturer": "Clueboard", - "identifier": "0483:df11", "maintainer": "skullydazed", "url": "", - "processor": "stm32f303", "bootloader": "stm32-dfu-util", "width": 15, "height": 5, diff --git a/keyboards/clueboard/66/info.json b/keyboards/clueboard/66/info.json index cfd6913ca486..96d2eceebdca 100644 --- a/keyboards/clueboard/66/info.json +++ b/keyboards/clueboard/66/info.json @@ -1,6 +1,5 @@ { "keyboard_name": "Clueboard 66%", - "processor": "atmega32u4", "bootloader": "atmel-dfu", "width": 16.5, "height": 5, diff --git a/keyboards/clueboard/66/rev1/info.json b/keyboards/clueboard/66/rev1/info.json deleted file mode 100644 index a2b943b24335..000000000000 --- a/keyboards/clueboard/66/rev1/info.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "identifier":"c1ed:2301:0003" -} diff --git a/keyboards/clueboard/66/rev2/info.json b/keyboards/clueboard/66/rev2/info.json deleted file mode 100644 index 18b3b895d33f..000000000000 --- a/keyboards/clueboard/66/rev2/info.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "identifier":"c1ed:2320:0001" -} diff --git a/keyboards/clueboard/66/rev3/info.json b/keyboards/clueboard/66/rev3/info.json deleted file mode 100644 index 83822ff75824..000000000000 --- a/keyboards/clueboard/66/rev3/info.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "identifier":"c1ed:2370:0001" -} diff --git a/keyboards/clueboard/66_hotswap/gen1/info.json b/keyboards/clueboard/66_hotswap/gen1/info.json deleted file mode 100644 index be66fe3e90cc..000000000000 --- a/keyboards/clueboard/66_hotswap/gen1/info.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "identifier":"c1ed:2390:0001" -} diff --git a/keyboards/clueboard/66_hotswap/info.json b/keyboards/clueboard/66_hotswap/info.json index b98652cf96f6..076db6a76193 100644 --- a/keyboards/clueboard/66_hotswap/info.json +++ b/keyboards/clueboard/66_hotswap/info.json @@ -1,6 +1,5 @@ { "keyboard_name": "Clueboard 66% HotSwap", - "processor": "atmega32u4", "bootloader": "atmel-dfu", "width": 16.5, "height": 5, diff --git a/keyboards/contra/info.json b/keyboards/contra/info.json index 97b7cddf468d..594fcb86a093 100644 --- a/keyboards/contra/info.json +++ b/keyboards/contra/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "Contra", - "manufacturer": "Cartel Keyboards", - "identifier": "", "url": "", "maintainer": "qmk", - "processor": "atmega32u4", "bootloader": "caterina", "width": 12, "height": 4, diff --git a/keyboards/deltasplit75/info.json b/keyboards/deltasplit75/info.json index 53b06e0f60c2..4afeced1ea38 100644 --- a/keyboards/deltasplit75/info.json +++ b/keyboards/deltasplit75/info.json @@ -1,9 +1,6 @@ { "keyboard_name": "DeltaSplit75", - "identifier":"FEED:3060:0001", - "manufacturer": "xyxjj", "maintainer": "xyxjj & itsaferbie", - "processor": "atmega32u4", "bootloader": "n/a", "width": 17, "height": 6, diff --git a/keyboards/dz60/info.json b/keyboards/dz60/info.json index dfb0bbbdfeaa..9f9631ade31a 100644 --- a/keyboards/dz60/info.json +++ b/keyboards/dz60/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "DZ60", - "manufacturer": "KBDFans", - "identifier": "", "url": "", "maintainer": "qmk", - "processor": "atmega32u4", "bootloader": "atmel-dfu", "width": 15, "height": 5, @@ -29,4 +26,4 @@ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] } } -} \ No newline at end of file +} diff --git a/keyboards/e6v2/info.json b/keyboards/e6v2/info.json index 6eb5bd18cd5b..fc5e6764629f 100644 --- a/keyboards/e6v2/info.json +++ b/keyboards/e6v2/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "E6-V2", - "manufacturer": "Exclusive", - "identifier": "", "url": "", "maintainer": "qmk", - "processor": "atmega32u4", "bootloader": "atmel-dfu", "width": 15, "height": 5, @@ -25,4 +22,4 @@ "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}] } } -} \ No newline at end of file +} diff --git a/keyboards/eagle_viper/info.json b/keyboards/eagle_viper/info.json index 9668c502001b..f8018c3facc7 100644 --- a/keyboards/eagle_viper/info.json +++ b/keyboards/eagle_viper/info.json @@ -1,7 +1,5 @@ { "keyboard_name": "Eagle/Viper", - "manufacturer": "Duck", - "processor": "atmega32u4", "bootloader": "atmel-dfu", "width": 15, "height": 5, diff --git a/keyboards/ergodox_ez/info.json b/keyboards/ergodox_ez/info.json index 731108853dee..5bd4e80234d1 100644 --- a/keyboards/ergodox_ez/info.json +++ b/keyboards/ergodox_ez/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "ErgoDox EZ", - "manufacturer": "ErgoDox EZ", - "identifier": "FEED:1307:0001", "url": "ergodox-ez.com", "maintainer": "erez", - "processor": "atmega32u4", "bootloader": "halfkay", "width": 19.5, "height": 9.375, diff --git a/keyboards/ergodox_infinity/info.json b/keyboards/ergodox_infinity/info.json index 72d035c5b55e..e5f12ec74909 100644 --- a/keyboards/ergodox_infinity/info.json +++ b/keyboards/ergodox_infinity/info.json @@ -1,8 +1,5 @@ { "keyboard_name": "Infinity Ergodox", - "manufacturer": "Input Club", - "identifier": "FEED:6464:0001", - "processor": "MK20DX256VLH7", "bootloader": "KIIBOHD_BOOTLOADER", "width": 19.5, "height": 9.375, diff --git a/keyboards/gh60/info.json b/keyboards/gh60/info.json index 04206aa182b9..4492496fbd55 100644 --- a/keyboards/gh60/info.json +++ b/keyboards/gh60/info.json @@ -1,6 +1,5 @@ { "keyboard_name": "GH60", - "identifier": "FEED:6060:0001", "layouts": { "KEYMAP": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"label":"Menu", "x":12, "y":4}, {"label":"Ctrl", "x":13, "y":4}, {"x":14, "y":4}] diff --git a/keyboards/iris/info.json b/keyboards/iris/info.json index cf8655ff48ed..ae5ba16719ac 100644 --- a/keyboards/iris/info.json +++ b/keyboards/iris/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "Iris", - "manufacturer": "Keebio", - "identifier": "0x1256", "url": "Keeb.io", "maintainer": "qmk", - "processor": "atmega32u4", "bootloader": "", "width": 14.5, "height": 5, diff --git a/keyboards/jc65/v32a/info.json b/keyboards/jc65/v32a/info.json index 185a7d863600..3acda89726d0 100644 --- a/keyboards/jc65/v32a/info.json +++ b/keyboards/jc65/v32a/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "jc65", - "manufacturer": "keyclack", - "identifier": "", "url": "", "maintainer": "qmk", - "processor": "atmega32a", "bootloader": "", "width": 16, "height": 5, diff --git a/keyboards/jc65/v32u4/info.json b/keyboards/jc65/v32u4/info.json index 3723ec31af0e..6d23d28a5a47 100644 --- a/keyboards/jc65/v32u4/info.json +++ b/keyboards/jc65/v32u4/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "jc65", - "manufacturer": "keyclack", - "identifier": "", "url": "", "maintainer": "qmk", - "processor": "atmega32u4", "bootloader": "atmel-dfu", "width": 16, "height": 5, diff --git a/keyboards/k_type/info.json b/keyboards/k_type/info.json index a168f63d2a23..9d3e10568b0e 100644 --- a/keyboards/k_type/info.json +++ b/keyboards/k_type/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "K-Type", - "manufacturer": "Input Club", - "identifier": "", "url": "", "maintainer": "qmk", - "processor": "cortex-m4", "width": 18.25, "height": 6.5, "layouts": { diff --git a/keyboards/kbd75/info.json b/keyboards/kbd75/info.json index 19489e54c992..50c271f38cbd 100644 --- a/keyboards/kbd75/info.json +++ b/keyboards/kbd75/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "KBD75", - "manufacturer": "KBDFans", - "identifier": "", "url": "", "maintainer": "qmk", - "processor": "atmega32u4", "bootloader": "atmel-dfu", "width": 16, "height": 6, @@ -13,4 +10,4 @@ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Delete", "x":15, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"label":"Home", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Page Up", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Page Down", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"End", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":2.25}, {"x":6, "y":5}, {"x":7, "y":5, "w":3}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}] } } -} \ No newline at end of file +} diff --git a/keyboards/kc60/info.json b/keyboards/kc60/info.json index 80a4535ab64d..f8ca77409ff0 100644 --- a/keyboards/kc60/info.json +++ b/keyboards/kc60/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "KC60", - "manufacturer": "", - "identifier": "", "url": "", "maintainer": "qmk", - "processor": "atmega32u4", "bootloader": "atmel-dfu", "width": 15, "height": 5, diff --git a/keyboards/octagon/v1/info.json b/keyboards/octagon/v1/info.json index 3db8a5d2b63e..77f7bd895ec8 100644 --- a/keyboards/octagon/v1/info.json +++ b/keyboards/octagon/v1/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "Octagon V1", - "manufacturer": "Duck", - "identifier": "", "url": "", "maintainer": "qmk", - "processor": "atmega32u4", "bootloader": "atmel-dfu", "width": 16, "height": 6, @@ -13,4 +10,4 @@ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Home", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Page Up", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"x":12.75, "y":3}, {"label":"Enter", "x":13.75, "y":3, "w":1.25}, {"label":"Page Down", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"End", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}] } } -} \ No newline at end of file +} diff --git a/keyboards/octagon/v2/info.json b/keyboards/octagon/v2/info.json index 2b9eccc065a5..b9b25967cc6a 100644 --- a/keyboards/octagon/v2/info.json +++ b/keyboards/octagon/v2/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "Octagon V2", - "manufacturer": "Duck", - "identifier": "", "url": "", "maintainer": "qmk", - "processor": "atmega32u4", "bootloader": "atmel-dfu", "width": 16, "height": 6, diff --git a/keyboards/orthodox/rev1/info.json b/keyboards/orthodox/rev1/info.json index becc295d5275..42bdd0a3b92f 100644 --- a/keyboards/orthodox/rev1/info.json +++ b/keyboards/orthodox/rev1/info.json @@ -1,9 +1,6 @@ { "keyboard_name": "Monkeebs Orthodox Rev.1", - "manufacturer": "deductivemonkee", - "identifier": "FEED:3060:0001", "maintainer": "qmk", - "processor": "atmega32u4", "bootloader": "caterina", "width": 17, "height": 17.24, diff --git a/keyboards/orthodox/rev3/info.json b/keyboards/orthodox/rev3/info.json index 6c4c4c611c8e..63f0488c8c67 100644 --- a/keyboards/orthodox/rev3/info.json +++ b/keyboards/orthodox/rev3/info.json @@ -1,9 +1,6 @@ { "keyboard_name": "Monkeebs Orthodox Rev.3", - "manufacturer": "deductivemonkee", - "identifier": "FEED:3060:0001", "maintainer": "qmk", - "processor": "atmega32u4", "bootloader": "caterina", "width": 17, "height": 17.24, diff --git a/keyboards/orthodox/rev3_teensy/info.json b/keyboards/orthodox/rev3_teensy/info.json index 1720b43d526a..c472fe51413e 100644 --- a/keyboards/orthodox/rev3_teensy/info.json +++ b/keyboards/orthodox/rev3_teensy/info.json @@ -1,9 +1,6 @@ { "keyboard_name": "Monkeebs Orthodox Rev.3", - "manufacturer": "deductivemonkee", - "identifier": "FEED:3060:0001", "maintainer": "qmk", - "processor": "atmega32u4", "bootloader": "halfkay", "width": 17, "height": 17.24, diff --git a/keyboards/phantom/info.json b/keyboards/phantom/info.json index 6c5ef8de90b0..93ca99c229a5 100644 --- a/keyboards/phantom/info.json +++ b/keyboards/phantom/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "Phantom", - "manufacturer": "bpiphany", - "identifier": "PHANTOM", "url": "https://deskthority.net/wiki/Phantom", "maintainer": "qmk", - "processor": "atmega32u4", "bootloader": "halfkay", "width": 18.25, "height": 6.5, diff --git a/keyboards/planck/info.json b/keyboards/planck/info.json index fd897c216787..751a56ef88c7 100644 --- a/keyboards/planck/info.json +++ b/keyboards/planck/info.json @@ -1,11 +1,8 @@ { "keyboard_name": "Planck", "keyboard_folder": "planck", - "manufacturer": "OLKB", - "identifier": "FEED:6060:0001", "url": "https://olkb.com/planck", "maintainer": "jackhumbert", - "processor": "atmega32u4", "bootloader": "atmel-dfu", "width": 12, "height": 4, @@ -114,4 +111,4 @@ { "w": 1, "x": 11, "y": 3 } ] } } -} \ No newline at end of file +} diff --git a/keyboards/planck/light/info.json b/keyboards/planck/light/info.json index f620bc413837..ecc40b8185e8 100644 --- a/keyboards/planck/light/info.json +++ b/keyboards/planck/light/info.json @@ -1,7 +1,5 @@ { "keyboard_name": "Planck Light", "keyboard_folder": "planck/light", - "identifier": "FEED:6065:0001", - "processor": "at90usb1286", "bootloader": "qmk-dfu", -} \ No newline at end of file +} diff --git a/keyboards/planck/rev3/info.json b/keyboards/planck/rev3/info.json deleted file mode 100644 index 89a1647d9cde..000000000000 --- a/keyboards/planck/rev3/info.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "identifier": "FEED:6060:0003" -} \ No newline at end of file diff --git a/keyboards/planck/rev4/info.json b/keyboards/planck/rev4/info.json deleted file mode 100644 index 634ad99b8a66..000000000000 --- a/keyboards/planck/rev4/info.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "identifier": "FEED:6060:0004" -} \ No newline at end of file diff --git a/keyboards/planck/rev5/info.json b/keyboards/planck/rev5/info.json deleted file mode 100644 index 3d984961ae48..000000000000 --- a/keyboards/planck/rev5/info.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "identifier": "FEED:6060:0005" -} \ No newline at end of file diff --git a/keyboards/preonic/info.json b/keyboards/preonic/info.json index 67cc08632617..ac91c8ee6d7a 100644 --- a/keyboards/preonic/info.json +++ b/keyboards/preonic/info.json @@ -1,11 +1,8 @@ { "keyboard_name": "Preonic", "keyboard_folder": "preonic", - "manufacturer": "OLKB", - "identifier": "FEED:6061:0001", "url": "https://olkb.com/preonic", "maintainer": "jackhumbert", - "processor": "atmega32u4", "bootloader": "atmel-dfu", "width": 12, "height": 5, diff --git a/keyboards/preonic/rev1/info.json b/keyboards/preonic/rev1/info.json deleted file mode 100644 index 43a7b495cef1..000000000000 --- a/keyboards/preonic/rev1/info.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "identifier": "FEED:6061:0001" -} \ No newline at end of file diff --git a/keyboards/preonic/rev2/info.json b/keyboards/preonic/rev2/info.json deleted file mode 100644 index 406f80ef1cbc..000000000000 --- a/keyboards/preonic/rev2/info.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "identifier": "FEED:6061:0002", - "bootloader": "qmk-dfu" -} diff --git a/keyboards/sweet16/info.json b/keyboards/sweet16/info.json index b43197c8cf82..0e3160cfb72d 100644 --- a/keyboards/sweet16/info.json +++ b/keyboards/sweet16/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "Sweet 16", - "manufacturer": "1UP Keyboards", - "identifier": "", "url": "", "maintainer": "qmk", - "processor": "atmega32u4", "bootloader": "atmel-dfu", "width": 4, "height": 4, diff --git a/keyboards/tada68/info.json b/keyboards/tada68/info.json index ec222ec2c911..36d1c0236d4f 100644 --- a/keyboards/tada68/info.json +++ b/keyboards/tada68/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "Tada68", - "manufacturer": "", - "identifier": "", "url": "", "maintainer": "qmk", - "processor": "atmega32u4", "bootloader": "atmel-dfu", "width": 16, "height": 5, diff --git a/keyboards/tkc1800/info.json b/keyboards/tkc1800/info.json index e5ef201bc55a..33b50fbe3f2e 100644 --- a/keyboards/tkc1800/info.json +++ b/keyboards/tkc1800/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "TKC1800", - "manufacturer": "The Key Company", - "identifier": "", "url": "", "maintainer": "qmk", - "processor": "atmega32u4", "bootloader": "atmel-dfu", "width": 19.5, "height": 7, diff --git a/keyboards/tv44/info.json b/keyboards/tv44/info.json index 9065f2c2c208..52970ff0385d 100644 --- a/keyboards/tv44/info.json +++ b/keyboards/tv44/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "tv44", - "manufacturer": "The Van Keyboards", - "identifier": "", "url": "", "maintainer": "qmk", - "processor": "atmega32u4", "bootloader": "atmel-dfu", "width": 12.75, "height": 4, diff --git a/keyboards/v60_type_r/info.json b/keyboards/v60_type_r/info.json index cd88d6ae53a4..ab666fc7ce80 100644 --- a/keyboards/v60_type_r/info.json +++ b/keyboards/v60_type_r/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "V60 Type R", - "manufacturer": "KBParadise", - "identifier": "", "url": "", "maintainer": "qmk", - "processor": "atmega32u4", "bootloader": "atmel-dfu", "width": 15, "height": 5, diff --git a/keyboards/whitefox/info.json b/keyboards/whitefox/info.json index f8cbbfb2b181..44bdaef90646 100644 --- a/keyboards/whitefox/info.json +++ b/keyboards/whitefox/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "Whitefox", - "manufacturer": "Input Club", - "identifier": "", "url": "", "maintainer": "qmk", - "processor": "", "bootloader": "", "width": 16, "height": 5, diff --git a/keyboards/xd60/info.json b/keyboards/xd60/info.json index fa8bce4734ad..78fd30860a5b 100644 --- a/keyboards/xd60/info.json +++ b/keyboards/xd60/info.json @@ -1,10 +1,7 @@ { "keyboard_name": "XD60", - "manufacturer": "", - "identifier": "", "url": "", "maintainer": "qmk", - "processor": "atmega32u4", "bootloader": "atmel-dfu", "width": 15, "height": 5, @@ -13,4 +10,4 @@ "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"label":"Menu", "x":12, "y":4}, {"label":"Ctrl", "x":13, "y":4}, {"x":14, "y":4}] } } -} \ No newline at end of file +} From 3b525dcf9c4a4dba34ee3596c90de60691b67b27 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Sat, 7 Apr 2018 17:37:31 -0700 Subject: [PATCH 191/578] Remove obsolete info.json entries (#2712) --- docs/hardware_keyboard_guidelines.md | 9 --------- 1 file changed, 9 deletions(-) diff --git a/docs/hardware_keyboard_guidelines.md b/docs/hardware_keyboard_guidelines.md index 3ecf7ad1c068..27d29f5c72dd 100644 --- a/docs/hardware_keyboard_guidelines.md +++ b/docs/hardware_keyboard_guidelines.md @@ -45,17 +45,8 @@ The `info.json` file is a JSON formatted dictionary with the following keys avai * `keyboard_name` * A free-form text string describing the keyboard. * Example: `Clueboard 66%` -* `manufacturer` - * A free-form text string naming the manufacturer. - * Example: `Clueboard` -* `identifier` - * The Vendor, Product, and Revision ID's joined by a : - * Example: `c1ed:2370:0001` * `url` * A URL to the keyboard's product page, [QMK.fm/keyboards](https://qmk.fm/keyboards) page, or other page describing information about the keyboard. -* `processor` - * The MCU or CPU this keyboard uses. - * Example: `atmega32u4` or `stm32f303` * `bootloader` * What bootloader this keyboard uses. Available options: * `atmel-dfu` From 958521c3596452eef77e9ad69734ad955120b2b5 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Sat, 7 Apr 2018 22:49:16 -0700 Subject: [PATCH 192/578] Clean up some long-standing errors when populating the API (#2715) --- keyboards/chibios_test/chibios_test.h | 2 ++ .../chibios_test/stm32_f072_onekey/stm32_f072_onekey.h | 4 +++- .../chibios_test/stm32_f103_onekey/stm32_f103_onekey.h | 3 +++ keyboards/chibios_test/teensy_lc_onekey/teensy_lc_onekey.h | 3 +++ keyboards/ergodox_ez/info.json | 6 +++--- keyboards/planck/light/info.json | 2 +- 6 files changed, 15 insertions(+), 5 deletions(-) diff --git a/keyboards/chibios_test/chibios_test.h b/keyboards/chibios_test/chibios_test.h index 25b031771061..9fc996ff7554 100644 --- a/keyboards/chibios_test/chibios_test.h +++ b/keyboards/chibios_test/chibios_test.h @@ -3,4 +3,6 @@ #include "quantum.h" +#define LAYOUT(k00) {{ k00 }} + #endif /* KEYBOARDS_CHIBIOS_TEST_CHIBIOS_TEST_H_ */ diff --git a/keyboards/chibios_test/stm32_f072_onekey/stm32_f072_onekey.h b/keyboards/chibios_test/stm32_f072_onekey/stm32_f072_onekey.h index 0455ad342fa1..345bf3bede31 100644 --- a/keyboards/chibios_test/stm32_f072_onekey/stm32_f072_onekey.h +++ b/keyboards/chibios_test/stm32_f072_onekey/stm32_f072_onekey.h @@ -1,5 +1,7 @@ #ifndef STM32_F072_ONEKEY_H #define STM32_F072_ONEKEY_H #include "chibios_test.h" -#endif +#define LAYOUT(k00) {{ k00 }} + +#endif diff --git a/keyboards/chibios_test/stm32_f103_onekey/stm32_f103_onekey.h b/keyboards/chibios_test/stm32_f103_onekey/stm32_f103_onekey.h index 89a62b2bbe0f..b9ba65a9e99f 100644 --- a/keyboards/chibios_test/stm32_f103_onekey/stm32_f103_onekey.h +++ b/keyboards/chibios_test/stm32_f103_onekey/stm32_f103_onekey.h @@ -1,4 +1,7 @@ #ifndef STM32_F103_ONEKEY_H #define STM32_F103_ONEKEY_H #include "chibios_test.h" + +#define LAYOUT(k00) {{ k00 }} + #endif diff --git a/keyboards/chibios_test/teensy_lc_onekey/teensy_lc_onekey.h b/keyboards/chibios_test/teensy_lc_onekey/teensy_lc_onekey.h index ea1c84e2f5a6..e94c13b663c6 100644 --- a/keyboards/chibios_test/teensy_lc_onekey/teensy_lc_onekey.h +++ b/keyboards/chibios_test/teensy_lc_onekey/teensy_lc_onekey.h @@ -1,4 +1,7 @@ #ifndef TEENSY_LC_ONEKEY_H #define TEENSY_LC_ONEKEY_H #include "chibios_test.h" + +#define LAYOUT(k00) {{ k00 }} + #endif diff --git a/keyboards/ergodox_ez/info.json b/keyboards/ergodox_ez/info.json index 5bd4e80234d1..f79795bbc02e 100644 --- a/keyboards/ergodox_ez/info.json +++ b/keyboards/ergodox_ez/info.json @@ -8,13 +8,13 @@ "layouts": { "LAYOUT_ergodox": { "layout": [{"x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0, "w":1.5}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1, "h":1.5}, {"x":9.5, "y":1, "h":1.5}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1}, {"x":15.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2}, {"x":14.5, "y":2}, {"x":15.5, "y":2, "w":1.5}, {"x":6.5, "y":2.5, "h":1.5}, {"x":9.5, "y":2.5, "h":1.5}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.5, "y":3, "w":1.5}, {"x":0.5, "y":4}, {"x":1.5, "y":4}, {"x":2.5, "y":4}, {"x":3.5, "y":4}, {"x":4.5, "y":4}, {"x":11.5, "y":4}, {"x":12.5, "y":4}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}, {"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, {"x":5, "y":6, "h":2}, {"x":6, "y":6, "h":2}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6, "h":2}, {"x":11, "y":6, "h":2}, {"x":7, "y":7}, {"x":9, "y":7}] - } + }, "LAYOUT_ergodox_pretty": { "layout": [{"x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0, "w":1.5}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1, "h":1.5}, {"x":9.5, "y":1, "h":1.5}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1}, {"x":15.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2}, {"x":14.5, "y":2}, {"x":15.5, "y":2, "w":1.5}, {"x":6.5, "y":2.5, "h":1.5}, {"x":9.5, "y":2.5, "h":1.5}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.5, "y":3, "w":1.5}, {"x":0.5, "y":4}, {"x":1.5, "y":4}, {"x":2.5, "y":4}, {"x":3.5, "y":4}, {"x":4.5, "y":4}, {"x":11.5, "y":4}, {"x":12.5, "y":4}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}, {"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, {"x":5, "y":6, "h":2}, {"x":6, "y":6, "h":2}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6, "h":2}, {"x":11, "y":6, "h":2}, {"x":7, "y":7}, {"x":9, "y":7}] - } + }, "KEYMAP_80": { "layout": [{"x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0, "w":1.5}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1, "h":1.5}, {"x":9.5, "y":1, "h":1.5}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1}, {"x":15.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2}, {"x":14.5, "y":2}, {"x":15.5, "y":2, "w":1.5}, {"x":6.5, "y":2.5, "h":1.5}, {"x":9.5, "y":2.5, "h":1.5}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.5, "y":3, "w":1.5}, {"x":0.5, "y":4}, {"x":1.5, "y":4}, {"x":2.5, "y":4}, {"x":3.5, "y":4}, {"x":4.5, "y":4}, {"x":11.5, "y":4}, {"x":12.5, "y":4}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}, {"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, {"x":5, "y":6}, {"x":6, "y":6}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6}, {"x":11, "y":6}, {"x":5, "y":7}, {"x":6, "y":7}, {"x":7, "y":7}, {"x":9, "y":7}, {"x":10, "y":7}, {"x":11, "y":7}] - } + }, "KEYMAP_PRETTY_80": { "layout": [{"x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0, "w":1.5}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1, "h":1.5}, {"x":9.5, "y":1, "h":1.5}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1}, {"x":15.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2}, {"x":14.5, "y":2}, {"x":15.5, "y":2, "w":1.5}, {"x":6.5, "y":2.5, "h":1.5}, {"x":9.5, "y":2.5, "h":1.5}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.5, "y":3, "w":1.5}, {"x":0.5, "y":4}, {"x":1.5, "y":4}, {"x":2.5, "y":4}, {"x":3.5, "y":4}, {"x":4.5, "y":4}, {"x":11.5, "y":4}, {"x":12.5, "y":4}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}, {"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, {"x":5, "y":6}, {"x":6, "y":6}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6}, {"x":11, "y":6}, {"x":5, "y":7}, {"x":6, "y":7}, {"x":7, "y":7}, {"x":9, "y":7}, {"x":10, "y":7}, {"x":11, "y":7}] } diff --git a/keyboards/planck/light/info.json b/keyboards/planck/light/info.json index ecc40b8185e8..cf55cfbc99ae 100644 --- a/keyboards/planck/light/info.json +++ b/keyboards/planck/light/info.json @@ -1,5 +1,5 @@ { "keyboard_name": "Planck Light", "keyboard_folder": "planck/light", - "bootloader": "qmk-dfu", + "bootloader": "qmk-dfu" } From 1f778684276e90609c183045a72c96c3c12d452c Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Sat, 7 Apr 2018 23:32:14 -0700 Subject: [PATCH 193/578] More Configurator Warning Fixes (#2716) * mf68_ble did not have the correct .c and .h files * Fix JC65 KEYMAP to LAYOUT * Change KEYMAP to LAYOUT for s60_x * Convert KEYMAP to LAYOUT for lets_split boards * Convert KEYMAP to LAYOUT * more fixes to keymap for iris * convert KEYMAP to LAYOUT for levinson keyboard * change losinggeneration's KEYMAP to LAYOUT * convert KEYMAP to LAYOUT * convert KEYMAP to LAYOUT for nyquist * convert KEYMAP to LAYOUT * convert KEYMAP to LAYOUT for viterbi * convert KEYMAP to LAYOUT * convert KEYMAP and its subsidiries to the LAYOUT standard * convert KEYMAP and its subsidiries to the new LAYOUT standard --- keyboards/do60/do60.h | 2 +- keyboards/do60/keymaps/default/keymap.c | 6 +- keyboards/do60/keymaps/test/keymap.c | 6 +- keyboards/dz60/dz60.h | 10 ++-- keyboards/dz60/info.json | 22 +++---- .../dz60/keymaps/60_plus_arrows/keymap.c | 10 ++-- .../dz60/keymaps/Ansi_plus_fn_arrows/keymap.c | 32 +++++----- keyboards/dz60/keymaps/LEdiodes/keymap.c | 16 ++--- keyboards/dz60/keymaps/atlacat/keymap.c | 6 +- keyboards/dz60/keymaps/dbroqua/keymap.c | 6 +- keyboards/dz60/keymaps/default/keymap.c | 32 +++++----- keyboards/dz60/keymaps/f3d3/keymap.c | 20 +++---- keyboards/dz60/keymaps/iso_6u_space/keymap.c | 32 +++++----- keyboards/dz60/keymaps/iso_7u_space/keymap.c | 6 +- keyboards/dz60/keymaps/itsaferbie/keymap.c | 32 +++++----- keyboards/dz60/keymaps/model42/keymap.c | 10 ++-- keyboards/dz60/keymaps/n0velty/keymap.c | 8 +-- keyboards/dz60/keymaps/tailcall/keymap.c | 6 +- keyboards/e6v2/e6v2.h | 8 +-- keyboards/e6v2/info.json | 20 +++---- keyboards/e6v2/keymaps/amnesia0287/keymap.c | 16 ++--- keyboards/e6v2/keymaps/default/keymap.c | 4 +- keyboards/fourier/fourier.h | 4 +- keyboards/fourier/keymaps/default/keymap.c | 12 ++-- keyboards/fourier/rev1/rev1.h | 2 +- keyboards/iris/iris.h | 6 +- keyboards/iris/keymaps/default/keymap.c | 14 ++--- keyboards/iris/keymaps/hag/keymap.c | 46 +++++++-------- keyboards/iris/keymaps/hexwire/keymap.c | 12 ++-- keyboards/iris/keymaps/lewisridden/keymap.c | 8 +-- keyboards/iris/keymaps/rdhaene/keymap.c | 14 ++--- keyboards/iris/keymaps/swedish/keymap.c | 4 +- .../iris/keymaps/transmogrified/keymap.c | 18 +++--- keyboards/iris/keymaps/yanfali/keymap.c | 8 +-- keyboards/iris/rev1/rev1.h | 2 +- keyboards/iris/rev1_led/rev1_led.h | 2 +- keyboards/iris/rev2/rev2.h | 2 +- keyboards/jc65/v32a/keymaps/default/keymap.c | 2 +- keyboards/jc65/v32a/keymaps/naut/keymap.c | 10 ++-- keyboards/jc65/v32a/v32a.h | 4 +- keyboards/jc65/v32u4/info.json | 2 +- keyboards/jc65/v32u4/keymaps/coth/keymap.c | 6 +- .../v32u4/keymaps/dead_encryption/keymap.c | 4 +- keyboards/jc65/v32u4/keymaps/default/keymap.c | 2 +- keyboards/jc65/v32u4/keymaps/gam3cat/keymap.c | 14 ++--- .../jc65/v32u4/keymaps/jetpacktuxedo/keymap.c | 6 +- .../jc65/v32u4/keymaps/na7thana/keymap.c | 8 +-- keyboards/jc65/v32u4/keymaps/naut/keymap.c | 12 ++-- keyboards/jc65/v32u4/v32u4.h | 2 +- .../lets_split/keymaps/DE_simple/keymap.c | 8 +-- .../lets_split/keymaps/OLED_sample/keymap.c | 14 ++--- keyboards/lets_split/keymaps/adam/keymap.c | 6 +- .../lets_split/keymaps/cpeters1982/keymap.c | 8 +-- keyboards/lets_split/keymaps/default/keymap.c | 12 ++-- keyboards/lets_split/keymaps/dlaroe/keymap.c | 14 ++--- keyboards/lets_split/keymaps/fabian/keymap.c | 14 ++--- .../keymaps/heartrobotninja/keymap.c | 8 +-- keyboards/lets_split/keymaps/henxing/keymap.c | 6 +- keyboards/lets_split/keymaps/khord/keymap.c | 8 +-- keyboards/lets_split/keymaps/kris/keymap.c | 12 ++-- .../lets_split/keymaps/mbsurfer/keymap.c | 14 ++--- keyboards/lets_split/keymaps/mjt/keymap.c | 14 ++--- keyboards/lets_split/keymaps/piemod/keymap.c | 20 +++---- keyboards/lets_split/keymaps/pitty/keymap.c | 11 ++-- keyboards/lets_split/keymaps/poker/keymap.c | 16 ++--- keyboards/lets_split/keymaps/smt/keymap.c | 12 ++-- keyboards/lets_split/keymaps/waples/keymap.c | 12 ++-- keyboards/lets_split/keymaps/xk/keymap.c | 22 +++---- keyboards/lets_split/keymaps/xyverz/keymap.c | 12 ++-- keyboards/lets_split/lets_split.h | 6 +- keyboards/lets_split/rev1/rev1.h | 8 +-- keyboards/lets_split/rev2/rev2.h | 6 +- keyboards/lets_split/sockets/sockets.h | 6 +- .../levinson/keymaps/bakingpy2u/keymap.c | 18 +++--- keyboards/levinson/keymaps/default/keymap.c | 14 ++--- keyboards/levinson/levinson.h | 6 +- keyboards/levinson/rev1/rev1.h | 6 +- keyboards/levinson/rev2/rev2.h | 6 +- keyboards/mf68_ble/keymaps/default/keymap.c | 2 +- keyboards/mf68_ble/{mf68.c => mf68_ble.c} | 2 +- keyboards/mf68_ble/{mf68.h => mf68_ble.h} | 4 +- keyboards/minidox/keymaps/default/keymap.c | 10 ++-- keyboards/minidox/keymaps/haegin/keymap.c | 6 +- keyboards/minidox/keymaps/khitsule/keymap.c | 8 +-- .../minidox/keymaps/that_canadian/keymap.c | 10 ++-- keyboards/minidox/keymaps/tomb0y/keymap.c | 6 +- keyboards/minidox/rev1/rev1.h | 4 +- keyboards/nyquist/keymaps/333fred/keymap.c | 8 +-- keyboards/nyquist/keymaps/DivergeJM/keymap.c | 30 +++++----- .../nyquist/keymaps/danielhklein/keymap.c | 16 ++--- keyboards/nyquist/keymaps/default/keymap.c | 14 ++--- keyboards/nyquist/keymaps/hexwire/keymap.c | 14 ++--- keyboards/nyquist/keymaps/jojiichan/keymap.c | 50 ++++++++-------- keyboards/nyquist/keymaps/kim-kim/keymap.c | 6 +- keyboards/nyquist/keymaps/pitty/keymap.c | 10 ++-- keyboards/nyquist/nyquist.h | 4 +- keyboards/nyquist/rev1/rev1.h | 6 +- keyboards/s60_x/default/default.h | 6 +- keyboards/s60_x/keymaps/amnesia0287/keymap.c | 16 ++--- keyboards/s60_x/keymaps/ansi_qwertz/keymap.c | 16 ++--- keyboards/s60_x/keymaps/bluebear/keymap.c | 58 +++++++++---------- keyboards/s60_x/keymaps/custom/keymap.c | 2 +- keyboards/s60_x/keymaps/dbroqua/keymap.c | 30 +++++----- keyboards/s60_x/keymaps/default/keymap.c | 4 +- keyboards/s60_x/keymaps/default_rgb/keymap.c | 4 +- keyboards/s60_x/keymaps/hasu/keymap.c | 18 +++--- keyboards/s60_x/keymaps/hhkb/keymap.c | 4 +- keyboards/s60_x/keymaps/iso/keymap.c | 6 +- keyboards/s60_x/keymaps/iso_rgb/keymap.c | 6 +- keyboards/s60_x/keymaps/jpec/keymap.c | 6 +- keyboards/s60_x/keymaps/plain/keymap.c | 2 +- keyboards/s60_x/keymaps/poker/keymap.c | 20 +++---- keyboards/s60_x/keymaps/poker_bit/keymap.c | 12 ++-- keyboards/s60_x/keymaps/poker_set/keymap.c | 16 ++--- keyboards/s60_x/keymaps/spacefn/keymap.c | 4 +- keyboards/s60_x/rgb/rgb.h | 6 +- keyboards/viterbi/keymaps/default/keymap.c | 8 +-- keyboards/viterbi/keymaps/drashna/config.h | 2 +- keyboards/viterbi/keymaps/dwallace/keymap.c | 6 +- keyboards/viterbi/keymaps/fido/keymap.c | 8 +-- keyboards/viterbi/keymaps/hexwire/keymap.c | 26 ++++----- keyboards/viterbi/rev1/rev1.h | 4 +- keyboards/viterbi/viterbi.h | 4 +- .../losinggeneration-common.h | 2 +- 124 files changed, 680 insertions(+), 681 deletions(-) rename keyboards/mf68_ble/{mf68.c => mf68_ble.c} (86%) rename keyboards/mf68_ble/{mf68.h => mf68_ble.h} (98%) diff --git a/keyboards/do60/do60.h b/keyboards/do60/do60.h index 5ea7545434ef..a8e248f31dd6 100644 --- a/keyboards/do60/do60.h +++ b/keyboards/do60/do60.h @@ -24,7 +24,7 @@ inline void do60_bl_led_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); } /* Do60 Keymap Definition Macro */ -#define KEYMAP( \ +#define LAYOUT( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ diff --git a/keyboards/do60/keymaps/default/keymap.c b/keyboards/do60/keymaps/default/keymap.c index 4e7ad0689136..e27cf3e3ab2b 100644 --- a/keyboards/do60/keymaps/default/keymap.c +++ b/keyboards/do60/keymaps/default/keymap.c @@ -4,7 +4,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 0: Base Layer - [0] = KEYMAP( + [0] = LAYOUT( 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_GRV, KC_BSPC, \ 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_BSLS, \ KC_CAPS, 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, \ @@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_BSPC, KC_RGUI, F(0), KC_LEFT, KC_DOWN, KC_RIGHT), // 1: Function Layer - [1] = KEYMAP( + [1] = LAYOUT( RESET, 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_NO, KC_NO, \ KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \ KC_NO, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SMOD, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \ @@ -44,4 +44,4 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // Loop void matrix_scan_user(void) { // Empty -}; \ No newline at end of file +}; diff --git a/keyboards/do60/keymaps/test/keymap.c b/keyboards/do60/keymaps/test/keymap.c index 2bcfc1036513..2efabf1d21a0 100644 --- a/keyboards/do60/keymaps/test/keymap.c +++ b/keyboards/do60/keymaps/test/keymap.c @@ -4,7 +4,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 0: Base Layer - [0] = KEYMAP( + [0] = LAYOUT( 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_NO, KC_BSPC, \ 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_BSLS, \ KC_CAPS, 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, \ @@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_BSPC,KC_SPC, KC_DEL, KC_RGUI, F(0), KC_LEFT, KC_DOWN, KC_RIGHT), // 1: Function Layer - [1] = KEYMAP( + [1] = LAYOUT( RESET, 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_NO, KC_NO, \ KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \ KC_NO, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SMOD, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \ @@ -44,4 +44,4 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // Loop void matrix_scan_user(void) { // Empty -}; \ No newline at end of file +}; diff --git a/keyboards/dz60/dz60.h b/keyboards/dz60/dz60.h index ad0026846003..0ebf8d212e42 100644 --- a/keyboards/dz60/dz60.h +++ b/keyboards/dz60/dz60.h @@ -6,7 +6,7 @@ // Corresponding changes to the layout names and/or definitions must also be made to info.json // 标准配列 -#define KEYMAP( \ +#define LAYOUT( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ @@ -20,7 +20,7 @@ { K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \ } -#define KEYMAP_HHKB( \ +#define LAYOUT_hhkb( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ @@ -34,7 +34,7 @@ { KC_NO, K401, KC_NO, K403, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, KC_NO, K411, KC_NO, K413, KC_NO } \ } -#define KEYMAP_TRUE_HHKB( \ +#define LAYOUT_true_hhkb( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ @@ -48,7 +48,7 @@ { KC_NO, K401, KC_NO, K403, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, KC_NO, KC_NO, KC_NO } \ } -#define KEYMAP_2_SHIFTS( \ +#define LAYOUT_2_shifts( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ @@ -63,7 +63,7 @@ } // 带方向配列 -#define KEYMAP_DIRECTIONAL( \ +#define LAYOUT_directional( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ diff --git a/keyboards/dz60/info.json b/keyboards/dz60/info.json index 9f9631ade31a..08ba4a6b3067 100644 --- a/keyboards/dz60/info.json +++ b/keyboards/dz60/info.json @@ -1,28 +1,28 @@ { - "keyboard_name": "DZ60", - "url": "", - "maintainer": "qmk", - "bootloader": "atmel-dfu", - "width": 15, - "height": 5, + "keyboard_name": "DZ60", + "url": "", + "maintainer": "qmk", + "bootloader": "atmel-dfu", + "width": 15, + "height": 5, "layouts": { - "KEYMAP": { + "LAYOUT": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] }, - "KEYMAP_HHKB": { + "LAYOUT_hhkb": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Ctrl", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Alt", "x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":6}, {"x":10, "y":4, "w":1.5}, {"label":"Alt", "x":11.5, "y":4}] }, - "KEYMAP_TRUE_HHKB": { + "LAYOUT_true_hhkb": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Ctrl", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Alt", "x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":6}, {"x":10, "y":4, "w":1.5}, {"label":"Alt", "x":11.5, "y":4}] }, - "KEYMAP_2_SHIFTS": { + "LAYOUT_2_shifts": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] }, - "KEYMAP_DIRECTIONAL": { + "LAYOUT_directional": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] } } diff --git a/keyboards/dz60/keymaps/60_plus_arrows/keymap.c b/keyboards/dz60/keymaps/60_plus_arrows/keymap.c index 6b857e3f897f..5b550abfc1f1 100644 --- a/keyboards/dz60/keymaps/60_plus_arrows/keymap.c +++ b/keyboards/dz60/keymaps/60_plus_arrows/keymap.c @@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------------' */ - KEYMAP_2_SHIFTS( + LAYOUT_2_shifts( KC_GRV, 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_BSPC, 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_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -42,12 +42,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------------' */ - KEYMAP_DIRECTIONAL( + LAYOUT_directional( KC_ESC, BL_TOGG, BL_STEP, BL_DEC, BL_INC, ______, ______, RESET, ______, ______, ______, ______, ______, ______, ______, ______, RGB_MOD, ______, ______, ______, ______, ______, ______, ______, ______, ______, RGB_VAI, RGB_VAD, RGB_TOG, - ______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, ______, ______, ______, ______, ______, ______, ______, + ______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_RCTL, ______, - ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______ + ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______ ), }; @@ -83,4 +83,4 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } break; } -} \ No newline at end of file +} diff --git a/keyboards/dz60/keymaps/Ansi_plus_fn_arrows/keymap.c b/keyboards/dz60/keymaps/Ansi_plus_fn_arrows/keymap.c index c00d55001327..c6e83e8659c1 100644 --- a/keyboards/dz60/keymaps/Ansi_plus_fn_arrows/keymap.c +++ b/keyboards/dz60/keymaps/Ansi_plus_fn_arrows/keymap.c @@ -4,25 +4,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - KEYMAP( - F(0), 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_NO, KC_BSPC, - 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_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, + LAYOUT( + F(0), 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_NO, KC_BSPC, + 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_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(1), KC_RALT, KC_RALT, KC_LGUI, KC_RCTL), - KEYMAP( - KC_GRV, 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_TRNS, KC_DEL, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, + LAYOUT( + KC_GRV, 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_TRNS, KC_DEL, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_LEFT, KC_DOWN, KC_RIGHT), - KEYMAP( - KC_TRNS, M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), M(12), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + LAYOUT( + KC_TRNS, M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), M(12), KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; @@ -58,4 +58,4 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } break; } -} \ No newline at end of file +} diff --git a/keyboards/dz60/keymaps/LEdiodes/keymap.c b/keyboards/dz60/keymaps/LEdiodes/keymap.c index 4405b20d3edb..d7b1f226af0b 100644 --- a/keyboards/dz60/keymaps/LEdiodes/keymap.c +++ b/keyboards/dz60/keymaps/LEdiodes/keymap.c @@ -19,14 +19,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * template - * [_L1] = KEYMAP( + * [_L1] = LAYOUT( * _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ * _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ * _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ * _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ * _______,_______,_______, _______,_______,_______, _______,_______,_______,_______,_______, - * - * + * + * *\ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | Win | Alt | _L3[Space] |LEdiodes| Space |Win | _L2| L | D | R | * `-----------------------------------------------------------------------------------------' */ -[_L0] = KEYMAP( +[_L0] = LAYOUT( KC_GESC, LT(_L1, KC_1),LT(_L1, KC_2),LT(_L1, KC_3),LT(_L1, KC_4),LT(_L1, KC_5),LT(_L1, KC_6),LT(_L1, KC_7),LT(_L1, KC_8),LT(_L1, KC_9),LT(_L1, KC_0),LT(_L1, KC_MINS),LT(_L1, KC_EQL),KC_BSPC, KC_DEL, \ 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_BSLS, \ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ @@ -71,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | Home| PgDn| End | * `-----------------------------------------------------------------------------------------' */ -[_L1] = KEYMAP( +[_L1] = LAYOUT( RESET, 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_F13, KC_F14, \ _______, KC_WH_U, KC_UP, KC_WH_D, _______, _______,_______, _______, _______, _______, KC_PSCR, _______, _______, _______, \ _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_HOME, _______, _______, _______, KC_HOME, _______, _______, \ @@ -94,7 +94,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------------' */ -[_L2] = KEYMAP( +[_L2] = LAYOUT( _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,LCA(KC_TAB), \ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, MEH(KC_TAB), \ _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ @@ -136,7 +136,7 @@ qk_tap_dance_action_t tap_dance_actions[] = { [TD_KC_LSFT_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), //Tap once for Right Shift, twice for Caps Lock [TD_KC_RSFT_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_RSFT, KC_CAPS) - + // Other declarations would go here, separated by commas, if you have them - + }; diff --git a/keyboards/dz60/keymaps/atlacat/keymap.c b/keyboards/dz60/keymaps/atlacat/keymap.c index 4c6594181cbf..c0adbc5120aa 100644 --- a/keyboards/dz60/keymaps/atlacat/keymap.c +++ b/keyboards/dz60/keymaps/atlacat/keymap.c @@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctrl|Gui |Alt | Space |Alt |Gui |MO |Ctrl | * `-----------------------------------------------------------' */ - KEYMAP( + LAYOUT( KC_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , XXXXXXX, KC_BSPC, 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_BSLS, LT(MO(1), KC_CAPS),KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , @@ -48,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------' */ - KEYMAP( + LAYOUT( KC_GRV , 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_DEL , _______, _______, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUSE,_______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, KC_INS , KC_HOME, KC_PGUP, _______, _______, @@ -69,7 +69,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------' */ - KEYMAP( + LAYOUT( KC_GRV , 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_SLEP, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET , _______, RGB_STA, RGB_BRE, RGB_RAI, RGB_SWI, RGB_SNA, RGB_KNI, RGB_GRA, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, diff --git a/keyboards/dz60/keymaps/dbroqua/keymap.c b/keyboards/dz60/keymaps/dbroqua/keymap.c index d4b25b6c4e8a..55ba87297eed 100644 --- a/keyboards/dz60/keymaps/dbroqua/keymap.c +++ b/keyboards/dz60/keymaps/dbroqua/keymap.c @@ -21,7 +21,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |LGUI | LAlt | Space | RAlt |RGUI | * `-----------------------------------------------------------------' */ - [_DEFAULT] = KEYMAP_TRUE_HHKB( /* Basic QWERTY */ + [_DEFAULT] = LAYOUT_true_hhkb( /* Basic QWERTY */ 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, KC_GRV, \ 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, \ 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_ENT, \ @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | Stop | | * `-----------------------------------------------------------------' */ - [_FN] = KEYMAP_TRUE_HHKB( /* Layer 1 */ + [_FN] = LAYOUT_true_hhkb( /* Layer 1 */ TG(_SFX),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, \ KC_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, ______, \ ______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT,______, \ @@ -64,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | * `-----------------------------------------------------------------' */ - [_SFX] = KEYMAP_HHKB( + [_SFX] = LAYOUT_hhkb( ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ ______, BL_TOGG,BL_STEP,BL_DEC, BL_INC, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ ______, RGB_TOG,RGB_MOD,______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ diff --git a/keyboards/dz60/keymaps/default/keymap.c b/keyboards/dz60/keymaps/default/keymap.c index 81bce53da226..ed91cc37739e 100644 --- a/keyboards/dz60/keymaps/default/keymap.c +++ b/keyboards/dz60/keymaps/default/keymap.c @@ -4,25 +4,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - KEYMAP( - F(0), 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_NO, KC_BSPC, - 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_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, + LAYOUT( + F(0), 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_NO, KC_BSPC, + 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_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(2), KC_NO, MO(1), KC_RCTL), - KEYMAP( - KC_GRV, 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_TRNS, KC_DEL, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + LAYOUT( + KC_GRV, 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_TRNS, KC_DEL, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( - KC_TRNS, M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), M(12), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + LAYOUT( + KC_TRNS, M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), M(12), KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; @@ -58,4 +58,4 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } break; } -} \ No newline at end of file +} diff --git a/keyboards/dz60/keymaps/f3d3/keymap.c b/keyboards/dz60/keymaps/f3d3/keymap.c index aefa2703c7ff..b98a8ce9bf62 100644 --- a/keyboards/dz60/keymaps/f3d3/keymap.c +++ b/keyboards/dz60/keymaps/f3d3/keymap.c @@ -18,10 +18,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------------' */ - KEYMAP_2_SHIFTS( - 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_GRV, KC_BSPC, - 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_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + LAYOUT_2_shifts( + 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_GRV, KC_BSPC, + 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_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_TRNS, KC_RSFT, KC_UP, KC_SLSH, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_MPLY, KC_PSCR, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), @@ -39,13 +39,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-----------------------------------------------------------------------------------------+ * | | | | | | Stop | | |Prev |Vol- |Next | * `-----------------------------------------------------------------------------------------' -*/ +*/ - KEYMAP_2_SHIFTS( - 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_TRNS, KC_DEL, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + LAYOUT_2_shifts( + 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_TRNS, KC_DEL, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), }; @@ -82,4 +82,4 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } break; } -} \ No newline at end of file +} diff --git a/keyboards/dz60/keymaps/iso_6u_space/keymap.c b/keyboards/dz60/keymaps/iso_6u_space/keymap.c index 62108cba21fb..7b4f94be0fd3 100644 --- a/keyboards/dz60/keymaps/iso_6u_space/keymap.c +++ b/keyboards/dz60/keymaps/iso_6u_space/keymap.c @@ -16,26 +16,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | LCtrl | LGUI | LAlt | Space | RAlt | RGUI | Layer_2 | RCtrl | * `-----------------------------------------------------------------------------------------' */ - KEYMAP( - 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_NO, KC_BSPC, - 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_BSLS, - MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, + LAYOUT( + 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_NO, KC_BSPC, + 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_BSLS, + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT,KC_RGUI, KC_NO, MO(2), KC_RCTL), - KEYMAP( - KC_GRV, 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_NO, KC_DEL, - KC_NO, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_LSFT, KC_NO, KC_NO, KC_NO, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + LAYOUT( + KC_GRV, 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_NO, KC_DEL, + KC_NO, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_LSFT, KC_NO, KC_NO, KC_NO, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL, KC_LGUI, KC_LGUI, KC_NO, KC_NO, KC_NO, KC_RALT, KC_RGUI, KC_NO, KC_NO, KC_RCTL), - KEYMAP( - KC_GRV, KC_MPRV, KC_MPLY, KC_MNXT, M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), M(12), KC_NO, KC_DEL, - KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + LAYOUT( + KC_GRV, KC_MPRV, KC_MPLY, KC_MNXT, M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), M(12), KC_NO, KC_DEL, + KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), }; @@ -71,4 +71,4 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } break; } -} \ No newline at end of file +} diff --git a/keyboards/dz60/keymaps/iso_7u_space/keymap.c b/keyboards/dz60/keymaps/iso_7u_space/keymap.c index 71c5c60d0335..f5e9d6a9bdeb 100644 --- a/keyboards/dz60/keymaps/iso_7u_space/keymap.c +++ b/keyboards/dz60/keymaps/iso_7u_space/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------------' */ - KEYMAP( + LAYOUT( 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_NO, KC_BSPC, 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_BSLS, MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -26,14 +26,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_NO, KC_RALT, KC_NO, MO(2), KC_RCTL), - KEYMAP( + LAYOUT( KC_GRV, 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_NO, KC_DEL, KC_NO, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_NO, KC_NO, KC_NO, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGDOWN, KC_LGUI, KC_LGUI, KC_NO, KC_NO, KC_NO, KC_RALT, KC_RGUI, KC_NO, KC_NO, KC_RCTL), - KEYMAP( + LAYOUT( KC_GRV, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, diff --git a/keyboards/dz60/keymaps/itsaferbie/keymap.c b/keyboards/dz60/keymaps/itsaferbie/keymap.c index c9b63c5afca6..4d848c421d1a 100644 --- a/keyboards/dz60/keymaps/itsaferbie/keymap.c +++ b/keyboards/dz60/keymaps/itsaferbie/keymap.c @@ -10,25 +10,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_DEFAULT] = KEYMAP_HHKB( - 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, KC_GRV, - 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, - 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_ENT, - KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), + [_DEFAULT] = LAYOUT_hhkb( + 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, KC_GRV, + 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, + 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_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_LIGHTS)), - [_FN] = KEYMAP_HHKB( - ______, 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, - KC_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, RESET, - ______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, ______, - ______, ______, KC_MPRV, KC_MPLY, KC_MNXT, ______, ______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, ______, ______, + [_FN] = LAYOUT_hhkb( + ______, 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, + KC_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, RESET, + ______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, ______, + ______, ______, KC_MPRV, KC_MPLY, KC_MNXT, ______, ______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, ______, ______, ______, ______, ______, ______, ______), - [_LIGHTS] = KEYMAP_HHKB( - RGB_TOG, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, ______, ______, ______, ______, ______, ______, - RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, - ______, RGB_HUD, RGB_SAD, RGB_VAD, ______, ______, ______, ______, ______, ______, ______, ______, ______, - ______, ______, ______, ______, BL_DEC, BL_TOGG, BL_INC, ______, ______, ______, ______, ______, ______, ______, + [_LIGHTS] = LAYOUT_hhkb( + RGB_TOG, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, ______, ______, ______, ______, ______, ______, + RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, + ______, RGB_HUD, RGB_SAD, RGB_VAD, ______, ______, ______, ______, ______, ______, ______, ______, ______, + ______, ______, ______, ______, BL_DEC, BL_TOGG, BL_INC, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______), }; @@ -40,4 +40,4 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { } return MACRO_NONE; -} \ No newline at end of file +} diff --git a/keyboards/dz60/keymaps/model42/keymap.c b/keyboards/dz60/keymaps/model42/keymap.c index b87141bee9e2..93096e5b09d1 100644 --- a/keyboards/dz60/keymaps/model42/keymap.c +++ b/keyboards/dz60/keymaps/model42/keymap.c @@ -8,35 +8,35 @@ enum dz60_keycodes { const uint16_t PROGMEM keymaps[][5][15] = { // layer 0 -KEYMAP_DIRECTIONAL(KC_GRV, 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_PGUP, KC_PGDN, +LAYOUT_directional(KC_GRV, 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_PGUP, KC_PGDN, 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_BSLS, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, LT(3, KC_Z), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, MT(MOD_RSFT, KC_SLSH), KC_UP, KC_SLSH, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, LT(4, KC_SPC), KC_BSPC, MO(2), LT_1_OR_RELOAD_CHROME, KC_LEFT, KC_DOWN, KC_RGHT), // layer 1 -KEYMAP_DIRECTIONAL(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +LAYOUT_directional(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), // layer 2 -KEYMAP_DIRECTIONAL(KC_TRNS, 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_HOME, KC_END, +LAYOUT_directional(KC_TRNS, 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_HOME, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), // layer 3 -KEYMAP_DIRECTIONAL(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +LAYOUT_directional(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), // layer 4 -KEYMAP_DIRECTIONAL(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +LAYOUT_directional(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/dz60/keymaps/n0velty/keymap.c b/keyboards/dz60/keymaps/n0velty/keymap.c index 044075f59758..7ac7ee61b63b 100644 --- a/keyboards/dz60/keymaps/n0velty/keymap.c +++ b/keyboards/dz60/keymaps/n0velty/keymap.c @@ -19,21 +19,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_DL] = KEYMAP_TRUE_HHKB( //default Layer +[_DL] = LAYOUT_true_hhkb( //default Layer KC_GESC, 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, KC_DEL, \ 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, \ 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_ENT, \ KC_LSPO, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, MO(_F1), \ MO(_F1), KC_LALT, KC_SPC, MO(_F2), KC_RGUI), -[_F1] = KEYMAP_TRUE_HHKB( //function Layer 1 +[_F1] = LAYOUT_true_hhkb( //function Layer 1 KC_NOPE, 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_GRV, \ KC_BSPC, KC_HOME, KC_UP, KC_END, _______, _______, _______, _______, _______, KC_PAUS, KC_PSCR, KC_UP, KC_HOME, KC_END, \ KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLU, _______, _______, _______, _______, KC_PGUP, KC_LEFT, KC_RGHT, _______, \ _______, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, _______, _______, _______, _______, KC_PGDN, KC_DOWN, _______, _______, \ _______, KC_MSEL, KC_MUTE, _______, _______), -[_F2] = KEYMAP_TRUE_HHKB( //function Layer 2 +[_F2] = LAYOUT_true_hhkb( //function Layer 2 RESET, RGB_STA, RGB_BRE, RGB_RAI, RGB_SWI, RGB_SNA, RGB_KNI, RGB_GRA, _______, _______, _______, _______, _______, KC_SLEP, KC_PWR, \ RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, KC_ACL2, KC_BTN1, KC_MS_U, KC_BTN2, _______, \ RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, KC_ACL1, KC_MS_L, KC_MS_R, _______, \ @@ -50,4 +50,4 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { } } return MACRO_NONE; -}; \ No newline at end of file +}; diff --git a/keyboards/dz60/keymaps/tailcall/keymap.c b/keyboards/dz60/keymaps/tailcall/keymap.c index 2f906ff531f9..3c9dbc581441 100644 --- a/keyboards/dz60/keymaps/tailcall/keymap.c +++ b/keyboards/dz60/keymaps/tailcall/keymap.c @@ -5,21 +5,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - KEYMAP( + LAYOUT( KC_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , XXXXXXX, KC_BSPC, 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_BSLS, 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_ENT , KC_LSFT, XXXXXXX, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, XXXXXXX, MO(1) , KC_LGUI, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RGUI, XXXXXXX, MO(2) , KC_RCTL), - KEYMAP( + LAYOUT( KC_GRV , 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_DEL , _______, KC_HOME, KC_UP , KC_END , KC_PGUP, KC_INS , KC_PSCR, KC_SLCK, RGB_VAD, _______, _______, _______, _______, _______, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_DEL , _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - KEYMAP( + LAYOUT( KC_GRV , 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_SLEP, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/e6v2/e6v2.h b/keyboards/e6v2/e6v2.h index b5726eaa34bb..954d800b0a15 100644 --- a/keyboards/e6v2/e6v2.h +++ b/keyboards/e6v2/e6v2.h @@ -3,7 +3,7 @@ #include "quantum.h" -#define KEYMAP( \ +#define LAYOUT( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ @@ -18,7 +18,7 @@ { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, KC_NO }, \ } -#define KEYMAP_ANSI( \ +#define LAYOUT_ansi( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ @@ -33,7 +33,7 @@ { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, KC_NO }, \ } -#define KEYMAP_HHKB( \ +#define LAYOUT_hhkb( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ @@ -48,7 +48,7 @@ { KC_NO, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, KC_NO, K4B, K4C, KC_NO, KC_NO }, \ } -#define KEYMAP_HHKB_SPLITS( \ +#define LAYOUT_hhkb_splits( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ diff --git a/keyboards/e6v2/info.json b/keyboards/e6v2/info.json index fc5e6764629f..e6bb6b6d8ca6 100644 --- a/keyboards/e6v2/info.json +++ b/keyboards/e6v2/info.json @@ -1,24 +1,24 @@ { - "keyboard_name": "E6-V2", - "url": "", - "maintainer": "qmk", - "bootloader": "atmel-dfu", - "width": 15, - "height": 5, + "keyboard_name": "E6-V2", + "url": "", + "maintainer": "qmk", + "bootloader": "atmel-dfu", + "width": 15, + "height": 5, "layouts": { - "KEYMAP": { + "LAYOUT": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] }, - "KEYMAP_ANSI": { + "LAYOUT_ansi": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] }, - "KEYMAP_HHKB": { + "LAYOUT_hhkb": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}] }, - "KEYMAP_HHKB_SPLITS": { + "LAYOUT_hhkb_splits": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}] } } diff --git a/keyboards/e6v2/keymaps/amnesia0287/keymap.c b/keyboards/e6v2/keymaps/amnesia0287/keymap.c index eaa31f3f714c..33fb6cda0a69 100644 --- a/keyboards/e6v2/keymaps/amnesia0287/keymap.c +++ b/keyboards/e6v2/keymaps/amnesia0287/keymap.c @@ -7,7 +7,7 @@ #define _BL 0 #define _HLa 1 #define _HLb 2 -#define _HL 3 +#define _HL 3 #define _XL 4 enum hype_keycodes { @@ -16,28 +16,28 @@ enum hype_keycodes { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BL] = KEYMAP_HHKB( + [_BL] = LAYOUT_hhkb( 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_BSPC, 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_BSLS, 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_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, FN_HLb, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, FN_HLa ), - [_HLa] = KEYMAP_HHKB( + [_HLa] = LAYOUT_hhkb( KC_GRV, 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_DEL, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS ), - [_HLb] = KEYMAP_HHKB( + [_HLb] = LAYOUT_hhkb( KC_GRV, 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_DEL, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS ), - [_HL] = KEYMAP_HHKB( + [_HL] = LAYOUT_hhkb( RGB_TOG, RGB_M_P, RGB_RMOD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, BL_BRTG, BL_OFF, BL_STEP, BL_ON, BL_DEC, BL_INC, LALT(KC_F4), RESET, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -76,4 +76,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; } return true; -} \ No newline at end of file +} diff --git a/keyboards/e6v2/keymaps/default/keymap.c b/keyboards/e6v2/keymaps/default/keymap.c index ae63df8c0025..4349793a34a5 100644 --- a/keyboards/e6v2/keymaps/default/keymap.c +++ b/keyboards/e6v2/keymaps/default/keymap.c @@ -1,14 +1,14 @@ #include "e6v2.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP_ANSI( + [0] = LAYOUT_ansi( 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_BSPC, 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_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, MO(1), KC_MENU, KC_RCTL ), - [1] = KEYMAP_ANSI( + [1] = LAYOUT_ansi( KC_GRV, 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_DEL, RESET, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, diff --git a/keyboards/fourier/fourier.h b/keyboards/fourier/fourier.h index dbe1fd7219fa..4e9797b35b92 100644 --- a/keyboards/fourier/fourier.h +++ b/keyboards/fourier/fourier.h @@ -8,13 +8,13 @@ #endif // Used to create a keymap using only KC_ prefixed keys -#define KC_KEYMAP( \ +#define LAYOUT_kc( \ LA1, LA2, LA3, LA4, LA5, LA6, RA1, RA2, RA3, RA4, RA5, RA6, RA7, \ LB1, LB2, LB3, LB4, LB5, LB6, RB1, RB2, RB3, RB4, RB5, RB7, \ LC1, LC2, LC3, LC4, LC5, LC6, RC1, RC3, RC4, RC5, RC6, RC7, \ LD1, LD2, LD3, LD4, LD5, RD1, RD4, RD5, RD6, RD7 \ ) \ - KEYMAP( \ + LAYOUT( \ KC_##LA1, KC_##LA2, KC_##LA3, KC_##LA4, KC_##LA5, KC_##LA6, KC_##RA1, KC_##RA2, KC_##RA3, KC_##RA4, KC_##RA5, KC_##RA6, KC_##RA7, \ KC_##LB1, KC_##LB2, KC_##LB3, KC_##LB4, KC_##LB5, KC_##LB6, KC_##RB1, KC_##RB2, KC_##RB3, KC_##RB4, KC_##RB5, KC_##RB7, \ KC_##LC1, KC_##LC2, KC_##LC3, KC_##LC4, KC_##LC5, KC_##LC6, KC_##RC1, KC_##RC3, KC_##RC4, KC_##RC5, KC_##RC6, KC_##RC7, \ diff --git a/keyboards/fourier/keymaps/default/keymap.c b/keyboards/fourier/keymaps/default/keymap.c index 90677b4a2ed0..d8b11b11103a 100644 --- a/keyboards/fourier/keymaps/default/keymap.c +++ b/keyboards/fourier/keymaps/default/keymap.c @@ -37,7 +37,7 @@ enum custom_keycodes { #define KC_RVAD RGB_VAD const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = KC_KEYMAP( + [_BASE] = LAYOUT_kc( //,----+----+----+----+----+----|----+----+----+----+----+----+----. ESC , Q , W , E , R , T , Y , U , I , O , P ,DEL ,BSPC, //|----`----`----`----`----`----|----`----`----`----`----`----`----| @@ -45,11 +45,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|-----`----`----`----`----`----|----`----`----`----`----`--------| LSFT , Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, RSFT , //|-------`----`----`----`----`----|----`----`----`----`----`------| - LCTL ,LALT,LGUI ,FN1 , SPFN1 , BSFN2 ,RGUI ,RALT , FN2 , RCTL + LCTL ,LALT,LGUI ,FN1 , SPFN1 , BSFN2 ,RGUI ,RALT , FN2 , RCTL //`-----+----+-----+----+--------|--------+-----+-----+-----+------' ), - [_FN1] = KC_KEYMAP( + [_FN1] = LAYOUT_kc( //,----+----+----+----+----+----|----+----+----+----+----+----+----. GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL , //|----`----`----`----`----`----|----`----`----`----`----`----`----| @@ -57,11 +57,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|-----`----`----`----`----`----|----`----`----`----`----`--------| RMOD ,RHUD,RSAD,RVAD,VOLD,LCBR,RCBR, 1 , 2 , 3 , UP , , //|-------`----`----`----`----`----|----`----`----`----`----`------| - RTOG , , , , , DEL , 0 ,LEFT ,DOWN , RGHT + RTOG , , , , , DEL , 0 ,LEFT ,DOWN , RGHT //`-----+----+-----+----+--------|--------+-----+-----+-----+------' ), - [_FN2] = KC_KEYMAP( + [_FN2] = LAYOUT_kc( //,----+----+----+----+----+----|----+----+----+----+----+----+----. TILD,EXLM, AT ,HASH,DLR ,PERC,CIRC,AMPR,ASTR,LPRN,RPRN,UNDS,PLUS, //|----`----`----`----`----`----|----`----`----`----`----`----`----| @@ -69,7 +69,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|-----`----`----`----`----`----|----`----`----`----`----`--------| , , ,DEL ,PGDN,END , , , , , , , //|-------`----`----`----`----`----|----`----`----`----`----`------| - , , , , DEL , , , , , + , , , , DEL , , , , , //`-----+----+-----+----+--------|--------+-----+-----+-----+------' ) diff --git a/keyboards/fourier/rev1/rev1.h b/keyboards/fourier/rev1/rev1.h index c29c0ebabb41..9ef9b92330bf 100644 --- a/keyboards/fourier/rev1/rev1.h +++ b/keyboards/fourier/rev1/rev1.h @@ -14,7 +14,7 @@ #endif #endif -#define KEYMAP( \ +#define LAYOUT( \ LA1, LA2, LA3, LA4, LA5, LA6, RA1, RA2, RA3, RA4, RA5, RA6, RA7, \ LB1, LB2, LB3, LB4, LB5, LB6, RB1, RB2, RB3, RB4, RB5, RB7, \ LC1, LC2, LC3, LC4, LC5, LC6, RC1, RC3, RC4, RC5, RC6, RC7, \ diff --git a/keyboards/iris/iris.h b/keyboards/iris/iris.h index a0df746fb56b..56ba15473b2d 100644 --- a/keyboards/iris/iris.h +++ b/keyboards/iris/iris.h @@ -12,14 +12,14 @@ #include "quantum.h" // Used to create a keymap using only KC_ prefixed keys -#define KC_KEYMAP( \ +#define LAYOUT_kc( \ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ L30, L31, L32, L33, L34, L35, LT4, RT4, R30, R31, R32, R33, R34, R35, \ LT1, LT2, LT3, RT3, RT2, RT1 \ ) \ - KEYMAP( \ + LAYOUT( \ KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \ KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \ KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \ @@ -27,4 +27,4 @@ KC_##LT1, KC_##LT2, KC_##LT3, KC_##RT3, KC_##RT2, KC_##RT1 \ ) -#endif \ No newline at end of file +#endif diff --git a/keyboards/iris/keymaps/default/keymap.c b/keyboards/iris/keymaps/default/keymap.c index d71748b34885..9367c163e400 100644 --- a/keyboards/iris/keymaps/default/keymap.c +++ b/keyboards/iris/keymaps/default/keymap.c @@ -35,7 +35,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = KC_KEYMAP( + [_QWERTY] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `----+----+----' `----+----+----' ), - [_LOWER] = KC_KEYMAP( + [_LOWER] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,BSPC, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -59,11 +59,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| BL_S, , , ,DOWN,LCBR,LPRN, RPRN,RCBR, P1 , P2 , P3 ,MINS, , //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' - , ,DEL , DEL , , P0 + , ,DEL , DEL , , P0 // `----+----+----' `----+----+----' ), - [_RAISE] = KC_KEYMAP( + [_RAISE] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -73,11 +73,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| MUTE,MSTP,MPLY,VOLD,PGDN,MINS, , ,PLUS,END , , , , , //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' - , , , , , + , , , , , // `----+----+----' `----+----+----' ), - [_ADJUST] = KC_KEYMAP( + [_ADJUST] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. , , , , , , , , , , , , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -87,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| BL_S,RST , , , , , , , , , , , , , //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' - , , , , , + , , , , , // `----+----+----' `----+----+----' ) diff --git a/keyboards/iris/keymaps/hag/keymap.c b/keyboards/iris/keymaps/hag/keymap.c index 3aac1394ea37..a708b56022f3 100644 --- a/keyboards/iris/keymaps/hag/keymap.c +++ b/keyboards/iris/keymaps/hag/keymap.c @@ -5,12 +5,12 @@ extern keymap_config_t keymap_config; -//Heavily modified keymap. Some features: -//Multiple layouts, I use dvorak as main. +//Heavily modified keymap. Some features: +//Multiple layouts, I use dvorak as main. //Nordic(swedish) signs //Symbols, numpad, arrows/navigation reachable under the alpas via the layers //Mirrored ctl, alt and shift to be able to use both hands when doing commands -//Gaming layer, qwerty with space on left half. +//Gaming layer, qwerty with space on left half. #define _QWERTY 2 #define _DVORAK 0 @@ -44,19 +44,19 @@ enum custom_keycodes { #define KC_Sw4 RALT(KC_4) // Nordic something #define KC_Sw5 RALT(KC_5) // Nordic something #define KC_Sw6 RALT(KC_6) // ... -#define KC_Sw7 RALT(KC_7) -#define KC_Sw8 RALT(KC_8) -#define KC_Sw9 RALT(KC_9) -#define KC_Sw0 RALT(KC_0) -#define KC_Tild RALT(KC_RBRC) +#define KC_Sw7 RALT(KC_7) +#define KC_Sw8 RALT(KC_8) +#define KC_Sw9 RALT(KC_9) +#define KC_Sw0 RALT(KC_0) +#define KC_Tild RALT(KC_RBRC) #define KC_Bsls RALT(KC_MINS) #define KC_Bar RALT(KC_NUBS) -#define KC_Less S(KC_NUBS) +#define KC_Less S(KC_NUBS) #define KC_CATDEL LCTL(LALT(KC_DEL)) // Ctrl alt del #define KC_TSKMGR LCTL(S(KC_ESC)) // Ctrl shift esc -#define KC_NUMP TG(_NUMPAD) // Toggle layer NUMPAD for use in KC_keymaps +#define KC_NUMP TG(_NUMPAD) // Toggle layer NUMPAD for use in LAYOUT_kc #define KC_Close RALT(KC_F4) // Alt F4 -#define KC_Great S(KC_NUBS) +#define KC_Great S(KC_NUBS) #define KC_MEH1 MEH(KC_1) #define KC_MEH2 MEH(KC_2) #define KC_MEH3 MEH(KC_3) @@ -70,7 +70,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = KC_KEYMAP( + [_QWERTY] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. DEL ,APP, VOLD,MUTE,VOLU,LGUI, RGUI,MPRV,MPLY,MNXT,DOWN,ESC , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -84,7 +84,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `----+----+----' `----+----+----' ), - [_GAMING] = KC_KEYMAP( + [_GAMING] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,ESC , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -98,7 +98,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `----+----+----' `----+----+----' ), - [_DVORAK] = KC_KEYMAP( + [_DVORAK] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. DEL ,APP ,VOLD,MUTE,VOLU,LGUI, RGUI,MPRV,MPLY,MNXT,DOWN,ESC , //,----+----+----+----+----+----. ,----+----+----+----+----+----. @@ -112,7 +112,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `----+----+----' `----+----+----' ), - [_COLEMAK] = KC_KEYMAP( + [_COLEMAK] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. DEL ,APP, VOLD,MUTE,VOLU,LGUI, RGUI,MPRV,MPLY,MNXT,DOWN,ESC , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -126,7 +126,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `----+----+----' `----+----+----' ), -[_WORKMAN] = KC_KEYMAP( +[_WORKMAN] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. DEL ,APP, VOLD,MUTE,VOLU,LGUI, RGUI,MPRV,MPLY,MNXT,DOWN,ESC , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -138,9 +138,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' LALT,LOWR,BSPC, SPC ,RASE,LALT // `----+----+----' `----+----+----' - ), + ), - [_NUMPAD] = KC_KEYMAP( + [_NUMPAD] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,F12 , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -155,7 +155,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), - [_LOWER] = KC_KEYMAP( + [_LOWER] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,F12 , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -165,11 +165,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| , ENT, , , , DEL, , ,RABK,NUBS,Sw7 ,Sw0 ,Great, , //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' - , , , , , + , , , , , // `----+----+----' `----+----+----' ), - [_RAISE] = KC_KEYMAP( + [_RAISE] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. TILD,EXLM,GRV ,EQL, DLR ,PERC, Sw3 ,Sw5 ,Sw6 ,Sw0 ,RPRN, , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -179,11 +179,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| ,PIPE,Sw4 ,PLUS,CIRC,TILD, , PENT,DOT , 1 , 2 , 3 , 0 ,PEQL, //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' - , ,DEL , , , + , ,DEL , , , // `----+----+----' `----+----+----' ), - [_ADJUST] = KEYMAP( + [_ADJUST] = KEYMAP( //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. GAMING , DVORAK, WORKMAN, COLEMAK, QWERTY , KC_RST, _______, _______, _______, _______, KC_PWR, RESET, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| diff --git a/keyboards/iris/keymaps/hexwire/keymap.c b/keyboards/iris/keymaps/hexwire/keymap.c index 997d2fcbd792..e9ab58bcda93 100644 --- a/keyboards/iris/keymaps/hexwire/keymap.c +++ b/keyboards/iris/keymaps/hexwire/keymap.c @@ -32,7 +32,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = KC_KEYMAP( + [_QWERTY] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `----+----+----' `----+----+----' ), - [_LOWER] = KC_KEYMAP( + [_LOWER] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,BSPC, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -56,11 +56,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| BL_S,CPYP, , ,DOWN,LCBR,LPRN, RPRN,RCBR, P1 , P2 , P3 ,MINS, , //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' - , ,DEL , DEL , , P0 + , ,DEL , DEL , , P0 // `----+----+----' `----+----+----' ), - [_RAISE] = KC_KEYMAP( + [_RAISE] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -70,11 +70,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| MUTE,MSTP,MPLY,VOLD,PGDN,MINS, , ,PLUS,END , , , , , //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' - , , , , , + , , , , , // `----+----+----' `----+----+----' ), - [_ADJUST] = KEYMAP( + [_ADJUST] = LAYOUT( //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| diff --git a/keyboards/iris/keymaps/lewisridden/keymap.c b/keyboards/iris/keymaps/lewisridden/keymap.c index 4c5033d1f8a4..331c0632ac43 100644 --- a/keyboards/iris/keymaps/lewisridden/keymap.c +++ b/keyboards/iris/keymaps/lewisridden/keymap.c @@ -26,7 +26,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = KC_KEYMAP( + [_QWERTY] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `----+----+----' `----+----+----' ), - [_LOWER] = KC_KEYMAP( + [_LOWER] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,BSPC, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -54,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `----+----+----' `----+----+----' ), - [_RAISE] = KC_KEYMAP( + [_RAISE] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -68,7 +68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `----+----+----' `----+----+----' ), - [_ADJUST] = KEYMAP( + [_ADJUST] = LAYOUT( //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| diff --git a/keyboards/iris/keymaps/rdhaene/keymap.c b/keyboards/iris/keymaps/rdhaene/keymap.c index 24ef99d20ec8..68b187aafb3b 100644 --- a/keyboards/iris/keymaps/rdhaene/keymap.c +++ b/keyboards/iris/keymaps/rdhaene/keymap.c @@ -35,7 +35,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = KC_KEYMAP( + [_QWERTY] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `----+----+----' `----+----+----' ), - [_LOWER] = KC_KEYMAP( + [_LOWER] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,BSPC, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -59,11 +59,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| BL_S, , , ,DOWN,LCBR,LPRN, RPRN,RCBR, P1 , P2 , P3 ,MINS, , //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' - , ,DEL , DEL , , P0 + , ,DEL , DEL , , P0 // `----+----+----' `----+----+----' ), - [_RAISE] = KC_KEYMAP( + [_RAISE] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -73,11 +73,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| MUTE,MSTP,MPLY,VOLD,PGDN,MINS, , ,PLUS,END , , , , , //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' - , , , , , + , , , , , // `----+----+----' `----+----+----' ), - [_ADJUST] = KC_KEYMAP( + [_ADJUST] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. , , , , , , , , , , , , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -87,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| BL_S,RST , , , , , , , , , , , , , //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' - , , , , , + , , , , , // `----+----+----' `----+----+----' ) diff --git a/keyboards/iris/keymaps/swedish/keymap.c b/keyboards/iris/keymaps/swedish/keymap.c index a11230eb651d..70699bce1a32 100644 --- a/keyboards/iris/keymaps/swedish/keymap.c +++ b/keyboards/iris/keymaps/swedish/keymap.c @@ -29,7 +29,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = KC_KEYMAP( + [_QWERTY] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -72,7 +72,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -void persistent_default_layer_set(uint16_t default_layer) { +void persistent_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); } diff --git a/keyboards/iris/keymaps/transmogrified/keymap.c b/keyboards/iris/keymaps/transmogrified/keymap.c index 7260f0c66fa2..714b826ac5a3 100644 --- a/keyboards/iris/keymaps/transmogrified/keymap.c +++ b/keyboards/iris/keymaps/transmogrified/keymap.c @@ -80,7 +80,7 @@ enum { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = KC_KEYMAP( + [_QWERTY] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. LEAD, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -94,7 +94,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `----+----+----' `----+----+----' ), - [_COLEMAK] = KC_KEYMAP( + [_COLEMAK] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. LEAD, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -108,7 +108,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `----+----+----' `----+----+----' ), - [_DVORAK] = KC_KEYMAP( + [_DVORAK] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. LEAD, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -122,7 +122,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `----+----+----' `----+----+----' ), - [_ONEHANDR] = KC_KEYMAP( + [_ONEHANDR] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, 6 , 7 , 8 , 9 , 0 ,BSPC, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -136,7 +136,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `----+----+----' `----+----+----' ), - [_ONEHANDL] = KC_KEYMAP( + [_ONEHANDL] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, 5 , 4 , 3 , 2 , 1 ,LEAD, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -150,7 +150,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `----+----+----' `----+----+----' ), - [_RLAYER] = KC_KEYMAP( + [_RLAYER] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. ,XXXX,XXXX,XXXX,XXXX,XXXX, MUTE,VOLD,VOLU,BLDN,BLUP, , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -164,7 +164,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `----+----+----' `----+----+----' ), - [_LLAYER] = KC_KEYMAP( + [_LLAYER] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 , , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -178,7 +178,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `----+----+----' `----+----+----' ), - [_DUAL] = KC_KEYMAP( + [_DUAL] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. ,XXXX,XXXX,PSCR,INS ,XXXX, XXXX,SLEP,SLCK,PAUS,SYSR,XXXX, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -192,7 +192,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `----+----+----' `----+----+----' ), - [_CONFIG] = KC_KEYMAP( + [_CONFIG] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. FLASH,XXXX,XXXX,XXXX,XXXX,XXXX, XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, //|----+----+----+----+----+----| |----+----+----+----+----+----| diff --git a/keyboards/iris/keymaps/yanfali/keymap.c b/keyboards/iris/keymaps/yanfali/keymap.c index 370db668d041..bae09a62eaf6 100644 --- a/keyboards/iris/keymaps/yanfali/keymap.c +++ b/keyboards/iris/keymaps/yanfali/keymap.c @@ -34,7 +34,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = KC_KEYMAP( + [_QWERTY] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -48,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `----+----+----' `----+----+----' ), - [_LOWER] = KC_KEYMAP( + [_LOWER] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,BSPC, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -62,7 +62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `----+----+----' `----+----+----' ), - [_RAISE] = KC_KEYMAP( + [_RAISE] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -76,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `----+----+----' `----+----+----' ), - [_ADJUST] = KEYMAP( + [_ADJUST] = LAYOUT( //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| diff --git a/keyboards/iris/rev1/rev1.h b/keyboards/iris/rev1/rev1.h index 6d20536517ec..4db6bd197323 100644 --- a/keyboards/iris/rev1/rev1.h +++ b/keyboards/iris/rev1/rev1.h @@ -17,7 +17,7 @@ //void promicro_bootloader_jmp(bool program); -#define KEYMAP( \ +#define LAYOUT( \ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ diff --git a/keyboards/iris/rev1_led/rev1_led.h b/keyboards/iris/rev1_led/rev1_led.h index 82aa01eb5cdd..bac5e7bec34e 100644 --- a/keyboards/iris/rev1_led/rev1_led.h +++ b/keyboards/iris/rev1_led/rev1_led.h @@ -17,7 +17,7 @@ //void promicro_bootloader_jmp(bool program); -#define KEYMAP( \ +#define LAYOUT( \ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ diff --git a/keyboards/iris/rev2/rev2.h b/keyboards/iris/rev2/rev2.h index e0230673e7ba..d581b346d131 100644 --- a/keyboards/iris/rev2/rev2.h +++ b/keyboards/iris/rev2/rev2.h @@ -17,7 +17,7 @@ //void promicro_bootloader_jmp(bool program); -#define KEYMAP( \ +#define LAYOUT( \ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ diff --git a/keyboards/jc65/v32a/keymaps/default/keymap.c b/keyboards/jc65/v32a/keymaps/default/keymap.c index de7a7135af55..d05abc1e0f46 100644 --- a/keyboards/jc65/v32a/keymaps/default/keymap.c +++ b/keyboards/jc65/v32a/keymaps/default/keymap.c @@ -1,7 +1,7 @@ #include "v32a.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP( + [0] = LAYOUT( KC_GESC, 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,KC_BSPC, KC_INS, 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_BSLS, KC_DEL, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_SCLN,KC_QUOT,KC_NUHS, KC_ENT,KC_PGUP, diff --git a/keyboards/jc65/v32a/keymaps/naut/keymap.c b/keyboards/jc65/v32a/keymaps/naut/keymap.c index 71285c96c926..8da04ee9131e 100644 --- a/keyboards/jc65/v32a/keymaps/naut/keymap.c +++ b/keyboards/jc65/v32a/keymaps/naut/keymap.c @@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Base Layer - [_BASE] = KEYMAP( + [_BASE] = LAYOUT( 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, KC_GRV, KC_INS, 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, KC_DEL, 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,KC_PGUP, @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { MO(1),KC_LALT,KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_NO,KC_RALT,KC_LEFT,KC_DOWN,KC_RGHT ), // Fn Layer - [_FNX] = KEYMAP( + [_FNX] = LAYOUT( KC_TRNS, 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_TRNS,KC_TRNS, TG(3), KC_CAPS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_MRWD,KC_VOLD,KC_MFFD ), // Mac Layer - [_MAC] = KEYMAP( + [_MAC] = LAYOUT( TO(0), KC_F14, KC_F15, M_APPS, M_MSSN, KC_F11, KC_F12,KC_MRWD,KC_MPLY,KC_MFFD,KC_MUTE,KC_VOLD,KC_VOLU,KC_EJCT, KC_NO, KC_NO, KC_NO, M_PRTS, M_PRTA, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSPC, KC_NO, KC_NO,M_PRTSC,M_PRTAC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ENT, KC_NO, @@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, KC_NO,KC_LGUI, M_SPOT, M_SPOT, M_SPOT, KC_RGUI, KC_NO, KC_NO, M_LEFT, M_APPS, M_RGHT ), // RGB and BL Layer - [_RGB] = KEYMAP( + [_RGB] = LAYOUT( TO(0), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), KC_NO,RGB_HUD,RGB_HUI,RGB_WHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,BL_TOGG, KC_NO,RGB_SAD,RGB_SAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,RGB_TOG, @@ -81,4 +81,4 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { } } return MACRO_NONE; -}; \ No newline at end of file +}; diff --git a/keyboards/jc65/v32a/v32a.h b/keyboards/jc65/v32a/v32a.h index 00464141b4ff..ba91d80a641a 100644 --- a/keyboards/jc65/v32a/v32a.h +++ b/keyboards/jc65/v32a/v32a.h @@ -20,7 +20,7 @@ along with this program. If not, see . #include "quantum.h" -#define KEYMAP( \ +#define LAYOUT( \ K04,K14,K24,K34,K44,K54,K16,KB6,KB7,K17,KA4,KB4,KC4,KD4,KE4,KD0, \ K03,K13,K23,K33,K43,K53,K26,KC6,KC7,K27,KA3,KB3,KC3, KD3,K67, \ K02,K12,K22,K32,K42,K52,K36,KD6,KD7,K37,KA2,KB2,KC2, KD2,K87, \ @@ -37,7 +37,7 @@ along with this program. If not, see . { KC_NO, K17, K27, K37, K47, K57, K67, K77, K87,KC_NO,KC_NO, KB7, KC7, KD7, KE7,KC_NO } \ } -#define KC_KEYMAP( \ +#define LAYOUT_kc( \ K04,K14,K24,K34,K44,K54,K16,KB6,KB7,K17,KA4,KB4,KC4,KD4,KE4,KD0, \ K03,K13,K23,K33,K43,K53,K26,KC6,KC7,K27,KA3,KB3,KC3, KD3,K67, \ K02,K12,K22,K32,K42,K52,K36,KD6,KD7,K37,KA2,KB2,KC2, KD2,K87, \ diff --git a/keyboards/jc65/v32u4/info.json b/keyboards/jc65/v32u4/info.json index 6d23d28a5a47..64402392c8f2 100644 --- a/keyboards/jc65/v32u4/info.json +++ b/keyboards/jc65/v32u4/info.json @@ -6,7 +6,7 @@ "width": 16, "height": 5, "layouts": { - "KEYMAP": { + "LAYOUT": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4, "w":1.25}, {"x":7.75, "y":4, "w":2.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] } } diff --git a/keyboards/jc65/v32u4/keymaps/coth/keymap.c b/keyboards/jc65/v32u4/keymaps/coth/keymap.c index d6c1dacf5bea..91ade5aef74f 100644 --- a/keyboards/jc65/v32u4/keymaps/coth/keymap.c +++ b/keyboards/jc65/v32u4/keymaps/coth/keymap.c @@ -1,21 +1,21 @@ #include "v32u4.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP( + [0] = LAYOUT( KC_GESC, 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, KC_GRV, KC_INS, 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, KC_DEL, 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_ENT, KC_PGUP, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_LALT, KC_LCTL, KC_LGUI, KC_SPACE, KC_SPACE, KC_SPACE, MO(1), KC_NO, MO(2), KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = KEYMAP( + [1] = LAYOUT( KC_GRV, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN2, KC_MS_U, KC_BTN1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_HOME, KC_END, KC_DEL, KC_TRNS, KC_CAPS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGUP, KC_TRNS, KC_TRNS, KC_PGUP, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END ), - [2] = KEYMAP( + [2] = LAYOUT( RGB_TOG, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_MOD, RGB_RMOD, BL_STEP, BL_TOGG, KC_TRNS, KC_TRNS, RESET, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, RGB_HUD, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/jc65/v32u4/keymaps/dead_encryption/keymap.c b/keyboards/jc65/v32u4/keymaps/dead_encryption/keymap.c index df5bdae00408..3517baca9db1 100644 --- a/keyboards/jc65/v32u4/keymaps/dead_encryption/keymap.c +++ b/keyboards/jc65/v32u4/keymaps/dead_encryption/keymap.c @@ -18,14 +18,14 @@ const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {127, 63, 31}; const uint16_t RGBLED_GRADIENT_RANGES[] PROGMEM = {360, 240, 180, 120, 90}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP( + [0] = LAYOUT( KC_GESC, 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, KC_GRV, KC_PSCR, 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, KC_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_SPACE, KC_SPACE, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = KEYMAP( + [1] = LAYOUT( RESET, 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_PAUS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_MOD, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_HUD, RGB_SAD, RGB_VAD, KC_DOWN, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/jc65/v32u4/keymaps/default/keymap.c b/keyboards/jc65/v32u4/keymaps/default/keymap.c index 9c9e0f1f8d64..1960e98c4395 100644 --- a/keyboards/jc65/v32u4/keymaps/default/keymap.c +++ b/keyboards/jc65/v32u4/keymaps/default/keymap.c @@ -1,7 +1,7 @@ #include "v32u4.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP( + [0] = LAYOUT( KC_GESC, 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, KC_BSPC, KC_INS, 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_BSLS, KC_DEL, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, diff --git a/keyboards/jc65/v32u4/keymaps/gam3cat/keymap.c b/keyboards/jc65/v32u4/keymaps/gam3cat/keymap.c index 57225393f6e2..d6719a62ccbb 100644 --- a/keyboards/jc65/v32u4/keymaps/gam3cat/keymap.c +++ b/keyboards/jc65/v32u4/keymaps/gam3cat/keymap.c @@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctrl|Gui |Alt | Space |RAlt |Ctrl |Lft|Dwn|Rgt| * *---------------------------------------------------------------* */ - [_BL] = KEYMAP( + [_BL] = LAYOUT( KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, XXXXXXX, KC_BSPC, KC_INS, 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_BSLS, KC_DEL, FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, @@ -62,7 +62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | * *---------------------------------------------------------------* */ - [_WL] = KEYMAP( + [_WL] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_Q , KC_D , KC_R , KC_W , KC_B , KC_J , KC_F , KC_U , KC_P , KC_SCLN, _______, _______, _______, _______, _______, KC_A , KC_S , KC_H , KC_T , KC_G , KC_Y , KC_N , KC_E , KC_O , KC_I , _______, _______, _______, @@ -83,7 +83,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | * *---------------------------------------------------------------* */ - [_NL] = KEYMAP( + [_NL] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_Q , KC_W , KC_D , KC_F , KC_K , KC_J , KC_U , KC_R , KC_L , KC_SCLN, _______, _______, _______, _______, _______, KC_A , KC_S , KC_E , KC_T , KC_G , KC_Y , KC_N , KC_I , KC_O , KC_H , _______, _______, _______, @@ -104,7 +104,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | * *---------------------------------------------------------------* */ - [_DL] = KEYMAP( + [_DL] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, _______, _______, KC_QUOT, KC_COMM, KC_DOT , KC_P , KC_Y , KC_F , KC_G , KC_C , KC_R , KC_L , KC_SLSH, KC_EQL , _______, _______, _______, KC_A , KC_O , KC_E , KC_U , KC_I , KC_D , KC_H , KC_T , KC_N , KC_S , KC_MINS, _______, _______, @@ -125,7 +125,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | * *---------------------------------------------------------------* */ - [_CL] = KEYMAP( + [_CL] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , KC_SCLN, _______, _______, _______, _______, _______, KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E , KC_I , KC_O , _______, _______, _______, @@ -147,7 +147,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | |Menu| | | |WBk|VlD|WFw| * *---------------------------------------------------------------* */ - [_FL] = KEYMAP( + [_FL] = LAYOUT( M(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, KC_SLCK, KC_PSCR, MO(_AL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PAUS, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, @@ -169,7 +169,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Rst | | | | | | | |MP2| * *---------------------------------------------------------------* */ - [_AL] = KEYMAP( + [_AL] = LAYOUT( F(0), RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, XXXXXXX, BL_TOGG, BL_DEC, BL_INC, XXXXXXX, XXXXXXX, KC_DMP1, _______, DF(_BL), DF(_WL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DMR1, _______, XXXXXXX, XXXXXXX, DF(_DL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DMRS, diff --git a/keyboards/jc65/v32u4/keymaps/jetpacktuxedo/keymap.c b/keyboards/jc65/v32u4/keymaps/jetpacktuxedo/keymap.c index 451b43124efd..1f67dd8aa552 100644 --- a/keyboards/jc65/v32u4/keymaps/jetpacktuxedo/keymap.c +++ b/keyboards/jc65/v32u4/keymaps/jetpacktuxedo/keymap.c @@ -1,21 +1,21 @@ #include "v32u4.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP( + [0] = LAYOUT( KC_GESC, 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, KC_GRV, KC_INS, 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, KC_DEL, MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_SPACE, KC_SPACE, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = KEYMAP( + [1] = LAYOUT( KC_GRV, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_DEL, KC_TRNS, MO(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGUP, KC_TRNS, KC_TRNS, KC_PGUP, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_HOME, KC_PGDN, KC_END ), - [2] = KEYMAP( + [2] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(1), RGB_SAD, RGB_SAI, KC_TRNS, KC_TRNS, RGB_HUD, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/jc65/v32u4/keymaps/na7thana/keymap.c b/keyboards/jc65/v32u4/keymaps/na7thana/keymap.c index 2e61e95d3667..b451ca8a3b0c 100644 --- a/keyboards/jc65/v32u4/keymaps/na7thana/keymap.c +++ b/keyboards/jc65/v32u4/keymaps/na7thana/keymap.c @@ -1,18 +1,18 @@ #include "v32u4.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP( + [0] = LAYOUT( KC_GESC, 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_NO, KC_BSLS, KC_HOME, 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, KC_PGUP, 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_ENT, KC_PGDN, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), KC_LCTL, KC_LALT, KC_LALT, KC_SPACE, KC_SPACE, KC_SPACE, KC_SPACE, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = KEYMAP( + [1] = LAYOUT( RESET, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_DEL, KC_TRNS, KC_CAPS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_MPLY, KC_MPLY, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_VOLD, KC_TRNS - ), -}; \ No newline at end of file + ), +}; diff --git a/keyboards/jc65/v32u4/keymaps/naut/keymap.c b/keyboards/jc65/v32u4/keymaps/naut/keymap.c index a2706d24b412..85afdb2625fa 100644 --- a/keyboards/jc65/v32u4/keymaps/naut/keymap.c +++ b/keyboards/jc65/v32u4/keymaps/naut/keymap.c @@ -21,7 +21,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Base Layer - [_BASE] = KEYMAP( + [_BASE] = LAYOUT( 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, KC_GRV, KC_INS, 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, KC_DEL, 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_ENT,KC_PGUP, @@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { MO(1),KC_LALT,KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_NO,KC_RALT,KC_LEFT,KC_DOWN,KC_RGHT ), // Fn Layer - [_FNX] = KEYMAP( + [_FNX] = LAYOUT( KC_TRNS, 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_TRNS, TG(4), TG(3), KC_CAPS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, @@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_MRWD,KC_VOLD,KC_MFFD ), // Mac Layer - [_MAC] = KEYMAP( + [_MAC] = LAYOUT( TO(0), KC_F14, KC_F15, M_APPS, M_MSSN, KC_F11, KC_F12,KC_MRWD,KC_MPLY,KC_MFFD,KC_MUTE,KC_VOLD,KC_VOLU,KC_EJCT, KC_NO, KC_NO, KC_NO, M_PRTS, M_PRTA, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSPC, KC_NO, KC_NO,M_PRTSC,M_PRTAC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ENT, KC_NO, @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, KC_NO,KC_LGUI, M_SPOT, M_SPOT, M_SPOT, KC_RGUI, KC_NO, KC_NO, M_LEFT, M_APPS, M_RGHT ), // RGB and BL Layer - [_RGB] = KEYMAP( + [_RGB] = LAYOUT( TO(0), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), KC_NO,RGB_HUD,RGB_HUI,RGB_WHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,BL_TOGG, KC_NO,RGB_SAD,RGB_SAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,RGB_TOG, @@ -53,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,RGB_M_G,RGB_M_SW ), // Mash Layer - [_OFF] = KEYMAP( + [_OFF] = LAYOUT( TO(0), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, @@ -90,4 +90,4 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { } } return MACRO_NONE; -}; \ No newline at end of file +}; diff --git a/keyboards/jc65/v32u4/v32u4.h b/keyboards/jc65/v32u4/v32u4.h index ee105b937e5d..866e6cc6894d 100644 --- a/keyboards/jc65/v32u4/v32u4.h +++ b/keyboards/jc65/v32u4/v32u4.h @@ -3,7 +3,7 @@ #include "quantum.h" -#define KEYMAP( \ +#define LAYOUT( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ diff --git a/keyboards/lets_split/keymaps/DE_simple/keymap.c b/keyboards/lets_split/keymaps/DE_simple/keymap.c index e3cb310d1e30..3857140b3df4 100644 --- a/keyboards/lets_split/keymaps/DE_simple/keymap.c +++ b/keyboards/lets_split/keymaps/DE_simple/keymap.c @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | Alt | AltGr| GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_QWERTZ] = KEYMAP( \ +[_QWERTZ] = LAYOUT( \ KC_ESC, DE_Q, DE_W, DE_E, DE_R, DE_T, DE_Z, DE_U, DE_I, DE_O, DE_P, KC_BSPC, \ KC_TAB, DE_A, DE_S, DE_D, DE_F, DE_G, DE_H, DE_J, DE_K, DE_L, DE_PLUS, DE_HASH, \ KC_LSFT, DE_Y, DE_X, DE_C, DE_V, DE_B, DE_N, DE_M, DE_COMM, DE_DOT, DE_MINS, KC_ENT , \ @@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = KEYMAP( \ +[_LOWER] = LAYOUT( \ DE_CIRC, DE_EXLM, DE_DQOT, DE_PARA, DE_DLR, DE_PERC, DE_AMPR, DE_SLSH, DE_LPRN, DE_RPRN, DE_EQL, KC_BSPC, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, DE_AT , DE_EURO, KC_LBRC, DE_QST, DE_QUOT, \ KC_LSFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DE_PIPE , KC_SCLN, KC_QUOT, _______, KC_ENT, \ @@ -74,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = KEYMAP( \ +[_RAISE] = LAYOUT( \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, DE_LCBR, DE_LBRC, DE_RBRC, DE_RCBR , DE_BSLS, \ KC_LSFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, KC_ENT, \ @@ -92,7 +92,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = KEYMAP( \ +[_ADJUST] = LAYOUT( \ _______, RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTZ, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ diff --git a/keyboards/lets_split/keymaps/OLED_sample/keymap.c b/keyboards/lets_split/keymaps/OLED_sample/keymap.c index 2768eb56e3e7..bef896b5895e 100644 --- a/keyboards/lets_split/keymaps/OLED_sample/keymap.c +++ b/keyboards/lets_split/keymaps/OLED_sample/keymap.c @@ -69,7 +69,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = KEYMAP( \ +[_QWERTY] = LAYOUT( \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ @@ -87,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_COLEMAK] = KEYMAP( \ +[_COLEMAK] = LAYOUT( \ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ @@ -105,7 +105,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_DVORAK] = KEYMAP( \ +[_DVORAK] = LAYOUT( \ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , \ @@ -123,7 +123,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = KEYMAP( \ +[_LOWER] = LAYOUT( \ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______, \ @@ -141,7 +141,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = KEYMAP( \ +[_RAISE] = LAYOUT( \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, \ @@ -159,7 +159,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = KEYMAP( \ +[_ADJUST] = LAYOUT( \ _______, RESET, _______, M_SAMPLE, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ @@ -444,4 +444,4 @@ void iota_gfx_task_user(void) { (host_keyboard_leds() & (1< | * `-----------------------------------------------------------------------------------' */ - [_COLE] = KEYMAP( + [_COLE] = LAYOUT( TD(TD_BTK), KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_EQL, TD(TD_TDE), TD(TD_LPRN), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, TD(TD_RPRN), TD(TD_MIN), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_SLSH, KC_BSLS, KC_UP, TD(TD_USC), @@ -70,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | ---- | ---- | ---- | ---- | ---- | ---- | ---- | 0 | . | ---- | ---- | ---- | * `-----------------------------------------------------------------------------------' */ - [_LOWER] = KEYMAP( + [_LOWER] = LAYOUT( ____, ____, ____, ____, ____, ____, KC_7, KC_8, KC_9, KC_PAST, KC_PSLS, KC_CIRC, ____, ____, ____, ____, ____, ____, KC_4, KC_5, KC_6, KC_PPLS, KC_PMNS, ____, ____, ____, ____, ____, ____, ____, KC_1, KC_2, KC_3, KC_PEQL, ____, ____, @@ -87,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | , < | . > | / ? | * `-----------------------------------------------------------------------------------' */ - [_RAISE] = KEYMAP( + [_RAISE] = LAYOUT( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_GRV, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_MINS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_LBRC, KC_RBRC, KC_BSLS, KC_SCLN, KC_QUOT, KC_EQL, @@ -104,7 +104,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | HOME | PGDN | END | * `-----------------------------------------------------------------------------------' */ - [_AUX] = KEYMAP( + [_AUX] = LAYOUT( RESET, ____, ____, ____, ____, ____, ____, LGUI(KC_L), ____, ____, ____, KC_VOLU, ____, ____, LGUI(KC_R), ____, ____, ____, ____, ____, ____, ____, ____, KC_VOLD, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, KC_PGUP, KC_MUTE, diff --git a/keyboards/lets_split/keymaps/henxing/keymap.c b/keyboards/lets_split/keymaps/henxing/keymap.c index 49b89b1135e6..c47180586ff2 100644 --- a/keyboards/lets_split/keymaps/henxing/keymap.c +++ b/keyboards/lets_split/keymaps/henxing/keymap.c @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * z x c v b _ _ n m , . / * esc tab gui shift bksp ctrl alt space fn - ' enter */ - [_QWERTY] = KEYMAP( \ + [_QWERTY] = LAYOUT( \ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P, \ KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO, KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \ @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * [ ] ( ) & _ _ ` 1 2 3 \ * lower insert gui shift bksp ctrl alt space fn . 0 = */ - [_LOWER] = KEYMAP( \ + [_LOWER] = LAYOUT( \ KC_EXLM, KC_AT, KC_UP, KC_LCBR, KC_RCBR, KC_NO, KC_NO, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR, \ KC_HASH, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_NO, KC_NO, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS, \ KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_AMPR, KC_NO, KC_NO, KC_GRV, KC_1, KC_2, KC_3, KC_BSLS, \ @@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * _ volup _ _ reset _ _ F1 F2 F3 F12 * _ voldn super shift bksp ctrl alt space L0 prtsc scroll pause */ - [_RAISE] = KEYMAP( \ + [_RAISE] = LAYOUT( \ KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_NO, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10, \ KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_NO, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11, \ KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, RESET, KC_NO, KC_NO, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12, \ diff --git a/keyboards/lets_split/keymaps/khord/keymap.c b/keyboards/lets_split/keymaps/khord/keymap.c index d9f850e02984..4a18a6e26327 100644 --- a/keyboards/lets_split/keymaps/khord/keymap.c +++ b/keyboards/lets_split/keymaps/khord/keymap.c @@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = KEYMAP( \ +[_QWERTY] = LAYOUT( \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ TD(SFT_CAP), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT), \ @@ -62,7 +62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = KEYMAP( \ +[_LOWER] = LAYOUT( \ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_END, KC_HOME, _______, \ @@ -80,7 +80,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = KEYMAP( \ +[_RAISE] = LAYOUT( \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PGDN, KC_PGUP, _______, \ @@ -98,7 +98,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | CADel| * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = KEYMAP( \ +[_ADJUST] = LAYOUT( \ _______, RESET, _______, _______, AG_NORM, AG_SWAP, _______, _______, _______, ADMIN, SMSPC1, KC_DEL, \ _______, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, _______, _______, \ _______, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, _______, RGB_M_G, RGB_M_X, RGB_M_K, RGB_M_SN, _______, C_A_INS, \ diff --git a/keyboards/lets_split/keymaps/kris/keymap.c b/keyboards/lets_split/keymaps/kris/keymap.c index d5f91567ea1b..75533bf881de 100644 --- a/keyboards/lets_split/keymaps/kris/keymap.c +++ b/keyboards/lets_split/keymaps/kris/keymap.c @@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Adjust| Alt | Gui |Caps |Lower |Space |Space |Raise | [ | ] | - |Ctrl | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = KEYMAP( \ +[_QWERTY] = LAYOUT( \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT , \ @@ -59,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_COLEMAK] = KEYMAP( \ +[_COLEMAK] = LAYOUT( \ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ @@ -77,7 +77,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_DVORAK] = KEYMAP( \ +[_DVORAK] = LAYOUT( \ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , \ @@ -95,7 +95,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = KEYMAP( \ +[_LOWER] = LAYOUT( \ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______, \ @@ -113,7 +113,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = KEYMAP( \ +[_RAISE] = LAYOUT( \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, KC_RBRC, KC_BSLS, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, _______, _______, \ @@ -131,7 +131,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = KEYMAP( \ +[_ADJUST] = LAYOUT( \ _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ diff --git a/keyboards/lets_split/keymaps/mbsurfer/keymap.c b/keyboards/lets_split/keymaps/mbsurfer/keymap.c index 0c20f3db3179..e9e6d6ef6539 100644 --- a/keyboards/lets_split/keymaps/mbsurfer/keymap.c +++ b/keyboards/lets_split/keymaps/mbsurfer/keymap.c @@ -55,7 +55,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Adjust| Ctrl | Alt | GUI |Lower |Space | |Space |Raise | Left | Down | Up |Right | * `------------------------------------------ ------------------------------------------' */ -[_QWERTY] = KEYMAP( \ +[_QWERTY] = LAYOUT( \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ TD(SFT_CAP), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT), \ @@ -73,7 +73,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Adjust| Ctrl | Alt | GUI |Lower |Space | |Space |Raise | Left | Down | Up |Right | * `------------------------------------------ ------------------------------------------' */ -[_COLEMAK] = KEYMAP( \ +[_COLEMAK] = LAYOUT( \ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ @@ -91,7 +91,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Adjust| Ctrl | Alt | GUI |Lower |Space | |Space |Raise | Left | Down | Up |Right | * `------------------------------------------ ------------------------------------------' */ -[_DVORAK] = KEYMAP( \ +[_DVORAK] = LAYOUT( \ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , \ @@ -109,7 +109,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | Next | Vol- | Vol+ | Play | * `------------------------------------------ ------------------------------------------' */ -[_LOWER] = KEYMAP( \ +[_LOWER] = LAYOUT( \ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_END, KC_HOME, _______, \ @@ -127,7 +127,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | Next | Vol- | Vol+ | Play | * `------------------------------------------ ------------------------------------------' */ -[_RAISE] = KEYMAP( \ +[_RAISE] = LAYOUT( \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGDN, KC_PGUP, _______, \ @@ -145,7 +145,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | |TskMng|CAltDe| * `------------------------------------------ ------------------------------------------' */ -[_ADJUST] = KEYMAP( \ +[_ADJUST] = LAYOUT( \ RESET, _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, _______, KC_DEL, \ _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ _______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, _______, _______, \ @@ -272,4 +272,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; } return true; -} \ No newline at end of file +} diff --git a/keyboards/lets_split/keymaps/mjt/keymap.c b/keyboards/lets_split/keymaps/mjt/keymap.c index 4dd0d9aa9187..47f2ff2f897b 100644 --- a/keyboards/lets_split/keymaps/mjt/keymap.c +++ b/keyboards/lets_split/keymaps/mjt/keymap.c @@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = KEYMAP( \ +[_QWERTY] = LAYOUT( \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ @@ -62,7 +62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_COLEMAK] = KEYMAP( \ +[_COLEMAK] = LAYOUT( \ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ @@ -80,7 +80,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_DVORAK] = KEYMAP( \ +[_DVORAK] = LAYOUT( \ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , \ @@ -98,7 +98,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = KEYMAP( \ +[_LOWER] = LAYOUT( \ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______, \ @@ -116,7 +116,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = KEYMAP( \ +[_RAISE] = LAYOUT( \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, \ @@ -134,7 +134,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = KEYMAP( \ +[_ADJUST] = LAYOUT( \ _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, \ @@ -214,4 +214,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; } return true; -} \ No newline at end of file +} diff --git a/keyboards/lets_split/keymaps/piemod/keymap.c b/keyboards/lets_split/keymaps/piemod/keymap.c index 558370fa864e..762d8c2742a3 100644 --- a/keyboards/lets_split/keymaps/piemod/keymap.c +++ b/keyboards/lets_split/keymaps/piemod/keymap.c @@ -26,56 +26,56 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_DVORAK] = KEYMAP( \ +[_DVORAK] = LAYOUT( \ KC_ESC, KC_QUOTE, F(7), KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DELETE, \ KC_TAB, F(1), F(2), F(3), F(4), KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENTER, \ KC_LSHIFT, KC_SCOLON, F(5), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_MINUS, \ F(10), F(6), KC_MENU, KC_LALT, KC_LGUI, KC_BSPACE, KC_SPACE, KC_RCTRL, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT \ ), -[_ARROW] = KEYMAP( \ +[_ARROW] = LAYOUT( \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_UP, KC_END, KC_PGUP, \ KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_NO, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO \ ), -[_SYMBOL] = KEYMAP( \ +[_SYMBOL] = LAYOUT( \ KC_TILD, KC_GRAVE, KC_NO, KC_EQUAL, KC_PLUS, KC_NO, KC_LBRACKET, KC_RBRACKET, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, \ KC_NO, KC_NO, KC_TRNS, KC_SCOLON, KC_COLN, KC_NO, KC_LCBR, KC_RCBR, KC_DLR, KC_PERC, KC_CIRC, F(21), \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSLASH, KC_SLASH, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ASTR, KC_SLASH, KC_MINUS, KC_PLUS, KC_EQUAL \ ), -[_NUMBER] = KEYMAP( \ +[_NUMBER] = LAYOUT( \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_NO, \ KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_4, KC_5, KC_6, KC_NO, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_0, KC_1, KC_2, KC_3, KC_NO, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ASTR, KC_SLASH, KC_MINUS, KC_PLUS, KC_EQUAL \ ), -[_FUNCTION] = KEYMAP( \ +[_FUNCTION] = LAYOUT( \ KC_PSCREEN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, \ RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DELETE, KC_INSERT, KC_HOME, KC_PGDN, KC_PGUP, KC_END \ ), -[_EMACS] = KEYMAP( \ +[_EMACS] = LAYOUT( \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO \ ), -[_MACROS] = KEYMAP( \ +[_MACROS] = LAYOUT( \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO \ ), -[_MOUSE] = KEYMAP( \ +[_MOUSE] = LAYOUT( \ KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_U, KC_NO, KC_NO, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ @@ -108,13 +108,13 @@ int CAPSLOCKED = 0; [2] = ACTION_LAYER_TAP_KEY(2, KC_O), // FN2 = Momentary symbOl layer on O. [3] = ACTION_LAYER_TAP_KEY(3, KC_E), // FN3 = Momentary numbEr layer on E. [4] = ACTION_LAYER_TAP_KEY(4, KC_U), // FN4 = Momentary fUnction layer on U. - [5] = ACTION_LAYER_TAP_KEY(5, KC_Q), // FN5 = Momentary emaQs layer on Q. + [5] = ACTION_LAYER_TAP_KEY(5, KC_Q), // FN5 = Momentary emaQs layer on Q. [6] = ACTION_LAYER_TAP_KEY(6, KC_LCTRL), // FN6 = Momentary MACROS on ??? key. [7] = ACTION_LAYER_TAP_KEY(7, KC_COMMA), // FN7 = Momentary MOUSE on , key. // Special Keys [10] = ACTION_MODS_KEY(KC_LCTRL, KC_LALT), // FN10 = Ctrl + Alt. - + // Symbols [21] = ACTION_MODS_KEY(MOD_LSFT, KC_SLASH), // FN21 = Question mark. diff --git a/keyboards/lets_split/keymaps/pitty/keymap.c b/keyboards/lets_split/keymaps/pitty/keymap.c index 62867b8a9b1a..35b558bcfb65 100644 --- a/keyboards/lets_split/keymaps/pitty/keymap.c +++ b/keyboards/lets_split/keymaps/pitty/keymap.c @@ -39,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | GUI | Alt |ADJUST| Spc | LOWER| Bksp | Ent | Alt | =(&) | GAME | Del | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = KEYMAP( \ +[_QWERTY] = LAYOUT( \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ KC_ESC, KC_A, KC_S, KC_D, LT(_VIM, KC_F), KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ MT(MOD_LSFT, KC_NUBS), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ @@ -57,7 +57,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | Left | Down | Up | Right| * `-----------------------------------------------------------------------------------' */ -[_GAME] = KEYMAP( \ +[_GAME] = LAYOUT( \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, OSL(_LOWER), \ _______, _______, _______, _______, KC_F, _______, _______, _______, _______, _______, _______, _______, \ KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(_QWERTY), \ @@ -75,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | Del | End | PgDn | AltGr| * `-----------------------------------------------------------------------------------' */ -[_LOWER] = KEYMAP( \ +[_LOWER] = LAYOUT( \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, \ KC_F10, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F11, KC_F12, \ _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, KC_RSFT, \ @@ -94,7 +94,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | 0 | . | = | + | | * `-----------------------------------------------------------------------------------' */ -[_NAV] = KEYMAP( \ +[_NAV] = LAYOUT( \ _______, _______, KC_UP, _______, KC_F2, _______, _______, KC_7, KC_8, KC_9, KC_KP_SLASH, _______, \ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_4, KC_5, KC_6, KC_KP_ASTERISK, _______, \ KC_LSFT, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, KC_KP_MINUS, _______, \ @@ -112,7 +112,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | LShft| | | | | | | RESET| * `-----------------------------------------------------------------------------------' */ -[_VIM] = KEYMAP( \ +[_VIM] = LAYOUT( \ RGB_MOD, RGB_TOG, _______, _______, _______, _______, _______, KC_RBRC, KC_NUBS, KC_EQL , KC_LBRC, KC_NUHS, \ _______, _______, _______, KC_LCTL, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ @@ -168,4 +168,3 @@ void matrix_scan_user(void) { break; } }; - \ No newline at end of file diff --git a/keyboards/lets_split/keymaps/poker/keymap.c b/keyboards/lets_split/keymaps/poker/keymap.c index bac3f3c4cb29..a07143d58576 100644 --- a/keyboards/lets_split/keymaps/poker/keymap.c +++ b/keyboards/lets_split/keymaps/poker/keymap.c @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | GUI | Esc | Alt |Lower | Esc |Space |Raise | Left | Up | Down |Right | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = KEYMAP( \ +[_QWERTY] = LAYOUT( \ KC_TAB , KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ FN , KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ SFT_T(KC_ESC) , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_RSFT, KC_ENT), \ @@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | GUI | Esc | Alt |Lower | Esc |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_COLEMAK] = KEYMAP( \ +[_COLEMAK] = LAYOUT( \ KC_TAB , KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ FN , KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ SFT_T(KC_ESC) , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_RSFT, KC_ENT), \ @@ -79,7 +79,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | GUI | Esc | Alt |Lower | Esc |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_DVORAK] = KEYMAP( \ +[_DVORAK] = LAYOUT( \ KC_TAB , KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ FN , KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ SFT_T(KC_ESC) , KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, MT(MOD_RSFT, KC_ENT), \ @@ -97,7 +97,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | Home |Pg Up |Pg Dn | End | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = KEYMAP( \ +[_LOWER] = LAYOUT( \ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL , \ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, \ @@ -115,7 +115,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | Home |Pg Up |Pg Dn | End | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = KEYMAP( \ +[_RAISE] = LAYOUT( \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL , \ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, \ @@ -133,7 +133,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | Esc | | | Esc | Home |Pg Up |Pg Dn | End | * `-----------------------------------------------------------------------------------' */ -[_FN] = KEYMAP( \ +[_FN] = LAYOUT( \ KC_ESC , _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_DEL, \ _______, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END , _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ @@ -151,7 +151,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ - [_ADJUST] = KEYMAP( \ + [_ADJUST] = LAYOUT( \ _______, RESET, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , \ _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ KC_CAPS, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, KC_CAPS, \ @@ -238,4 +238,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; } return true; -} \ No newline at end of file +} diff --git a/keyboards/lets_split/keymaps/smt/keymap.c b/keyboards/lets_split/keymaps/smt/keymap.c index 63cc0b99a41e..f4f44c144fa3 100644 --- a/keyboards/lets_split/keymaps/smt/keymap.c +++ b/keyboards/lets_split/keymaps/smt/keymap.c @@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | ` | Ctrl | Alt | GUI |Lower |Space | |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------' `-----------------------------------------' */ -[_QWERTY] = KEYMAP( \ +[_QWERTY] = LAYOUT( \ HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT, \ @@ -65,7 +65,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | ` | Ctrl | Alt | GUI |Lower |Space | |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------' `-----------------------------------------' */ -[_COLEMAK] = KEYMAP( \ +[_COLEMAK] = LAYOUT( \ HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT, \ @@ -83,7 +83,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | ` | Ctrl | Alt | GUI |Lower |Space | |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------' `-----------------------------------------' */ -[_DVORAK] = KEYMAP( \ +[_DVORAK] = LAYOUT( \ HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, \ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT, \ @@ -101,7 +101,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------' `-----------------------------------------' */ -[_LOWER] = KEYMAP( \ +[_LOWER] = LAYOUT( \ ALL_T(KC_0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ CTL_T(KC_DLR), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, _______, _______, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, _______, _______, \ @@ -119,7 +119,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | Home |PageDn|PageUp| End | * `-----------------------------------------' `-----------------------------------------' */ -[_RAISE] = KEYMAP( \ +[_RAISE] = LAYOUT( \ ALL_T(KC_TILD), KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ _______, _______, _______, _______, _______, _______, KC_UNDS, KC_QUES, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ _______, _______, _______, _______, _______, _______, KC_MINS, KC_SLSH, KC_EQL, KC_LBRC, KC_RBRC, SFT_T(KC_BSLS), \ @@ -137,7 +137,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | | | * `-----------------------------------------' `-----------------------------------------' */ -[_ADJUST] = KEYMAP( \ +[_ADJUST] = LAYOUT( \ _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, \ _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ diff --git a/keyboards/lets_split/keymaps/waples/keymap.c b/keyboards/lets_split/keymaps/waples/keymap.c index baf2df323ad2..79f2d91cdd7f 100644 --- a/keyboards/lets_split/keymaps/waples/keymap.c +++ b/keyboards/lets_split/keymaps/waples/keymap.c @@ -31,42 +31,42 @@ enum letssplit_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QWERTY] = KEYMAP( \ +[_QWERTY] = LAYOUT( \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ CTLESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, SHFTENT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, \ KC_PSCR, KC_BSPC, KC_LALT, KC_CAPS, LEFTY, KC_LGUI, KC_SPC, RIGHTY, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ ), -[_DVORAK] = KEYMAP( \ +[_DVORAK] = LAYOUT( \ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ CTLESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, SHFTENT, \ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_SLSH, \ KC_PSCR, KC_LGUI, KC_LALT, KC_CAPS, LEFTY, KC_BSPC, KC_SPC, RIGHTY, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ ), -[_GAME] = KEYMAP( \ +[_GAME] = LAYOUT( \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, _______, _______, _______, _______, QWERTY, \ CTLESC, KC_A, KC_S, KC_D, KC_F, KC_G, _______, _______, _______, _______, _______, _______, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, _______, _______, _______, _______, \ KC_LCTL, KC_1, KC_2, KC_3, LEFTY, KC_SPC, KC_BSPC, RIGHTY, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT \ ), -[_LEFTY] = KEYMAP( \ +[_LEFTY] = LAYOUT( \ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ KC_DEL, _______, _______, _______, _______, _______, _______, KC_LPRN, KC_RPRN, KC_LBRC, KC_RBRC, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, KC_INS, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END \ ), -[_RIGHTY] = KEYMAP( \ +[_RIGHTY] = LAYOUT( \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, _______, KC_EQL, KC_MINS, KC_BSLS, KC_SLSH, _______, _______, \ _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, _______, _______, _______, _______, _______, KC_F9, KC_F10, KC_F11, _______, _______, _______, _______, _______, _______, _______, _______ \ ), -[_DUAL] = KEYMAP( \ +[_DUAL] = LAYOUT( \ RESET, _______, _______, _______, _______, QWERTY, GAME, _______, _______, _______, _______, RESET, \ _______, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, \ _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, TG_NKRO, _______, _______, _______, _______, _______, \ diff --git a/keyboards/lets_split/keymaps/xk/keymap.c b/keyboards/lets_split/keymaps/xk/keymap.c index 77db0abb74dd..07074759a3cf 100755 --- a/keyboards/lets_split/keymaps/xk/keymap.c +++ b/keyboards/lets_split/keymaps/xk/keymap.c @@ -159,7 +159,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ // Colemak PB&J (Mod-DH) -[_COLEMAK] = KEYMAP( \ +[_COLEMAK] = LAYOUT( \ XK_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, ALT_IT, XK_DEL, \ XK_BSP, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, XK_APO, \ KYSFT, KC_X, KC_C, KC_D, KC_V, KC_Z, KC_K, KC_H, TD(COD), KC_DOT, CTL_IT, SFT_T(KC_SLSH), \ @@ -167,7 +167,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), // useful for one-handed typing -[_KAMELOC] = KEYMAP( \ +[_KAMELOC] = LAYOUT( \ XK_DEL, KC_SCLN, KC_Y, KC_U, KC_L, KC_J, KC_B, KC_P, KC_F, KC_W, KC_Q, XK_TAB, \ _______, KC_O, KC_I, KC_E, KC_N, KC_M, KC_G, KC_T, KC_S, KC_R, KC_A, _______, \ KYSFT, KC_SLSH, KC_DOT, KC_COMM, KC_H, KC_K, TD(UND), KC_V, KC_D, KC_C, KC_X, KYSFT, \ @@ -185,7 +185,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │ │ │ │ │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘ */ -[_IKAPILA] = KEYMAP( \ +[_IKAPILA] = LAYOUT( \ _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \ _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TD(DSH), KC_INS, \ _______, KC_MINS, KC_EQL, XXXXXXX, XXXXXXX, LCTL(KC_Z), KC_HOME, TD(HND), KC_HOME, XXXXXXX, KC_BSLS, KC_TILD, \ @@ -204,7 +204,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘ */ -[_IKASHFT] = KEYMAP( \ +[_IKASHFT] = LAYOUT( \ _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ KC_DEL, TD(PGN), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_MNXT, KC_PGUP, KC_VOLU, TD(VOM), KC_MDSH, KC_PSCR, \ _______, KC_UNDS, KC_PLUS, KC_END, KC_HOME, KC_END, M(1), M(0), M(2), KC_LBRC, KC_RBRC, _______, \ @@ -223,7 +223,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘ up down left right KC_b KC_a GUI */ -[_ARROWKY] = KEYMAP( \ +[_ARROWKY] = LAYOUT( \ _______, KC_RGHT, KC_UP, KC_LEFT, KC_DOWN, KC_RGHT, KC_UP, KC_LEFT, KC_DOWN, KC_RGHT, KC_UP, _______, \ @@ -244,7 +244,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘ */ -[_FNCTION] = KEYMAP( \ +[_FNCTION] = LAYOUT( \ _______, TD(F11), TD(F12), TD(F13), TD(F14), TD(F15), TD(F16), TD(F17), TD(F18), TD(F19), TD(F20), _______, \ _______, KC_F21, KC_F22, KC_F23, KC_F24, XXXXXXX, XXXXXXX, KC_SLCK, XXXXXXX, XXXXXXX, TGNKRO, XXXXXXX, \ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS, \ @@ -263,7 +263,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘ */ -[_NINEKEY] = KEYMAP( \ +[_NINEKEY] = LAYOUT( \ _______, KC_RGHT, KC_F7, KC_F8, KC_F9, KC_UP, KC_P7, KC_P8, KC_P9, KC_NLCK,KC_PMNS, KC_DEL, \ _______, KC_LEFT, KC_F4, KC_F5, KC_F6, KC_DOWN, KC_P4, KC_P5, KC_P6, CAINS,KC_PPLS, M(0), \ _______, CAKY, KC_F1, KC_F2, KC_F3, XXXXXXX, KC_P1, KC_P2, KC_P3, XXXXXXX,KC_PAST, TD(EQE), \ @@ -282,7 +282,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘ */ -[_NAVIGAT] = KEYMAP( \ +[_NAVIGAT] = LAYOUT( \ KC_ESC, NAVCH, NAVCPD, NAVCU, NAVCPU, NAVCPU, XXXXXXX, KC_WH_L, KC_MS_U, KC_WH_R, KC_ACL2, _______, \ _______, NAVCE, NAVCL, NAVCD, NAVCR, NAVCPD, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, KC_ACL1, _______, \ _______, KC_BTN5, KC_BTN2, KC_BTN4, KC_BTN3, KC_BTN1, XXXXXXX, KC_WH_D, KC_WH_U, XXXXXXX, KC_ACL0, _______, \ @@ -290,21 +290,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), //ew. jk -[_QWERTY] = KEYMAP( \ +[_QWERTY] = LAYOUT( \ _______, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ _______, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ ), -[_MLAYER] = KEYMAP( \ +[_MLAYER] = LAYOUT( \ _______,UC(0x250C),UC(0x252C),UC(0x2510),UC(0x2500),UC(0x2502), _______, _______, _______, _______, _______, _______, \ KC_QUOT,UC(0x251C),UC(0x253C),UC(0x2524), _______, _______, M(1), M(0), M(2), _______, _______, _______, \ _______,UC(0x2514),UC(0x2534),UC(0x2518), _______, _______, _______, _______, _______, _______, _______, _______, \ _______, WINSH, WIN, OSX, _______, _______, _______, _______, _______, _______, _______, _______ \ ), -[_GRVTABL] = KEYMAP( \ +[_GRVTABL] = LAYOUT( \ TG(5),LALT(KC_PSCR), M(4), KC_PWR,KC_POWER, RESET, RESET, KC_R, KC_E, KC_I,LALT(KC_PSCR),TG(3), \ TG(1), TG(6), TG(7), TG(9), TG(3), TG(2), TG(2), KC_S, KC_U, KC_B, TG(6), TG(1), \ M(3), TG(8), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MYCM, KC_CALC, XXXXXXX, XXXXXXX, TG(8), M(3), \ diff --git a/keyboards/lets_split/keymaps/xyverz/keymap.c b/keyboards/lets_split/keymaps/xyverz/keymap.c index 45edf78c872c..9ed58b55f6cb 100644 --- a/keyboards/lets_split/keymaps/xyverz/keymap.c +++ b/keyboards/lets_split/keymaps/xyverz/keymap.c @@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = KEYMAP ( \ +[_QWERTY] = LAYOUT ( \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,\ @@ -59,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_COLEMAK] = KEYMAP ( \ +[_COLEMAK] = LAYOUT ( \ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ @@ -77,7 +77,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | Alt | Left |Right |Lower | Bksp |Space |Raise | Up | Down | GUI |Enter | * `-----------------------------------------------------------------------------------' */ -[_DVORAK] = KEYMAP ( \ +[_DVORAK] = LAYOUT ( \ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, \ KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, \ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, \ @@ -95,7 +95,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| | Home | End | | Del | Ins | | PgUp | PgDN | |Enter | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = KEYMAP ( \ +[_LOWER] = LAYOUT ( \ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, \ KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, \ @@ -113,7 +113,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| | Home | End | | Del | Ins | | PgUp | PgDN | |Enter | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = KEYMAP ( \ +[_RAISE] = LAYOUT ( \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \ KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, \ @@ -131,7 +131,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = KEYMAP ( \ +[_ADJUST] = LAYOUT ( \ KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12 , \ _______, RESET, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, \ diff --git a/keyboards/lets_split/lets_split.h b/keyboards/lets_split/lets_split.h index b2a6e604efa3..7896e4467e88 100644 --- a/keyboards/lets_split/lets_split.h +++ b/keyboards/lets_split/lets_split.h @@ -13,19 +13,19 @@ // Used to create a keymap using only KC_ prefixed keys -#define KC_KEYMAP( \ +#define LAYOUT_kc( \ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35 \ ) \ - KEYMAP( \ + LAYOUT( \ KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \ KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \ KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \ KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \ ) -#define KC_LAYOUT_ortho_4x12 KC_KEYMAP +#define KC_LAYOUT_ortho_4x12 LAYOUT_kc #endif diff --git a/keyboards/lets_split/rev1/rev1.h b/keyboards/lets_split/rev1/rev1.h index e8785d5c87c7..073d83ef347e 100644 --- a/keyboards/lets_split/rev1/rev1.h +++ b/keyboards/lets_split/rev1/rev1.h @@ -8,7 +8,7 @@ //void promicro_bootloader_jmp(bool program); -#define KEYMAP( \ +#define LAYOUT( \ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ @@ -25,6 +25,6 @@ { R30, R31, R32, R33, R34, R35 } \ } -#define LAYOUT_ortho_4x12 KEYMAP - -#endif \ No newline at end of file +#define LAYOUT_ortho_4x12 LAYOUT + +#endif diff --git a/keyboards/lets_split/rev2/rev2.h b/keyboards/lets_split/rev2/rev2.h index 16b93b3d8aca..bf25ee856887 100644 --- a/keyboards/lets_split/rev2/rev2.h +++ b/keyboards/lets_split/rev2/rev2.h @@ -20,7 +20,7 @@ #ifndef FLIP_HALF // Standard Keymap // (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left) -#define KEYMAP( \ +#define LAYOUT( \ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ @@ -39,7 +39,7 @@ #else // Keymap with right side flipped // (TRRS jack on both halves are to the right) -#define KEYMAP( \ +#define LAYOUT( \ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ @@ -57,6 +57,6 @@ } #endif -#define LAYOUT_ortho_4x12 KEYMAP +#define LAYOUT_ortho_4x12 LAYOUT #endif diff --git a/keyboards/lets_split/sockets/sockets.h b/keyboards/lets_split/sockets/sockets.h index 05cc78f9e876..bd1019263cef 100644 --- a/keyboards/lets_split/sockets/sockets.h +++ b/keyboards/lets_split/sockets/sockets.h @@ -21,7 +21,7 @@ #ifndef FLIP_HALF // Standard Keymap // (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left) -#define KEYMAP( \ +#define LAYOUT( \ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ @@ -40,7 +40,7 @@ #else // Keymap with right side flipped // (TRRS jack on both halves are to the right) -#define KEYMAP( \ +#define LAYOUT( \ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ @@ -58,6 +58,6 @@ } #endif -#define LAYOUT_ortho_4x12 KEYMAP +#define LAYOUT_ortho_4x12 LAYOUT #endif diff --git a/keyboards/levinson/keymaps/bakingpy2u/keymap.c b/keyboards/levinson/keymaps/bakingpy2u/keymap.c index bea3f5daa014..da46d2a05a73 100644 --- a/keyboards/levinson/keymaps/bakingpy2u/keymap.c +++ b/keyboards/levinson/keymaps/bakingpy2u/keymap.c @@ -40,7 +40,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = KC_KEYMAP( + [_QWERTY] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. TAB , Q , W , E , R , T , Y , U , I , O , P ,MINS, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_COLEMAK] = KC_KEYMAP( + [_COLEMAK] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. TAB , Q , W , F , P , G , J , L , U , Y ,SCLN,MINS, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -64,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_DVORAK] = KC_KEYMAP( + [_DVORAK] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. TAB ,QUOT,COMM,DOT , P , Y , F , G , C , R , L ,MINS, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -76,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_LOWER] = KC_KEYMAP( + [_LOWER] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. X5 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -84,11 +84,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----| |----+----+----+----+----+----| ,CPYP, , ,DOWN,LCBR, RCBR, P1 , P2 , P3 ,MINS, , //|----+----+----+----+----+----| |----+----+----+----+----+----| - , , , , ,DEL , DEL , , P0 ,PDOT, , + , , , , ,DEL , DEL , , P0 ,PDOT, , //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_RAISE] = KC_KEYMAP( + [_RAISE] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. ,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN, , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -96,11 +96,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----| |----+----+----+----+----+----| MUTE,MSTP,MPLY,VOLD,PGDN,MINS, PLUS,END , , , , , //|----+----+----+----+----+----| |----+----+----+----+----+----| - , , , , , , , , , , , + , , , , , , , , , , , //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_FN3] = KC_KEYMAP( + [_FN3] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -123,7 +123,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ - [_ADJUST] = KEYMAP( \ + [_ADJUST] = LAYOUT( \ _______, RESET , RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, _______, \ _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ diff --git a/keyboards/levinson/keymaps/default/keymap.c b/keyboards/levinson/keymaps/default/keymap.c index dcc586691c92..aa5143d67d68 100644 --- a/keyboards/levinson/keymaps/default/keymap.c +++ b/keyboards/levinson/keymaps/default/keymap.c @@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = KEYMAP( \ +[_QWERTY] = LAYOUT( \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ @@ -59,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_COLEMAK] = KEYMAP( \ +[_COLEMAK] = LAYOUT( \ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ @@ -77,7 +77,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_DVORAK] = KEYMAP( \ +[_DVORAK] = LAYOUT( \ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , \ @@ -95,7 +95,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = KEYMAP( \ +[_LOWER] = LAYOUT( \ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ BL_STEP, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______, \ @@ -113,7 +113,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = KEYMAP( \ +[_RAISE] = LAYOUT( \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, \ @@ -131,7 +131,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = KEYMAP( \ +[_ADJUST] = LAYOUT( \ _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ @@ -211,4 +211,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; } return true; -} \ No newline at end of file +} diff --git a/keyboards/levinson/levinson.h b/keyboards/levinson/levinson.h index 9ab2dd116d21..279a65c51723 100644 --- a/keyboards/levinson/levinson.h +++ b/keyboards/levinson/levinson.h @@ -10,19 +10,19 @@ #endif // Used to create a keymap using only KC_ prefixed keys -#define KC_KEYMAP( \ +#define LAYOUT_kc( \ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35 \ ) \ - KEYMAP( \ + LAYOUT( \ KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \ KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \ KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \ KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \ ) -#define KC_LAYOUT_ortho_4x12 KC_KEYMAP +#define KC_LAYOUT_ortho_4x12 LAYOUT_kc #endif diff --git a/keyboards/levinson/rev1/rev1.h b/keyboards/levinson/rev1/rev1.h index 73ce92a80b04..d24d1d7ad053 100644 --- a/keyboards/levinson/rev1/rev1.h +++ b/keyboards/levinson/rev1/rev1.h @@ -20,7 +20,7 @@ #ifndef FLIP_HALF // Standard Keymap // (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left) -#define KEYMAP( \ +#define LAYOUT( \ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ @@ -39,7 +39,7 @@ #else // Keymap with right side flipped // (TRRS jack on both halves are to the right) -#define KEYMAP( \ +#define LAYOUT( \ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ @@ -57,6 +57,6 @@ } #endif -#define LAYOUT_ortho_4x12 KEYMAP +#define LAYOUT_ortho_4x12 LAYOUT #endif diff --git a/keyboards/levinson/rev2/rev2.h b/keyboards/levinson/rev2/rev2.h index 73ce92a80b04..d24d1d7ad053 100644 --- a/keyboards/levinson/rev2/rev2.h +++ b/keyboards/levinson/rev2/rev2.h @@ -20,7 +20,7 @@ #ifndef FLIP_HALF // Standard Keymap // (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left) -#define KEYMAP( \ +#define LAYOUT( \ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ @@ -39,7 +39,7 @@ #else // Keymap with right side flipped // (TRRS jack on both halves are to the right) -#define KEYMAP( \ +#define LAYOUT( \ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ @@ -57,6 +57,6 @@ } #endif -#define LAYOUT_ortho_4x12 KEYMAP +#define LAYOUT_ortho_4x12 LAYOUT #endif diff --git a/keyboards/mf68_ble/keymaps/default/keymap.c b/keyboards/mf68_ble/keymaps/default/keymap.c index f4afd912ae46..9c7cecc2da1f 100644 --- a/keyboards/mf68_ble/keymaps/default/keymap.c +++ b/keyboards/mf68_ble/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -#include "mf68.h" +#include "mf68_ble.h" #define _QWERTY 0 #define _FN1 1 diff --git a/keyboards/mf68_ble/mf68.c b/keyboards/mf68_ble/mf68_ble.c similarity index 86% rename from keyboards/mf68_ble/mf68.c rename to keyboards/mf68_ble/mf68_ble.c index 1da522e7e181..95f8592f8f15 100644 --- a/keyboards/mf68_ble/mf68.c +++ b/keyboards/mf68_ble/mf68_ble.c @@ -1,4 +1,4 @@ -#include "mf68.h" +#include "mf68_ble.h" void matrix_init_kb(void) { // put your keyboard start-up code here diff --git a/keyboards/mf68_ble/mf68.h b/keyboards/mf68_ble/mf68_ble.h similarity index 98% rename from keyboards/mf68_ble/mf68.h rename to keyboards/mf68_ble/mf68_ble.h index a7aefc64792f..fa17a93903a8 100644 --- a/keyboards/mf68_ble/mf68.h +++ b/keyboards/mf68_ble/mf68_ble.h @@ -1,5 +1,5 @@ -#ifndef MF68_H -#define MF68_H +#ifndef MF68_BLE_H +#define MF68_BLE_H #include "quantum.h" diff --git a/keyboards/minidox/keymaps/default/keymap.c b/keyboards/minidox/keymaps/default/keymap.c index 06f663c2aec4..32b407e787ab 100644 --- a/keyboards/minidox/keymaps/default/keymap.c +++ b/keyboards/minidox/keymaps/default/keymap.c @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | * `------' `------' */ -[_QWERTY] = KEYMAP( \ +[_QWERTY] = LAYOUT( \ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \ @@ -67,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | * `------' `------' */ -[_RAISE] = KEYMAP( \ +[_RAISE] = LAYOUT( \ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \ KC_TAB, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, \ KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, _______, _______, _______, _______, KC_BSLS, KC_QUOT, \ @@ -89,7 +89,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | * `------' `------' */ -[_LOWER] = KEYMAP( \ +[_LOWER] = LAYOUT( \ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, \ KC_ESC, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, \ KC_CAPS, KC_TILD, _______, _______, _______, _______, _______, _______, KC_PIPE, KC_DQT, \ @@ -111,7 +111,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | * `------' `------' */ -[_ADJUST] = KEYMAP( \ +[_ADJUST] = LAYOUT( \ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, \ KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, TSKMGR, CALTDEL, \ RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ @@ -165,4 +165,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; } return true; -} \ No newline at end of file +} diff --git a/keyboards/minidox/keymaps/haegin/keymap.c b/keyboards/minidox/keymaps/haegin/keymap.c index 64a18c1b92e5..a32492eaa17f 100644 --- a/keyboards/minidox/keymaps/haegin/keymap.c +++ b/keyboards/minidox/keymaps/haegin/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | * `------' `------' */ -[LETTERS] = KEYMAP( \ +[LETTERS] = LAYOUT( \ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, \ KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, \ KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, \ @@ -55,7 +55,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | * `------' `------' */ -[SYMBOLS] = KEYMAP( \ +[SYMBOLS] = LAYOUT( \ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \ KC_TAB, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, \ KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, _______, _______, _______, _______, KC_BSLS, KC_QUOT, \ @@ -77,7 +77,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | * `------' `------' */ -[MEDIA] = KEYMAP( \ +[MEDIA] = LAYOUT( \ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, \ KC_ESC, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, \ KC_CAPS, KC_TILD, _______, _______, _______, _______, _______, _______, KC_PIPE, KC_DQT, \ diff --git a/keyboards/minidox/keymaps/khitsule/keymap.c b/keyboards/minidox/keymaps/khitsule/keymap.c index 29d7560ae83e..ba07e0a4e7f1 100644 --- a/keyboards/minidox/keymaps/khitsule/keymap.c +++ b/keyboards/minidox/keymaps/khitsule/keymap.c @@ -33,14 +33,14 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QWERTY] = KEYMAP( \ +[_QWERTY] = LAYOUT( \ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \ ALT_T(KC_ENT), LT(_LOWER, KC_TAB), CTL_T(KC_SPC), SFT_T(KC_BSPC), LT(_RAISE, KC_DEL), KC_LGUI \ ), -[_RAISE] = KEYMAP( \ +[_RAISE] = LAYOUT( \ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PLUS, KC_7, KC_8, KC_9, KC_0, \ KC_CIRC, KC_AMPR, KC_TILD, KC_PIPE, KC_BSLS, KC_MINUS, KC_4, KC_5, KC_6, KC_EQL, \ KC_DQT, KC_QUOT, KC_UNDS, KC_GRV, _______, KC_ASTR, KC_1, KC_2, KC_3, _______, \ @@ -48,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), -[_LOWER] = KEYMAP( \ +[_LOWER] = LAYOUT( \ KC_ESC, KC_HOME, KC_UP, KC_END, _______, KC_LPRN, KC_RPRN, _______, _______, _______, KC_VOLU, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGUP, KC_LBRC, KC_RBRC, _______, _______, _______, \ KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, KC_PGDN, KC_LCBR, KC_RCBR, _______, _______, _______, \ @@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), -[_ADJUST] = KEYMAP( \ +[_ADJUST] = LAYOUT( \ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, \ _______, DSK_LFT, _______, DSK_RT, _______, TSKMGR, CALTDEL, _______, KC_F11, KC_F12, \ RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ diff --git a/keyboards/minidox/keymaps/that_canadian/keymap.c b/keyboards/minidox/keymaps/that_canadian/keymap.c index b1ca139b7bb4..dbdd397066fc 100644 --- a/keyboards/minidox/keymaps/that_canadian/keymap.c +++ b/keyboards/minidox/keymaps/that_canadian/keymap.c @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | * `------' `------' */ -[_QWERTY] = KEYMAP( \ +[_QWERTY] = LAYOUT( \ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \ @@ -67,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | * `------' `------' */ -[_RAISE] = KEYMAP( \ +[_RAISE] = LAYOUT( \ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \ KC_TAB, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, \ KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, _______, _______, _______, _______, KC_BSLS, KC_QUOT, \ @@ -89,7 +89,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | * `------' `------' */ -[_LOWER] = KEYMAP( \ +[_LOWER] = LAYOUT( \ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, \ KC_ESC, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, \ KC_CAPS, KC_TILD, _______, _______, _______, _______, _______, _______, KC_PIPE, KC_DQT, \ @@ -111,7 +111,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | * `------' `------' */ -[_ADJUST] = KEYMAP( \ +[_ADJUST] = LAYOUT( \ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_UP, KC_F9, KC_F10, \ KC_F11, KC_F12, _______, RGB_SAI, RGB_SAD, _______, KC_LEFT, KC_DOWN, KC_RGHT, CALTDEL, \ RESET, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_VAI, RGB_VAD, KC_F8, TSKMGR, _______, \ @@ -162,4 +162,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; } return true; -} \ No newline at end of file +} diff --git a/keyboards/minidox/keymaps/tomb0y/keymap.c b/keyboards/minidox/keymaps/tomb0y/keymap.c index c8f8a343c1dd..de9378932465 100644 --- a/keyboards/minidox/keymaps/tomb0y/keymap.c +++ b/keyboards/minidox/keymaps/tomb0y/keymap.c @@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-------+------+ | | |------+-------. * `------' `------' */ - [_WM] = KEYMAP( \ + [_WM] = LAYOUT( \ KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, \ KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, \ KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, DK_ACT, KC_DOT, KC_SLSH, \ @@ -69,7 +69,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-------+------+ | | |------+-------. * `------' `------' */ - [_DK] = KEYMAP( \ + [_DK] = LAYOUT( \ KC_PERC, KC_AMPR, KC_QUES, KC_PLUS, KC_AT, KC_DLR, KC_UNDS, KC_LBRC, KC_RBRC, KC_EXLM, \ KC_HASH, KC_LPRN, KC_EQL, KC_0, KC_LCBR, KC_RCBR, KC_1, KC_ASTR, KC_RPRN, KC_MINS, \ KC_6, KC_7, KC_8, KC_9, KC_PIPE, KC_BSLS, KC_2, DK_REL, KC_4, KC_5, \ @@ -91,7 +91,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-------+------+ | | |------+-------. * `------' `------' */ - [_FUN] = KEYMAP( \ + [_FUN] = LAYOUT( \ XXXXXXX, KC_DEL, KC_C_LF, KC_C_RT, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, KC_CCSP, XXXXXXX, \ KC_GRV, KC_END, KC_PGUP, KC_PGDN, KC_HOME, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_QUOT, \ KC_OPTB, XXXXXXX, KC_CSTB, KC_C_TB, XXXXXXX, XXXXXXX, KC_BRDN, KC_COMM, KC_BRUP, KC_CIRC, \ diff --git a/keyboards/minidox/rev1/rev1.h b/keyboards/minidox/rev1/rev1.h index 379dbf64ad1a..b419c5fc90a7 100644 --- a/keyboards/minidox/rev1/rev1.h +++ b/keyboards/minidox/rev1/rev1.h @@ -8,7 +8,7 @@ //void promicro_bootloader_jmp(bool program); -#define KEYMAP( \ +#define LAYOUT( \ k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, \ k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, \ k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, \ @@ -25,4 +25,4 @@ { KC_NO, KC_NO, k73, k74, k75 } \ } -#endif \ No newline at end of file +#endif diff --git a/keyboards/nyquist/keymaps/333fred/keymap.c b/keyboards/nyquist/keymaps/333fred/keymap.c index ab47336a2df5..f84216abd283 100644 --- a/keyboards/nyquist/keymaps/333fred/keymap.c +++ b/keyboards/nyquist/keymaps/333fred/keymap.c @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | Alt | F4 | GUI |Lwr/VM| Bksp | Spc | Ent | Lock | = | Alt | Del | * `-----------------------------------------------------------------------------------' */ -[BASE] = KEYMAP( \ +[BASE] = LAYOUT( \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH, \ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ @@ -53,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Pscr | | | | | GAME | 0 | . | = | Prev | Next | Play | * `-----------------------------------------------------------------------------------' */ -[SYMB] = KEYMAP( \ +[SYMB] = LAYOUT( \ KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \ _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, KC_7, KC_8, KC_9, KC_ASTR, KC_RPRN, KC_F12, \ _______, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV, KC_4, KC_5, KC_6, KC_PLUS, KC_RCBR, KC_PIPE, \ @@ -74,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[VIM] = KEYMAP( \ +[VIM] = LAYOUT( \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, M(DLEFT), M(DRIGHT), KC_LCTL, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, \ @@ -96,7 +96,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Enter| | Lock | Bksp | Alt | Spc | Lower| Left | Up | Down | Right|QWERTY| * `-----------------------------------------------------------------------------------' */ -[GAME] = KEYMAP( \ +[GAME] = LAYOUT( \ KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ KC_LCTL, _______, _______, _______, KC_F, _______, _______, _______, _______, _______, _______, _______, \ diff --git a/keyboards/nyquist/keymaps/DivergeJM/keymap.c b/keyboards/nyquist/keymaps/DivergeJM/keymap.c index a1e93bf791c5..be9431c6a2f6 100644 --- a/keyboards/nyquist/keymaps/DivergeJM/keymap.c +++ b/keyboards/nyquist/keymaps/DivergeJM/keymap.c @@ -47,7 +47,7 @@ enum { */ // Enable these functions using FUNC(n) macro. const uint16_t PROGMEM fn_actions[] = { //ACTION_LAYER_TAP_TOGGLE requires that number of taps be defined in *config.h* - default set to 5 - [0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_SPC), //Hold for momentary Lower layer, Tap for Space, + [0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_SPC), //Hold for momentary Lower layer, Tap for Space, [1] = ACTION_LAYER_TAP_KEY(_RAISE, KC_ENT), //Hold for momentary Mouse layer, Tap for Enter, [2] = ACTION_LAYER_MOMENTARY(_FUNCTION), //Hold for momentary Function [3] = ACTION_LAYER_MOMENTARY(_MOUSE) //Hold for momentary MOUSE @@ -78,7 +78,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl| LGUI | Lower| LAlt | Space/Lower | | Enter/Raise | Fn | Mouse| Menu | Ctrl | * `----------------------------------------' `-----------------------------------------' */ -[_COLEMAK] = KEYMAP( \ +[_COLEMAK] = LAYOUT( \ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, \ KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ @@ -100,13 +100,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------' '-----------------------------------------' */ -[_QWERTY] = KEYMAP( +[_QWERTY] = LAYOUT( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, \ KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, \ KC_LCTL, KC_LGUI, LOWER, KC_LALT, SPC_LW, SPC_LW, ENT_RS, ENT_RS, FNC, MSE, KC_APP, KC_RCTL \ - ), + ), /* Dvorak * .----------------------------------------. .-----------------------------------------. @@ -122,7 +122,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------' '-----------------------------------------' */ -[_DVORAK] = KEYMAP( +[_DVORAK] = LAYOUT( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS, \ KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ @@ -143,7 +143,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | LGUI | Lower| LAlt | Space/Lower | | 0 | . | Fn |ADJUST| Ctrl | * `-----------------------------------------' `-----------------------------------------' */ -[_LOWER] = KEYMAP( \ +[_LOWER] = LAYOUT( \ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PEQL, KC_PSLS, KC_PAST, KC_MINS, XXXXXXX, _______, \ _______, KC_PGUP, KC_HOME, KC_UP, KC_END, XXXXXXX, KC_7, KC_8, KC_9, KC_PPLS, XXXXXXX, _______,\ _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, KC_4, KC_5, KC_6, KC_PENT, XXXXXXX, _______,\ @@ -162,9 +162,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | LSBO | <- | %>% | { | [ | ` | | | | ] | } | . | ? | RSBC | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | Ctrl | LGUI | | LAlt | Space/Lower | | Enter/Raise | Fn | Mouse| Menu | Ctrl | - * `-----------------------------------------' `-----------------------------------------' + * `-----------------------------------------' `-----------------------------------------' */ -[_RAISE] = KEYMAP( \ +[_RAISE] = LAYOUT( \ _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \ _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_EQL, _______, \ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSLS, \ @@ -187,7 +187,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------' `-----------------------------------------' */ -[_FUNCTION] = KEYMAP( +[_FUNCTION] = LAYOUT( 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_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS , \ KC_CAPS, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, \ @@ -209,7 +209,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------' `----------------------------------------' */ -[_MOUSE] = KEYMAP( +[_MOUSE] = LAYOUT( KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL, \ KC_TAB, KC_WH_U, KC_WH_L, KC_MS_U, KC_WH_R, XXXXXXX, XXXXXXX, KC_BTN3, KC_BTN4, KC_BTN5, XXXXXXX, XXXXXXX, \ KC_BSPC, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, \ @@ -231,7 +231,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------' `----------------------------------------' */ -[_ADJUST] = KEYMAP( +[_ADJUST] = LAYOUT( _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, \ _______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______, \ @@ -269,7 +269,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { return MACRO_NONE; } -/* Cases to switch default layer to QWERTY, COLEMAK or DVORAK +/* Cases to switch default layer to QWERTY, COLEMAK or DVORAK and to access ADJUST layer to access the switch keys */ bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { @@ -284,13 +284,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { set_single_persistent_default_layer(_COLEMAK); } return false; - break; + break; case DVORAK: if (record->event.pressed) { set_single_persistent_default_layer(_DVORAK); } return false; - break; + break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); @@ -313,4 +313,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; } return true; -} \ No newline at end of file +} diff --git a/keyboards/nyquist/keymaps/danielhklein/keymap.c b/keyboards/nyquist/keymaps/danielhklein/keymap.c index 1eae967b95f5..d0801b4a16dd 100644 --- a/keyboards/nyquist/keymaps/danielhklein/keymap.c +++ b/keyboards/nyquist/keymaps/danielhklein/keymap.c @@ -10,7 +10,7 @@ - no right ctrl key - direction keys added to bottom row - LOWER layer controls function keys, media controls, and underglow -*/ +*/ extern keymap_config_t keymap_config; enum custom_layers { @@ -27,7 +27,7 @@ enum custom_keycodes { // Enable these functions using FUNC(n) macro. const uint16_t PROGMEM fn_actions[] = { //ACTION_LAYER_TAP_TOGGLE requires that number of taps be defined in *config.h* - default set to 5 - [0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_SPC), //Hold for momentary Lower layer, Tap for Space, + [0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_SPC), //Hold for momentary Lower layer, Tap for Space, [1] = ACTION_LAYER_TAP_KEY(_RAISE, KC_BSPC) //Hold for momentary Raise layer, Tap for Backspace, }; @@ -44,7 +44,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* QWERTY +/* QWERTY * .----------------------------------------. .-----------------------------------------. * | Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | [ | * |-----+------+------+------+------+------| |------+------+------+------+------+------| @@ -58,13 +58,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------' '-----------------------------------------' */ -[_QWERTY] = KEYMAP( +[_QWERTY] = LAYOUT( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRACKET, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRACKET, \ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \ XXXXXXX, KC_LCTL, KC_LALT, KC_LGUI, BSP_RSE, BSP_RSE, SPC_LWR, SPC_LWR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ - ), + ), /* Raise * ,-----------------------------------------. .-----------------------------------------. @@ -80,7 +80,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------' `-----------------------------------------' */ -[_RAISE] = KEYMAP( \ +[_RAISE] = LAYOUT( \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PEQL, KC_PSLS, KC_PAST, KC_MINS, KC_BSLS, KC_DEL, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_7, KC_8, KC_9, KC_PPLS, KC_GRV, XXXXXXX,\ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_4, KC_5, KC_6, KC_PENT, XXXXXXX, XXXXXXX,\ @@ -102,7 +102,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------' `-----------------------------------------' */ -[_LOWER] = KEYMAP( \ +[_LOWER] = LAYOUT( \ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ @@ -117,7 +117,7 @@ void persistent_default_layer_set(uint16_t default_layer) { default_layer_set(default_layer); } -/* Cases to switch default layer to QWERTY, COLEMAK or DVORAK +/* Cases to switch default layer to QWERTY, COLEMAK or DVORAK and to access ADJUST layer to access the switch keys */ bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { diff --git a/keyboards/nyquist/keymaps/default/keymap.c b/keyboards/nyquist/keymaps/default/keymap.c index c0eeaa9088c0..94ad68289523 100644 --- a/keyboards/nyquist/keymaps/default/keymap.c +++ b/keyboards/nyquist/keymaps/default/keymap.c @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = KEYMAP( \ +[_QWERTY] = LAYOUT( \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, \ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ @@ -64,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_COLEMAK] = KEYMAP( \ +[_COLEMAK] = LAYOUT( \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL, \ KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ @@ -85,7 +85,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_DVORAK] = KEYMAP( \ +[_DVORAK] = LAYOUT( \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL, \ KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ @@ -106,7 +106,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = KEYMAP( \ +[_LOWER] = LAYOUT( \ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ @@ -127,7 +127,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = KEYMAP( \ +[_RAISE] = LAYOUT( \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ @@ -148,7 +148,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = KEYMAP( \ +[_ADJUST] = LAYOUT( \ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ _______, RESET , RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, KC_DEL, \ _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ @@ -229,4 +229,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; } return true; -} \ No newline at end of file +} diff --git a/keyboards/nyquist/keymaps/hexwire/keymap.c b/keyboards/nyquist/keymaps/hexwire/keymap.c index 8661a3ec3654..699cc3de5b6f 100644 --- a/keyboards/nyquist/keymaps/hexwire/keymap.c +++ b/keyboards/nyquist/keymaps/hexwire/keymap.c @@ -39,7 +39,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = KC_KEYMAP( + [_QWERTY] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -53,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_COLEMAK] = KC_KEYMAP( + [_COLEMAK] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -67,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_DVORAK] = KC_KEYMAP( + [_DVORAK] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -81,7 +81,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_LOWER] = KC_KEYMAP( + [_LOWER] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,BSPC, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -95,7 +95,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_RAISE] = KC_KEYMAP( + [_RAISE] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,BSPC, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -109,7 +109,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_FN3] = KC_KEYMAP( + [_FN3] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -134,7 +134,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ - [_ADJUST] = KEYMAP( \ + [_ADJUST] = LAYOUT( \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, RESET , RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, _______, \ _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ diff --git a/keyboards/nyquist/keymaps/jojiichan/keymap.c b/keyboards/nyquist/keymaps/jojiichan/keymap.c index 9617cf9fb012..1ead17cd2645 100644 --- a/keyboards/nyquist/keymaps/jojiichan/keymap.c +++ b/keyboards/nyquist/keymaps/jojiichan/keymap.c @@ -11,39 +11,39 @@ extern keymap_config_t keymap_config; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - KEYMAP( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_LCTL, KC_LGUI, KC_LALT, TG(4), MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_RGHT, KC_UP, KC_DOWN), - KEYMAP( - 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_PAUS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, - KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, + LAYOUT( + 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_PAUS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN), - KEYMAP( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, - KC_MINS, KC_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_PIPE, - KC_UNDS, KC_PLUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_BSLS, + LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + KC_MINS, KC_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_PIPE, + KC_UNDS, KC_PLUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( - LALT(KC_F4), LSFT(KC_EXLM), LSFT(KC_AT), LSFT(KC_HASH), LSFT(KC_DLR), LSFT(KC_PERC), LSFT(KC_CIRC), LSFT(KC_AMPR), LSFT(KC_ASTR), LSFT(KC_LPRN), LSFT(KC_RPRN), LSFT(KC_DEL), - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LSFT(KC_COLN), LSFT(KC_DQUO), - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LSFT(KC_LABK), LSFT(KC_RABK), LSFT(KC_QUES), KC_TRNS, + LAYOUT( + LALT(KC_F4), LSFT(KC_EXLM), LSFT(KC_AT), LSFT(KC_HASH), LSFT(KC_DLR), LSFT(KC_PERC), LSFT(KC_CIRC), LSFT(KC_AMPR), LSFT(KC_ASTR), LSFT(KC_LPRN), LSFT(KC_RPRN), LSFT(KC_DEL), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LSFT(KC_COLN), LSFT(KC_DQUO), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LSFT(KC_LABK), LSFT(KC_RABK), LSFT(KC_QUES), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( - KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F11, KC_PGDN, KC_SLSH, KC_ASTR, KC_MINS, - KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_O, KC_7, KC_8, KC_9, KC_PLUS, - KC_TRNS, KC_A, KC_S, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_5, KC_6, KC_PLUS, - KC_LSFT, KC_TRNS, KC_X, KC_C, KC_TRNS, KC_TRNS, KC_N, KC_TRNS, KC_1, KC_2, KC_3, KC_ENT, + LAYOUT( + KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F11, KC_PGDN, KC_SLSH, KC_ASTR, KC_MINS, + KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_O, KC_7, KC_8, KC_9, KC_PLUS, + KC_TRNS, KC_A, KC_S, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_5, KC_6, KC_PLUS, + KC_LSFT, KC_TRNS, KC_X, KC_C, KC_TRNS, KC_TRNS, KC_N, KC_TRNS, KC_1, KC_2, KC_3, KC_ENT, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_0, KC_0, KC_DOT, KC_ENT) }; diff --git a/keyboards/nyquist/keymaps/kim-kim/keymap.c b/keyboards/nyquist/keymaps/kim-kim/keymap.c index 8389e8bd4834..e7d56a96fada 100644 --- a/keyboards/nyquist/keymaps/kim-kim/keymap.c +++ b/keyboards/nyquist/keymaps/kim-kim/keymap.c @@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | LALT | RAISE | RAISE | LGUI | SPACE | SPACE | SPACE | SPACE | RGUI | LOWER | LOWER | RALT | * '-----------------------------------------------------------------------------------------------------------' */ - [_QW] = KEYMAP( + [_QW] = LAYOUT( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ @@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | | * '-----------------------------------------------------------------------------------------------------------' */ -[_LW] = KEYMAP( \ +[_LW] = LAYOUT( \ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, _______, _______, _______, \ _______, KC_MPRV, KC_MNXT, KC_VOLU, RGB_TOG, KC_F11, _______, _______, _______, _______, _______, _______, \ _______, KC_MPLY, KC_MSTP, KC_VOLD, RGB_SMOD, _______, _______, _______, _______, _______, _______, _______, \ @@ -73,7 +73,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | | * '-----------------------------------------------------------------------------------------------------------' */ -[_RS] = KEYMAP( \ +[_RS] = LAYOUT( \ _______, _______, _______, _______, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, \ _______, _______, _______, _______, _______, _______, KC_F12, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_BSLS, \ _______, _______, _______, _______, _______, _______, KC_PSCR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, \ diff --git a/keyboards/nyquist/keymaps/pitty/keymap.c b/keyboards/nyquist/keymaps/pitty/keymap.c index 574f1e1a23d9..6f9740f9e298 100644 --- a/keyboards/nyquist/keymaps/pitty/keymap.c +++ b/keyboards/nyquist/keymaps/pitty/keymap.c @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | GUI | Alt |LOWER | Spc | Spc | Bksp | Ent | Alt | =(&) | GAME | Del | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = KEYMAP( \ +[_QWERTY] = LAYOUT( \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ @@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | Spc | Spc | | | Left | Down | Up | Right| * `-----------------------------------------------------------------------------------' */ -[_GAME] = KEYMAP( \ +[_GAME] = LAYOUT( \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(_QWERTY), \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ @@ -77,7 +77,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | 0 | . | = | + | | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = KEYMAP( \ +[_LOWER] = LAYOUT( \ 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_UP, _______, _______, _______, _______, KC_7, KC_8, KC_9, KC_KP_SLASH, _______, \ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_4, KC_5, KC_6, KC_KP_ASTERISK, _______, \ @@ -99,7 +99,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | LShft| | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_VIM] = KEYMAP( \ +[_VIM] = LAYOUT( \ KC_INS, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_NUHS, \ KC_DEL, KC_END, KC_PGDN, _______, _______, _______, _______, KC_RBRC, KC_NUBS, KC_EQL , _______, _______, \ _______, M(DLEFT), M(DRIGHT), KC_LCTL, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, \ @@ -165,7 +165,7 @@ uint32_t layer_state_set_user(uint32_t state) { default: if (default_layer & (1UL << _GAME)) { } - else + else rgblight_mode(14); break; } diff --git a/keyboards/nyquist/nyquist.h b/keyboards/nyquist/nyquist.h index 4677079b41a5..a96d40d9fe06 100644 --- a/keyboards/nyquist/nyquist.h +++ b/keyboards/nyquist/nyquist.h @@ -8,14 +8,14 @@ #include "quantum.h" // Used to create a keymap using only KC_ prefixed keys -#define KC_KEYMAP( \ +#define LAYOUT_kc( \ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, \ L40, L41, L42, L43, L44, L45, R40, R41, R42, R43, R44, R45 \ ) \ - KEYMAP( \ + LAYOUT( \ KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \ KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \ KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \ diff --git a/keyboards/nyquist/rev1/rev1.h b/keyboards/nyquist/rev1/rev1.h index abc5dd2c805f..2d4c9f73ee4d 100644 --- a/keyboards/nyquist/rev1/rev1.h +++ b/keyboards/nyquist/rev1/rev1.h @@ -20,7 +20,7 @@ #ifndef FLIP_HALF // Standard Keymap // (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left) -#define KEYMAP( \ +#define LAYOUT( \ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ @@ -42,7 +42,7 @@ #else // Keymap with right side flipped // (TRRS jack on both halves are to the right) -#define KEYMAP( \ +#define LAYOUT( \ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ @@ -63,6 +63,6 @@ } #endif -#define LAYOUT_ortho_5x12 KEYMAP +#define LAYOUT_ortho_5x12 LAYOUT #endif diff --git a/keyboards/s60_x/default/default.h b/keyboards/s60_x/default/default.h index 86233ef7e0d8..027bf39f04e8 100644 --- a/keyboards/s60_x/default/default.h +++ b/keyboards/s60_x/default/default.h @@ -35,7 +35,7 @@ along with this program. If not, see . * K3E is extra key from HHKB-style split right shift */ -#define KEYMAP( \ +#define LAYOUT( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ @@ -52,7 +52,7 @@ along with this program. If not, see . /*This special definition is used for S60-X keymaps that were ported from TMK * QMK has a lot of keycodes that don't start with KC_, so using the regular KEYMAP macro is recommended */ -#define LEGACY_KEYMAP( \ +#define LAYOUT_legacy( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ @@ -66,4 +66,4 @@ along with this program. If not, see . { KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_NO, KC_##K46, KC_NO, KC_NO, KC_NO, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_NO } \ } -#endif \ No newline at end of file +#endif diff --git a/keyboards/s60_x/keymaps/amnesia0287/keymap.c b/keyboards/s60_x/keymaps/amnesia0287/keymap.c index 42f82e1d9b1b..8cbbb7bf94bd 100644 --- a/keyboards/s60_x/keymaps/amnesia0287/keymap.c +++ b/keyboards/s60_x/keymaps/amnesia0287/keymap.c @@ -7,7 +7,7 @@ #define _BL 0 #define _HLa 1 #define _HLb 2 -#define _HL 3 +#define _HL 3 #define _XL 4 enum hype_keycodes { @@ -17,28 +17,28 @@ enum hype_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: ANSI qwerty */ - [_BL] = KEYMAP( + [_BL] = LAYOUT( 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_NO, KC_BSPC, \ 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_BSLS, \ 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 , \ KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, FN_HLb, \ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_RALT, FN_HLa, KC_RCTL ), - [_HLa] = KEYMAP( + [_HLa] = LAYOUT( KC_GRV, 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_TRNS, KC_DEL, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [_HLb] = KEYMAP( + [_HLb] = LAYOUT( KC_GRV, 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_TRNS, KC_DEL, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [_HL] = KEYMAP( + [_HL] = LAYOUT( RGB_TOG, RGB_M_P, RGB_RMOD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, BL_BRTG, BL_OFF, BL_STEP, BL_ON, BL_DEC, BL_INC, KC_TRNS, LALT(KC_F4), RESET, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -78,4 +78,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; } return true; -} \ No newline at end of file +} diff --git a/keyboards/s60_x/keymaps/ansi_qwertz/keymap.c b/keyboards/s60_x/keymaps/ansi_qwertz/keymap.c index ebb3aece348a..c8ad8ae33440 100644 --- a/keyboards/s60_x/keymaps/ansi_qwertz/keymap.c +++ b/keyboards/s60_x/keymaps/ansi_qwertz/keymap.c @@ -100,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Fn2 |Gui |Alt | SpaceFn |Alt |Left|Down|Right| * `-----------------------------------------------------------' */ - [DEFAULT] = KEYMAP( + [DEFAULT] = LAYOUT( 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, KC_DEL, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ 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_NUHS, KC_ENT, \ @@ -121,7 +121,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | |RSft| | Space | | | | | * `-----------------------------------------------------------' */ - [GAMING] = KEYMAP( + [GAMING] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ @@ -134,16 +134,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------. * |` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|RES| * |-----------------------------------------------------------| - * | | | | |Prv|Ply|Nxt| | | | |Prt|Slk|Pau | + * | | | | |Prv|Ply|Nxt| � | | � | |Prt|Slk|Pau | * |-----------------------------------------------------------| - * | | | | |Vl-|Mut|Vl+| | | | | |PEnt | + * | | � | � | |Vl-|Mut|Vl+| | | | | |PEnt | * |-----------------------------------------------------------| * | | | | |MicMut|Cal| | | | |Pau |PUp |Fn1 | * |-----------------------------------------------------------| * | | | | | |Home|PDn |End | * `-----------------------------------------------------------' */ - [FUNCTION] = KEYMAP( + [FUNCTION] = LAYOUT( KC_GRV, 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, RESET, \ _______, _______, KC_CM_W, KC_CM_E, KC_MPRV, KC_MPLY, KC_MNXT, KC_CM_U, KC_CM_I, KC_CM_O, KC_CM_P, KC_PSCR, KC_SLCK, KC_PAUS, \ _______, KC_CM_A, KC_CM_S, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, KC_CM_K, KC_CM_L, _______, _______, _______, KC_PENT, \ @@ -212,9 +212,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #ifndef DONT_REVIVE_DEADKEYS bool shift_active = keyboard_report->mods & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_LSFT)); bool altgr_active = keyboard_report->mods & (MOD_BIT(KC_RALT)); - if ((keycode == KC_QUOT && !altgr_active) || + if ((keycode == KC_QUOT && !altgr_active) || keycode == KC_GRV || - (keycode == KC_6 && shift_active)) + (keycode == KC_6 && shift_active)) { if (record->event.pressed) { register_code(keycode); @@ -234,4 +234,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { void led_set_user(uint8_t usb_led) { -} \ No newline at end of file +} diff --git a/keyboards/s60_x/keymaps/bluebear/keymap.c b/keyboards/s60_x/keymaps/bluebear/keymap.c index cfd8d4b55673..ebb5382c9a4e 100644 --- a/keyboards/s60_x/keymaps/bluebear/keymap.c +++ b/keyboards/s60_x/keymaps/bluebear/keymap.c @@ -65,14 +65,14 @@ enum morse_macros { enum custom_keys { // Miscellaneous Keycodes - - TFS = LCTL(LALT(KC_DEL)), // Three Finger Salute - Sends Ctl-Alt-Del + + TFS = LCTL(LALT(KC_DEL)), // Three Finger Salute - Sends Ctl-Alt-Del MAGSYS = SAFE_RANGE, // Magic SysRq key - Sends Alt-PSCR MC_LSFT, // Morse Code Left Shift MC_RSFT, // Morse Code Right Shift // MIDI Chord Keycodes - Major - + MI_CH_C, MI_CH_Cs, MI_CH_Db = MI_CH_Cs, @@ -154,11 +154,11 @@ enum custom_keys { }; //Keymaps - + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: Custom Dvorak/HHKBish Base Layer - + ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ [ │ ] │ \ │ ` │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ @@ -171,8 +171,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │MO(2)│L_GUI│L_ALT│█████│█████│█████│SPFN1│█████│█████│█████│AG/AP│R_GUI│CT|S │CT|AL│█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - - [BASE] = KEYMAP( + + [BASE] = LAYOUT( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, \ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSPC, \ CTL_T(KC_ESC), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_NO, MT(MOD_RCTL, KC_ENT), \ @@ -195,7 +195,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - [ARROWFN] = KEYMAP( + [ARROWFN] = LAYOUT( KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TO(3), TO(5), \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_UP, KC_NO, KC_NO, KC_NO, KC_INS, KC_DEL, \ KC_CAPS, KC_HOME, KC_NO, KC_END, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_NO, KC_NO, KC_TRNS, \ @@ -218,8 +218,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - [MOUSE] = KEYMAP( - + [MOUSE] = LAYOUT( + RESET, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_NO, KC_NO, \ DEBUG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN1, KC_MS_UP, KC_BTN2, KC_WH_U, KC_NO, KC_NO, KC_NO, \ TFS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_WH_D, KC_BTN3, KC_NO, KC_TRNS, \ @@ -241,8 +241,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │ │ │ │█████│█████│█████│A-OFF│█████│█████│█████│ │ │ │ │█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - - [MIDI_BASE] = KEYMAP( + + [MIDI_BASE] = LAYOUT( TO(0), MI_CH_C, MI_CH_G, MI_CH_D, MI_CH_A, MI_CH_E, MI_CH_B, MI_CH_Gb, MI_CH_Db, MI_CH_Ab, MI_CH_Eb, MI_CH_Bb, MI_CH_F, KC_NO, TO(4), \ MI_OCTU, KC_NO, MI_Cs, MI_Ds, KC_NO, MI_Fs, MI_Gs, MI_As, KC_NO, MI_Cs_1, MI_Ds_1, KC_NO, KC_NO, KC_NO, \ MI_OCTD, MI_C, MI_D, MI_E, MI_F, MI_G, MI_A, MI_B, MI_C_1, MI_D_1, MI_E_1, MI_F_1, KC_NO, KC_NO, \ @@ -264,8 +264,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │ │ │ │█████│█████│█████│A-OFF│█████│█████│█████│ │ │ │ │█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - - [MIDI_CHORDS] = KEYMAP( + + [MIDI_CHORDS] = LAYOUT( TO(0), MI_CH_C, MI_CH_G, MI_CH_D, MI_CH_A, MI_CH_E, MI_CH_B, MI_CH_Gb, MI_CH_Db, MI_CH_Ab, MI_CH_Eb, MI_CH_Bb, MI_CH_F, TO(3), KC_NO, \ MI_OCTU, MI_CH_Cm, MI_CH_Gm, MI_CH_Dm, MI_CH_Am, MI_CH_Em, MI_CH_Bm, MI_CH_Gbm, MI_CH_Dbm, MI_CH_Abm, MI_CH_Ebm, MI_CH_Bbm, MI_CH_Fm, KC_NO, \ MI_OCTD, MI_CH_CDom7, MI_CH_GDom7, MI_CH_DDom7, MI_CH_ADom7, MI_CH_EDom7, MI_CH_BDom7, MI_CH_GbDom7, MI_CH_DbDom7, MI_CH_AbDom7, MI_CH_EbDom7, MI_CH_BbDom7, KC_NO, MI_CH_FDom7, \ @@ -274,7 +274,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), /* 5: Morse Code Layer - + ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ │TO(0)│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ │ │ │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ @@ -287,8 +287,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │ │ │ │█████│█████│█████│SPACE│█████│█████│█████│ │ │ │ │█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - - [MORSE] = KEYMAP( + + [MORSE] = LAYOUT( TO(0), MC_1, MC_2, MC_3, MC_4, MC_5, MC_6, MC_7, MC_8, MC_9, MC_0, KC_NO, KC_NO, KC_NO, KC_NO, \ KC_TAB, MC_APOS, MC_COMM, MC_DOT, MC_P, MC_Y, MC_F, MC_G, MC_C, MC_R, MC_L, MC_SLSH, MC_EQL, KC_BSPC, \ KC_NO, MC_A, MC_O, MC_E, MC_U, MC_I, MC_D, MC_H, MC_T, MC_N, MC_S, MC_MINS, KC_NO, KC_ENT, \ @@ -347,7 +347,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 4: //Number 4-$ if (record->event.pressed) { - if (mc_shift_on == true) { + if (mc_shift_on == true) { return MACRO(T(DOT), T(DOT), T(DOT), T(MINS), T(DOT), T(DOT), T(MINS), T(SPACE), END); //...-..- } else { @@ -370,7 +370,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 7: //Number 7-& if (record->event.pressed) { - if (mc_shift_on == true) { + if (mc_shift_on == true) { return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //.-... } else { @@ -387,7 +387,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 9: //Number 9-( if (record->event.pressed) { - if (mc_shift_on == true) { + if (mc_shift_on == true) { return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(SPACE), END); //-.--. } else { @@ -442,7 +442,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { if (record->event.pressed) { return MACRO(T(DOT), T(DOT), T(DOT), T(DOT), T(SPACE), END); //.... } - break; + break; case 18: //Letter I if (record->event.pressed) { @@ -542,7 +542,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 34: //Letter Y if (record->event.pressed) { - if (mc_shift_on == true) { + if (mc_shift_on == true) { } return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(SPACE), END); //-.-- } @@ -568,7 +568,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 38: //Punctuation '-" if (record->event.pressed) { - if (mc_shift_on == true) { + if (mc_shift_on == true) { return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-..-. } else { @@ -579,7 +579,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 39: //Punctuation /-? if (record->event.pressed) { - if (mc_shift_on == true) { + if (mc_shift_on == true) { return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(DOT), T(DOT), T(SPACE), END); //..--.. } else { @@ -590,7 +590,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 40: //Punctuation ;-: if (record->event.pressed) { - if (mc_shift_on == true) { + if (mc_shift_on == true) { return MACRO(T(MINS), T(MINS), T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //---... } else { @@ -601,7 +601,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 41: //Punctuation =-+ if (record->event.pressed) { - if (mc_shift_on == true) { + if (mc_shift_on == true) { return MACRO(T(DOT), T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-.-. } else { @@ -612,7 +612,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 42: //Punctuation --_ if (record->event.pressed) { - if (mc_shift_on == true) { + if (mc_shift_on == true) { return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //..--.- } else { @@ -635,7 +635,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { bool process_record_user (uint16_t keycode, keyrecord_t *record) { uint16_t root_note = MIDI_INVALID_NOTE; // Starting value for the root note of each chord - + switch(keycode) { // Miscellaneous Keycodes @@ -662,7 +662,7 @@ bool process_record_user (uint16_t keycode, keyrecord_t *record) { break; // MIDI Chord Keycodes - + case MI_CH_C ... MI_CH_B: // Major Chords root_note = keycode - MI_CH_C + MI_C; process_midi(root_note, record); diff --git a/keyboards/s60_x/keymaps/custom/keymap.c b/keyboards/s60_x/keymaps/custom/keymap.c index 66eac3335641..bb32837cf8b3 100644 --- a/keyboards/s60_x/keymaps/custom/keymap.c +++ b/keyboards/s60_x/keymaps/custom/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: ANSI qwerty */ - LEGACY_KEYMAP(GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, PGUP, BSPC, \ + LAYOUT_legacy(GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, PGUP, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, PGDN, ENT , \ LSFT, HOME, Z, X, C, V, B, N, M, COMM, DOT, SLSH, END, RSFT, UP, \ diff --git a/keyboards/s60_x/keymaps/dbroqua/keymap.c b/keyboards/s60_x/keymaps/dbroqua/keymap.c index 8d1887e75a25..6f9d33aae927 100644 --- a/keyboards/s60_x/keymaps/dbroqua/keymap.c +++ b/keyboards/s60_x/keymaps/dbroqua/keymap.c @@ -21,7 +21,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |LGUI | LAlt | Space | RAlt |RGUI | * `-----------------------------------------------------------------' */ - [_DEFAULT] = KEYMAP( /* Basic QWERTY */ + [_DEFAULT] = LAYOUT( /* Basic QWERTY */ 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, KC_GRV, \ 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, \ 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_ENT, \ @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | Stop | | * `-----------------------------------------------------------------' */ - [_FN] = KEYMAP( /* Layer 1 */ + [_FN] = LAYOUT( /* Layer 1 */ TG(_SFX),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, \ KC_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, ______, \ ______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT,______, ______, \ @@ -64,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | * `-----------------------------------------------------------------' */ - [_SFX] = KEYMAP( + [_SFX] = LAYOUT( ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ ______, BL_TOGG,BL_STEP,BL_DEC, BL_INC, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ ______, F(0), F(1), ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ @@ -73,7 +73,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { return MACRO_NONE; } @@ -173,33 +173,33 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { void led_set_user(uint8_t usb_led) { if (usb_led & (1 << USB_LED_NUM_LOCK)) { - + } else { - + } if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - + } else { - + } if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - + } else { - + } if (usb_led & (1 << USB_LED_COMPOSE)) { - + } else { - + } if (usb_led & (1 << USB_LED_KANA)) { - + } else { - + } -} \ No newline at end of file +} diff --git a/keyboards/s60_x/keymaps/default/keymap.c b/keyboards/s60_x/keymaps/default/keymap.c index a616e79b34e5..47ea2a4c1832 100644 --- a/keyboards/s60_x/keymaps/default/keymap.c +++ b/keyboards/s60_x/keymaps/default/keymap.c @@ -16,7 +16,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: ANSI qwerty */ - LEGACY_KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ + LAYOUT_legacy(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT , \ LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \ @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ TRNS, TRNS, UP, TRNS, TRNS, TRNS, TRNS, TRNS, PGUP, PGDN, PSCR, SLCK, PAUS, TRNS, \ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ diff --git a/keyboards/s60_x/keymaps/default_rgb/keymap.c b/keyboards/s60_x/keymaps/default_rgb/keymap.c index 1c81e8eca2ab..7eefd7d7cd76 100644 --- a/keyboards/s60_x/keymaps/default_rgb/keymap.c +++ b/keyboards/s60_x/keymaps/default_rgb/keymap.c @@ -16,7 +16,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: ANSI qwerty */ - KEYMAP(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_NO, KC_BSPC, \ + LAYOUT(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_NO, KC_BSPC, \ 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_BSLS, \ KC_CAPS, 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 , \ KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO, \ @@ -37,7 +37,7 @@ BL = Backlighting = In-Switch LED │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - KEYMAP( + LAYOUT( KC_GRV, 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_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, \ KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ diff --git a/keyboards/s60_x/keymaps/hasu/keymap.c b/keyboards/s60_x/keymaps/hasu/keymap.c index ac90dc6b2059..6afdf5fd4ae1 100644 --- a/keyboards/s60_x/keymaps/hasu/keymap.c +++ b/keyboards/s60_x/keymaps/hasu/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │LCTRL│L_WIN│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ Fn3 │ Fn3 │ Fn0 │█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ CAPS, A, S, D, F, G, H, J, K, L, FN2, QUOT, NO, ENT, \ @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │LCTRL│L_WIN│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│R_WIN│ APP │ Fn0 │█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, W, F, P, G, J, L, U, Y, SCLN, LBRC, RBRC, BSLS, \ BSPC, A, R, S, T, D, H, N, E, I, O, QUOT, NO, ENT, \ @@ -53,9 +53,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │LSHFT│▒▒▒▒▒│ ; │ Q │ J │ K │ X │ B │ M │ W │ V │ Z │▒▒▒▒▒│RSHFT│▒▒▒▒▒│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │LCTRL│L_WIN│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│R_WIN│ APP │ FN0 │█████│ -└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ +└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC, RBRC, NO, BSPC, \ TAB, QUOT, COMM, DOT, P, Y, F, G, C, R, L, SLSH, EQL, BSLS, \ CAPS, A, O, E, U, I, D, H, T, N, S, MINS, NO, ENT, \ @@ -74,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │LCTRL│L_WIN│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│R_WIN│ APP │ FN0 │█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, D, R, W, B, J, F, U, P, SCLN, LBRC, RBRC, BSLS, \ BSPC, A, S, H, T, G, Y, N, E, O, I, QUOT, NO, ENT, \ @@ -93,7 +93,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │LCTRL│L_GUI│L_ALT│█████│█████│█████│Space│█████│█████│█████│R_ALT│R_GUI│ App │ │█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, DEL, \ CAPS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PSCR, SLCK, PAUS, UP, TRNS, INS, \ LCTL, VOLD, VOLU, MUTE, TRNS, TRNS, PAST, PSLS, HOME, PGUP, LEFT, RGHT, TRNS, ENT, \ @@ -112,7 +112,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │LCTRL│L_GUI│L_ALT│█████│█████│█████│Space│█████│█████│█████│R_ALT│R_GUI│ APP │RCTRL│█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, BSPC, \ TAB, HOME, PGDN, UP, PGUP, END, HOME, PGDN, PGUP, END, TRNS, TRNS, TRNS, TRNS, \ LCTL, TRNS, LEFT, DOWN, RGHT, TRNS, LEFT, DOWN, UP, RGHT, TRNS, TRNS, TRNS, ENT, \ @@ -132,7 +132,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel */ - LEGACY_KEYMAP( + LAYOUT_legacy( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, BSPC, \ TAB, TRNS, TRNS, TRNS, TRNS, TRNS, WH_L, WH_D, WH_U, WH_R, TRNS, TRNS, TRNS, TRNS, \ LCTL, TRNS, ACL0, ACL1, ACL2, TRNS, MS_L, MS_D, MS_U, MS_R, TRNS, TRNS, TRNS, ENT, \ @@ -157,7 +157,7 @@ Ld: set Dvorak layout Lw: set Workman layout */ - LEGACY_KEYMAP( + LAYOUT_legacy( FN5, FN6, FN7, FN8, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, FN5, FN8, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, FN7, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ diff --git a/keyboards/s60_x/keymaps/hhkb/keymap.c b/keyboards/s60_x/keymaps/hhkb/keymap.c index dc1bfffc4732..4807324d1518 100644 --- a/keyboards/s60_x/keymaps/hhkb/keymap.c +++ b/keyboards/s60_x/keymaps/hhkb/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │▒▒▒▒▒│ Gui │ Alt │█████│█████│█████│Space│█████│█████│█████│▒▒▒▒▒│ Alt │ Gui │▒▒▒▒▒│█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, BSLS, GRV, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSPC, \ LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \ @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │▒▒▒▒▒│ │ │█████│█████│█████│ │█████│█████│█████│▒▒▒▒▒│ │ │▒▒▒▒▒│█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ CAPS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PSCR, SLCK, PAUS, UP, TRNS, TRNS, \ TRNS, VOLD, VOLU, MUTE, EJCT, TRNS, PAST, PSLS, HOME, PGUP, LEFT, RGHT, NO, PENT, \ diff --git a/keyboards/s60_x/keymaps/iso/keymap.c b/keyboards/s60_x/keymaps/iso/keymap.c index f6fc74172883..5b34ded70eff 100644 --- a/keyboards/s60_x/keymaps/iso/keymap.c +++ b/keyboards/s60_x/keymaps/iso/keymap.c @@ -16,12 +16,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: ANSI qwerty */ - LEGACY_KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ + LAYOUT_legacy(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, NO, \ CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NUHS, ENT , \ LSFT, BSLS, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \ LCTL, LGUI, LALT, SPC, RALT, FN0, APP, RCTL), - + /* 1: Fn layer ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ │GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │ @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ TRNS, TRNS, UP, TRNS, TRNS, TRNS, TRNS, TRNS, PGUP, PGDN, PSCR, SLCK, PAUS, TRNS, \ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ diff --git a/keyboards/s60_x/keymaps/iso_rgb/keymap.c b/keyboards/s60_x/keymaps/iso_rgb/keymap.c index 62f6231fdb87..00b197c9e7e5 100644 --- a/keyboards/s60_x/keymaps/iso_rgb/keymap.c +++ b/keyboards/s60_x/keymaps/iso_rgb/keymap.c @@ -16,12 +16,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: ANSI qwerty */ - KEYMAP(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_NO, KC_BSPC, \ + LAYOUT(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_NO, KC_BSPC, \ 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_NO, \ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT , \ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO, \ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_FN0, KC_APP, KC_RCTL), - + /* 1: Fn layer UG = Underglow = RGB Backlighting BL = Backlighting = In-Switch LED @@ -37,7 +37,7 @@ BL = Backlighting = In-Switch LED │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - KEYMAP( + LAYOUT( KC_GRV, 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_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, \ KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ diff --git a/keyboards/s60_x/keymaps/jpec/keymap.c b/keyboards/s60_x/keymaps/jpec/keymap.c index 21e77c10b2bf..85ad20e4e129 100644 --- a/keyboards/s60_x/keymaps/jpec/keymap.c +++ b/keyboards/s60_x/keymaps/jpec/keymap.c @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Fn1 |Gui |Alt | SpaceFn |Alt |Gui |App |Ctrl| * `-----------------------------------------------------------' */ - LEGACY_KEYMAP( + LAYOUT_legacy( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, BSPC, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NUHS, ENT, \ @@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | * `-----------------------------------------------------------' */ - LEGACY_KEYMAP( + LAYOUT_legacy( ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, DEL, \ TRNS, MPRV, MPLY, MNXT, MSTP, TRNS, TRNS, PGUP, UP, PGDN, TRNS, SLCK, PAUS, INS, \ TRNS, VOLD, MUTE, VOLU, TRNS, TRNS, HOME, LEFT, DOWN, RGHT, END, TRNS, TRNS, PENT, \ @@ -89,4 +89,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { void led_set_user(uint8_t usb_led) { -} \ No newline at end of file +} diff --git a/keyboards/s60_x/keymaps/plain/keymap.c b/keyboards/s60_x/keymaps/plain/keymap.c index d5075a07b9aa..f5d075f24348 100644 --- a/keyboards/s60_x/keymaps/plain/keymap.c +++ b/keyboards/s60_x/keymaps/plain/keymap.c @@ -16,7 +16,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: qwerty */ - LEGACY_KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ + LAYOUT_legacy(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \ LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \ diff --git a/keyboards/s60_x/keymaps/poker/keymap.c b/keyboards/s60_x/keymaps/poker/keymap.c index 5b917704e404..4c13f269bda9 100644 --- a/keyboards/s60_x/keymaps/poker/keymap.c +++ b/keyboards/s60_x/keymaps/poker/keymap.c @@ -14,7 +14,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │LCTRL│L_WIN│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│ Fn0 │R_WIN│ APP │RCTRL│█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \ @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │LCTRL│L_WIN│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│ Fn0 │R_WIN│ APP │RCTRL│█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, W, F, P, G, J, L, U, Y, SCLN, LBRC, RBRC, BSLS, \ BSPC, A, R, S, T, D, H, N, E, I, O, QUOT, NO, ENT, \ @@ -50,15 +50,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │LSHFT│▒▒▒▒▒│ ; │ Q │ J │ K │ X │ B │ M │ W │ V │ Z │▒▒▒▒▒│RSHFT│▒▒▒▒▒│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │LCTRL│L_WIN│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│ Fn0 │R_WIN│ APP │RCTRL│█████│ -└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ +└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC, RBRC, NO, BSPC, \ TAB, QUOT, COMM, DOT, P, Y, F, G, C, R, L, SLSH, EQL, BSLS, \ CAPS, A, O, E, U, I, D, H, T, N, S, MINS, NO, ENT, \ LSFT, NO, SCLN, Q, J, K, X, B, M, W, V, Z, NO, RSFT, NO, \ LCTL, LGUI, LALT, SPC, FN0, RGUI, APP, RCTL), - /* 3: workman + /* 3: workman ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ │GRAVE│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ @@ -71,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │LCTRL│L_WIN│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│ Fn0 │R_WIN│ APP │RCTRL│█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, D, R, W, B, J, F, U, P, SCLN, LBRC, RBRC, BSLS, \ BSPC, A, S, H, T, G, Y, N, E, O, I, QUOT, NO, ENT, \ @@ -90,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │ │ │ │█████│█████│█████│ │█████│█████│█████│ │Left │Down │Right│█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ @@ -109,7 +109,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( ESC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ @@ -134,7 +134,7 @@ FnQ: toggle Esc overlay FnS: toggle Arrow overlay */ - LEGACY_KEYMAP( + LAYOUT_legacy( ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ TRNS, FN2, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, FN4, \ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN3, END, TRNS, TRNS, \ @@ -159,7 +159,7 @@ Ld: set Dvorak layout Lw: set Workman layout */ - LEGACY_KEYMAP( + LAYOUT_legacy( FN5, FN6, FN7, FN8, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, FN5, FN8, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, FN7, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ diff --git a/keyboards/s60_x/keymaps/poker_bit/keymap.c b/keyboards/s60_x/keymaps/poker_bit/keymap.c index 1f7b1b633d9d..de3f597bae5d 100644 --- a/keyboards/s60_x/keymaps/poker_bit/keymap.c +++ b/keyboards/s60_x/keymaps/poker_bit/keymap.c @@ -17,13 +17,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │LCTRL│L_WIN│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│ Fn0 │R_WIN│ APP │RCTRL│█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \ LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \ LCTL, LGUI, LALT, SPC, FN0, RGUI, APP, RCTL), - /* 4: Poker Default + Fn'd + /* 4: Poker Default + Fn'd ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ │ Esc │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │ │ │ │█████│█████│█████│ Fn1 │█████│█████│█████│ │ │ │ │█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - [4] = LEGACY_KEYMAP( + [4] = LAYOUT_legacy( TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ CAPS, FN2, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, TRNS, \ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN4, END, TRNS, TRNS, \ @@ -55,7 +55,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │ │ │ │█████│█████│█████│ │█████│█████│█████│ Fn3 │Home │PgDwn│ End │█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ @@ -74,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( ESC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ @@ -93,7 +93,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │ │ │ │█████│█████│█████│ │█████│█████│█████│ │Left │Down │Right│█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ diff --git a/keyboards/s60_x/keymaps/poker_set/keymap.c b/keyboards/s60_x/keymaps/poker_set/keymap.c index 52eee53218d9..e6c0f90b4e52 100644 --- a/keyboards/s60_x/keymaps/poker_set/keymap.c +++ b/keyboards/s60_x/keymaps/poker_set/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │LCTRL│L_WIN│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│ Fn0 │R_WIN│ APP │RCTRL│█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \ @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │ │ │ │█████│█████│█████│ │█████│█████│█████│ Fn1 │Left │Down │Right│█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ @@ -55,7 +55,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │ │ │ │█████│█████│█████│ │█████│█████│█████│ Fn2 │ │ │ │█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( ESC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ @@ -74,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │ │ │ │█████│█████│█████│ │█████│█████│█████│ Fn3 │Left │Down │Right│█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( ESC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ @@ -93,7 +93,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │ │ │ │█████│█████│█████│ Fn5 │█████│█████│█████│ Fn4 │ │ │ │█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ TRNS, FN6, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, TRNS, \ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN8, END, TRNS, TRNS, \ @@ -112,7 +112,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │ │ │ │█████│█████│█████│ Fn4 │█████│█████│█████│ Fn5 │Home │PgDwn│ End │█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ TRNS, FN7, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, TRNS, \ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN8, END, TRNS, TRNS, \ @@ -131,7 +131,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │ │ │ │█████│█████│█████│ Fn7 │█████│█████│█████│ Fn6 │ │ │ │█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ TRNS, FN4, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, TRNS, \ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN8, END, TRNS, TRNS, \ @@ -150,7 +150,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │ │ │ │█████│█████│█████│ Fn6 │█████│█████│█████│ Fn7 │Home │PgDwn│ End │█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ TRNS, FN5, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, TRNS, \ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN8, END, TRNS, TRNS, \ diff --git a/keyboards/s60_x/keymaps/spacefn/keymap.c b/keyboards/s60_x/keymaps/spacefn/keymap.c index 28369580ede7..3d65bf1faadf 100644 --- a/keyboards/s60_x/keymaps/spacefn/keymap.c +++ b/keyboards/s60_x/keymaps/spacefn/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │LCTRL│L_GUI│L_ALT│█████│█████│█████Spc/Fn0█████│█████│█████│R_ALT│R_GUI│ APP │RCTRL│█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \ @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - LEGACY_KEYMAP( + LAYOUT_legacy( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, DEL, \ TRNS, TRNS, TRNS, ESC, TRNS, TRNS, TRNS, HOME, UP, END, PSCR, SLCK, PAUS, INS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PGUP, LEFT, DOWN, RGHT, TRNS, TRNS, TRNS, TRNS, \ diff --git a/keyboards/s60_x/rgb/rgb.h b/keyboards/s60_x/rgb/rgb.h index cb7a5f567ff1..f3318d91ed03 100644 --- a/keyboards/s60_x/rgb/rgb.h +++ b/keyboards/s60_x/rgb/rgb.h @@ -3,7 +3,7 @@ #include "quantum.h" -#define KEYMAP( \ +#define LAYOUT( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ @@ -20,7 +20,7 @@ /*This special definition is used for S60-X keymaps that were ported from TMK * QMK has a lot of keycodes that don't start with KC_, so using the regular KEYMAP macro is recommended */ -#define LEGACY_KEYMAP( \ +#define LAYOUT_legacy( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ @@ -34,4 +34,4 @@ { KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_NO, KC_##K46, KC_NO, KC_NO, KC_NO, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_NO } \ } -#endif \ No newline at end of file +#endif diff --git a/keyboards/viterbi/keymaps/default/keymap.c b/keyboards/viterbi/keymaps/default/keymap.c index f4f4c932ddb5..eee207c94d01 100644 --- a/keyboards/viterbi/keymaps/default/keymap.c +++ b/keyboards/viterbi/keymaps/default/keymap.c @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Pg Dn|Adjust| Ctrl | Alt | GUI |Lower |Space | |Space |Raise | Left | Down | Up | Right| \ | * `------------------------------------------------' `------------------------------------------------' */ - [_QWERTY] = KC_KEYMAP( + [_QWERTY] = LAYOUT_kc( //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. INS, GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC,DEL , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| @@ -70,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | Next | Vol- | Vol+ | Play | | * `------------------------------------------------' `------------------------------------------------' */ - [_LOWER] = KC_KEYMAP( + [_LOWER] = LAYOUT_kc( //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. ,TILD, F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,F12 , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| @@ -97,7 +97,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | Next | Vol- | Vol+ | Play | | * `------------------------------------------------' `------------------------------------------------' */ - [_RAISE] = KC_KEYMAP( + [_RAISE] = LAYOUT_kc( //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. ,TILD, F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,F12 , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| @@ -111,7 +111,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`----+----+----+----+----+----+----' `----+----+----+----+----+----+----' ), - [_ADJUST] = KEYMAP( + [_ADJUST] = LAYOUT( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, \ _______, _______, RESET , RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, KC_DEL, _______, \ _______, _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, _______, \ diff --git a/keyboards/viterbi/keymaps/drashna/config.h b/keyboards/viterbi/keymaps/drashna/config.h index cc87e813d145..e2576120353c 100644 --- a/keyboards/viterbi/keymaps/drashna/config.h +++ b/keyboards/viterbi/keymaps/drashna/config.h @@ -70,7 +70,7 @@ along with this program. If not, see . L30, L31, L32, L33, L34, L35, L36, \ L40, L41, L42, L43, L44, L45, L46 \ ) \ - KEYMAP( \ + LAYOUT( \ L00, L01, L02, L03, L04, L05, L06, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ L10, L11, L12, L13, L14, L15, L16, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ L20, L21, L22, L23, L24, L25, L26, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ diff --git a/keyboards/viterbi/keymaps/dwallace/keymap.c b/keyboards/viterbi/keymaps/dwallace/keymap.c index d8f2479d591c..24102448287f 100644 --- a/keyboards/viterbi/keymaps/dwallace/keymap.c +++ b/keyboards/viterbi/keymaps/dwallace/keymap.c @@ -42,7 +42,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = KC_KEYMAP( + [_QWERTY] = LAYOUT_kc( //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL ,BSPC, //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| @@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`----+----+----+----+----+----+----' `----+----+----+----+----+----+----' ), - [_FN] = KC_KEYMAP( + [_FN] = LAYOUT_kc( //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,F12 , , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| @@ -66,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| , , , , , , , ,MUTE,VOLD,VOLU, , , , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , , , , , , , , , , , + , , , , , , , , , , , , , //`----+----+----+----+----+----+----' `----+----+----+----+----+----+----' ) diff --git a/keyboards/viterbi/keymaps/fido/keymap.c b/keyboards/viterbi/keymaps/fido/keymap.c index cffc236e1efd..b8ef4600824c 100644 --- a/keyboards/viterbi/keymaps/fido/keymap.c +++ b/keyboards/viterbi/keymaps/fido/keymap.c @@ -33,7 +33,7 @@ extern keymap_config_t keymap_config; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = KC_KEYMAP( + [_QWERTY] = LAYOUT_kc( //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. 1 , 2 , 3 , 4 , 5 , 6 ,ESC , DEL , 7 , 8 , 9 , 0 ,MINS,EQL , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| @@ -43,11 +43,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| BSLS, Z , X , C , V , B ,LSFT, RSFT, N , M ,COMM,DOT ,SLSH,ENT , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - INS ,PSCR,MENU,LGUI,LCTL,SPC ,FN1 , FN1 ,SPC ,RCTL,RALT, , , + INS ,PSCR,MENU,LGUI,LCTL,SPC ,FN1 , FN1 ,SPC ,RCTL,RALT, , , //`----+----+----+----+----+----+----' `----+----+----+----+----+----+----' ), - [_FN] = KC_KEYMAP( + [_FN] = LAYOUT_kc( //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. F1 , F2 , F3 , F4 , F5 , F6 , , , F7 , F8 , F9 ,F10 ,F11 ,F12 , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| @@ -57,7 +57,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| ,CTLZ,CTLX,CTLC,CTLV, , , ,MUTE,VOLD,VOLU, , , , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , , , , , , , , , , , + , , , , , , , , , , , , , //`----+----+----+----+----+----+----' `----+----+----+----+----+----+----' ) diff --git a/keyboards/viterbi/keymaps/hexwire/keymap.c b/keyboards/viterbi/keymaps/hexwire/keymap.c index 5c80f94d5f84..2050c037933f 100644 --- a/keyboards/viterbi/keymaps/hexwire/keymap.c +++ b/keyboards/viterbi/keymaps/hexwire/keymap.c @@ -39,7 +39,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = KC_KEYMAP( + [_QWERTY] = LAYOUT_kc( //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. ESC , 1 , 2 , 3 , 4 , 5 , , 6 , 7 , 8 , 9 , 0 ,BSPC, , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| @@ -49,11 +49,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| LSFT, Z , X , C , V , B , , N , M ,COMM,DOT ,SLSH, X4 , , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - X3 ,LCTL,LALT,LGUI, X1 ,SPC , , BSPC, X2 ,LEFT,DOWN, UP ,RGHT, + X3 ,LCTL,LALT,LGUI, X1 ,SPC , , BSPC, X2 ,LEFT,DOWN, UP ,RGHT, //`----+----+----+----+----+----+----' `----+----+----+----+----+----+----' ), - [_COLEMAK] = KC_KEYMAP( + [_COLEMAK] = LAYOUT_kc( //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. ESC , 1 , 2 , 3 , 4 , 5 , , 6 , 7 , 8 , 9 , 0 ,BSPC, , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| @@ -63,11 +63,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| LSFT, Z , X , C , V , B , , K , M ,COMM,DOT ,SLSH, X4 , , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - X3 ,LCTL,LALT,LGUI, X1 ,SPC , , BSPC, X2 ,LEFT,DOWN, UP ,RGHT, + X3 ,LCTL,LALT,LGUI, X1 ,SPC , , BSPC, X2 ,LEFT,DOWN, UP ,RGHT, //`----+----+----+----+----+----+----' `----+----+----+----+----+----+----' ), - [_DVORAK] = KC_KEYMAP( + [_DVORAK] = LAYOUT_kc( //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. ESC , 1 , 2 , 3 , 4 , 5 , , 6 , 7 , 8 , 9 , 0 ,BSPC, , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| @@ -77,11 +77,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| LSFT,SCLN, Q , J , K , X , , B , M , W , V , Z , X4 , , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - X3 ,LCTL,LALT,LGUI, X1 ,SPC , , BSPC, X2 ,LEFT,DOWN, UP ,RGHT, + X3 ,LCTL,LALT,LGUI, X1 ,SPC , , BSPC, X2 ,LEFT,DOWN, UP ,RGHT, //`----+----+----+----+----+----+----' `----+----+----+----+----+----+----' ), - [_LOWER] = KC_KEYMAP( + [_LOWER] = LAYOUT_kc( //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. TILD,EXLM, AT ,HASH,DLR ,PERC, , CIRC,AMPR,ASTR,LPRN,RPRN,BSPC, , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| @@ -91,11 +91,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| ,CPYP, , ,DOWN,LCBR, , RCBR, P1 , P2 , P3 ,MINS, , , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , , , , , DEL , , P0 ,PDOT, , , + , , , , , , , DEL , , P0 ,PDOT, , , //`----+----+----+----+----+----+----' `----+----+----+----+----+----+----' ), - [_RAISE] = KC_KEYMAP( + [_RAISE] = LAYOUT_kc( //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. TILD,EXLM, AT ,HASH,DLR ,PERC, , CIRC,AMPR,ASTR,LPRN,RPRN,BSPC, , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| @@ -105,11 +105,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| MUTE,MSTP,MPLY,VOLD,PGDN,MINS, , PLUS,END , , , , , , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , , , , , , , , , , , + , , , , , , , , , , , , , //`----+----+----+----+----+----+----' `----+----+----+----+----+----+----' ), - [_FN3] = KC_KEYMAP( + [_FN3] = LAYOUT_kc( //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. F12 , F1 , F2 , F3 , F4 , F5 , , F6 , F7 , F8 , F9 ,F10 ,F11 , , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| @@ -119,7 +119,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| , , , , , , , , , , , , , , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , , , , , , , , , , , + , , , , , , , , , , , , , //`----+----+----+----+----+----+----' `----+----+----+----+----+----+----' ), @@ -134,7 +134,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ - [_ADJUST] = KEYMAP( \ + [_ADJUST] = LAYOUT( \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, RESET , RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, _______, _______, _______, \ _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, \ diff --git a/keyboards/viterbi/rev1/rev1.h b/keyboards/viterbi/rev1/rev1.h index a8210123b3a6..c47b1c4dbb6c 100644 --- a/keyboards/viterbi/rev1/rev1.h +++ b/keyboards/viterbi/rev1/rev1.h @@ -20,7 +20,7 @@ #ifndef FLIP_HALF // Standard Keymap // (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left) -#define KEYMAP( \ +#define LAYOUT( \ L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \ L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \ @@ -42,7 +42,7 @@ #else // Keymap with right side flipped // (TRRS jack on both halves are to the right) -#define KEYMAP( \ +#define LAYOUT( \ L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \ L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \ diff --git a/keyboards/viterbi/viterbi.h b/keyboards/viterbi/viterbi.h index 347423910414..9081dc3d5ab9 100644 --- a/keyboards/viterbi/viterbi.h +++ b/keyboards/viterbi/viterbi.h @@ -6,14 +6,14 @@ #endif // Used to create a keymap using only KC_ prefixed keys -#define KC_KEYMAP( \ +#define LAYOUT_kc( \ L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \ L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \ L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \ L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \ ) \ - KEYMAP( \ + LAYOUT( \ KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##L06, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, KC_##R06, \ KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##L16, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, KC_##R16, \ KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##L26, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, KC_##R26, \ diff --git a/users/losinggeneration/losinggeneration-common.h b/users/losinggeneration/losinggeneration-common.h index 8f5b8b2416fa..c1d6724c5d22 100644 --- a/users/losinggeneration/losinggeneration-common.h +++ b/users/losinggeneration/losinggeneration-common.h @@ -43,7 +43,7 @@ * This will expand values sent to it to send to the KEYMAP macro so defines * can be used by KEYMAP */ -#define CATMAP(...) KEYMAP(__VA_ARGS__) +#define CATMAP(...) LAYOUT(__VA_ARGS__) /* Each layer gets a name for readability, which is then used in the keymap matrix below. From f32e0200ed1613f25223221830e7b1d98f97ba1f Mon Sep 17 00:00:00 2001 From: Jorge Porras Date: Sun, 8 Apr 2018 11:14:41 -0700 Subject: [PATCH 194/578] Normacos keymap for let's split keyboard (#2691) * Cheers let's split keymap * fixed typo on norman layer of cheers keymap for let's split * fixed right handed mappings for home row * cheers keymap for let's split redefinition * updated Cheers keymap for let's split * cheers keymap for let's split updated with some terminal macros * renamed cheers let's split keymap to a more appropriate normacos * updated normacos keymap doc / removed non functional keys * reset let's split rules to default values * added more spotlight search macros * normalized keymap comments * Moved numpad on lower layer --- .../lets_split/keymaps/normacos/config.h | 37 ++++ .../lets_split/keymaps/normacos/keymap.c | 190 ++++++++++++++++++ .../lets_split/keymaps/normacos/readme.md | 85 ++++++++ keyboards/lets_split/rules.mk | 2 +- 4 files changed, 313 insertions(+), 1 deletion(-) create mode 100644 keyboards/lets_split/keymaps/normacos/config.h create mode 100644 keyboards/lets_split/keymaps/normacos/keymap.c create mode 100644 keyboards/lets_split/keymaps/normacos/readme.md diff --git a/keyboards/lets_split/keymaps/normacos/config.h b/keyboards/lets_split/keymaps/normacos/config.h new file mode 100644 index 000000000000..9f95a869df9c --- /dev/null +++ b/keyboards/lets_split/keymaps/normacos/config.h @@ -0,0 +1,37 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ + +// #define MASTER_LEFT +// #define _MASTER_RIGHT +#define EE_HANDS + +#endif diff --git a/keyboards/lets_split/keymaps/normacos/keymap.c b/keyboards/lets_split/keymaps/normacos/keymap.c new file mode 100644 index 000000000000..63c39f1dd00c --- /dev/null +++ b/keyboards/lets_split/keymaps/normacos/keymap.c @@ -0,0 +1,190 @@ +#include "lets_split.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _NORMAN 0 +#define _LOWER 1 +#define _RAISE 2 +#define _ADJUST 3 + +// To be used in process_record_user +enum custom_keycodes { + NORMAN = SAFE_RANGE, + LOWER, + RAISE, + ADJUST, + SH_SUDO, + SH_GOUP, + SH_TERM, + SPOT, + SLACK, + OUTLOOK, + CHROME +}; + +// Fillers (to make layering more clear) +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +// Mod taps +#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift +#define CTL_ESC CTL_T(KC_ESC) // Tap for Escape, hold for Control + +// Custom macros +#define SCN_SHT LSFT(LGUI(KC_4)) // Take a screenshot (MacOS) +#define SCN_LCK LCTL(LGUI(KC_Q)) // Lock screen (MacOS) +#define SH_HOME LCTL(KC_A) // Go to start of line +#define SH_END LCTL(KC_E) // Go to end of line +#define SH_RSCH LCTL(KC_R) // Search command history +#define SH_CLRH LCTL(KC_U) // Erase to beginning of line +#define SH_CLRE LCTL(KC_K) // Erase to end of line + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Norman + * ,-----------------------------------------. ,-----------------------------------------. + * | Tab | Q | W | D | F | K | | J | U | R | L | ; | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |CtlEsc| A | S | E | T | G | | Y | N | I | O | H | ' | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | | P | M | , | . | / |SftEnt| + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Lock | Home | End | Alt | Lower| GUI | | Space| Raise| Left | Down | Up | Right| + * `-----------------------------------------' `-----------------------------------------' + */ +[_NORMAN] = KEYMAP( \ + KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_BSPC, \ + CTL_ESC, KC_A, KC_S, KC_E, KC_T, KC_G, KC_Y, KC_N, KC_I, KC_O, KC_H, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT, \ + SCN_LCK, KC_HOME, KC_END, KC_LALT, LOWER, KC_LGUI, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Lower + * ,-----------------------------------------. ,-----------------------------------------. + * | Tab | F1 | F2 | F3 | F4 | | |NumLck| 7 | 8 | 9 | = | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |CtlEsc| F5 | F6 | F7 | F8 | | | * | 4 | 5 | 6 | + | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Shift| F9 | F10 | F11 | F12 | | | / | 1 | 2 | 3 | - |SftEnt| + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Lock | Home | End | Alt | Lower| GUI | | . | Raise| 0 | Spot |Chrome| | + * `-----------------------------------------' `-----------------------------------------' + */ +[_LOWER] = KEYMAP( \ + _______, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, KC_NLCK, KC_P7, KC_P8, KC_P9, KC_PEQL, _______, \ + _______, KC_F5, KC_F6, KC_F8, KC_F9, XXXXXXX, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_DEL, \ + _______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, KC_PSLS, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, \ + _______, _______, _______, _______, _______, _______, KC_PDOT, _______, KC_P0, SPOT, CHROME, XXXXXXX +), + +/* Raise + * ,-----------------------------------------. ,-----------------------------------------. + * | Tab | ! | @ | # | $ | % | | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |CtlEsc| Sudo | UpDir| Slack| Term | OutLk| | = | - | \ | [ | ] | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Shift|ClrHom|ClrEnd|ShHome| ShEnd|Search| | Play | Mute | VolDn| VolUp|ScnSht|SftEnt| + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Lock | Home | End | Alt | Lower| GUI | | Space| Raise| Left | Down | Up | Right| + * `-----------------------------------------' `-----------------------------------------' + */ +[_RAISE] = KEYMAP( \ + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ + _______, SH_SUDO, SH_GOUP, SLACK, SH_TERM, OUTLOOK, KC_EQL, KC_MINS, KC_BSLS, KC_LBRC, KC_RBRC, KC_GRV, \ + _______, SH_CLRH, SH_CLRE, SH_HOME, SH_END, SH_RSCH, KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, SCN_SHT, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* Adjust (Lower + Raise) + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | Reset| | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | AudOn|AudOff| | |Norman| | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | Lower| | | | Raise| | | | | + * `-----------------------------------------' `-----------------------------------------' + */ +[_ADJUST] = KEYMAP( \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AU_ON, AU_OFF, XXXXXXX, NORMAN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +) + +}; + +#ifdef AUDIO_ENABLE +float tone_norman[][2] = SONG(QWERTY_SOUND); +#endif + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch(keycode) { + case NORMAN: + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_norman); + #endif + persistent_default_layer_set(1UL<<_NORMAN); + return false; + case LOWER: + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + return false; + case RAISE: + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + return false; + case ADJUST: + layer_on(_ADJUST); + return false; + case SH_SUDO: + SEND_STRING("sudo !!"SS_TAP(X_ENTER)); // Elevate last command + return false; + case SH_GOUP: + SEND_STRING("cd .."SS_TAP(X_ENTER)); // Go up a directory + return false; + case SH_TERM: + SEND_STRING(SS_LGUI(SS_TAP(X_SPACE))"terminal"SS_TAP(X_ENTER)); // Open Terminal + return false; + case SPOT: + SEND_STRING(SS_LGUI(SS_TAP(X_SPACE))"spotify app"SS_TAP(X_ENTER)); // Open Spotify + return false; + case SLACK: + SEND_STRING(SS_LGUI(SS_TAP(X_SPACE))"slack"SS_TAP(X_ENTER)); // Open Slack + return false; + case OUTLOOK: + SEND_STRING(SS_LGUI(SS_TAP(X_SPACE))"outlook"SS_TAP(X_ENTER)); // Open Outlook + return false; + case CHROME: + SEND_STRING(SS_LGUI(SS_TAP(X_SPACE))"chrome"SS_TAP(X_ENTER)); // Open Chrome + } + } else { + switch(keycode) { + case LOWER: + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + return false; + case RAISE: + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + return false; + case ADJUST: + layer_off(_ADJUST); + return false; + } + } + return true; +} diff --git a/keyboards/lets_split/keymaps/normacos/readme.md b/keyboards/lets_split/keymaps/normacos/readme.md new file mode 100644 index 000000000000..5ab245bdfd9d --- /dev/null +++ b/keyboards/lets_split/keymaps/normacos/readme.md @@ -0,0 +1,85 @@ +# normacos +This keymap was designed especifically to be used on a MacOS High Sierra system with constant use of the Terminal, as it includes a multitude of macros for both the terminal as well as Spotlight Search. + +Norman keyboard layout [info page.](https://normanlayout.info/) + +Some Norman layout keys were placed on different layers and different positions based on available space. + + +Macros: +- CtlEsc sends Escape when tapped, and Control when held. +- SftEnt sends Enter when tapped, and Shift when held. +- Lock locks the computer +- Slack opens Slack through Spotlight Search +- Term opens Terminal through Spotlight Search +- Spot opens Spotify through Spotlight Search +- Chrome opesn Chrome through Spotlight Search +- OutLk opens Microsoft Outlook through Spotlight Search +- ScnSht allows the user to take a screenshot of a selected portion of the screen +- ClrHom clears Terminal line from beginning of line up to cursor +- ClrEnd clears Terminal line from cursor up to end of line +- ShHome moves Terminal cursor to beginning of line +- ShEnd moves Terminal cursor to end of line +- Search activates Terminal Reverse Search Command History +- Sudo elevates last Terminal command +- UpDir moves working directory to its parent + +Any and all empty keys shown below are will be set in the future, and do nothing as of the time of this writing. + + + +## Default (Norman) +``` +,-----------------------------------------. ,-----------------------------------------. +| Tab | Q | W | D | F | K | | J | U | R | L | ; | Bksp | +|------+------+------+------+------+------| |------+------+------+------+------+------| +|CtlEsc| A | S | E | T | G | | Y | N | I | O | H | ' | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Shift| Z | X | C | V | B | | P | M | , | . | / |SftEnt| +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Lock | Home | End | Alt | Lower| GUI | | Space| Raise| Left | Down | Up | Right| +`-----------------------------------------' `-----------------------------------------' +``` + + +## Lower +``` +,-----------------------------------------. ,-----------------------------------------. +| Tab | F1 | F2 | F3 | F4 | | |NumLck| 7 | 8 | 9 | = | Bksp | +|------+------+------+------+------+------| |------+------+------+------+------+------| +|CtlEsc| F5 | F6 | F7 | F8 | | | * | 4 | 5 | 6 | + | Del | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Shift| F9 | F10 | F11 | F12 | | | / | 1 | 2 | 3 | - |SftEnt| +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Lock | Home | End | Alt | Lower| GUI | | . | Raise| 0 | Spot |Chrome| | +`-----------------------------------------' `-----------------------------------------' +``` + + +## Raise + +``` +,-----------------------------------------. ,-----------------------------------------. +| Tab | ! | @ | # | $ | % | | ^ | & | * | ( | ) | Del | +|------+------+------+------+------+------| |------+------+------+------+------+------| +|CtlEsc| Sudo | UpDir| Slack| Term | OutLk| | = | - | \ | [ | ] | ` | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Shift|ClrHom|ClrEnd|ShHome| ShEnd|Search| | Play | Mute | VolDn| VolUp|ScnSht|SftEnt| +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Lock | Home | End | Alt | Lower| GUI | | Space| Raise| Left | Down | Up | Right| +`-----------------------------------------' `-----------------------------------------' +``` + +## Adjust (Lower + Raise) + +``` +,-----------------------------------------. ,-----------------------------------------. +| | | | | | | | | | | | Reset| | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | | | | AudOn|AudOff| | |Norman| | | | | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | | | | | | | | | | | | | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | | | | Lower| | | | Raise| | | | | +`-----------------------------------------' `-----------------------------------------' +``` diff --git a/keyboards/lets_split/rules.mk b/keyboards/lets_split/rules.mk index f9dc127bc6d1..951723edc5bb 100644 --- a/keyboards/lets_split/rules.mk +++ b/keyboards/lets_split/rules.mk @@ -74,4 +74,4 @@ CUSTOM_MATRIX = yes LAYOUTS = ortho_4x12 -DEFAULT_FOLDER = lets_split/rev2 \ No newline at end of file +DEFAULT_FOLDER = lets_split/rev2 From 955a6586a32b8e39c15938463b1a13a1786f593d Mon Sep 17 00:00:00 2001 From: Enochen Date: Sun, 8 Apr 2018 14:16:08 -0400 Subject: [PATCH 195/578] hhkb jp personal keymap (#2698) --- keyboards/hhkb/keymaps/enoch_jp/keymap.c | 79 ++++++++++++++++++++++++ keyboards/hhkb/keymaps/enoch_jp/rules.mk | 3 + 2 files changed, 82 insertions(+) create mode 100644 keyboards/hhkb/keymaps/enoch_jp/keymap.c create mode 100644 keyboards/hhkb/keymaps/enoch_jp/rules.mk diff --git a/keyboards/hhkb/keymaps/enoch_jp/keymap.c b/keyboards/hhkb/keymaps/enoch_jp/keymap.c new file mode 100644 index 000000000000..4068e579c9e2 --- /dev/null +++ b/keyboards/hhkb/keymaps/enoch_jp/keymap.c @@ -0,0 +1,79 @@ +#include "hhkb.h" +#define _______ KC_TRNS + + +/* Layer 0: HHKB JP +* ,-----------------------------------------------------------. +* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| -| =|Yen|Bsp| +* |-----------------------------------------------------------| +* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | +* |------------------------------------------------------` Ent| +* |Ctrl | A| S| D| F| G| H| J| K| L| ;| '| `| | +* |-----------------------------------------------------------| +* |Shft | Z| X| C| V| B| N| M| ,| .| /| \| Up|Sft| +* |-----------------------------------------------------------| +* | ||Ctl|Alt|Cmd| | Spc |Bsp| | | ||Lft|Dwn|Rgh| +* `-----------------------------------------------------------' +*/ + +/* Layer 1: HHKB mode (HHKB Fn) +* ,-----------------------------------------------------------. +* |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| +* |-----------------------------------------------------------| +* |Caps |MPrev|MPlay|MNext| | | | |Psc|Slk|Pus|Up | | +* |------------------------------------------------------` | +* | |VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig| | | +* |-----------------------------------------------------------| +* | | | | | | | +| -|End|PgD|Dow| | | | +* |-----------------------------------------------------------| +* | || | | | | | | | | || | | | +* `-----------------------------------------------------------' +*/ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = KEYMAP_JP( + 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_GRAVE, KC_BSPC, + 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_DEL, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_BSLS, + KC_BSPC, KC_ZKHK, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_BSPC, KC_RSFT, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = KEYMAP_JP( + _______, 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, + KC_CAPS, KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PSCR, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LEFT, KC_RGHT, _______, KC_PENT, + _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, + _______, _______, _______, _______, _______, _______ , _______, _______, _______, _______, _______, _______, _______ + ) +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + return MACRO_NONE; +}; + +/*void matrix_scan_user(void) { + LEADER_DICTIONARY() { + leading = false; + leader_end(); + + SEQ_ONE_KEY(KC_RSFT) { + register_code(KC_S); + unregister_code(KC_S); + } + SEQ_TWO_KEYS(KC_A, KC_S) { + register_code(KC_H); + unregister_code(KC_H); + } + SEQ_THREE_KEYS(KC_A, KC_S, KC_D) { + register_code(KC_LGUI); + register_code(KC_S); + unregister_code(KC_S); + unregister_code(KC_LGUI); + } + } +}*/ diff --git a/keyboards/hhkb/keymaps/enoch_jp/rules.mk b/keyboards/hhkb/keymaps/enoch_jp/rules.mk new file mode 100644 index 000000000000..d35c58b777dd --- /dev/null +++ b/keyboards/hhkb/keymaps/enoch_jp/rules.mk @@ -0,0 +1,3 @@ +NKRO_ENABLE = yes + +OPT_DEFS += -DHHKB_JP From a33c0949e01b457bb8abc0fead2060d6bf554899 Mon Sep 17 00:00:00 2001 From: Domantas Petrauskas Date: Sun, 8 Apr 2018 21:21:24 +0300 Subject: [PATCH 196/578] Add JJ40 Cockpit personal keymap (#2713) * Add JJ40 Cockpit keymap * Fix lower layer symbols --- keyboards/jj40/keymaps/cockpit/keymap.c | 145 ++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 keyboards/jj40/keymaps/cockpit/keymap.c diff --git a/keyboards/jj40/keymaps/cockpit/keymap.c b/keyboards/jj40/keymaps/cockpit/keymap.c new file mode 100644 index 000000000000..8480f221eb95 --- /dev/null +++ b/keyboards/jj40/keymaps/cockpit/keymap.c @@ -0,0 +1,145 @@ +#include "jj40.h" +#include "action_layer.h" + +#define LT_1 RALT(KC_1) +#define LT_2 RALT(KC_2) +#define LT_3 RALT(KC_3) +#define LT_4 RALT(KC_4) +#define LT_5 RALT(KC_5) +#define LT_6 RALT(KC_6) +#define LT_7 RALT(KC_7) +#define LT_8 RALT(KC_8) +#define LT_9 RALT(KC_9) +#define LT_0 RALT(KC_0) +#define LT_EXLM RALT(KC_EXLM) +#define LT_AT RALT(KC_AT) +#define LT_HASH RALT(KC_HASH) +#define LT_DLR RALT(KC_DLR) +#define LT_PERC RALT(KC_PERC) +#define LT_CIRC RALT(KC_CIRC) +#define LT_AMPR RALT(KC_AMPR) +#define LT_ASTR RALT(KC_ASTR) + +// Naming according to Unicode specifications +#define LT_A_OG KC_1 +#define LT_C_CA KC_2 +#define LT_E_OG KC_3 +#define LT_E_DO KC_4 +#define LT_I_OG KC_5 +#define LT_S_CA KC_6 +#define LT_U_OG KC_7 +#define LT_U_MA KC_8 +#define LT_Z_CA KC_EQL + +// Cockpit bindings +#define CP_LOCK LGUI(KC_L) + +enum jj40_layers { + _QWERTY, + _LOWER, + _RAISE, + _FUNC +}; + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + FUNC +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | | Q | W | E | R | T | Y | U | I | O | P | | + * | Esc | q | w | e | r | t | y | u | i | o | p | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | A | S | D | F | G | H | J | K | L | : | " | + * | Tab | a | s | d | f | g | h | j | k | l | ; | ' | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | Z | X | C | V | B | N | M | < | > | ? | | + * |Shift | z | x | c | v | b | n | m | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * | Ctrl | Fn | GUI | Alt |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = KEYMAP( \ + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ + KC_LCTL, MO(_FUNC), KC_LGUI, KC_LALT, MO(_LOWER), KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + + /* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | Ą | Č | Ę | Ė | Į | Š | Ų | Ū | Ž | _ | | + * | ` | ą | č | ę | ė | į | š | ų | ū | ž | - | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | | | | | | + * | Tab | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | { | } | | | | | | + * |Shift | = | + | - | | | [ | ] | < | > | { | } | Ins | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | |||||||| | | | | | | + * | Ctrl | | | Alt |Lower|| Space | | Home | PgDn | PgUp | End | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = KEYMAP( \ + KC_GRV, LT_A_OG, LT_C_CA, LT_E_OG, LT_E_DO, LT_I_OG, LT_S_CA, LT_U_OG, LT_U_MA, LT_Z_CA, KC_MINS, KC_BSPC, \ + KC_TAB, LT_EXLM, LT_AT, LT_HASH, LT_DLR, LT_PERC, LT_CIRC, LT_AMPR, LT_ASTR, KC_LPRN, KC_RPRN, KC_DEL , \ + KC_LSFT, KC_PEQL, KC_PPLS, KC_PMNS, KC_PIPE, KC_LBRC, KC_RBRC, KC_LABK, KC_RABK, KC_LCBR, KC_RCBR, KC_INS , \ + KC_LCTL, _______, _______, KC_LALT, _______, KC_SPC, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END \ +), + + /* Raise + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | $ | % | ^ | | | | | | | | | | + * | Tab | 4 | 5 | 6 | | | | | | | | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | & | * | ( | ) | | | | < | > | ? | | + * |Shift | 7 | 8 | 9 | 0 | | | | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | |||||||| | | | | + * | Ctrl | | | Alt | | Space |Raise|| Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = KEYMAP( \ + KC_GRV, LT_1, LT_2, LT_3, LT_4, LT_5, LT_6, LT_7, LT_8, LT_9, LT_0, KC_BSPC, \ + KC_TAB, LT_4, LT_5, LT_6, _______, _______, _______, _______, _______, _______, _______, KC_BSLS, \ + KC_LSFT, LT_7, LT_8, LT_9, LT_0, _______, _______, _______, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ + KC_LCTL, _______, _______, KC_LALT, _______, KC_SPC, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + + /* Functions + * Note: Terminal uses Calculator shortcut, change your OS keyboard shortcut appropriately. + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | RGB | RGB | RGB | RGB | BL | BL | BL | | | | | + * | Caps | Togl | Hue+ | Sat+ | Brt+ | Togl |Breath| Brt+ | | | |VolUp | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | RGB | RGB | RGB | WWW | WWW | BL | | | | | + * |Shift | Term | Hue- | Sat- | Brt- | Back | Fwd | Brt- | | |PrScr |VolDn | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | |||||||| RGB | | | | | | | | | + * | Ctrl |||Fn||| Mode | Alt | | Space |MPrev |MStop |MNext |MPlay | Lock | + * `-----------------------------------------------------------------------------------' + */ +[_FUNC] = KEYMAP( \ + 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_CAPS, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, BL_TOGG, BL_BRTG, BL_INC, _______, _______, _______, KC_VOLU, \ + KC_LSFT, KC_CALC, RGB_HUD, RGB_SAD, RGB_VAD, KC_WBAK, KC_WFWD, BL_DEC, _______, _______, KC_PSCR, KC_VOLD, \ + KC_LCTL, _______, RGB_MOD, KC_LALT, _______, KC_SPC, KC_MPRV, KC_MSTP, KC_MNXT, KC_MPLY, CP_LOCK \ +) +}; + +// Loop +void matrix_scan_user(void) { + // Empty +}; From 885f06c6cf3db547533aac406686a4b3e4fb5c80 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Sun, 8 Apr 2018 19:10:14 -0700 Subject: [PATCH 197/578] Add readme for "major" keyboards to eliminate more QMK Configurator errors (#2718) * add readme to ktype keyboard * add readme to m10a * add readme to mini1800 * add readme to parent directory --- keyboards/k_type/readme.md | 13 +++++++++++++ keyboards/lfkeyboards/mini1800/readme.md | 12 ++++++++++++ keyboards/lfkeyboards/readme.md | 8 ++++++++ keyboards/m10a/readme.md | 13 +++++++++++++ 4 files changed, 46 insertions(+) create mode 100644 keyboards/k_type/readme.md create mode 100644 keyboards/lfkeyboards/mini1800/readme.md create mode 100644 keyboards/lfkeyboards/readme.md create mode 100644 keyboards/m10a/readme.md diff --git a/keyboards/k_type/readme.md b/keyboards/k_type/readme.md new file mode 100644 index 000000000000..ad4dd8ad84be --- /dev/null +++ b/keyboards/k_type/readme.md @@ -0,0 +1,13 @@ +# Input Club K-Type + +Firmware for custom keyboard PCB with TKL Key Layout + +Keyboard Maintainer: [Kaleb Elwert](https://github.com/belak) +Hardware Supported: Input Club K-Type +Hardware Availability: [Input Club](https://input.club/k-type/), [Massdrop](https://www.massdrop.com/buy/massdrop-x-input-club-k-type-mechanical-keyboard?utm_source=linkshare&referer=WJJG5M) + +Make example for this keyboard (after setting up your build environment): + + make k_type:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/lfkeyboards/mini1800/readme.md b/keyboards/lfkeyboards/mini1800/readme.md new file mode 100644 index 000000000000..96de85df1dad --- /dev/null +++ b/keyboards/lfkeyboards/mini1800/readme.md @@ -0,0 +1,12 @@ +Mini1800 +=== + +Keyboard Maintainer: [LFKeyboards](https://github.com/lfkeyboards) +Hardware Supported: Mini1800 +Hardware Availability: [LFKeyboards.com](https://www.lfkeyboards.com/) + +Make example for this keyboard (after setting up your build environment): + + make lfkeyboards/mini1800:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/lfkeyboards/readme.md b/keyboards/lfkeyboards/readme.md new file mode 100644 index 000000000000..0fd05adefdd9 --- /dev/null +++ b/keyboards/lfkeyboards/readme.md @@ -0,0 +1,8 @@ +LFKeyboards +=== +This is the parent directory for all LFKeyboard keyboards. + +Keyboard Maintainer: [LFKeyboards](https://github.com/lfkeyboards) +Hardware Availability: [LFKeyboards.com](https://www.lfkeyboards.com/) + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/m10a/readme.md b/keyboards/m10a/readme.md new file mode 100644 index 000000000000..6e48b228571b --- /dev/null +++ b/keyboards/m10a/readme.md @@ -0,0 +1,13 @@ +# Rama Works X Machine Industries M10-A Macropad + +Firmware for custom macropad PCB + +Keyboard Maintainer: QMK Community +Hardware Supported: Rama Works M10-A +Hardware Availability: [Rama Works](https://rama.works/m10-a) + +Make example for this keyboard (after setting up your build environment): + + make m10a:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. From 0545428c1485ac67f13cc6d88cc50b77ee8cc81e Mon Sep 17 00:00:00 2001 From: Matt DiCarlo Date: Wed, 11 Apr 2018 12:17:02 -0500 Subject: [PATCH 198/578] Added mattdicarlo Tada68 layout. (#2721) --- keyboards/tada68/keymaps/mattdicarlo/config.h | 3 +++ keyboards/tada68/keymaps/mattdicarlo/keymap.c | 26 +++++++++++++++++++ .../tada68/keymaps/mattdicarlo/readme.md | 7 +++++ keyboards/tada68/keymaps/mattdicarlo/rules.mk | 21 +++++++++++++++ 4 files changed, 57 insertions(+) create mode 100644 keyboards/tada68/keymaps/mattdicarlo/config.h create mode 100755 keyboards/tada68/keymaps/mattdicarlo/keymap.c create mode 100755 keyboards/tada68/keymaps/mattdicarlo/readme.md create mode 100644 keyboards/tada68/keymaps/mattdicarlo/rules.mk diff --git a/keyboards/tada68/keymaps/mattdicarlo/config.h b/keyboards/tada68/keymaps/mattdicarlo/config.h new file mode 100644 index 000000000000..90589bb54f2b --- /dev/null +++ b/keyboards/tada68/keymaps/mattdicarlo/config.h @@ -0,0 +1,3 @@ +#include "../../config.h" + +#define GRAVE_ESC_ALT_OVERRIDE diff --git a/keyboards/tada68/keymaps/mattdicarlo/keymap.c b/keyboards/tada68/keymaps/mattdicarlo/keymap.c new file mode 100755 index 000000000000..14660cecde28 --- /dev/null +++ b/keyboards/tada68/keymaps/mattdicarlo/keymap.c @@ -0,0 +1,26 @@ +#include "tada68.h" + +// Layer names for readability. +#define BASE_LAYER 0 +#define FUNC_LAYER 1 + +#define _______ KC_TRNS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// Base layer, always active. +[BASE_LAYER] = KEYMAP_ANSI( + KC_GESC, 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_BSPC, KC_HOME, \ + 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_BSLS, KC_END, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_DEL, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, _______, \ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(_FL), _______, KC_LEFT, KC_DOWN, KC_RGHT), + +// Function overlay, toggled by the Fn key. +[FUNC_LAYER] = KEYMAP_ANSI( + KC_GRV, 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_VOLU, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, \ + _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_INC, BL_TOGG, _______, KC_PGUP, _______, \ + _______, _______, KC_MRWD, KC_MPLY, KC_MFFD, _______, _______, KC_HOME, KC_PGDN, KC_END), +}; diff --git a/keyboards/tada68/keymaps/mattdicarlo/readme.md b/keyboards/tada68/keymaps/mattdicarlo/readme.md new file mode 100755 index 000000000000..47f04663c2c1 --- /dev/null +++ b/keyboards/tada68/keymaps/mattdicarlo/readme.md @@ -0,0 +1,7 @@ +# Matt's TADA68 layout + +Mac OS modifier layout, plus various tweaks to the standard Tada68 layout. + +Uses Grave/Esc on the Esc key so that Cmd+Esc works to cycle through application windows as if the Grave/Tilde key was in the usual place, and sets the `GRAVE_ESC_ALT_OVERRIDE` flag so that Cmd-Opt-Esc still opens the Force Quit menu. + +Blanks on the switches above the Right Arrow and in between the Left Arrow and Fn keys, to give the arrow cluster a bit more separation and make it easier to find by feel. diff --git a/keyboards/tada68/keymaps/mattdicarlo/rules.mk b/keyboards/tada68/keymaps/mattdicarlo/rules.mk new file mode 100644 index 000000000000..c92000665084 --- /dev/null +++ b/keyboards/tada68/keymaps/mattdicarlo/rules.mk @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif From 244b1ef79bd0a3f1ff22c312442f86d5716c9c62 Mon Sep 17 00:00:00 2001 From: Jason Barnachea Date: Wed, 11 Apr 2018 10:17:32 -0700 Subject: [PATCH 199/578] Personal keymap added (#2723) Personal keymap added. --- keyboards/rama/m6_a/keymaps/naut/config.h | 24 ++++++++++++++++++++++ keyboards/rama/m6_a/keymaps/naut/keymap.c | 18 ++++++++++++++++ keyboards/rama/m6_a/keymaps/naut/readme.md | 10 +++++++++ 3 files changed, 52 insertions(+) create mode 100644 keyboards/rama/m6_a/keymaps/naut/config.h create mode 100644 keyboards/rama/m6_a/keymaps/naut/keymap.c create mode 100644 keyboards/rama/m6_a/keymaps/naut/readme.md diff --git a/keyboards/rama/m6_a/keymaps/naut/config.h b/keyboards/rama/m6_a/keymaps/naut/config.h new file mode 100644 index 000000000000..7f642203aacf --- /dev/null +++ b/keyboards/rama/m6_a/keymaps/naut/config.h @@ -0,0 +1,24 @@ +/* Copyright 2018 Wilba + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here + +#endif \ No newline at end of file diff --git a/keyboards/rama/m6_a/keymaps/naut/keymap.c b/keyboards/rama/m6_a/keymaps/naut/keymap.c new file mode 100644 index 000000000000..6ef59e01a926 --- /dev/null +++ b/keyboards/rama/m6_a/keymaps/naut/keymap.c @@ -0,0 +1,18 @@ +#include "../../m6_a.h" + +// Define Layers +#define _BASE 0 +#define _FNX 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// Base Layer + [_BASE] = KEYMAP( + TO(1), KC_UP, KC_PGDN, + KC_LEFT,KC_DOWN,KC_RGHT), + +// Fn Layer + [_FNX] = KEYMAP( + TO(0),KC_VOLU,KC_MPLY, + KC_MRWD,KC_VOLD,KC_MFFD) +}; \ No newline at end of file diff --git a/keyboards/rama/m6_a/keymaps/naut/readme.md b/keyboards/rama/m6_a/keymaps/naut/readme.md new file mode 100644 index 000000000000..2166e378315c --- /dev/null +++ b/keyboards/rama/m6_a/keymaps/naut/readme.md @@ -0,0 +1,10 @@ +Naut's Keymap +======= + +Arrows for HHKB and Media keys for M65-A. + +Keymap Maintainer: [Jason Barnachea](https://github.com/nautxx) + +Difference from base layout: Similar. + +Intended usage: Arrows and Media Keys. From 05dcb48aa949ef65b870e9e530556731340aff8e Mon Sep 17 00:00:00 2001 From: Matthew Treadwell Date: Wed, 11 Apr 2018 10:18:36 -0700 Subject: [PATCH 200/578] Added personal keymap (#2727) --- keyboards/levinson/keymaps/treadwell/config.h | 26 +++ keyboards/levinson/keymaps/treadwell/keymap.c | 204 ++++++++++++++++++ keyboards/levinson/keymaps/treadwell/rules.mk | 6 + 3 files changed, 236 insertions(+) create mode 100644 keyboards/levinson/keymaps/treadwell/config.h create mode 100644 keyboards/levinson/keymaps/treadwell/keymap.c create mode 100644 keyboards/levinson/keymaps/treadwell/rules.mk diff --git a/keyboards/levinson/keymaps/treadwell/config.h b/keyboards/levinson/keymaps/treadwell/config.h new file mode 100644 index 000000000000..e6648db1445a --- /dev/null +++ b/keyboards/levinson/keymaps/treadwell/config.h @@ -0,0 +1,26 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#define TAPPING_TERM 150 + +//#undef RGBLED_NUM +//#define RGBLIGHT_ANIMATIONS +//#define RGBLED_NUM 12 +//#define RGBLIGHT_HUE_STEP 8 +//#define RGBLIGHT_SAT_STEP 8 +//#define RGBLIGHT_VAL_STEP 8 + +#endif diff --git a/keyboards/levinson/keymaps/treadwell/keymap.c b/keyboards/levinson/keymaps/treadwell/keymap.c new file mode 100644 index 000000000000..a0d4f4913d70 --- /dev/null +++ b/keyboards/levinson/keymaps/treadwell/keymap.c @@ -0,0 +1,204 @@ +#include "levinson.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _NUMB 3 +#define _CODE 4 +#define _SYS 5 +#define _FN4 6 +#define _ADJUST 16 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + NUMB, + CODE, + SYS, + FN4, + ADJUST, +}; + +#define KC_ KC_TRNS +#define _______ KC_TRNS + +#define KC_CAPW LGUI(LSFT(KC_3)) // Capture whole screen +#define KC_CPYW LGUI(LSFT(LCTL(KC_3))) // Copy whole screen +#define KC_CAPP LGUI(LSFT(KC_4)) // Capture portion of screen +#define KC_CPYP LGUI(LSFT(LCTL(KC_4))) // Copy portion of screen +#define KC_X1 CODE +#define KC_X2 NUMB +#define KC_X3 SYS +#define KC_X4 MT(MOD_LSFT, KC_ENT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = LAYOUT_kc( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + TAB , Q , W , E , R , T , Y , U , I , O , P ,MINS, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + BSPC, A , S , D , F , G , H , J , K , L ,SCLN,QUOT, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + LSFT, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, X4 , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + X3 ,LCTL,LALT,LGUI, X1 ,LALT, SPC , X2 ,LEFT,DOWN, UP ,RGHT + //`----+----+----+----+----+----' `----+----+----+----+----+----' + ), + + [_COLEMAK] = LAYOUT_kc( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + TAB , Q , W , F , P , G , J , L , U , Y ,SCLN,MINS, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + BSPC, A , R , S , T , D , H , N , E , I , O ,QUOT, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + LSFT, Z , X , C , V , B , K , M ,COMM,DOT ,SLSH, X4 , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + X3 ,LCTL,LALT,LGUI, X1 ,LALT, SPC , X2 ,LEFT,DOWN, UP ,RGHT + //`----+----+----+----+----+----' `----+----+----+----+----+----' + ), + + [_DVORAK] = LAYOUT_kc( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + TAB ,QUOT,COMM,DOT , P , Y , F , G , C , R , L ,MINS, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + BSPC, A , O , E , U , I , D , H , T , N , S ,SLSH, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + LSFT,SCLN, Q , J , K , X , B , M , W , V , Z , X4 , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + X3 ,LCTL,LALT,LGUI, X1 ,LALT, SPC , X2 ,LEFT,DOWN, UP ,RGHT + //`----+----+----+----+----+----' `----+----+----+----+----+----' + ), + + [_NUMB] = LAYOUT_kc( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,PMNS, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,UNDS, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , ,MPRV,MPLY,MNXT, , ,VOLD,VOLU,MUTE, , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , ,LALT, , , , , , + //`----+----+----+----+----+----' `----+----+----+----+----+----' + ), + + [_CODE] = LAYOUT_kc( + //,----+------+----+----+----+----. ,----+----+----+----+----+----. + ESC , , , UP , , , PGUP,HOME,LPRN,RPRN,BSLS,PIPE, + //|----+------+----+----+----+----| |----+----+----+----+----+----| + CAPS,SELECT,LEFT,DOWN,RGHT,DEL , PGDN, END,LBRC,RBRC,MINS,UNDS, + //|----+------+----+----+----+----| |----+----+----+----+----+----| + , UNDO ,CUT ,COPY,PASTE, , LEFT,RGHT,LCBR,RCBR,PLUS,PEQL, + //|----+------+----+----+----+----| |----+----+----+----+----+----| + , , , , ,LALT, , , , , , + //`----+------+----+----+----+----' `----+----+----+----+----+----' + ), + + [_SYS] = LAYOUT_kc( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , , , , , , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , , , , , , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , , , , , , + //`----+----+----+----+----+----' `----+----+----+----+----+----' + ), + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset|RGB Tg|RGB Md|Hue Up|Hue Dn|Sat Up|Sat Dn|Val Up|Val Dn| | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_ADJUST] = LAYOUT( \ + _______, RESET , RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, _______, \ + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ) + + +}; + +#ifdef AUDIO_ENABLE +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +#endif + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_qwerty); + #endif + persistent_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_colemak); + #endif + persistent_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_dvorak); + #endif + persistent_default_layer_set(1UL<<_DVORAK); + } + return false; + break; + case NUMB: + if (record->event.pressed) { + layer_on(_NUMB); + update_tri_layer(_NUMB, _CODE, _ADJUST); + } else { + layer_off(_NUMB); + update_tri_layer(_NUMB, _CODE, _ADJUST); + } + return false; + break; + case CODE: + if (record->event.pressed) { + layer_on(_CODE); + update_tri_layer(_NUMB, _CODE, _ADJUST); + } else { + layer_off(_CODE); + update_tri_layer(_NUMB, _CODE, _ADJUST); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + break; + } + return true; +} diff --git a/keyboards/levinson/keymaps/treadwell/rules.mk b/keyboards/levinson/keymaps/treadwell/rules.mk new file mode 100644 index 000000000000..c5e16f13695b --- /dev/null +++ b/keyboards/levinson/keymaps/treadwell/rules.mk @@ -0,0 +1,6 @@ +RGBLIGHT_ENABLE = no +BACKLIGHT_ENABLE = no + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif From 3caf0761cda9ee6d845c49a04f7b90fed78b4fc9 Mon Sep 17 00:00:00 2001 From: Kenta Suzuki Date: Thu, 12 Apr 2018 02:19:06 +0900 Subject: [PATCH 201/578] jj40 Personal keymap added (#2728) * fix: Miss commnts. * edit: Enter position * Add: config.h * Edit: Double space key * fix: Lower and Raise * delete: Not used keys. * edit: change position Lower and Raise * Add: Functions --- keyboards/jj40/keymaps/suzuken/config.h | 9 +++ keyboards/jj40/keymaps/suzuken/jj40.h | 70 +++++++++++++++++ keyboards/jj40/keymaps/suzuken/keymap.c | 100 ++++++++++++++++++++++++ 3 files changed, 179 insertions(+) create mode 100644 keyboards/jj40/keymaps/suzuken/config.h create mode 100644 keyboards/jj40/keymaps/suzuken/jj40.h create mode 100644 keyboards/jj40/keymaps/suzuken/keymap.c diff --git a/keyboards/jj40/keymaps/suzuken/config.h b/keyboards/jj40/keymaps/suzuken/config.h new file mode 100644 index 000000000000..52aaa8f24dce --- /dev/null +++ b/keyboards/jj40/keymaps/suzuken/config.h @@ -0,0 +1,9 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +#define PREVENT_STUCK_MODIFIERS +#define TAPPING_TERM 300 + +#endif diff --git a/keyboards/jj40/keymaps/suzuken/jj40.h b/keyboards/jj40/keymaps/suzuken/jj40.h new file mode 100644 index 000000000000..a6162d9c084f --- /dev/null +++ b/keyboards/jj40/keymaps/suzuken/jj40.h @@ -0,0 +1,70 @@ +/* +Copyright 2017 Luiz Ribeiro + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef KEYMAP_COMMON_H +#define KEYMAP_COMMON_H + +#include "quantum.h" +// #include "keycode.h" +// #include "action.h" + +#define KEYMAP_GRID( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, \ + K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \ + K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \ + K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, K312 \ +) \ +{ \ + { K012, K011, K010, K09, K05, K06, K07, K08, K04, K03, K02, K01 }, \ + { K112, K111, K110, K19, K15, K16, K17, K18, K14, K13, K12, K11 }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K212, K211, K210, K29, K25, K26, K27, K28, K24, K23, K22, K21 }, \ + { K312, K311, K310, K39, K35, K36, K37, K38, K34, K33, K32, K31 } \ +} + +#define KEYMAP_MIT( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, \ + K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \ + K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \ + K31, K32, K33, K34, K35, K3X, K38, K39, K310, K311, K312 \ +) \ +{ \ + { K012, K011, K010, K09, K05, K06, K07, K08, K04, K03, K02, K01 }, \ + { K112, K111, K110, K19, K15, K16, K17, K18, K14, K13, K12, K11 }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K212, K211, K210, K29, K25, K26, K27, K28, K24, K23, K22, K21 }, \ + { K312, K311, K310, K39, K35, K3X, KC_NO, K38, K34, K33, K32, K31 } \ +} + +#define KEYMAP_OFFSET( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, \ + K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \ + K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \ + K31, K32, K33, K34, K35, K36, K3X, K39, K310, K311, K312 \ +) \ +{ \ + { K012, K011, K010, K09, K05, K06, K07, K08, K04, K03, K02, K01 }, \ + { K112, K111, K110, K19, K15, K16, K17, K18, K14, K13, K12, K11 }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K212, K211, K210, K29, K25, K26, K27, K28, K24, K23, K22, K21 }, \ + { K312, K311, K310, K39, K35, K36, K3X, KC_NO, K34, K33, K32, K31 } \ +} + +#define KEYMAP KEYMAP_GRID +#define LAYOUT_ortho_4x12 LAYOUT_planck_grid + +#endif diff --git a/keyboards/jj40/keymaps/suzuken/keymap.c b/keyboards/jj40/keymaps/suzuken/keymap.c new file mode 100644 index 000000000000..10288ac8aee3 --- /dev/null +++ b/keyboards/jj40/keymaps/suzuken/keymap.c @@ -0,0 +1,100 @@ +#include "jj40.h" +#include "action_layer.h" + +enum jj40_layers { + _QWERTY, + _LOWER, + _RAISE, + _FUNC +}; + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + FUNC +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ;: |Enter | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | ,< | .> | /? | '" | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Fn | Ctrl | Alt | GUI |Space |Lower |Raise |Space | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = KEYMAP( \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, \ + MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, MO(_LOWER), MO(_RAISE), KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } |Enter | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = KEYMAP( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_ENT, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, KC_PIPE, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] |Enter | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = KEYMAP( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_ENT, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, KC_BSLS, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +), + +/* Functions + * Note: Terminal uses Calculator shortcut, change your OS keyboard shortcut appropriately. + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | RGB | RGB | RGB | RGB | BL | BL | BL | | | | | + * | | Togl | Hue+ | Sat+ | Brt+ | Togl |Breath| Brt+ | | | |VolUp | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | RGB | RGB | RGB | WWW | WWW | BL | | | | | + * | | Term | Hue- | Sat- | Brt- | Back | Fwd | Brt- | | |PrScr |VolDn | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | |||||||| RGB | | | | | | | | | | + * | |||Fn||| Mode | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_FUNC] = KEYMAP( \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ + _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, BL_TOGG, BL_BRTG, BL_INC, _______, _______, _______, KC_VOLU, \ + _______, KC_CALC, RGB_HUD, RGB_SAD, RGB_VAD, KC_WBAK, KC_WFWD, BL_DEC, _______, _______, KC_PSCR, KC_VOLD, \ + _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +) +}; + +// Loop +void matrix_scan_user(void) { + // Empty +}; From 0c4a6bf2dbeb66fe9b4637874d6bb8ad86e73364 Mon Sep 17 00:00:00 2001 From: Domantas Petrauskas Date: Wed, 11 Apr 2018 20:20:00 +0300 Subject: [PATCH 202/578] Improve JJ40 Cockpit documentation (#2729) * Add JJ40 Cockpit keymap * Fix lower layer symbols * Improve documentation JJ40 Cockpit --- keyboards/jj40/keymaps/cockpit/keymap.c | 4 +- keyboards/jj40/keymaps/cockpit/readme.md | 56 ++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 keyboards/jj40/keymaps/cockpit/readme.md diff --git a/keyboards/jj40/keymaps/cockpit/keymap.c b/keyboards/jj40/keymaps/cockpit/keymap.c index 8480f221eb95..e8534b63d2f5 100644 --- a/keyboards/jj40/keymaps/cockpit/keymap.c +++ b/keyboards/jj40/keymaps/cockpit/keymap.c @@ -122,10 +122,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | * |------+------+------+------+------+-------------+------+------+------+------+------| * | | RGB | RGB | RGB | RGB | BL | BL | BL | | | | | - * | Caps | Togl | Hue+ | Sat+ | Brt+ | Togl |Breath| Brt+ | | | |VolUp | + * | Caps | Togl | Hue+ | Sat+ | Brt+ | Togl |Breath| Brt+ | | | | Vol+ | * |------+------+------+------+------+------|------+------+------+------+------+------| * | | | RGB | RGB | RGB | WWW | WWW | BL | | | | | - * |Shift | Term | Hue- | Sat- | Brt- | Back | Fwd | Brt- | | |PrScr |VolDn | + * |Shift | Term | Hue- | Sat- | Brt- | < | > | Brt- | | |PrScr | Vol- | * |------+------+------+------+------+------+------+------+------+------+------+------| * | |||||||| RGB | | | | | | | | | * | Ctrl |||Fn||| Mode | Alt | | Space |MPrev |MStop |MNext |MPlay | Lock | diff --git a/keyboards/jj40/keymaps/cockpit/readme.md b/keyboards/jj40/keymaps/cockpit/readme.md new file mode 100644 index 000000000000..37bd47b1d9a8 --- /dev/null +++ b/keyboards/jj40/keymaps/cockpit/readme.md @@ -0,0 +1,56 @@ +# Cockpit custom layout + +> This configuration is built around Lithuanian keyboard layout, but you can easily modify it to fit your needs + +## Layers + +### Default QWERTY + +| | | | | | | | | | | | | +| :-------: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :-------: | +|
Esc | Q
q | W
w | E
e | R
r | T
t | Y
y | U
u | I
i | O
o | P
p |
Bksp | +|
Tab | A
a | S
s | D
d | F
f | G
g | H
h | J
j | K
k | L
l | :
; | "
' | +|
Shift | Z
z | X
x | C
c | V
v | B
b | N
n | M
m | <
, | >
. | ?
/ |
Enter | +| Ctrl | Fn | GUI | Alt | Lower | Sp | ace | Raise | Left | Down | Up | Right | + +### Lower + +| | | | | | | | | | | | | +| :-------: | :----: | :----: | :----: | :-------: | :----: | :----: | :----: | :----: | :----: | :-----: | :------: | +| ~
\` | Ą
ą | Č
č | Ę
ę | Ė
ė | Į
į | Š
š | Ų
ų | Ū
ū | Ž
ž | \_
- |
Bksp | +|
Tab |
! |
@ |
# |
$ |
% |
^ |
& |
\* |
( |
) |
Del | +|
Shift |
= |
+ |
- |
\| | {
[ | }
] |
< |
> |
{ |
} |
Ins | +| Ctrl | | | Alt | **Lower** | Sp | ace | | Home | PgDn | PgUp | End | + +### Raise + +| | | | | | | | | | | | | +| :-------: | :----: | :-----: | :----: | :----: | :----: | :----: | :-------: | :-----: | :----: | :----: | :-------: | +| ~
\` | !
1 | @
2 | #
3 | $
4 | %
5 | ^
6 | &
7 | \*
8 | (
9 | )
0 |
Bksp | +|
Tab | $
4 | %
5 | ^
6 | | | | | | | | \|
\ | +|
Shift | &
7 | \*
8 | (
9 | )
0 | | | | <
, | >
. | ?
/ |
Enter | +| Ctrl | | | Alt | | Sp | ace | **Raise** | Left | Down | Up | Right | + +### Function + +* Caps does not work. Might be an issue with my laptop, not JJ40 specific. +* Backlight breathing does not work. +* **Term** button is bound to `Calculator`. I have set this button as a shortcut to open a terminal. +* **Lock** is a shortcut for `Alt + L` + +| | | | | | | | | | | | | +| :-------: | :---------: | :---------: | :---------: | :---------: | :--------: | :----------: | :--------: | :----: | :-----: | :-----: | :------: | +|
F1 |
F2 |
F3 |
F4 |
F5 |
F6 |
F7 |
F8 |
F9 |
F10 |
F11 |
F12 | +|
Caps | RGB
Togl | RGB
Hue+ | RGB
Sat+ | RGB
Brt+ | BL
Togl | BL
Breath | BL
Brt+ | | | |
Vol+ | +|
Shift |
Term | RGB
Hue- | RGB
Sat- | RGB
Brt- | WWW
< | WWW
> | BL
Brt- | | | PrScr |
Vol- | +| Ctrl | **Fn** | RGB
Mode | Alt | | Sp | ace | MPrev | MStop | MNext | MPlay | Lock | + +## Usage + +```bash +cd qmk_firmware +make jj40:cockpit +bootloadHID .build/jj40_cockpit.hex +``` + +_if you're getting permission errors use sudo_ From 4cfd1e30fc320dee84840b7af9ed474a6afcfaa6 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Wed, 11 Apr 2018 15:10:55 -0700 Subject: [PATCH 203/578] More QMK Configurator Warning/Error Fixes (#2720) * Add readme with brief description Change KEYMAP to LAYOUT * Add readme.md with brief description Use LAYOUT macro * add a readme.md file * Add readme.md with brief description Use LAYOUT macro * Add readme.md with brief description Use LAYOUT macro * Fix "Warning: contra: Missing layout pp macro for ['planck_mit', 'planck_grid']", * Use LAYOUT macro --- keyboards/contra/contra.h | 6 +++--- .../handwired/dactyl_manuform/dactyl_manuform.h | 4 ++-- .../dactyl_manuform/keymaps/default/keymap.c | 6 +++--- .../dactyl_manuform/keymaps/dvorak/keymap.c | 6 +++--- .../maartenwut/keymaps/default/keymap.c | 10 +++++----- keyboards/handwired/maartenwut/maartenwut.h | 2 +- keyboards/handwired/maartenwut/readme.md | 13 +++++++++++++ .../handwired/numpad20/keymaps/default/keymap.c | 2 +- keyboards/handwired/numpad20/numpad20.h | 2 +- keyboards/handwired/numpad20/readme.md | 13 +++++++++++++ keyboards/handwired/onekey/readme.md | 15 +++++++++++++++ .../handwired/ortho5x13/keymaps/default/keymap.c | 2 +- keyboards/handwired/ortho5x13/ortho5x13.h | 4 ++-- keyboards/handwired/ortho5x13/readme.md | 13 +++++++++++++ .../terminus_mini/keymaps/default/keymap.c | 16 ++++++++-------- keyboards/handwired/terminus_mini/readme.md | 13 +++++++++++++ .../handwired/terminus_mini/terminus_mini.h | 2 +- layouts/community/ortho_4x12/bakingpy/keymap.c | 12 ++++++------ 18 files changed, 104 insertions(+), 37 deletions(-) create mode 100644 keyboards/handwired/maartenwut/readme.md create mode 100644 keyboards/handwired/numpad20/readme.md create mode 100644 keyboards/handwired/onekey/readme.md create mode 100644 keyboards/handwired/ortho5x13/readme.md create mode 100644 keyboards/handwired/terminus_mini/readme.md diff --git a/keyboards/contra/contra.h b/keyboards/contra/contra.h index 873429b53a00..a27d1ca25164 100755 --- a/keyboards/contra/contra.h +++ b/keyboards/contra/contra.h @@ -27,7 +27,7 @@ { K300, K301, K302, K303, K304, K305, K305, K307, K308, K309, K310, K311 } \ } -#define KC_LAYOUT_grid( \ +#define LAYOUT_kc_grid( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ @@ -39,8 +39,8 @@ KC_##K200, KC_##K201, KC_##K202, KC_##K203, KC_##K204, KC_##K205, KC_##K206, KC_##K207, KC_##K208, KC_##K209, KC_##K210, KC_##K211, \ KC_##K300, KC_##K301, KC_##K302, KC_##K303, KC_##K304, KC_##K305, KC_##K306, KC_##K307, KC_##K308, KC_##K309, KC_##K310, KC_##K311 \ ) -#define KEYMAP LAYOUT_grid +#define LAYOUT LAYOUT_grid #define LAYOUT_ortho_4x12 LAYOUT_grid -#define KC_LAYOUT_ortho_4x12 KC_LAYOUT_grid +#define LAYOUT_kc_ortho_4x12 LAYOUT_kc_grid #endif diff --git a/keyboards/handwired/dactyl_manuform/dactyl_manuform.h b/keyboards/handwired/dactyl_manuform/dactyl_manuform.h index 197909823527..dc865bf64a1c 100644 --- a/keyboards/handwired/dactyl_manuform/dactyl_manuform.h +++ b/keyboards/handwired/dactyl_manuform/dactyl_manuform.h @@ -19,7 +19,7 @@ #ifndef FLIP_HALF -#define KEYMAP( \ +#define LAYOUT( \ L00, L01, L02, L03, L04, R00, R01, R02, R03, R04, \ L10, L11, L12, L13, L14, R10, R11, R12, R13, R14, \ L20, L21, L22, L23, L24, R20, R21, R22, R23, R24, \ @@ -43,7 +43,7 @@ } #else -#define KEYMAP( \ +#define LAYOUT( \ L00, L01, L02, L03, L04, R00, R01, R02, R03, R04, \ L10, L11, L12, L13, L14, R10, R11, R12, R13, R14, \ L20, L21, L22, L23, L24, R20, R21, R22, R23, R24, \ diff --git a/keyboards/handwired/dactyl_manuform/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/keymaps/default/keymap.c index 0a74323ab9d5..8847065f41e0 100644 --- a/keyboards/handwired/dactyl_manuform/keymaps/default/keymap.c +++ b/keyboards/handwired/dactyl_manuform/keymaps/default/keymap.c @@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '------+------' '------+------' */ -[_BASE] = KEYMAP( \ +[_BASE] = LAYOUT( \ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOT, \ @@ -72,7 +72,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '------+------' '------+------' */ -[_NAV] = KEYMAP( \ +[_NAV] = LAYOUT( \ KC_TRNS, KC_TRNS, KC_MS_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ @@ -101,7 +101,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |\(NAV)| ~ | | gui |/(NUM)| * '------+------' '------+------' */ -[_NUM] = KEYMAP( \ +[_NUM] = LAYOUT( \ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, \ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, \ diff --git a/keyboards/handwired/dactyl_manuform/keymaps/dvorak/keymap.c b/keyboards/handwired/dactyl_manuform/keymaps/dvorak/keymap.c index e0852f8e06b2..bee15bfbe363 100644 --- a/keyboards/handwired/dactyl_manuform/keymaps/dvorak/keymap.c +++ b/keyboards/handwired/dactyl_manuform/keymaps/dvorak/keymap.c @@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '------+------' '------+------' */ -[_BASE] = KEYMAP( \ +[_BASE] = LAYOUT( \ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, \ KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, \ KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, \ @@ -72,7 +72,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '------+------' '------+------' */ -[_NAV] = KEYMAP( \ +[_NAV] = LAYOUT( \ KC_TRNS, KC_TRNS, KC_MS_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ @@ -101,7 +101,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |\(NAV)| ~ | | gui |/(NUM)| * '------+------' '------+------' */ -[_NUM] = KEYMAP( \ +[_NUM] = LAYOUT( \ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, \ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, \ diff --git a/keyboards/handwired/maartenwut/keymaps/default/keymap.c b/keyboards/handwired/maartenwut/keymaps/default/keymap.c index 1c9eff9d8190..9152d8ca220c 100755 --- a/keyboards/handwired/maartenwut/keymaps/default/keymap.c +++ b/keyboards/handwired/maartenwut/keymaps/default/keymap.c @@ -13,31 +13,31 @@ #define SPACE LT(_AR, KC_SPC) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_MA] = KEYMAP( +[_MA] = LAYOUT( KC_GRV, 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_BSPC, KC_ESC, 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_BSLS, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_DEL, KC_ENT, LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PSCR, KC_LCTL, KC_LGUI, KC_LALT, MO(_NU), SPACE, KC_SPC, MO(_FL), KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), -[_NU] = KEYMAP( +[_NU] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_CAPS, KC_4, KC_5, KC_6, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_0, _______, _______, _______, _______, _______, _______, _______, _______, _______), -[_FL] = KEYMAP( +[_FL] = LAYOUT( _______, 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_MPLY, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TG(_GA), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -[_GA] = KEYMAP( +[_GA] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SPC, _______, _______, _______, _______, _______, _______), -[_AR] = KEYMAP( +[_AR] = LAYOUT( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/handwired/maartenwut/maartenwut.h b/keyboards/handwired/maartenwut/maartenwut.h index 0e47d6386163..cc237f3c00e4 100755 --- a/keyboards/handwired/maartenwut/maartenwut.h +++ b/keyboards/handwired/maartenwut/maartenwut.h @@ -5,7 +5,7 @@ #define XXX KC_NO -#define KEYMAP( \ +#define LAYOUT( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ diff --git a/keyboards/handwired/maartenwut/readme.md b/keyboards/handwired/maartenwut/readme.md new file mode 100644 index 000000000000..31fc76743c65 --- /dev/null +++ b/keyboards/handwired/maartenwut/readme.md @@ -0,0 +1,13 @@ +# maartenwut handwired + +Custom handwired keyboard for maartenwut. + +Keyboard Maintainer: [Maarten Dekekrs](https://github.com/maartenwut) +Hardware Supported: Custom handwired +Hardware Availability: + +Make example for this keyboard (after setting up your build environment): + + make handwired/maartenwut:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. \ No newline at end of file diff --git a/keyboards/handwired/numpad20/keymaps/default/keymap.c b/keyboards/handwired/numpad20/keymaps/default/keymap.c index 37031206a903..65799bfee41e 100644 --- a/keyboards/handwired/numpad20/keymaps/default/keymap.c +++ b/keyboards/handwired/numpad20/keymaps/default/keymap.c @@ -3,7 +3,7 @@ #define KC_ KC_TRNS const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = COMPACT_KEYMAP( + [0] = LAYOUT( LEFT,RGHT, UP ,DOWN, \ P7 , P8 , P9 ,PLUS, \ P4 , P5 , P6 ,MINS, \ diff --git a/keyboards/handwired/numpad20/numpad20.h b/keyboards/handwired/numpad20/numpad20.h index 191979be0d5b..a2aa8d16bac7 100644 --- a/keyboards/handwired/numpad20/numpad20.h +++ b/keyboards/handwired/numpad20/numpad20.h @@ -3,7 +3,7 @@ #include "quantum.h" -#define COMPACT_KEYMAP( \ +#define LAYOUT( \ K00, K01, K02, K03, \ K10, K11, K12, K13, \ K20, K21, K22, K23, \ diff --git a/keyboards/handwired/numpad20/readme.md b/keyboards/handwired/numpad20/readme.md new file mode 100644 index 000000000000..29c832daf06d --- /dev/null +++ b/keyboards/handwired/numpad20/readme.md @@ -0,0 +1,13 @@ +# numpad20 handwired + +Custom handwired 20 key numpad. + +Keyboard Maintainer: [Danny](https://github.com/nooges) +Hardware Supported: Custom handwired 20 key numpad +Hardware Availability: + +Make example for this keyboard (after setting up your build environment): + + make handwired/numpad20:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. \ No newline at end of file diff --git a/keyboards/handwired/onekey/readme.md b/keyboards/handwired/onekey/readme.md new file mode 100644 index 000000000000..c28e284f327a --- /dev/null +++ b/keyboards/handwired/onekey/readme.md @@ -0,0 +1,15 @@ +# onekey handwired + +Custom handwired one key keyboard. + +Keyboard Maintainer: +Hardware Supported: Custom handwired one key +Hardware Availability: + +Switch must be connected to pins B0 and D0. + +Make example for this keyboard (after setting up your build environment): + + make handwired/onekey:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. \ No newline at end of file diff --git a/keyboards/handwired/ortho5x13/keymaps/default/keymap.c b/keyboards/handwired/ortho5x13/keymaps/default/keymap.c index afed1892a245..0d5d0c430b3a 100644 --- a/keyboards/handwired/ortho5x13/keymaps/default/keymap.c +++ b/keyboards/handwired/ortho5x13/keymaps/default/keymap.c @@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Hyper| Ctrl | Alt | GUI |Lower | Space |Raise | Bksp |Shift | Left | Down |Right | * `------------------------------------------------------------------------------------------' */ -[_QWERTY] = COMPACT_KEYMAP( +[_QWERTY] = LAYOUT_compact( //,----+----+----+----+----+----+----+----+----+----+----+----+----. ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL , //|----+----+----+----+----+----+----+----+----+----+----+----+----| diff --git a/keyboards/handwired/ortho5x13/ortho5x13.h b/keyboards/handwired/ortho5x13/ortho5x13.h index d442212fe9b8..93551bd70b2d 100644 --- a/keyboards/handwired/ortho5x13/ortho5x13.h +++ b/keyboards/handwired/ortho5x13/ortho5x13.h @@ -3,7 +3,7 @@ #include "quantum.h" -#define KEYMAP( \ +#define LAYOUT( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ @@ -18,7 +18,7 @@ { k40, k41, k42, k43, k44, k45, KC_NO, k47, k48, k49, k4a, k4b, k4c } \ } -#define COMPACT_KEYMAP( \ +#define LAYOUT_compact( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ diff --git a/keyboards/handwired/ortho5x13/readme.md b/keyboards/handwired/ortho5x13/readme.md new file mode 100644 index 000000000000..7241ddae8a80 --- /dev/null +++ b/keyboards/handwired/ortho5x13/readme.md @@ -0,0 +1,13 @@ +# ortho5x13 handwired + +Custom handwired ortho5x13 keyboard. + +Keyboard Maintainer: [Danny](https://github.com/nooges) +Hardware Supported: Custom handwired 5x13 ortho keyboard +Hardware Availability: + +Make example for this keyboard (after setting up your build environment): + + make handwired/ortho5x13:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. \ No newline at end of file diff --git a/keyboards/handwired/terminus_mini/keymaps/default/keymap.c b/keyboards/handwired/terminus_mini/keymaps/default/keymap.c index ccfd01bfae92..1c4af5f46a52 100644 --- a/keyboards/handwired/terminus_mini/keymaps/default/keymap.c +++ b/keyboards/handwired/terminus_mini/keymaps/default/keymap.c @@ -84,7 +84,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl| LGUI | Lower| LAlt | Space/Lower | Enter/Raise | Fn | Mouse| Menu | Ctrl | * `----------------------------------------------------------------------------------' */ -[_COLEMAK] = TERMINUS_MINI( +[_COLEMAK] = LAYOUT( KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL , \ KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, \ @@ -102,7 +102,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl| LGUI | Lower| LAlt | Space/Lower | Enter/Raise | Fn | Mouse| Menu | Ctrl | * `----------------------------------------------------------------------------------' */ -[_QWERTY] = TERMINUS_MINI( +[_QWERTY] = LAYOUT( KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL , \ KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, \ @@ -120,7 +120,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | LGUI | Lower| LAlt | Space/Lower | Enter/Raise | Fn | Mouse| Menu |Ctrl | * `-----------------------------------------------------------------------------------' */ -[_DVORAK] = TERMINUS_MINI( +[_DVORAK] = LAYOUT( KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL, \ KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ KC_LSPO, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSPC, \ @@ -140,7 +140,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { Want to add tap-dance function to 0 key: Tap=0, doubleTap=Ent */ -[_LOWER] = TERMINUS_MINI( +[_LOWER] = LAYOUT( KC_TAB, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_PSLS, KC_7, KC_8, KC_9, KC_PAST, XXXXXXX, _______, \ _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_MINS, KC_4, KC_5, KC_6, KC_PPLS, XXXXXXX, _______, \ _______, _______, _______, _______, _______, KC_EQL, KC_1, KC_2, KC_3, KC_PENT, XXXXXXX, _______, \ @@ -159,7 +159,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ -[_RAISE] = TERMINUS_MINI( +[_RAISE] = LAYOUT( KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_EQL, _______, \ _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \ _______, POINT, PIPE, KC_LCBR, KC_LBRC, KC_GRV, KC_BSLS, KC_RBRC, KC_RCBR, KC_DOT, KC_SLSH, _______, \ @@ -178,7 +178,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ -[_FUNCTION] = TERMINUS_MINI( +[_FUNCTION] = LAYOUT( _______, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_INS , \ KC_CAPS, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_PSCR, \ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, KC_SLCK, \ @@ -197,7 +197,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `---------------------------------------------------------------------------------------' */ -[_MOUSE] = TERMINUS_MINI( +[_MOUSE] = LAYOUT( KC_ESC, KC_WH_U, KC_WH_L, KC_MS_U, KC_WH_R, XXXXXXX, XXXXXXX, KC_BTN3, KC_BTN4, KC_BTN5, XXXXXXX, XXXXXXX, \ KC_BSPC, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, \ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RSPC, \ @@ -216,7 +216,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = TERMINUS_MINI( +[_ADJUST] = LAYOUT( _______, _______, _______, _______, _______, RESET, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, \ _______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ diff --git a/keyboards/handwired/terminus_mini/readme.md b/keyboards/handwired/terminus_mini/readme.md new file mode 100644 index 000000000000..94249d6a96ec --- /dev/null +++ b/keyboards/handwired/terminus_mini/readme.md @@ -0,0 +1,13 @@ +# terminus_mini handwired + +Custom handwired keyboard. + +Keyboard Maintainer: [James Morgan](https://github.com/mogranjm) +Hardware Supported: Custom handwired keyboard +Hardware Availability: + +Make example for this keyboard (after setting up your build environment): + + make handwired/terminus_mini:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. \ No newline at end of file diff --git a/keyboards/handwired/terminus_mini/terminus_mini.h b/keyboards/handwired/terminus_mini/terminus_mini.h index 44590a191eb6..846c98e2c087 100644 --- a/keyboards/handwired/terminus_mini/terminus_mini.h +++ b/keyboards/handwired/terminus_mini/terminus_mini.h @@ -22,7 +22,7 @@ // The following is an example using the Terminus Mini layout // The first section contains all of the arguments // The second converts the arguments into a two-dimensional array -#define TERMINUS_MINI( \ +#define LAYOUT( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ diff --git a/layouts/community/ortho_4x12/bakingpy/keymap.c b/layouts/community/ortho_4x12/bakingpy/keymap.c index d3822bfd80ef..05ad92fd2d0f 100644 --- a/layouts/community/ortho_4x12/bakingpy/keymap.c +++ b/layouts/community/ortho_4x12/bakingpy/keymap.c @@ -37,7 +37,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = KC_LAYOUT_ortho_4x12( + [_QWERTY] = LAYOUT_kc_ortho_4x12( //,----+----+----+----+----+----. ,----+----+----+----+----+----. TAB , Q , W , E , R , T , Y , U , I , O , P ,MINS, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_COLEMAK] = KC_LAYOUT_ortho_4x12( + [_COLEMAK] = LAYOUT_kc_ortho_4x12( //,----+----+----+----+----+----. ,----+----+----+----+----+----. TAB , Q , W , F , P , G , J , L , U , Y ,SCLN,MINS, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_DVORAK] = KC_LAYOUT_ortho_4x12( + [_DVORAK] = LAYOUT_kc_ortho_4x12( //,----+----+----+----+----+----. ,----+----+----+----+----+----. TAB ,QUOT,COMM,DOT , P , Y , F , G , C , R , L ,MINS, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -73,7 +73,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_LOWER] = KC_LAYOUT_ortho_4x12( + [_LOWER] = LAYOUT_kc_ortho_4x12( //,----+----+----+----+----+----. ,----+----+----+----+----+----. , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -85,7 +85,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_RAISE] = KC_LAYOUT_ortho_4x12( + [_RAISE] = LAYOUT_kc_ortho_4x12( //,----+----+----+----+----+----. ,----+----+----+----+----+----. ,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN, , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -97,7 +97,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_FKEYS] = KC_LAYOUT_ortho_4x12( + [_FKEYS] = LAYOUT_kc_ortho_4x12( //,----+----+----+----+----+----. ,----+----+----+----+----+----. F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 , //|----+----+----+----+----+----| |----+----+----+----+----+----| From e8082b5f9ecc8cc000823091273576ae58c8411f Mon Sep 17 00:00:00 2001 From: Cole Markham Date: Thu, 18 Jan 2018 22:59:00 -0600 Subject: [PATCH 204/578] Add support for NovelPad/NumChoc by NovelKeys and Woodkeys --- keyboards/novelpad/config.h | 68 +++++++++++ keyboards/novelpad/keymaps/default/keymap.c | 127 ++++++++++++++++++++ keyboards/novelpad/novelpad.c | 17 +++ keyboards/novelpad/novelpad.h | 36 ++++++ keyboards/novelpad/readme.md | 15 +++ keyboards/novelpad/rules.mk | 56 +++++++++ 6 files changed, 319 insertions(+) create mode 100755 keyboards/novelpad/config.h create mode 100755 keyboards/novelpad/keymaps/default/keymap.c create mode 100755 keyboards/novelpad/novelpad.c create mode 100755 keyboards/novelpad/novelpad.h create mode 100644 keyboards/novelpad/readme.md create mode 100755 keyboards/novelpad/rules.mk diff --git a/keyboards/novelpad/config.h b/keyboards/novelpad/config.h new file mode 100755 index 000000000000..0d6a7134332c --- /dev/null +++ b/keyboards/novelpad/config.h @@ -0,0 +1,68 @@ +/* +Copyright 2018 Cole Markham + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6070 +#define DEVICE_VER 0x0001 +#define MANUFACTURER NovelKeys.xyz +#define PRODUCT Novelpad +#define DESCRIPTION 5x4 Hotswap MX numpad + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 4 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { C2, C4, C5, C6, C7 } +#define MATRIX_COL_PINS { D7, D6, D5, D4 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + false \ +) + +/* prevent stuck modifiers */ +#define PREVENT_STUCK_MODIFIERS + +#define BACKLIGHT_LEVELS 10 +#define BACKLIGHT_PIN B7 + +#ifdef RGBLIGHT_ENABLE +#define RGB_DI_PIN D3 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 4 +#endif + +#endif diff --git a/keyboards/novelpad/keymaps/default/keymap.c b/keyboards/novelpad/keymaps/default/keymap.c new file mode 100755 index 000000000000..59cc1adc8632 --- /dev/null +++ b/keyboards/novelpad/keymaps/default/keymap.c @@ -0,0 +1,127 @@ +/* +Copyright 2018 Cole Markham + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +enum custom_keycodes { + BL = SAFE_RANGE, + WK_RED, + WK_GREEN, + WK_BLUE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +KEYMAP( + KC_NLCK, KC_PSLS, KC_PAST, KC_ESC, + KC_P7, KC_P8, KC_P9, KC_PMNS, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_TAB, + MO(1), KC_P0, KC_PDOT, KC_ENT), + +KEYMAP( + KC_TRNS, BL, RGB_MODE_SWIRL, RESET, \ + RGB_TOG, RGB_MOD, RGB_MODE_PLAIN, RGB_MODE_SNAKE, \ + RGB_HUI, RGB_SAI, RGB_VAI, RGB_MODE_KNIGHT, \ + RGB_HUD , RGB_SAD, RGB_VAD, RGB_MODE_XMAS, \ + KC_TRNS, WK_RED, WK_GREEN, WK_BLUE \ + ), + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + return MACRO_NONE ; +} + +void matrix_init_user(void) { + + rgblight_setrgb(0,255,0); +} + +void matrix_scan_user(void) { +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case BL: + if (record->event.pressed) { +#ifdef BACKLIGHT_ENABLE + backlight_step(); +#endif + } + return false; + break; + case WK_RED: + if (record->event.pressed) { + rgblight_show_solid_color(0xFF, 0, 0); + } else { + rgblight_show_solid_color(0xFF, 0xFF, 0xFF); + } + return false; + break; + case WK_GREEN: + if (record->event.pressed) { + rgblight_show_solid_color(0, 0xFF, 0); + } else { + rgblight_show_solid_color(0xFF, 0xFF, 0xFF); + } + return false; + break; + case WK_BLUE: + if (record->event.pressed) { + rgblight_show_solid_color(0, 0, 0xFF); + } else { + rgblight_show_solid_color(0xFF, 0xFF, 0xFF); + } + return false; + break; + } + return true; +} + +void led_set_user(uint8_t usb_led) { + + if (usb_led & (1 << USB_LED_NUM_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_COMPOSE)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_KANA)) { + + } else { + + } + +} diff --git a/keyboards/novelpad/novelpad.c b/keyboards/novelpad/novelpad.c new file mode 100755 index 000000000000..719cb89d6a53 --- /dev/null +++ b/keyboards/novelpad/novelpad.c @@ -0,0 +1,17 @@ +/* +Copyright 2018 Cole Markham + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include "novelpad.h" diff --git a/keyboards/novelpad/novelpad.h b/keyboards/novelpad/novelpad.h new file mode 100755 index 000000000000..079dc30c53e4 --- /dev/null +++ b/keyboards/novelpad/novelpad.h @@ -0,0 +1,36 @@ +/* +Copyright 2018 Cole Markham + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#ifndef KB_H +#define KB_H + +#include "quantum.h" + +#define KEYMAP( \ + K00, K01, K02, K03, \ + K10, K11, K12, K13, \ + K20, K21, K22, K23, \ + K30, K31, K32, K33, \ + K40, K41, K42, K43 \ +) { \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, K33 }, \ + { K40, K41, K42, K43 } \ +} + +#endif diff --git a/keyboards/novelpad/readme.md b/keyboards/novelpad/readme.md new file mode 100644 index 000000000000..b743b92049e5 --- /dev/null +++ b/keyboards/novelpad/readme.md @@ -0,0 +1,15 @@ +# NovelPad/NumChoc + +![NovelPad](https://i.imgur.com/vi4EdSh.jpg?1) + +A 5x4 macropad/numpad, sold by NovelKeys.xyz. There are two versions of the PCB, the NovelPad for MX switches and the NumChoc for Kailh Choc low profile switches. Both utilize the same firmware with no changes required. + +Keyboard Maintainer: [Cole Markham](https://github.com/colemarkham) / [Woodkeys.click](https://woodkeys.click) +Hardware Supported: NovelPad +Hardware Availability: [Novelkeys.xyz](https://novelkeys.xyz) + +Make example for this keyboard (after setting up your build environment): + + make novelpad:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/novelpad/rules.mk b/keyboards/novelpad/rules.mk new file mode 100755 index 000000000000..d90dd6265e50 --- /dev/null +++ b/keyboards/novelpad/rules.mk @@ -0,0 +1,56 @@ +# MCU name +MCU = atmega32u2 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # In-switch LEDs +AUDIO_ENABLE = no # There is no available timer or pin for audio on the NovelPad +RGBLIGHT_ENABLE = yes # RGB LEDs for underglow, installed and enabled by default for the NovelPad \ No newline at end of file From 6982e63a4a0ac7832648583a20f082cb913a96e6 Mon Sep 17 00:00:00 2001 From: fauxpark Date: Wed, 11 Apr 2018 10:04:54 +1000 Subject: [PATCH 205/578] Tabs to spaces in usb_descriptor.h --- tmk_core/protocol/usb_descriptor.h | 34 +++++++++++++++--------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/tmk_core/protocol/usb_descriptor.h b/tmk_core/protocol/usb_descriptor.h index 192bb6ef3a33..586d07df627c 100644 --- a/tmk_core/protocol/usb_descriptor.h +++ b/tmk_core/protocol/usb_descriptor.h @@ -117,17 +117,17 @@ typedef struct #ifdef VIRTSER_ENABLE USB_Descriptor_Interface_Association_t CDC_Interface_Association; - // CDC Control Interface - USB_Descriptor_Interface_t CDC_CCI_Interface; - USB_CDC_Descriptor_FunctionalHeader_t CDC_Functional_Header; - USB_CDC_Descriptor_FunctionalACM_t CDC_Functional_ACM; - USB_CDC_Descriptor_FunctionalUnion_t CDC_Functional_Union; - USB_Descriptor_Endpoint_t CDC_NotificationEndpoint; - - // CDC Data Interface - USB_Descriptor_Interface_t CDC_DCI_Interface; - USB_Descriptor_Endpoint_t CDC_DataOutEndpoint; - USB_Descriptor_Endpoint_t CDC_DataInEndpoint; + // CDC Control Interface + USB_Descriptor_Interface_t CDC_CCI_Interface; + USB_CDC_Descriptor_FunctionalHeader_t CDC_Functional_Header; + USB_CDC_Descriptor_FunctionalACM_t CDC_Functional_ACM; + USB_CDC_Descriptor_FunctionalUnion_t CDC_Functional_Union; + USB_Descriptor_Endpoint_t CDC_NotificationEndpoint; + + // CDC Data Interface + USB_Descriptor_Interface_t CDC_DCI_Interface; + USB_Descriptor_Endpoint_t CDC_DataOutEndpoint; + USB_Descriptor_Endpoint_t CDC_DataInEndpoint; #endif } USB_Descriptor_Configuration_t; @@ -139,9 +139,9 @@ typedef struct // interface number, to support Linux/OSX platforms and chrome.hid // If Raw HID is enabled, let it be always 1. #ifdef RAW_ENABLE -# define RAW_INTERFACE (KEYBOARD_INTERFACE + 1) +# define RAW_INTERFACE (KEYBOARD_INTERFACE + 1) #else -# define RAW_INTERFACE KEYBOARD_INTERFACE +# define RAW_INTERFACE KEYBOARD_INTERFACE #endif #ifdef MOUSE_ENABLE @@ -240,13 +240,13 @@ typedef struct #ifdef VIRTSER_ENABLE # define CDC_NOTIFICATION_EPNUM (MIDI_STREAM_OUT_EPNUM + 1) -# define CDC_IN_EPNUM (MIDI_STREAM_OUT_EPNUM + 2) -# define CDC_OUT_EPNUM (MIDI_STREAM_OUT_EPNUM + 3) +# define CDC_IN_EPNUM (MIDI_STREAM_OUT_EPNUM + 2) +# define CDC_OUT_EPNUM (MIDI_STREAM_OUT_EPNUM + 3) # define CDC_NOTIFICATION_EPADDR (ENDPOINT_DIR_IN | CDC_NOTIFICATION_EPNUM) # define CDC_IN_EPADDR (ENDPOINT_DIR_IN | CDC_IN_EPNUM) # define CDC_OUT_EPADDR (ENDPOINT_DIR_OUT | CDC_OUT_EPNUM) #else -# define CDC_OUT_EPNUM MIDI_STREAM_OUT_EPNUM +# define CDC_OUT_EPNUM MIDI_STREAM_OUT_EPNUM #endif #if (defined(PROTOCOL_LUFA) && CDC_OUT_EPNUM > (ENDPOINT_TOTAL_ENDPOINTS - 1)) || \ @@ -257,7 +257,7 @@ typedef struct #define KEYBOARD_EPSIZE 8 #define MOUSE_EPSIZE 8 #define EXTRAKEY_EPSIZE 8 -#define RAW_EPSIZE 32 +#define RAW_EPSIZE 32 #define CONSOLE_EPSIZE 32 #define NKRO_EPSIZE 32 #define MIDI_STREAM_EPSIZE 64 From 3d3716bbf7a7615da237e6a95f6a4684ae8fac44 Mon Sep 17 00:00:00 2001 From: Phil Date: Fri, 6 Apr 2018 14:01:24 -0400 Subject: [PATCH 206/578] Beginning implementation of Pearl backlight. Levels and breathing not working yet. --- keyboards/pearl/config.h | 2 + keyboards/pearl/keymaps/phil/keymap.c | 88 +++++++++++++++++++++++++++ keyboards/pearl/pearl.c | 14 +++++ keyboards/pearl/rules.mk | 2 +- 4 files changed, 105 insertions(+), 1 deletion(-) create mode 100755 keyboards/pearl/keymaps/phil/keymap.c diff --git a/keyboards/pearl/config.h b/keyboards/pearl/config.h index 47a732f7680b..9f7a148f9839 100644 --- a/keyboards/pearl/config.h +++ b/keyboards/pearl/config.h @@ -31,6 +31,8 @@ along with this program. If not, see . #define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 12 +#define BACKLIGHT_LEVELS 1 + #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/pearl/keymaps/phil/keymap.c b/keyboards/pearl/keymaps/phil/keymap.c new file mode 100755 index 000000000000..a28fecd26217 --- /dev/null +++ b/keyboards/pearl/keymaps/phil/keymap.c @@ -0,0 +1,88 @@ +/* +Copyright 2017 Luiz Ribeiro + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +// Layer shorthand +#define COLEMAK 0 +#define QWERTY 1 +#define WIN 2 +#define _FN1 3 +#define _FN2 4 +#define LIGHT 5 + +#include "pearl.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [COLEMAK] = KEYMAP( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_NO, KC_BSPC, + LGUI_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + LSFT_T(KC_DEL), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT), + KC_LCTL, KC_LGUI, KC_LALT, LT(_FN1, KC_SPC), KC_NO, LT(_FN2, KC_SPC), TG(QWERTY), TG(WIN) + ), + [QWERTY] = KEYMAP( + KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_NO, KC_TRNS, + KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_TRNS, + KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS + ), + [WIN] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, + LCTL_T(KC_ESC), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LGUI, KC_LALT, KC_LCTL, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS + ), + [_FN1] = KEYMAP( + KC_GRV, KC_MNXT, KC_NO, KC_PIPE, KC_PLUS, KC_LBRC, KC_RBRC, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_TRNS, + KC_TRNS, KC_MPLY, KC_SPC, KC_UNDS, KC_EQUAL, KC_LPRN, KC_RPRN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDOWN, KC_TRNS, + KC_TRNS, KC_MPRV, KC_NO, KC_BSLS, KC_MINUS, KC_LCBR, KC_RCBR, KC_NO, KC_MUTE, KC_VOLU, KC_VOLD, KC_CAPS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS + ), + [_FN2] = KEYMAP( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LBRC, KC_RBRC, KC_NO, KC_TRNS, + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F9, KC_F10, KC_F11, KC_F12, KC_CAPS, + TG(LIGHT), KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS + ), + [LIGHT] = KEYMAP( + RESET, KC_NO, BL_ON, BL_INC, BL_BRTG, RGB_M_P, RGB_M_B, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_NO, + KC_NO, KC_NO, BL_TOGG, BL_STEP, KC_NO, RGB_M_SN, RGB_M_K, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, KC_NO, + KC_NO, KC_NO, BL_OFF, BL_DEC, KC_NO, KC_NO, KC_NO, RGB_RMOD, RGB_M_SW, RGB_M_R, RGB_M_G, KC_NO, + TG(LIGHT), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ), +}; + +uint32_t layer_state_set_kb(uint32_t state) { + if (state & (1<. #include "pearl.h" #include "rgblight.h" +#include "backlight.h" #include @@ -39,6 +40,19 @@ void rgblight_set(void) { i2c_send(0xb0, (uint8_t*)led, 3 * RGBLED_NUM); } +void backlight_init_ports(void) { + DDRD |= (1<<4); + PORTD &= ~(1<<4); +} + +void backlight_set(uint8_t level) { + if (level > 0) { + PORTD |= (1<<4); + } else { + PORTD &= ~(1<<4); + } +} + __attribute__ ((weak)) void matrix_scan_user(void) { rgblight_task(); diff --git a/keyboards/pearl/rules.mk b/keyboards/pearl/rules.mk index 9165de4248ec..c5b61c6d392e 100644 --- a/keyboards/pearl/rules.mk +++ b/keyboards/pearl/rules.mk @@ -36,7 +36,7 @@ MOUSEKEY_ENABLE = yes EXTRAKEY_ENABLE = yes CONSOLE_ENABLE = yes COMMAND_ENABLE = yes -BACKLIGHT_ENABLE = no +BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes RGBLIGHT_CUSTOM_DRIVER = yes From f10a0ae54730d8f0c21cf608bd7a6dfeb747583b Mon Sep 17 00:00:00 2001 From: skullY Date: Wed, 11 Apr 2018 11:32:57 -0700 Subject: [PATCH 207/578] Remove bootloader from info.jsons --- keyboards/1up60rgb/info.json | 1 - keyboards/amj96/info.json | 1 - keyboards/chimera_ortho/info.json | 3 --- keyboards/christmas_tree/info.json | 1 - keyboards/clueboard/2x1800/info.json | 1 - keyboards/clueboard/60/info.json | 1 - keyboards/clueboard/66/info.json | 1 - keyboards/clueboard/66_hotswap/info.json | 1 - keyboards/contra/info.json | 1 - keyboards/deltasplit75/info.json | 1 - keyboards/dz60/info.json | 1 - keyboards/e6v2/info.json | 1 - keyboards/eagle_viper/info.json | 1 - keyboards/ergodox_ez/info.json | 1 - keyboards/ergodox_infinity/info.json | 1 - keyboards/gh60/info.json | 1 - keyboards/iris/info.json | 1 - keyboards/jc65/v32a/info.json | 1 - keyboards/jc65/v32u4/info.json | 1 - keyboards/kbd75/info.json | 1 - keyboards/kc60/info.json | 1 - keyboards/octagon/v1/info.json | 1 - keyboards/octagon/v2/info.json | 1 - keyboards/orthodox/rev1/info.json | 1 - keyboards/orthodox/rev3/info.json | 1 - keyboards/orthodox/rev3_teensy/info.json | 1 - keyboards/phantom/info.json | 1 - keyboards/planck/info.json | 1 - keyboards/planck/light/info.json | 1 - keyboards/preonic/info.json | 1 - keyboards/sweet16/info.json | 1 - keyboards/tada68/info.json | 1 - keyboards/tkc1800/info.json | 1 - keyboards/tv44/info.json | 1 - keyboards/v60_type_r/info.json | 1 - keyboards/whitefox/info.json | 2 -- keyboards/xd60/info.json | 2 -- 37 files changed, 41 deletions(-) diff --git a/keyboards/1up60rgb/info.json b/keyboards/1up60rgb/info.json index 5fcb6cab3596..d92164444d56 100644 --- a/keyboards/1up60rgb/info.json +++ b/keyboards/1up60rgb/info.json @@ -2,7 +2,6 @@ "keyboard_name": "1up60rgb", "url": "", "maintainer": "qmk", - "bootloader": "atmel-dfu", "width": 15, "height": 5, "layouts": { diff --git a/keyboards/amj96/info.json b/keyboards/amj96/info.json index a8fb7d2ae0e9..ac399adbde41 100644 --- a/keyboards/amj96/info.json +++ b/keyboards/amj96/info.json @@ -2,7 +2,6 @@ "keyboard_name": "AMJ96", "url": "", "maintainer": "qmk", - "bootloader": "atmel-dfu", "width": 19, "height": 6, "layouts": { diff --git a/keyboards/chimera_ortho/info.json b/keyboards/chimera_ortho/info.json index 9fb2d3366abb..b1384379ce24 100644 --- a/keyboards/chimera_ortho/info.json +++ b/keyboards/chimera_ortho/info.json @@ -1,8 +1,5 @@ { - "keyboard_name": "", - "url": "", "maintainer": "qmk", - "bootloader": "", "width": 15.5, "height": 4.25, "layouts": { diff --git a/keyboards/christmas_tree/info.json b/keyboards/christmas_tree/info.json index 0159876e2469..d33f9cc46cc7 100644 --- a/keyboards/christmas_tree/info.json +++ b/keyboards/christmas_tree/info.json @@ -2,7 +2,6 @@ "keyboard_name": "Christmas Tree", "keyboard_folder": "christmas_tree", "url": "https://www.reddit.com/r/MechanicalKeyboards/comments/7cqxpf/gb_christmas_tree_pcb_gb_now_live/", - "bootloader": "catarina", "maintainer": "That-Canadian", "width": 3, "height": 3, diff --git a/keyboards/clueboard/2x1800/info.json b/keyboards/clueboard/2x1800/info.json index 1f3c69ba7663..74afec8232e5 100644 --- a/keyboards/clueboard/2x1800/info.json +++ b/keyboards/clueboard/2x1800/info.json @@ -2,7 +2,6 @@ "keyboard_name": "CB 2x1800", "url": "", "maintainer": "skullydazed", - "bootloader": "teensy", "width": 24, "height": 6.5, "layouts": { diff --git a/keyboards/clueboard/60/info.json b/keyboards/clueboard/60/info.json index 57114db11242..abafb69f99e7 100644 --- a/keyboards/clueboard/60/info.json +++ b/keyboards/clueboard/60/info.json @@ -2,7 +2,6 @@ "keyboard_name": "clueboard/60", "maintainer": "skullydazed", "url": "", - "bootloader": "stm32-dfu-util", "width": 15, "height": 5, "layouts": { diff --git a/keyboards/clueboard/66/info.json b/keyboards/clueboard/66/info.json index 96d2eceebdca..7faeae29c4f3 100644 --- a/keyboards/clueboard/66/info.json +++ b/keyboards/clueboard/66/info.json @@ -1,6 +1,5 @@ { "keyboard_name": "Clueboard 66%", - "bootloader": "atmel-dfu", "width": 16.5, "height": 5, "layouts": { diff --git a/keyboards/clueboard/66_hotswap/info.json b/keyboards/clueboard/66_hotswap/info.json index 076db6a76193..66705b7a7b8d 100644 --- a/keyboards/clueboard/66_hotswap/info.json +++ b/keyboards/clueboard/66_hotswap/info.json @@ -1,6 +1,5 @@ { "keyboard_name": "Clueboard 66% HotSwap", - "bootloader": "atmel-dfu", "width": 16.5, "height": 5, "layouts": { diff --git a/keyboards/contra/info.json b/keyboards/contra/info.json index 594fcb86a093..fa0e60a447f6 100644 --- a/keyboards/contra/info.json +++ b/keyboards/contra/info.json @@ -2,7 +2,6 @@ "keyboard_name": "Contra", "url": "", "maintainer": "qmk", - "bootloader": "caterina", "width": 12, "height": 4, "layouts": { diff --git a/keyboards/deltasplit75/info.json b/keyboards/deltasplit75/info.json index 4afeced1ea38..6dedb79aa2c1 100644 --- a/keyboards/deltasplit75/info.json +++ b/keyboards/deltasplit75/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "DeltaSplit75", "maintainer": "xyxjj & itsaferbie", - "bootloader": "n/a", "width": 17, "height": 6, "layouts": { diff --git a/keyboards/dz60/info.json b/keyboards/dz60/info.json index 08ba4a6b3067..b39bdb000f1d 100644 --- a/keyboards/dz60/info.json +++ b/keyboards/dz60/info.json @@ -2,7 +2,6 @@ "keyboard_name": "DZ60", "url": "", "maintainer": "qmk", - "bootloader": "atmel-dfu", "width": 15, "height": 5, "layouts": { diff --git a/keyboards/e6v2/info.json b/keyboards/e6v2/info.json index e6bb6b6d8ca6..fc6f9660aa45 100644 --- a/keyboards/e6v2/info.json +++ b/keyboards/e6v2/info.json @@ -2,7 +2,6 @@ "keyboard_name": "E6-V2", "url": "", "maintainer": "qmk", - "bootloader": "atmel-dfu", "width": 15, "height": 5, "layouts": { diff --git a/keyboards/eagle_viper/info.json b/keyboards/eagle_viper/info.json index f8018c3facc7..e6a12aef0641 100644 --- a/keyboards/eagle_viper/info.json +++ b/keyboards/eagle_viper/info.json @@ -1,6 +1,5 @@ { "keyboard_name": "Eagle/Viper", - "bootloader": "atmel-dfu", "width": 15, "height": 5, "layouts": { diff --git a/keyboards/ergodox_ez/info.json b/keyboards/ergodox_ez/info.json index f79795bbc02e..6fdbca236246 100644 --- a/keyboards/ergodox_ez/info.json +++ b/keyboards/ergodox_ez/info.json @@ -2,7 +2,6 @@ "keyboard_name": "ErgoDox EZ", "url": "ergodox-ez.com", "maintainer": "erez", - "bootloader": "halfkay", "width": 19.5, "height": 9.375, "layouts": { diff --git a/keyboards/ergodox_infinity/info.json b/keyboards/ergodox_infinity/info.json index e5f12ec74909..5cd0fd7baa78 100644 --- a/keyboards/ergodox_infinity/info.json +++ b/keyboards/ergodox_infinity/info.json @@ -1,6 +1,5 @@ { "keyboard_name": "Infinity Ergodox", - "bootloader": "KIIBOHD_BOOTLOADER", "width": 19.5, "height": 9.375, "layouts": { diff --git a/keyboards/gh60/info.json b/keyboards/gh60/info.json index 4492496fbd55..0a2252fa0977 100644 --- a/keyboards/gh60/info.json +++ b/keyboards/gh60/info.json @@ -20,7 +20,6 @@ "maintainer": "qmk", "keyboard_folder": "gh60", "width": 15, - "bootloader": "atmel-dfu", "processor": "atmega32u4", "height": 5, "url": "http://qmk.fm/keyboards/gh60", diff --git a/keyboards/iris/info.json b/keyboards/iris/info.json index ae5ba16719ac..984ac56255c7 100644 --- a/keyboards/iris/info.json +++ b/keyboards/iris/info.json @@ -2,7 +2,6 @@ "keyboard_name": "Iris", "url": "Keeb.io", "maintainer": "qmk", - "bootloader": "", "width": 14.5, "height": 5, "layouts": { diff --git a/keyboards/jc65/v32a/info.json b/keyboards/jc65/v32a/info.json index 3acda89726d0..e238de608552 100644 --- a/keyboards/jc65/v32a/info.json +++ b/keyboards/jc65/v32a/info.json @@ -2,7 +2,6 @@ "keyboard_name": "jc65", "url": "", "maintainer": "qmk", - "bootloader": "", "width": 16, "height": 5, "layouts": { diff --git a/keyboards/jc65/v32u4/info.json b/keyboards/jc65/v32u4/info.json index 64402392c8f2..234a5cbfa759 100644 --- a/keyboards/jc65/v32u4/info.json +++ b/keyboards/jc65/v32u4/info.json @@ -2,7 +2,6 @@ "keyboard_name": "jc65", "url": "", "maintainer": "qmk", - "bootloader": "atmel-dfu", "width": 16, "height": 5, "layouts": { diff --git a/keyboards/kbd75/info.json b/keyboards/kbd75/info.json index 50c271f38cbd..e134a854ac0a 100644 --- a/keyboards/kbd75/info.json +++ b/keyboards/kbd75/info.json @@ -2,7 +2,6 @@ "keyboard_name": "KBD75", "url": "", "maintainer": "qmk", - "bootloader": "atmel-dfu", "width": 16, "height": 6, "layouts": { diff --git a/keyboards/kc60/info.json b/keyboards/kc60/info.json index f8ca77409ff0..adc3355eb1d0 100644 --- a/keyboards/kc60/info.json +++ b/keyboards/kc60/info.json @@ -2,7 +2,6 @@ "keyboard_name": "KC60", "url": "", "maintainer": "qmk", - "bootloader": "atmel-dfu", "width": 15, "height": 5, "layouts": { diff --git a/keyboards/octagon/v1/info.json b/keyboards/octagon/v1/info.json index 77f7bd895ec8..1feff95192c0 100644 --- a/keyboards/octagon/v1/info.json +++ b/keyboards/octagon/v1/info.json @@ -2,7 +2,6 @@ "keyboard_name": "Octagon V1", "url": "", "maintainer": "qmk", - "bootloader": "atmel-dfu", "width": 16, "height": 6, "layouts": { diff --git a/keyboards/octagon/v2/info.json b/keyboards/octagon/v2/info.json index b9b25967cc6a..7bc0c6ef90ca 100644 --- a/keyboards/octagon/v2/info.json +++ b/keyboards/octagon/v2/info.json @@ -2,7 +2,6 @@ "keyboard_name": "Octagon V2", "url": "", "maintainer": "qmk", - "bootloader": "atmel-dfu", "width": 16, "height": 6, "layouts": { diff --git a/keyboards/orthodox/rev1/info.json b/keyboards/orthodox/rev1/info.json index 42bdd0a3b92f..be9738f2edb7 100644 --- a/keyboards/orthodox/rev1/info.json +++ b/keyboards/orthodox/rev1/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Monkeebs Orthodox Rev.1", "maintainer": "qmk", - "bootloader": "caterina", "width": 17, "height": 17.24, "layouts": { diff --git a/keyboards/orthodox/rev3/info.json b/keyboards/orthodox/rev3/info.json index 63f0488c8c67..579167f6d3be 100644 --- a/keyboards/orthodox/rev3/info.json +++ b/keyboards/orthodox/rev3/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Monkeebs Orthodox Rev.3", "maintainer": "qmk", - "bootloader": "caterina", "width": 17, "height": 17.24, "layouts": { diff --git a/keyboards/orthodox/rev3_teensy/info.json b/keyboards/orthodox/rev3_teensy/info.json index c472fe51413e..579167f6d3be 100644 --- a/keyboards/orthodox/rev3_teensy/info.json +++ b/keyboards/orthodox/rev3_teensy/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Monkeebs Orthodox Rev.3", "maintainer": "qmk", - "bootloader": "halfkay", "width": 17, "height": 17.24, "layouts": { diff --git a/keyboards/phantom/info.json b/keyboards/phantom/info.json index 93ca99c229a5..2d1be5187536 100644 --- a/keyboards/phantom/info.json +++ b/keyboards/phantom/info.json @@ -2,7 +2,6 @@ "keyboard_name": "Phantom", "url": "https://deskthority.net/wiki/Phantom", "maintainer": "qmk", - "bootloader": "halfkay", "width": 18.25, "height": 6.5, "layouts": { diff --git a/keyboards/planck/info.json b/keyboards/planck/info.json index 751a56ef88c7..765d7d06adf4 100644 --- a/keyboards/planck/info.json +++ b/keyboards/planck/info.json @@ -3,7 +3,6 @@ "keyboard_folder": "planck", "url": "https://olkb.com/planck", "maintainer": "jackhumbert", - "bootloader": "atmel-dfu", "width": 12, "height": 4, "layouts": { diff --git a/keyboards/planck/light/info.json b/keyboards/planck/light/info.json index cf55cfbc99ae..f368dc76ee44 100644 --- a/keyboards/planck/light/info.json +++ b/keyboards/planck/light/info.json @@ -1,5 +1,4 @@ { "keyboard_name": "Planck Light", "keyboard_folder": "planck/light", - "bootloader": "qmk-dfu" } diff --git a/keyboards/preonic/info.json b/keyboards/preonic/info.json index ac91c8ee6d7a..3e5670cfaf07 100644 --- a/keyboards/preonic/info.json +++ b/keyboards/preonic/info.json @@ -3,7 +3,6 @@ "keyboard_folder": "preonic", "url": "https://olkb.com/preonic", "maintainer": "jackhumbert", - "bootloader": "atmel-dfu", "width": 12, "height": 5, "layouts": { diff --git a/keyboards/sweet16/info.json b/keyboards/sweet16/info.json index 0e3160cfb72d..445a5909ecd7 100644 --- a/keyboards/sweet16/info.json +++ b/keyboards/sweet16/info.json @@ -2,7 +2,6 @@ "keyboard_name": "Sweet 16", "url": "", "maintainer": "qmk", - "bootloader": "atmel-dfu", "width": 4, "height": 4, "layouts": { diff --git a/keyboards/tada68/info.json b/keyboards/tada68/info.json index 36d1c0236d4f..7d0c77c442af 100644 --- a/keyboards/tada68/info.json +++ b/keyboards/tada68/info.json @@ -2,7 +2,6 @@ "keyboard_name": "Tada68", "url": "", "maintainer": "qmk", - "bootloader": "atmel-dfu", "width": 16, "height": 5, "layouts": { diff --git a/keyboards/tkc1800/info.json b/keyboards/tkc1800/info.json index 33b50fbe3f2e..f06a16c157a0 100644 --- a/keyboards/tkc1800/info.json +++ b/keyboards/tkc1800/info.json @@ -2,7 +2,6 @@ "keyboard_name": "TKC1800", "url": "", "maintainer": "qmk", - "bootloader": "atmel-dfu", "width": 19.5, "height": 7, "layouts": { diff --git a/keyboards/tv44/info.json b/keyboards/tv44/info.json index 52970ff0385d..3003754dafd3 100644 --- a/keyboards/tv44/info.json +++ b/keyboards/tv44/info.json @@ -2,7 +2,6 @@ "keyboard_name": "tv44", "url": "", "maintainer": "qmk", - "bootloader": "atmel-dfu", "width": 12.75, "height": 4, "layouts": { diff --git a/keyboards/v60_type_r/info.json b/keyboards/v60_type_r/info.json index ab666fc7ce80..5aaf760e1e51 100644 --- a/keyboards/v60_type_r/info.json +++ b/keyboards/v60_type_r/info.json @@ -2,7 +2,6 @@ "keyboard_name": "V60 Type R", "url": "", "maintainer": "qmk", - "bootloader": "atmel-dfu", "width": 15, "height": 5, "layouts": { diff --git a/keyboards/whitefox/info.json b/keyboards/whitefox/info.json index 44bdaef90646..4c0f096b1908 100644 --- a/keyboards/whitefox/info.json +++ b/keyboards/whitefox/info.json @@ -1,8 +1,6 @@ { "keyboard_name": "Whitefox", - "url": "", "maintainer": "qmk", - "bootloader": "", "width": 16, "height": 5, "layouts": { diff --git a/keyboards/xd60/info.json b/keyboards/xd60/info.json index 78fd30860a5b..f60493762d45 100644 --- a/keyboards/xd60/info.json +++ b/keyboards/xd60/info.json @@ -1,8 +1,6 @@ { "keyboard_name": "XD60", - "url": "", "maintainer": "qmk", - "bootloader": "atmel-dfu", "width": 15, "height": 5, "layouts": { From 5319667c5504ab28b5bdb6f81ae22ecfec5e4a46 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Thu, 12 Apr 2018 10:03:50 -0700 Subject: [PATCH 208/578] Support upcoming caps_unlocked boards in QMK Configurator (#2738) * Change KEYMAP macro to LAYOUT macro * Add CU24 QMK Configurator Support - Change KEYMAP macro to LAYOUT macro - Add new LAYOUTS to support a default numpad * QMK Configurator Support for CU75 Add LAYOUT_all to support all layouts Add corresponding info.json --- keyboards/cu24/cu24.h | 21 ++++++++++++++++- keyboards/cu24/info.json | 16 +++++++++++++ keyboards/cu24/keymaps/default/keymap.c | 4 ++-- keyboards/cu75/cu75.h | 30 +++++++++++++++++++------ keyboards/cu75/info.json | 16 +++++++++++++ keyboards/cu75/keymaps/default/keymap.c | 4 ++-- keyboards/cu75/keymaps/iso/keymap.c | 4 ++-- 7 files changed, 81 insertions(+), 14 deletions(-) create mode 100644 keyboards/cu24/info.json create mode 100644 keyboards/cu75/info.json diff --git a/keyboards/cu24/cu24.h b/keyboards/cu24/cu24.h index e8e6b46ec8d5..d329182d2387 100644 --- a/keyboards/cu24/cu24.h +++ b/keyboards/cu24/cu24.h @@ -22,7 +22,7 @@ // The following is an example using the Planck MIT layout // The first section contains all of the arguments // The second converts the arguments into a two-dimensional array -#define KEYMAP( \ +#define LAYOUT_grid( \ k00, k01, k02, k03, \ k10, k11, k12, k13, \ k20, k21, k22, k23, \ @@ -39,4 +39,23 @@ { k50, k51, k52, k53 } \ } +#define LAYOUT_numpad( \ + k00, k01, k02, k03, \ + k10, k11, k12, k13, \ + k20, k21, k22, k23, \ + k30, k31, k32, \ + k40, k41, k42, k43, \ + k51, k52 \ +) \ +{ \ + { k00, k01, k02, k03 }, \ + { k10, k11, k12, k13 }, \ + { k20, k21, k22, k23 }, \ + { k30, k31, k32, KC_NO }, \ + { k40, k41, k42, k43 }, \ + { KC_NO, k51, k52, KC_NO } \ +} + + + #endif diff --git a/keyboards/cu24/info.json b/keyboards/cu24/info.json new file mode 100644 index 000000000000..7cd9a3f1f904 --- /dev/null +++ b/keyboards/cu24/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "cu24", + "url": "", + "maintainer": "qmk", + "width": 4, + "height": 6, + "layouts": { + "LAYOUT_grid": { + "layout": [{"label":"Num Lock", "x":0, "y":0}, {"label":"/", "x":1, "y":0}, {"label":"*", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"+", "x":3, "y":1}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"x":3, "y":2}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"Enter", "x":3, "y":3}, {"label":"0", "x":0, "y":4}, {"x":1, "y":4}, {"label":".", "x":2, "y":4}, {"x":3, "y":4}, {"x":0, "y":5}, {"x":1, "y":5}, {"x":2, "y":5}, {"x":3, "y":5}] + }, + + "LAYOUT_numpad": { + "layout": [{"label":"Num Lock", "x":0, "y":0}, {"label":"/", "x":1, "y":0}, {"label":"*", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"+", "x":3, "y":1}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"x":3, "y":2, "h":2}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"0", "x":0, "y":4}, {"x":1, "y":4}, {"label":".", "x":2, "y":4}, {"x":3, "y":4, "h":2}, {"x":0, "y":5, "w":2}, {"x":2, "y":5}] + } + } +} \ No newline at end of file diff --git a/keyboards/cu24/keymaps/default/keymap.c b/keyboards/cu24/keymaps/default/keymap.c index 8e2f65632801..73427ee8abac 100644 --- a/keyboards/cu24/keymaps/default/keymap.c +++ b/keyboards/cu24/keymaps/default/keymap.c @@ -16,7 +16,7 @@ #include "cu24.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( /* Base */ +[0] = LAYOUT_grid( /* Base */ KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, \ MO(1) , KC_PSLS, KC_PAST, KC_PMNS, \ KC_P7 , KC_P8 , KC_P9 , KC_PPLS, \ @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P0 , KC_P0 , KC_PDOT, KC_PENT ), -[1] = KEYMAP( /* FN */ +[1] = LAYOUT_grid( /* FN */ RGB_TOG, RGB_MOD, BL_STEP, BL_BRTG, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, \ diff --git a/keyboards/cu75/cu75.h b/keyboards/cu75/cu75.h index e4d7f2f936fd..250217d9db02 100644 --- a/keyboards/cu75/cu75.h +++ b/keyboards/cu75/cu75.h @@ -75,13 +75,13 @@ void click(uint16_t freq, uint16_t duration); */ // The first section contains all of the arguements // The second converts the arguments into a two-dimensional array -#define KEYMAP( \ +#define LAYOUT( \ k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, \ - k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1G, \ - k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, \ - k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3F, \ - k41, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, \ - k51, k52, k53, k54, k57, k59, k5A, k5B, k5C, k5D, k5E, k5F \ + k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1G, \ + k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3F, \ + k41, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, \ + k51, k52, k53, k54, k57, k59, k5A, k5B, k5C, k5D, k5E, k5F \ ) { \ {k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G}, \ {k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, KC_NO, k1G}, \ @@ -91,7 +91,23 @@ void click(uint16_t freq, uint16_t duration); {k51, k52, k53, k54, KC_NO, KC_NO, k57, KC_NO, k59, k5A, k5B, k5C, k5D, k5E, k5F, KC_NO}, \ } -#define ISO_KEYMAP( \ +#define LAYOUT_all( \ + k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, \ + k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G, \ + k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, \ + k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, \ + k51, k52, k53, k54, k57, k59, k5A, k5B, k5C, k5D, k5E, k5F \ +) { \ + {k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G}, \ + {k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G}, \ + {k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, KC_NO}, \ + {k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, KC_NO}, \ + {k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, KC_NO}, \ + {k51, k52, k53, k54, KC_NO, KC_NO, k57, KC_NO, k59, k5A, k5B, k5C, k5D, k5E, k5F, KC_NO}, \ +} + +#define LAYOUT_iso( \ k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, \ k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1G, \ k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k3D, k2F, \ diff --git a/keyboards/cu75/info.json b/keyboards/cu75/info.json new file mode 100644 index 000000000000..08f7815bf0a1 --- /dev/null +++ b/keyboards/cu75/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "cu75", + "url": "", + "maintainer": "qmk", + "width": 16, + "height": 6, + "layouts": { + "LAYOUT": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Delete", "x":15, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Home", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Page Up", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Page Down", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"End", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":2.75}, {"x":6.5, "y":5}, {"x":7.5, "y":5, "w":2.5}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}] + }, + + "LAYOUT_all": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Delete", "x":15, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"label":"Home", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Page Up", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"x":12.75, "y":3}, {"label":"Enter", "x":13.75, "y":3, "w":1.25}, {"label":"Page Down", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"End", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":2.75}, {"x":6.5, "y":5}, {"x":7.5, "y":5, "w":2.5}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}] + } + } +} \ No newline at end of file diff --git a/keyboards/cu75/keymaps/default/keymap.c b/keyboards/cu75/keymaps/default/keymap.c index dfd96fbd5a93..7d13e9237d7a 100644 --- a/keyboards/cu75/keymaps/default/keymap.c +++ b/keyboards/cu75/keymaps/default/keymap.c @@ -12,7 +12,7 @@ enum keymap_layout { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[VANILLA] = KEYMAP( +[VANILLA] = LAYOUT( /* Keymap VANILLA: (Base Layer) Default Layer * ,------------------------------------------------------------.----. * |Esc | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|F13|F14| F15| @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT,KC_SPC, KC_SPC, KC_SPC,KC_RALT, KC_RCTL, MO(FUNC), KC_LEFT, KC_DOWN, KC_RGHT), -[FUNC] = KEYMAP( +[FUNC] = LAYOUT( /* Keymap VANILLA: Function Layer * ,-------------------------------------------------------------------. * | | | | | | | | | | | | | | | | | diff --git a/keyboards/cu75/keymaps/iso/keymap.c b/keyboards/cu75/keymaps/iso/keymap.c index f00788e6ab2c..baf85b92e5ca 100644 --- a/keyboards/cu75/keymaps/iso/keymap.c +++ b/keyboards/cu75/keymaps/iso/keymap.c @@ -12,7 +12,7 @@ enum keymap_layout { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[VANILLA] = ISO_KEYMAP( +[VANILLA] = LAYOUT_iso( /* Keymap VANILLA: (Base Layer) Default Layer * ,------------------------------------------------------------.----. * |Esc | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|F13|F14| F15| @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT,KC_SPC, KC_SPC, KC_SPC,KC_RALT, KC_RCTL, MO(FUNC), KC_LEFT, KC_DOWN, KC_RGHT), -[FUNC] = KEYMAP( +[FUNC] = LAYOUT( /* Keymap VANILLA: Function Layer * ,-------------------------------------------------------------------. * | | | | | | | | | | | | | | | | | From 22215a0e920a237faabdfa1b8826cd110ab20c3b Mon Sep 17 00:00:00 2001 From: "Michael L. Walker" Date: Thu, 12 Apr 2018 08:16:35 -0700 Subject: [PATCH 209/578] Added support for audio using pins C4, C5, B6, B7 --- docs/config_options.md | 10 ++- docs/feature_audio.md | 13 ++- quantum/audio/audio.c | 188 +++++++++++++++++++++++++---------------- 3 files changed, 135 insertions(+), 76 deletions(-) diff --git a/docs/config_options.md b/docs/config_options.md index af8602c3ff99..d45592f82fbd 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -61,10 +61,18 @@ This is a C header file that is one of the first things included, and will persi * COL2ROW or ROW2COL - how your matrix is configured. COL2ROW means the black mark on your diode is facing to the rows, and between the switch and the rows. * `#define AUDIO_VOICES` * turns on the alternate audio voices (to cycle through) +* `#define C4_AUDIO` + * enables audio on pin C4 +* `#define C5_AUDIO` + * enables audio on pin C5 * `#define C6_AUDIO` * enables audio on pin C6 * `#define B5_AUDIO` - * enables audio on pin B5 (duophony is enable if both are enabled) + * enables audio on pin B5 (duophony is enables if one of B[5-7]_AUDIO is enabled along with one of C[4-6]_AUDIO) +* `#define B6_AUDIO` + * enables audio on pin B6 (duophony is enables if one of B[5-7]_AUDIO is enabled along with one of C[4-6]_AUDIO) +* `#define B7_AUDIO` + * enables audio on pin B7 (duophony is enables if one of B[5-7]_AUDIO is enabled along with one of C[4-6]_AUDIO) * `#define BACKLIGHT_PIN B7` * pin of the backlight - B5, B6, B7 use PWM, others use softPWM * `#define BACKLIGHT_LEVELS 3` diff --git a/docs/feature_audio.md b/docs/feature_audio.md index 5b11aa3abacf..eaaa2fe512fb 100644 --- a/docs/feature_audio.md +++ b/docs/feature_audio.md @@ -1,6 +1,17 @@ # Audio -Your keyboard can make sounds! If you've got a Planck, Preonic, or basically any AVR keyboard that allows access to the C6 or B5 port (`#define C6_AUDIO` and/or `#define B5_AUDIO`), you can hook up a simple speaker and make it beep. You can use those beeps to indicate layer transitions, modifiers, special keys, or just to play some funky 8bit tunes. +Your keyboard can make sounds! If you've got a Planck, Preonic, or basically any AVR keyboard that allows access to certain PWM-capable pins, you can hook up a simple speaker and make it beep. You can use those beeps to indicate layer transitions, modifiers, special keys, or just to play some funky 8bit tunes. + +Up to two simultaneous audio voices are supported, one driven by timer 1 and another driven by timer 3. The following pins can be defined as audio outputs in config.h: +Timer 1: +`#define B5_AUDIO` +`#define B6_AUDIO` +`#define B7_AUDIO` + +Timer 3: +`#define C4_AUDIO` +`#define C5_AUDIO` +`#define C6_AUDIO` If you add `AUDIO_ENABLE = yes` to your `rules.mk`, there's a couple different sounds that will automatically be enabled without any other configuration: diff --git a/quantum/audio/audio.c b/quantum/audio/audio.c index 85220e163071..3c6d18c4f6c4 100644 --- a/quantum/audio/audio.c +++ b/quantum/audio/audio.c @@ -35,44 +35,81 @@ // Timer Abstractions // ----------------------------------------------------------------------------- -// TIMSK3 - Timer/Counter #3 Interrupt Mask Register -// Turn on/off 3A interputs, stopping/enabling the ISR calls -#ifdef C6_AUDIO +//Currently we support timers 1 and 3 used at the sime time, channels A-C, +//pins PB5, PB6, PB7, PC4, PC5, and PC6 +#if defined(C6_AUDIO) + #define CPIN_AUDIO + #define CPIN_SET_DIRECTION DDRC |= _BV(PORTC6); + #define INIT_AUDIO_COUNTER_3 TCCR3A = (0 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30); #define ENABLE_AUDIO_COUNTER_3_ISR TIMSK3 |= _BV(OCIE3A) #define DISABLE_AUDIO_COUNTER_3_ISR TIMSK3 &= ~_BV(OCIE3A) -#endif - -#ifdef B5_AUDIO - #define ENABLE_AUDIO_COUNTER_1_ISR TIMSK1 |= _BV(OCIE1A) - #define DISABLE_AUDIO_COUNTER_1_ISR TIMSK1 &= ~_BV(OCIE1A) -#endif - -// TCCR3A: Timer/Counter #3 Control Register -// Compare Output Mode (COM3An) = 0b00 = Normal port operation, OC3A disconnected from PC6 - -#ifdef C6_AUDIO #define ENABLE_AUDIO_COUNTER_3_OUTPUT TCCR3A |= _BV(COM3A1); #define DISABLE_AUDIO_COUNTER_3_OUTPUT TCCR3A &= ~(_BV(COM3A1) | _BV(COM3A0)); + #define TIMER_3_PERIOD ICR3 + #define TIMER_3_DUTY_CYCLE OCR3A + #define TIMER3_AUDIO_vect TIMER3_COMPA_vect #endif - -#ifdef B5_AUDIO - #define ENABLE_AUDIO_COUNTER_1_OUTPUT TCCR1A |= _BV(COM1A1); - #define DISABLE_AUDIO_COUNTER_1_OUTPUT TCCR1A &= ~(_BV(COM1A1) | _BV(COM1A0)); +#if defined(C5_AUDIO) + #define CPIN_AUDIO + #define CPIN_SET_DIRECTION DDRC |= _BV(PORTC5); + #define INIT_AUDIO_COUNTER_3 TCCR3A = (0 << COM3B1) | (0 << COM3B0) | (1 << WGM31) | (0 << WGM30); + #define ENABLE_AUDIO_COUNTER_3_ISR TIMSK3 |= _BV(OCIE3B) + #define DISABLE_AUDIO_COUNTER_3_ISR TIMSK3 &= ~_BV(OCIE3B) + #define ENABLE_AUDIO_COUNTER_3_OUTPUT TCCR3A |= _BV(COM3B1); + #define DISABLE_AUDIO_COUNTER_3_OUTPUT TCCR3A &= ~(_BV(COM3B1) | _BV(COM3B0)); + #define TIMER_3_PERIOD ICR3 + #define TIMER_3_DUTY_CYCLE OCR3B + #define TIMER3_AUDIO_vect TIMER3_COMPB_vect #endif - -// Fast PWM Mode Controls - -#ifdef C6_AUDIO +#if defined(C4_AUDIO) + #define CPIN_AUDIO + #define CPIN_SET_DIRECTION DDRC |= _BV(PORTC4); + #define INIT_AUDIO_COUNTER_3 TCCR3A = (0 << COM3C1) | (0 << COM3C0) | (1 << WGM31) | (0 << WGM30); + #define ENABLE_AUDIO_COUNTER_3_ISR TIMSK3 |= _BV(OCIE3C) + #define DISABLE_AUDIO_COUNTER_3_ISR TIMSK3 &= ~_BV(OCIE3C) + #define ENABLE_AUDIO_COUNTER_3_OUTPUT TCCR3A |= _BV(COM3C1); + #define DISABLE_AUDIO_COUNTER_3_OUTPUT TCCR3A &= ~(_BV(COM3C1) | _BV(COM3C0)); #define TIMER_3_PERIOD ICR3 - #define TIMER_3_DUTY_CYCLE OCR3A + #define TIMER_3_DUTY_CYCLE OCR3C + #define TIMER3_AUDIO_vect TIMER3_COMPC_vect #endif -#ifdef B5_AUDIO +#if defined(B5_AUDIO) + #define BPIN_AUDIO + #define BPIN_SET_DIRECTION DDRC |= _BV(PORTB5); + #define INIT_AUDIO_COUNTER_1 TCCR1A = (0 << COM1A1) | (0 << COM1A0) | (1 << WGM11) | (0 << WGM10); + #define ENABLE_AUDIO_COUNTER_1_ISR TIMSK1 |= _BV(OCIE1A) + #define DISABLE_AUDIO_COUNTER_1_ISR TIMSK1 &= ~_BV(OCIE1A) + #define ENABLE_AUDIO_COUNTER_1_OUTPUT TCCR1A |= _BV(COM1A1); + #define DISABLE_AUDIO_COUNTER_1_OUTPUT TCCR1A &= ~(_BV(COM1A1) | _BV(COM1A0)); #define TIMER_1_PERIOD ICR1 #define TIMER_1_DUTY_CYCLE OCR1A + #define TIMER1_AUDIO_vect TIMER1_COMPA_vect +#endif +#if defined(B6_AUDIO) + #define BPIN_AUDIO + #define BPIN_SET_DIRECTION DDRC |= _BV(PORTB6); + #define INIT_AUDIO_COUNTER_1 TCCR1A = (0 << COM1B1) | (0 << COM1B0) | (1 << WGM11) | (0 << WGM10); + #define ENABLE_AUDIO_COUNTER_1_ISR TIMSK1 |= _BV(OCIE1B) + #define DISABLE_AUDIO_COUNTER_1_ISR TIMSK1 &= ~_BV(OCIE1B) + #define ENABLE_AUDIO_COUNTER_1_OUTPUT TCCR1A |= _BV(COM1B1); + #define DISABLE_AUDIO_COUNTER_1_OUTPUT TCCR1A &= ~(_BV(COM1B1) | _BV(COM1B0)); + #define TIMER_1_PERIOD ICR1 + #define TIMER_1_DUTY_CYCLE OCR1B + #define TIMER1_AUDIO_vect TIMER1_COMPB_vect +#endif +#if defined(B7_AUDIO) + #define BPIN_AUDIO + #define BPIN_SET_DIRECTION DDRC |= _BV(PORTB7); + #define INIT_AUDIO_COUNTER_1 TCCR1A = (0 << COM1C1) | (0 << COM1C0) | (1 << WGM11) | (0 << WGM10); + #define ENABLE_AUDIO_COUNTER_1_ISR TIMSK1 |= _BV(OCIE1C) + #define DISABLE_AUDIO_COUNTER_1_ISR TIMSK1 &= ~_BV(OCIE1C) + #define ENABLE_AUDIO_COUNTER_1_OUTPUT TCCR1A |= _BV(COM1C1); + #define DISABLE_AUDIO_COUNTER_1_OUTPUT TCCR1A &= ~(_BV(COM1C1) | _BV(COM1C0)); + #define TIMER_1_PERIOD ICR1 + #define TIMER_1_DUTY_CYCLE OCR1C + #define TIMER1_AUDIO_vect TIMER1_COMPC_vect #endif - - // ----------------------------------------------------------------------------- @@ -147,47 +184,51 @@ void audio_init() if (!audio_initialized) { - // Set port PC6 (OC3A and /OC4A) as output - - #ifdef C6_AUDIO - DDRC |= _BV(PORTC6); - //#else - // DDRC |= _BV(PORTC6); // Why is PC6 being set as output low, if C6_audio isn't defined? - // PORTC &= ~_BV(PORTC6); + // Set audio ports as output + #ifdef CPIN_AUDIO + CPIN_SET_DIRECTION #endif - - #ifdef B5_AUDIO - DDRB |= _BV(PORTB5); - //#else - // DDRB |= _BV(PORTB5); // Same as with PC6 - // PORTB &= ~_BV(PORTB5); + #ifdef BPIN_AUDIO + BPIN_SET_DIRECTION #endif - #ifdef C6_AUDIO + #ifdef CPIN_AUDIO DISABLE_AUDIO_COUNTER_3_ISR; #endif - - #ifdef B5_AUDIO + #ifdef BPIN_AUDIO DISABLE_AUDIO_COUNTER_1_ISR; #endif - // TCCR3A / TCCR3B: Timer/Counter #3 Control Registers - // Compare Output Mode (COM3An) = 0b00 = Normal port operation, OC3A disconnected from PC6 - // Waveform Generation Mode (WGM3n) = 0b1110 = Fast PWM Mode 14 (Period = ICR3, Duty Cycle = OCR3A) - // Clock Select (CS3n) = 0b010 = Clock / 8 + // TCCR3A / TCCR3B: Timer/Counter #3 Control Registers TCCR3A/TCCR3B, TCCR1A/TCCR1B + // Compare Output Mode (COM3An and COM1An) = 0b00 = Normal port operation + // OC3A -- PC6 + // OC3B -- PC5 + // OC3C -- PC4 + // OC1A -- PB5 + // OC1B -- PB6 + // OC1C -- PB7 + + // Waveform Generation Mode (WGM3n) = 0b1110 = Fast PWM Mode 14. Period = ICR3, Duty Cycle OCR3A) + // OCR3A - PC6 + // OCR3B - PC5 + // OCR3C - PC4 + // OCR1A - PB5 + // OCR1B - PB6 + // OCR1C - PB7 - #ifdef C6_AUDIO - TCCR3A = (0 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30); + // Clock Select (CS3n) = 0b010 = Clock / 8 + #ifdef CPIN_AUDIO + INIT_AUDIO_COUNTER_3 TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (1 << CS31) | (0 << CS30); + TIMER_3_PERIOD = (uint16_t)(((float)F_CPU) / (440 * CPU_PRESCALER)); + TIMER_3_DUTY_CYCLE = (uint16_t)((((float)F_CPU) / (440 * CPU_PRESCALER)) * note_timbre); #endif - - #ifdef B5_AUDIO - TCCR1A = (0 << COM1A1) | (0 << COM1A0) | (1 << WGM11) | (0 << WGM10); + #ifdef BPIN_AUDIO + INIT_AUDIO_COUNTER_1 TCCR1B = (1 << WGM13) | (1 << WGM12) | (0 << CS12) | (1 << CS11) | (0 << CS10); - TIMER_1_PERIOD = (uint16_t)(((float)F_CPU) / (440 * CPU_PRESCALER)); TIMER_1_DUTY_CYCLE = (uint16_t)((((float)F_CPU) / (440 * CPU_PRESCALER)) * note_timbre); - #endif + #endif audio_initialized = true; } @@ -207,13 +248,12 @@ void stop_all_notes() } voices = 0; - - #ifdef C6_AUDIO + #ifdef CPIN_AUDIO DISABLE_AUDIO_COUNTER_3_ISR; DISABLE_AUDIO_COUNTER_3_OUTPUT; #endif - #ifdef B5_AUDIO + #ifdef BPIN_AUDIO DISABLE_AUDIO_COUNTER_1_ISR; DISABLE_AUDIO_COUNTER_1_OUTPUT; #endif @@ -259,11 +299,11 @@ void stop_note(float freq) voice_place = 0; } if (voices == 0) { - #ifdef C6_AUDIO + #ifdef CPIN_AUDIO DISABLE_AUDIO_COUNTER_3_ISR; DISABLE_AUDIO_COUNTER_3_OUTPUT; #endif - #ifdef B5_AUDIO + #ifdef BPIN_AUDIO DISABLE_AUDIO_COUNTER_1_ISR; DISABLE_AUDIO_COUNTER_1_OUTPUT; #endif @@ -295,15 +335,15 @@ float vibrato(float average_freq) { #endif -#ifdef C6_AUDIO -ISR(TIMER3_COMPA_vect) +#ifdef CPIN_AUDIO +ISR(TIMER3_AUDIO_vect) { float freq; if (playing_note) { if (voices > 0) { - #ifdef B5_AUDIO + #ifdef BPIN_AUDIO float freq_alt = 0; if (voices > 1) { if (polyphony_rate == 0) { @@ -477,10 +517,10 @@ ISR(TIMER3_COMPA_vect) } #endif -#ifdef B5_AUDIO -ISR(TIMER1_COMPA_vect) +#ifdef BPIN_AUDIO +ISR(TIMER1_AUDIO_vect) { - #if defined(B5_AUDIO) && !defined(C6_AUDIO) + #if defined(BPIN_AUDIO) && !defined(CPIN_AUDIO) float freq = 0; if (playing_note) { @@ -627,10 +667,10 @@ void play_note(float freq, int vol) { } if (audio_config.enable && voices < 8) { - #ifdef C6_AUDIO + #ifdef CPIN_AUDIO DISABLE_AUDIO_COUNTER_3_ISR; #endif - #ifdef B5_AUDIO + #ifdef BPIN_AUDIO DISABLE_AUDIO_COUNTER_1_ISR; #endif @@ -648,12 +688,12 @@ void play_note(float freq, int vol) { voices++; } - #ifdef C6_AUDIO + #ifdef CPIN_AUDIO ENABLE_AUDIO_COUNTER_3_ISR; ENABLE_AUDIO_COUNTER_3_OUTPUT; #endif - #ifdef B5_AUDIO - #ifdef C6_AUDIO + #ifdef BPIN_AUDIO + #ifdef CPIN_AUDIO if (voices > 1) { ENABLE_AUDIO_COUNTER_1_ISR; ENABLE_AUDIO_COUNTER_1_OUTPUT; @@ -676,10 +716,10 @@ void play_notes(float (*np)[][2], uint16_t n_count, bool n_repeat) if (audio_config.enable) { - #ifdef C6_AUDIO + #ifdef CPIN_AUDIO DISABLE_AUDIO_COUNTER_3_ISR; #endif - #ifdef B5_AUDIO + #ifdef BPIN_AUDIO DISABLE_AUDIO_COUNTER_1_ISR; #endif @@ -701,12 +741,12 @@ void play_notes(float (*np)[][2], uint16_t n_count, bool n_repeat) note_position = 0; - #ifdef C6_AUDIO + #ifdef CPIN_AUDIO ENABLE_AUDIO_COUNTER_3_ISR; ENABLE_AUDIO_COUNTER_3_OUTPUT; #endif - #ifdef B5_AUDIO - #ifndef C6_AUDIO + #ifdef BPIN_AUDIO + #ifndef CPIN_AUDIO ENABLE_AUDIO_COUNTER_1_ISR; ENABLE_AUDIO_COUNTER_1_OUTPUT; #endif From 530dd446cb7bbff7b7f9a8075726bfbb4eb9a2a3 Mon Sep 17 00:00:00 2001 From: walkerstop Date: Fri, 13 Apr 2018 00:53:29 -0700 Subject: [PATCH 210/578] Fix incorrect port direction setting in my previous pull request for pins B5, B6, B7 (#2739) * Added support for audio using pins C4, C5, B6, B7 * Fixed bug where port direction wasn't set correctly for B5, B6, B7 audio ports --- quantum/audio/audio.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/quantum/audio/audio.c b/quantum/audio/audio.c index 3c6d18c4f6c4..c948a60d6cfc 100644 --- a/quantum/audio/audio.c +++ b/quantum/audio/audio.c @@ -76,7 +76,7 @@ #if defined(B5_AUDIO) #define BPIN_AUDIO - #define BPIN_SET_DIRECTION DDRC |= _BV(PORTB5); + #define BPIN_SET_DIRECTION DDRB |= _BV(PORTB5); #define INIT_AUDIO_COUNTER_1 TCCR1A = (0 << COM1A1) | (0 << COM1A0) | (1 << WGM11) | (0 << WGM10); #define ENABLE_AUDIO_COUNTER_1_ISR TIMSK1 |= _BV(OCIE1A) #define DISABLE_AUDIO_COUNTER_1_ISR TIMSK1 &= ~_BV(OCIE1A) @@ -88,7 +88,7 @@ #endif #if defined(B6_AUDIO) #define BPIN_AUDIO - #define BPIN_SET_DIRECTION DDRC |= _BV(PORTB6); + #define BPIN_SET_DIRECTION DDRB |= _BV(PORTB6); #define INIT_AUDIO_COUNTER_1 TCCR1A = (0 << COM1B1) | (0 << COM1B0) | (1 << WGM11) | (0 << WGM10); #define ENABLE_AUDIO_COUNTER_1_ISR TIMSK1 |= _BV(OCIE1B) #define DISABLE_AUDIO_COUNTER_1_ISR TIMSK1 &= ~_BV(OCIE1B) @@ -100,7 +100,7 @@ #endif #if defined(B7_AUDIO) #define BPIN_AUDIO - #define BPIN_SET_DIRECTION DDRC |= _BV(PORTB7); + #define BPIN_SET_DIRECTION DDRB |= _BV(PORTB7); #define INIT_AUDIO_COUNTER_1 TCCR1A = (0 << COM1C1) | (0 << COM1C0) | (1 << WGM11) | (0 << WGM10); #define ENABLE_AUDIO_COUNTER_1_ISR TIMSK1 |= _BV(OCIE1C) #define DISABLE_AUDIO_COUNTER_1_ISR TIMSK1 &= ~_BV(OCIE1C) @@ -187,16 +187,11 @@ void audio_init() // Set audio ports as output #ifdef CPIN_AUDIO CPIN_SET_DIRECTION + DISABLE_AUDIO_COUNTER_3_ISR; #endif #ifdef BPIN_AUDIO BPIN_SET_DIRECTION - #endif - - #ifdef CPIN_AUDIO - DISABLE_AUDIO_COUNTER_3_ISR; - #endif - #ifdef BPIN_AUDIO - DISABLE_AUDIO_COUNTER_1_ISR; + DISABLE_AUDIO_COUNTER_1_ISR; #endif // TCCR3A / TCCR3B: Timer/Counter #3 Control Registers TCCR3A/TCCR3B, TCCR1A/TCCR1B From 28307be72f24f879e459373846d8dc2aaee33e19 Mon Sep 17 00:00:00 2001 From: mechmerlin Date: Fri, 13 Apr 2018 16:46:23 -0700 Subject: [PATCH 211/578] Add chiwi60 layout for the do60 Add info.json to support the layouts for QMK Configurator Rename LAYOUT to LAYOUT_all --- keyboards/do60/do60.h | 16 +++++++++++++++- keyboards/do60/info.json | 16 ++++++++++++++++ keyboards/do60/keymaps/default/keymap.c | 4 ++-- keyboards/do60/keymaps/test/keymap.c | 4 ++-- 4 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 keyboards/do60/info.json diff --git a/keyboards/do60/do60.h b/keyboards/do60/do60.h index a8e248f31dd6..745041710aa9 100644 --- a/keyboards/do60/do60.h +++ b/keyboards/do60/do60.h @@ -24,7 +24,7 @@ inline void do60_bl_led_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); } /* Do60 Keymap Definition Macro */ -#define LAYOUT( \ +#define LAYOUT_all( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ @@ -38,4 +38,18 @@ inline void do60_bl_led_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); } { K40, K41, K42, KC_NO,KC_NO,K45, K46, K47, KC_NO,KC_NO,K4A, K4B, K4C, K4D, K4E } \ } +#define LAYOUT_chiwi60_default( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ + K40, K41, K42, K45, K47, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, KC_NO, K2E }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E }, \ + { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E } \ +} + #endif diff --git a/keyboards/do60/info.json b/keyboards/do60/info.json new file mode 100644 index 000000000000..7bda8b21f671 --- /dev/null +++ b/keyboards/do60/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "do60", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"\u2190", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"x":12, "y":3}, {"label":"\u2191", "x":13, "y":3}, {"label":"Del", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"3u(Space)", "x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4}, {"label":"3u(Space)", "x":7.5, "y":4, "w":2.25}, {"label":"Alt", "x":9.75, "y":4, "w":1.25}, {"label":"win", "x":11, "y":4}, {"label":"\u2190", "x":12, "y":4}, {"label":"\u2193", "x":13, "y":4}, {"label":"\u2192", "x":14, "y":4}] + }, + + "LAYOUT_chiwi60_default": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"\u2190", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3, "w":1.75}, {"label":"\u2191", "x":13, "y":3}, {"label":"Del", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"3u(Space)", "x":3.75, "y":4, "w":3}, {"label":"3u(Space)", "x":6.75, "y":4, "w":3}, {"label":"Alt", "x":9.75, "y":4, "w":1.25}, {"label":"win", "x":11, "y":4}, {"label":"\u2190", "x":12, "y":4}, {"label":"\u2193", "x":13, "y":4}, {"label":"\u2192", "x":14, "y":4}] + } + } +} \ No newline at end of file diff --git a/keyboards/do60/keymaps/default/keymap.c b/keyboards/do60/keymaps/default/keymap.c index e27cf3e3ab2b..82110b703503 100644 --- a/keyboards/do60/keymaps/default/keymap.c +++ b/keyboards/do60/keymaps/default/keymap.c @@ -4,7 +4,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 0: Base Layer - [0] = LAYOUT( + [0] = LAYOUT_all( 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_GRV, KC_BSPC, \ 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_BSLS, \ KC_CAPS, 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, \ @@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_BSPC, KC_RGUI, F(0), KC_LEFT, KC_DOWN, KC_RIGHT), // 1: Function Layer - [1] = LAYOUT( + [1] = LAYOUT_all( RESET, 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_NO, KC_NO, \ KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \ KC_NO, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SMOD, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \ diff --git a/keyboards/do60/keymaps/test/keymap.c b/keyboards/do60/keymaps/test/keymap.c index 2efabf1d21a0..30e919e17838 100644 --- a/keyboards/do60/keymaps/test/keymap.c +++ b/keyboards/do60/keymaps/test/keymap.c @@ -4,7 +4,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 0: Base Layer - [0] = LAYOUT( + [0] = LAYOUT_all( 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_NO, KC_BSPC, \ 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_BSLS, \ KC_CAPS, 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, \ @@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_BSPC,KC_SPC, KC_DEL, KC_RGUI, F(0), KC_LEFT, KC_DOWN, KC_RIGHT), // 1: Function Layer - [1] = LAYOUT( + [1] = LAYOUT_all( RESET, 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_NO, KC_NO, \ KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \ KC_NO, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SMOD, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \ From cdb967f22b955a60a541820c137dc2ffa0deb28b Mon Sep 17 00:00:00 2001 From: Kevin Foley Date: Sun, 15 Apr 2018 11:26:17 -0400 Subject: [PATCH 212/578] Fix link to command page --- docs/feature_bootmagic.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/feature_bootmagic.md b/docs/feature_bootmagic.md index e09630328746..beef6c467e96 100644 --- a/docs/feature_bootmagic.md +++ b/docs/feature_bootmagic.md @@ -6,7 +6,7 @@ Bootmagic is a system for configuring your keyboard while it initializes. To tri Bootmagic Keycodes allow you to access the Bootmagic functionality after your keyboard has initialized. To use Bootmagic Keycodes you assign keycodes starting with `MAGIC_`, much in the same way you define any other key. -Command is a feature that allows you to control different aspects of your keyboard. Command used to be called Magic. Command is typically accessed by holding Left and Right Shift at the same time, although that can be customized. While it shares some functionality with Bootmagic it also allows you to access functionality that Bootmagic does not. For more information see the (Command)[feature_command.md) documentation page. +Command is a feature that allows you to control different aspects of your keyboard. Command used to be called Magic. Command is typically accessed by holding Left and Right Shift at the same time, although that can be customized. While it shares some functionality with Bootmagic it also allows you to access functionality that Bootmagic does not. For more information see the [Command](feature_command.md) documentation page. ## Enabling Bootmagic From d55ee204dba09926620f7a6b104cd158bdec4007 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 16 Apr 2018 02:08:28 +1000 Subject: [PATCH 213/578] qwerty_code_friendly: optional 80 key layout (#2745) --- .../ergodox/qwerty_code_friendly/keymap.c | 364 +++++++++++------- .../ergodox/qwerty_code_friendly/readme.md | 187 ++++----- 2 files changed, 326 insertions(+), 225 deletions(-) diff --git a/layouts/community/ergodox/qwerty_code_friendly/keymap.c b/layouts/community/ergodox/qwerty_code_friendly/keymap.c index f79a1729080e..a3b23979ae8d 100644 --- a/layouts/community/ergodox/qwerty_code_friendly/keymap.c +++ b/layouts/community/ergodox/qwerty_code_friendly/keymap.c @@ -9,14 +9,22 @@ * See `readme.md` for notes on each define. */ -/* Personal preference (enable by passing EXTRAFLAGS=... to make). */ +/** + * Optionally support 80 key layout. + * + * No default keys defined: use 'CFQ_USER_K80_L0K0' .. etc. + */ +/* #define CFQ_USE_80_KEYS */ + +/** Personal preference (enable by passing 'EXTRAFLAGS=...' to make). */ /* #define CFQ_USE_MOMENTARY_LAYER_KEYS */ -/* Holding right/left or left/right shift for single or double quote pair */ +/** Holding right/left or left/right shift for single or double quote pair */ /* #define CFQ_USE_SHIFT_QUOTES */ #define CFQ_USE_DYNAMIC_MACRO + #if !defined(CFQ_USER_KEY0) # define CFQ_USER_KEY0 KC_BSPC #endif @@ -45,6 +53,91 @@ # define CFQ_USER_KEY8 KC_DEL #endif +#ifdef CFQ_USE_80_KEYS +# define LAYOUT_ergodox_76_or_80 KEYMAP_80 +# define K80(a) CFQ_USER_K80_##a +#else +# define LAYOUT_ergodox_76_or_80( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, \ + \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, \ + k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, \ + k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, \ + k70, k71, k72, k73, k74, k75, k76, k77, k78, k79) \ + LAYOUT_ergodox( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \ + k30, k31, k32, k33, k36, k37, k38, k39, \ + \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, \ + k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, \ + k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, \ + k70, k71, k72, k73, k76, k77, k78, k79) +# define K80(a) KC_TRNS +#endif + +/** + * Used to generate lines below: + * \code{.py} + * text = '# ifndef CFQ_USER_K80_L0K0\n# define CFQ_USER_K80_L0K0 KC_TRNS\n# endif' + * print('\n'.join([text.replace('L0', f'L{l}').replace('K0', f'K{k}') for l in range(3) for k in range(4)])) + * \endcode + */ +#ifdef CFQ_USE_80_KEYS +# ifndef CFQ_USER_K80_L0K0 +# define CFQ_USER_K80_L0K0 KC_TRNS +# endif +# ifndef CFQ_USER_K80_L0K1 +# define CFQ_USER_K80_L0K1 KC_TRNS +# endif +# ifndef CFQ_USER_K80_L0K2 +# define CFQ_USER_K80_L0K2 KC_TRNS +# endif +# ifndef CFQ_USER_K80_L0K3 +# define CFQ_USER_K80_L0K3 KC_TRNS +# endif +# ifndef CFQ_USER_K80_L1K0 +# define CFQ_USER_K80_L1K0 KC_TRNS +# endif +# ifndef CFQ_USER_K80_L1K1 +# define CFQ_USER_K80_L1K1 KC_TRNS +# endif +# ifndef CFQ_USER_K80_L1K2 +# define CFQ_USER_K80_L1K2 KC_TRNS +# endif +# ifndef CFQ_USER_K80_L1K3 +# define CFQ_USER_K80_L1K3 KC_TRNS +# endif +# ifndef CFQ_USER_K80_L2K0 +# define CFQ_USER_K80_L2K0 KC_TRNS +# endif +# ifndef CFQ_USER_K80_L2K1 +# define CFQ_USER_K80_L2K1 KC_TRNS +# endif +# ifndef CFQ_USER_K80_L2K2 +# define CFQ_USER_K80_L2K2 KC_TRNS +# endif +# ifndef CFQ_USER_K80_L2K3 +# define CFQ_USER_K80_L2K3 KC_TRNS +# endif +# ifndef CFQ_USER_K80_L3K0 +# define CFQ_USER_K80_L3K0 KC_TRNS +# endif +# ifndef CFQ_USER_K80_L3K1 +# define CFQ_USER_K80_L3K1 KC_TRNS +# endif +# ifndef CFQ_USER_K80_L3K2 +# define CFQ_USER_K80_L3K2 KC_TRNS +# endif +# ifndef CFQ_USER_K80_L3K3 +# define CFQ_USER_K80_L3K3 KC_TRNS +# endif +#endif + #ifndef CFQ_WORD_A #define CFQ_WORD_A "" #endif @@ -147,10 +240,10 @@ static char cfq_word_lut_title_caps[ sizeof(CFQ_WORD_Y) + sizeof(CFQ_WORD_Z) ]; -#define BASE 0 /* default layer */ -#define SYMB 1 /* symbols */ -#define MDIA 2 /* media keys */ -#define WORD 3 /* experimental keys */ +#define LAYER_BASE 0 /* default layer */ +#define LAYER_SYMB 1 /* symbols */ +#define LAYER_MDIA 2 /* media keys */ +#define LAYER_FKEY 3 /* F-Keys & Words */ enum custom_keycodes { PLACEHOLDER = SAFE_RANGE, /* can always be here */ @@ -183,7 +276,14 @@ enum custom_keycodes { }; #ifdef CFQ_USE_DYNAMIC_MACRO -#include "dynamic_macro.h" +# include "dynamic_macro.h" +#else + /* avoid ifdef's in keymap */ +# define DYN_REC_START1 KC_TRNS +# define DYN_REC_START2 KC_TRNS +# define DYN_REC_PLAY1 KC_TRNS +# define DYN_REC_PLAY2 KC_TRNS +# define DYN_REC_STOP KC_TRNS #endif #ifdef CFQ_USE_MOMENTARY_LAYER_KEYS @@ -198,50 +298,50 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer - * ,--------------------------------------------------. ,--------------------------------------------------. - * | Grave | ! | @ | # | $ | % | { | | } | ^ | & | * | - | = | BSpace | - * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | ( | | ) | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | Esc | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | - * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | LCtl |Super | Alt | ~L1 |Space | | Left | Down | Up |Right | Del | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | Ins |NumClk| | Home | End | - * ,------+------+------| |------+------+------. - * | | |CapsLk| | PgUp | | | - * |BSpace| Del |------| |------| ~L2 |Enter | - * | | | ~L3 | | PgDn | | | - * `--------------------' `--------------------' + * .--------------------------------------------------. .--------------------------------------------------. + * | Grave | ! | @ | # | $ | % | { | | } | ^ | & | * | - | = | BSpace | + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | ( | | ) | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Esc | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------' + * | LCtl |Super | Alt | ~L1 |Space | | Left | Down | Up |Right | Del | + * '----------------------------------' '----------------------------------' + * .-------------. .-------------. + * | Ins |NumClk| | Home | End | + * .------+------+------| |------+------+------. + * | | |CapsLk| | PgUp | | | + * |BSpace| Del |------| |------| ~L2 |Enter | + * | | | ~L3 | | PgDn | | | + * '--------------------' '--------------------' * * Optional overrides: see CFQ_USER_KEY# defines. * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | USR0 | - * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------| | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | USR1 | | | | | | | USR8 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | USR2 | USR3 | | | | - * ,------+------+------| |------+------+------. - * | | | USR6 | | | | | - * | USR4 | USR5 |------| |------| | | - * | | | USR7 | | | | | - * `--------------------' `--------------------' + * .--------------------------------------------------. .--------------------------------------------------. + * | | | | | | | | | | | | | | | USR0 | + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------' + * | | | | USR1 | | | | | | | USR8 | + * '----------------------------------' '----------------------------------' + * .-------------. .-------------. + * | USR2 | USR3 | | | | + * .------+------+------| |------+------+------. + * | | | USR6 | | | | | + * | USR4 | USR5 |------| |------| | | + * | | | USR7 | | | | | + * '--------------------' '--------------------' */ /* If it accepts an argument (i.e, is a function), it doesn't need KC_. * Otherwise, it needs KC_* */ -[BASE] = LAYOUT_ergodox( /* layer 0 : default */ +[LAYER_BASE] = LAYOUT_ergodox_76_or_80( /* layer 0 : default */ /* left hand */ KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_LCBR, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LPRN, @@ -249,7 +349,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_LCTL, KC_LGUI, KC_LALT, CFQ_USER_KEY1, KC_SPC, CFQ_USER_KEY2, CFQ_USER_KEY3, - CFQ_USER_KEY6, + K80(L0K0), K80(L0K1), CFQ_USER_KEY6, CFQ_USER_KEY4, CFQ_USER_KEY5, CFQ_USER_KEY7, /* right hand */ KC_RCBR, KC_CIRC, KC_AMPR, KC_ASTR,KC_MINS, KC_EQL, CFQ_USER_KEY0, @@ -258,46 +358,41 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_RBRC, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_DOWN,KC_UP, KC_RGHT, CFQ_USER_KEY8, KC_HOME, KC_END, - KC_PGUP, + KC_PGUP, K80(L0K2), K80(L0K3), KC_PGDN, CFQ_KC_FN2, KC_ENT -),/* Keymap 1: KeyPad, Macro Record +), +/* Keymap 1: KeyPad, Macro Record * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | {} | | }{ | |NumLck| / | * | - | | - * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| - * | | | | | | => | () | | )( | <= | 7 | 8 | 9 | + | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | -> |------| |------| <- | 4 | 5 | 6 | + | | - * |--------+------+------+------+------+------| [] | | ][ |------+------+------+------+------+--------| - * | | | | | | <> | | | | >< | 1 | 2 | 3 | Enter| | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | 0 | | . | Enter| | - * `----------------------------------' `----------------------------------' - * ,-------------. ,--------------. - * |Start1|Start2| | | | - * ,------+------+------| |------+-------+------. - * | | | Stop | | | | | - * |Play1 |Play2 |------| |------| | | - * | | | | | | | | - * `--------------------' `---------------------' + * .--------------------------------------------------. .--------------------------------------------------. + * | | | | | | | {} | | }{ | |NumLck| / | * | - | | + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | | | | | | => | () | | )( | <= | 7 | 8 | 9 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | -> |------| |------| <- | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| [] | | ][ |------+------+------+------+------+--------| + * | | | | | | <> | | | | >< | 1 | 2 | 3 | Enter| | + * '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------' + * | | | | | | | 0 | | . | Enter| | + * '----------------------------------' '----------------------------------' + * .-------------. .-------------. + * |Start1|Start2| | | | + * .------+------+------| |------+------+------. + * | | | Stop | | | | | + * |Play1 |Play2 |------| |------| | | + * | | | | | | | | + * '--------------------' '--------------------' */ /* SYMBOLS */ -[SYMB] = LAYOUT_ergodox( +[LAYER_SYMB] = LAYOUT_ergodox_76_or_80( /* left hand */ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_BRACKET_IN_CBR, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_BRACKET_IN_CBR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_ARROW_REQL, M_BRACKET_IN_PRN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_ARROW_RMINUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_BRACKET_IN_ANG, M_BRACKET_IN_BRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, -#ifdef CFQ_USE_DYNAMIC_MACRO - DYN_REC_START1, DYN_REC_START2, - DYN_REC_STOP, - DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_TRNS, -#else - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, -#endif + DYN_REC_START1, DYN_REC_START2, + K80(L1K0), K80(L1K1), DYN_REC_STOP, + DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_TRNS, /* right hand */ M_BRACKET_OUT_CBR, KC_TRNS, KC_NLCK, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_TRNS, M_BRACKET_OUT_PRN, M_ARROW_LEQL, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_TRNS, @@ -305,41 +400,41 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { M_BRACKET_OUT_BRC, M_BRACKET_OUT_ANG, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, KC_TRNS, KC_KP_0, KC_TRNS, KC_KP_DOT, KC_KP_ENTER, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, + KC_TRNS, K80(L1K2), K80(L1K3), KC_TRNS, KC_TRNS, KC_TRNS ), /* Keymap 2: F-Keys, media and mouse keys * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| - * | | | | MsUp | | |MWhlUp| | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| |------| |------| Left | Down | Up |Right | | | - * |--------+------+------+------+------+------|MWhlDn| | |------+------+------+------+------+--------| - * | | | Rclk | Mclk | Lclk | | | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | MRwd | MFwd | | MPrv | MNxt | - * ,------+------+------| |------+------+------. - * | | | | |VolUp | | | - * | Mute | |------| |------| | Play | - * | | | | |VolDn | | | - * `--------------------' `--------------------' + * .--------------------------------------------------. .--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | |MWhlUp| | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| Left | Down | Up |Right | | | + * |--------+------+------+------+------+------|MWhlDn| | |------+------+------+------+------+--------| + * | | | Rclk | Mclk | Lclk | | | | | | | | | | | + * '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * '----------------------------------' '----------------------------------' + * .-------------. .-------------. + * | MRwd | MFwd | | MPrv | MNxt | + * .------+------+------| |------+------+------. + * | | | | |VolUp | | | + * | Mute | |------| |------| | Play | + * | | | | |VolDn | | | + * '--------------------' '--------------------' */ /* MEDIA AND MOUSE */ -[MDIA] = LAYOUT_ergodox( +[LAYER_MDIA] = LAYOUT_ergodox_76_or_80( /* left hand */ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_WH_U, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN2, KC_BTN3, KC_BTN1, KC_TRNS, KC_WH_D, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_MRWD, KC_MFFD, - KC_TRNS, - KC_MUTE, KC_TRNS, KC_TRNS, + KC_MRWD, KC_MFFD, + K80(L2K0), K80(L2K1), KC_TRNS, + KC_MUTE, KC_TRNS, KC_TRNS, /* right hand */ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -347,42 +442,42 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, - KC_VOLU, + KC_VOLU, K80(L2K2), K80(L1K3), KC_VOLD, KC_TRNS, KC_MPLY ), /* Keymap 3: Entire Words (one for each key) * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | | - * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| - * | | Q | W | E | R | T | | | | Y | U | I | O | P | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | A | S | D | F | G |------| |------| H | J | K | L | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | Z | X | C | V | B | | | | N | M | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------+------+------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' + * .--------------------------------------------------. .--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | | + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | | Q | W | E | R | T | | | | Y | U | I | O | P | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | A | S | D | F | G |------| |------| H | J | K | L | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | Z | X | C | V | B | | | | N | M | | | | | + * '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * '----------------------------------' '----------------------------------' + * .-------------. .-------------. + * | | | | | | + * .------+------+------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * '--------------------' '--------------------' */ -/* WORDS */ -[WORD] = LAYOUT_ergodox( +/* FKEY & WORDS */ +[LAYER_FKEY] = LAYOUT_ergodox_76_or_80( /* left hand */ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_TRNS, M_WORD_Q, M_WORD_W, M_WORD_E, M_WORD_R, M_WORD_T, KC_TRNS, KC_TRNS, M_WORD_A, M_WORD_S, M_WORD_D, M_WORD_F, M_WORD_G, KC_TRNS, M_WORD_Z, M_WORD_X, M_WORD_C, M_WORD_V, M_WORD_B, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + K80(L3K0), K80(L3K1), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, /* right hand */ KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, KC_TRNS, M_WORD_Y, M_WORD_U, M_WORD_I, M_WORD_O, M_WORD_P, KC_TRNS, @@ -390,25 +485,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, M_WORD_N, M_WORD_M, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, + KC_TRNS, K80(L3K2), K80(L3K3), KC_TRNS, KC_TRNS, KC_TRNS ), }; const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), /* FN1 - Momentary Layer 1 (Symbols) */ - [2] = ACTION_LAYER_TAP_TOGGLE(MDIA), /* FN2 - Momentary Layer 2 (Media) */ - [3] = ACTION_LAYER_TAP_TOGGLE(WORD), /* FN3 - Momentary Layer 3 (Words) */ + [1] = ACTION_LAYER_TAP_TOGGLE(LAYER_SYMB), /* FN1 - Momentary Layer 1 (Symbols) */ + [2] = ACTION_LAYER_TAP_TOGGLE(LAYER_MDIA), /* FN2 - Momentary Layer 2 (Media) */ + [3] = ACTION_LAYER_TAP_TOGGLE(LAYER_FKEY), /* FN3 - Momentary Layer 3 (FKey's & Words) */ }; - - #define WITHOUT_MODS(...) \ - do { \ - uint8_t _real_mods = get_mods(); \ - clear_mods(); \ - { __VA_ARGS__ } \ - set_mods(_real_mods); \ - } while (0) +#define WITHOUT_MODS(...) \ + do { \ + uint8_t _real_mods = get_mods(); \ + clear_mods(); \ + { __VA_ARGS__ } \ + set_mods(_real_mods); \ + } while (0) bool process_record_user(uint16_t keycode, keyrecord_t *record) { #ifdef CFQ_USE_DYNAMIC_MACRO diff --git a/layouts/community/ergodox/qwerty_code_friendly/readme.md b/layouts/community/ergodox/qwerty_code_friendly/readme.md index 29a04e68931f..d800a0a022c8 100644 --- a/layouts/community/ergodox/qwerty_code_friendly/readme.md +++ b/layouts/community/ergodox/qwerty_code_friendly/readme.md @@ -44,50 +44,54 @@ using `CFQ_` prefixed defines which can be set by passing `EXTRAFLAGS` to make. - `CFQ_WORD_[A-Z]` defines can bind a key to an entire user defined word. +- `CFQ_USE_80_KEYS` + enables 80 key layout, none of the extra keys are bound, + they need to be set with defines: `CFQ_USER_K80_L0K0` .. `CFQ_USER_K80_L3K4`. + Where `L#` is the layer and `K#` is the key. ## Keymap 0: Basic layer ``` -,--------------------------------------------------. ,--------------------------------------------------. -| Grave | ! | @ | # | $ | % | { | | } | ^ | & | * | - | = | BSpace | -|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| -| Tab | Q | W | E | R | T | ( | | ) | Y | U | I | O | P | \ | -|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| -| Esc | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | -|--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| -| LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | -`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - | LCtl |Super | Alt | ~L1 |Space | | Left | Down | Up |Right | Del | - `----------------------------------' `----------------------------------' - ,-------------. ,-------------. - | Ins |NumClk| | Home | End | - ,------+------+------| |------+------+------. - | | |CapsLk| | PgUp | | | - |BSpace| Del |------| |------| ~L2 |Enter | - | | | ~L3 | | PgDn | | | - `--------------------' `--------------------' +.--------------------------------------------------. .--------------------------------------------------. +| Grave | ! | @ | # | $ | % | { | | } | ^ | & | * | - | = | BSpace | +|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| +| Tab | Q | W | E | R | T | ( | | ) | Y | U | I | O | P | \ | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| Esc | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | +|--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | +'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------' + | LCtl |Super | Alt | ~L1 |Space | | Left | Down | Up |Right | Del | + '----------------------------------' '----------------------------------' + .-------------. .-------------. + | Ins |NumClk| | Home | End | + .------+------+------| |------+------+------. + | | |CapsLk| | PgUp | | | + |BSpace| Del |------| |------| ~L2 |Enter | + | | | ~L3 | | PgDn | | | + '--------------------' '--------------------' Optional overrides: see CFQ_USER_KEY# defines. -,--------------------------------------------------. ,--------------------------------------------------. -| | | | | | | | | | | | | | | USR0 | -|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| -| | | | | | | | | | | | | | | | -|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| -| | | | | | |------| |------| | | | | | | -|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| -| | | | | | | | | | | | | | | | -`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - | | | | USR1 | | | | | | | USR8 | - `----------------------------------' `----------------------------------' - ,-------------. ,-------------. - | USR2 | USR3 | | | | - ,------+------+------| |------+------+------. - | | | USR6 | | | | | - | USR4 | USR5 |------| |------| | | - | | | USR7 | | | | | - `--------------------' `--------------------' +.--------------------------------------------------. .--------------------------------------------------. +| | | | | | | | | | | | | | | USR0 | +|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| +| | | | | | | | | | | | | | | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | | | | | |------| |------| | | | | | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | | | | | | | | | | | | | | | +'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------' + | | | | USR1 | | | | | | | USR8 | + '----------------------------------' '----------------------------------' + .-------------. .-------------. + | USR2 | USR3 | | | | + .------+------+------| |------+------+------. + | | | USR6 | | | | | + | USR4 | USR5 |------| |------| | | + | | | USR7 | | | | | + '--------------------' '--------------------' ``` ## Keymap 1: KeyPad, Macro Record @@ -98,47 +102,47 @@ Notes: - The left thumb cluster is used for macro record/replay. ``` -,--------------------------------------------------. ,--------------------------------------------------. -| | | | | | | {} | | }{ | |NumLck| / | * | - | | -|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| -| | | | | | => | () | | )( | <= | 7 | 8 | 9 | + | | -|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| -| | | | | | -> |------| |------| <- | 4 | 5 | 6 | + | | -|--------+------+------+------+------+------| [] | | ][ |------+------+------+------+------+--------| -| | | | | | <> | | | | >< | 1 | 2 | 3 | Enter| | -`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - | | | | | | | 0 | | . | Enter| | - `----------------------------------' `----------------------------------' - ,-------------. ,--------------. - |Start1|Start2| | | | - ,------+------+------| |------+-------+------. - | | | Stop | | | | | - |Play1 |Play2 |------| |------| | | - | | | | | | | | - `--------------------' `---------------------' +.--------------------------------------------------. .--------------------------------------------------. +| | | | | | | {} | | }{ | |NumLck| / | * | - | | +|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| +| | | | | | => | () | | )( | <= | 7 | 8 | 9 | + | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | | | | | -> |------| |------| <- | 4 | 5 | 6 | + | | +|--------+------+------+------+------+------| [] | | ][ |------+------+------+------+------+--------| +| | | | | | <> | | | | >< | 1 | 2 | 3 | Enter| | +'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------' + | | | | | | | 0 | | . | Enter| | + '----------------------------------' '----------------------------------' + .-------------. .-------------. + |Start1|Start2| | | | + .------+------+------| |------+------+------. + | | | Stop | | | | | + |Play1 |Play2 |------| |------| | | + | | | | | | | | + '--------------------' '--------------------' ``` ## Keymap 2: Keymap 2: Media and mouse keys ``` -,--------------------------------------------------. ,--------------------------------------------------. -| | | | | | | | | | | | | | | | -|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| -| | | | MsUp | | |MWhlUp| | | | | | | | | -|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| -| | |MsLeft|MsDown|MsRght| |------| |------| Left | Down | Up |Right | | | -|--------+------+------+------+------+------|MWhlDn| | |------+------+------+------+------+--------| -| | | Rclk | Mclk | Lclk | | | | | | | | | | | -`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - | | | | | | | | | | | | - `----------------------------------' `----------------------------------' - ,-------------. ,-------------. - | MRwd | MFwd | | MPrv | MNxt | - ,------+------+------| |------+------+------. - | | | | |VolUp | | | - | Mute | |------| |------| | Play | - | | | | |VolDn | | | - `--------------------' `--------------------' +.--------------------------------------------------. .--------------------------------------------------. +| | | | | | | | | | | | | | | | +|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| +| | | | MsUp | | |MWhlUp| | | | | | | | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | |MsLeft|MsDown|MsRght| |------| |------| Left | Down | Up |Right | | | +|--------+------+------+------+------+------|MWhlDn| | |------+------+------+------+------+--------| +| | | Rclk | Mclk | Lclk | | | | | | | | | | | +'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------' + | | | | | | | | | | | | + '----------------------------------' '----------------------------------' + .-------------. .-------------. + | MRwd | MFwd | | MPrv | MNxt | + .------+------+------| |------+------+------. + | | | | |VolUp | | | + | Mute | |------| |------| | Play | + | | | | |VolDn | | | + '--------------------' '--------------------' ``` ## Keymap 3: K-Keys & User defined words @@ -148,28 +152,31 @@ You can define the arguments (which must be quoted) using: `CFQ_WORD_[A-Z]` eg: `-DCFQ_WORD_E=\"my@email.com\"` ``` -,--------------------------------------------------. ,--------------------------------------------------. -| | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | | -|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| -| | Q | W | E | R | T | | | | Y | U | I | O | P | | -|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| -| | A | S | D | F | G |------| |------| H | J | K | L | | | -|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| -| | Z | X | C | V | B | | | | N | M | | | | | -`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - | | | | | | | | | | | | - `----------------------------------' `----------------------------------' - ,-------------. ,-------------. - | | | | | | - ,------+------+------| |------+------+------. - | | | | | | | | - | | |------| |------| | | - | | | | | | | | - `--------------------' `--------------------' +.--------------------------------------------------. .--------------------------------------------------. +| | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | | +|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| +| | Q | W | E | R | T | | | | Y | U | I | O | P | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | A | S | D | F | G |------| |------| H | J | K | L | | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | Z | X | C | V | B | | | | N | M | | | | | +'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------' + | | | | | | | | | | | | + '----------------------------------' '----------------------------------' + .-------------. .-------------. + | | | | | | + .------+------+------| |------+------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + '--------------------' '--------------------' ``` ## Changelog +- 2018/04/14 + Add `CFQ_USE_80_KEYS` to optionally support an 80 key layout. + - 2018/03/08 Add `CFQ_USE_SHIFT_QUOTES` option. Add `CFQ_USER_KEY8` key. From 412af0f4e71f401a8ef83d0313385bf5a2beac3a Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Sun, 15 Apr 2018 18:09:15 +0200 Subject: [PATCH 214/578] New DZ60 layout (#2744) * initial commit * - Move layout to readme - Finish first (0) layer * remove cruft * fix ASCII keymap in readme * fix ASCII keymap in readme #2 * fix ASCII keymap in readme * rename layers * use 2 shift layout * rename layers, populate additional layers * final layout (TM) * fix RGB saturation increase position --- keyboards/dz60/keymaps/weeheavy/README.md | 61 +++++++++++++++++++++++ keyboards/dz60/keymaps/weeheavy/keymap.c | 39 +++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 keyboards/dz60/keymaps/weeheavy/README.md create mode 100644 keyboards/dz60/keymaps/weeheavy/keymap.c diff --git a/keyboards/dz60/keymaps/weeheavy/README.md b/keyboards/dz60/keymaps/weeheavy/README.md new file mode 100644 index 000000000000..95a435a13c80 --- /dev/null +++ b/keyboards/dz60/keymaps/weeheavy/README.md @@ -0,0 +1,61 @@ +![DZ60 split spacebar layout image](https://i.imgur.com/EFF7pBN.png) + +# weeheavy's DZ60 split spacebar layout + +* 2u left shift +* arrow cluster +* split spacebar with a center key + +## Layouts + +The base layout is ANSI QWERTY. + +Key sizes (ASCII keyboards below match this scale): + + 1u = 4 chars = | | + 1.25u = 5 chars = | | + 1.5u = 6 chars = | | + 1.75u = 7 chars = | | + 2u = 8 chars = | | + 2.25u = 9 chars = | | + 2.75u = 11 chars = | | + 6.25u = 25 chars = | | + +### Layer 0: Base layout + +Specialities: + +* Arrow cluster +* FN1: access to layer 1 +* F2: access to layer 2 + +``` +,----------------------------------------------------------. +|Es||1 ||2 ||3 ||4 ||5 ||6 ||7 ||8 ||9 ||0 ||- ||= || Bksp | +|----------------------------------------------------------+ +|Tab ||Q ||W ||E ||R ||T ||Y ||U ||I ||O ||P ||[ ||] || \ | +|----------------------------------------------------------+ +|Caps ||A ||S ||D ||F ||G ||H ||J ||K ||L ||; ||' || Enter | +|----------------------------------------------------------+ +|Shift ||Z ||X ||C ||V ||B ||N ||M ||, ||. ||/ ||Sf||↑ ||Dl| +|----------------------------------------------------------+ +|Ctl||Win||Alt|| Space ||FN1|| Space ||Al||F2||← ||↓ ||→ | +`----------------------------------------------------------' +``` + +### Layer 1: Utility + +Specialities: + +* F1-F12 keys when holding FN1 +* Movement cluster on the right hand side +* Multimedia cluster on the bottom right +* RGB config on the left hand side + +### Layer 2: Config and setup + +Specialities: + +* Reset key on ESC and backslash location +* Additional "B" key (a learning from my mistakes) + diff --git a/keyboards/dz60/keymaps/weeheavy/keymap.c b/keyboards/dz60/keymaps/weeheavy/keymap.c new file mode 100644 index 000000000000..4c7b038d51cc --- /dev/null +++ b/keyboards/dz60/keymaps/weeheavy/keymap.c @@ -0,0 +1,39 @@ +#include "dz60.h" + +// Make special keycodes more visible +#define ____ KC_TRNS +#define XXXX KC_NO + +// Layer definition +#define L0 0 +#define L1 1 +#define L2 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// Base layer - ANSI QWERTY +[L0] = LAYOUT_2_shifts( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, XXXX, KC_BSPC, + 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_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, XXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(L1), KC_SPC, KC_RALT, MO(L2), KC_LEFT, KC_DOWN, KC_RIGHT), + +// Utility layer - RGB and multimedia control +[L1] = LAYOUT_2_shifts( + ____, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ____, ____, + ____, RGB_TOG, RGB_MOD, RGB_M_K, RGB_M_R, ____, ____, KC_PSCR, ____, KC_PAUS, ____, ____, ____, ____, + ____, RGB_HUI, RGB_HUD, ____, ____, ____, ____, KC_INS, KC_HOME, KC_PGUP, ____, ____, ____, + ____, ____, RGB_SAI, RGB_SAD, ____, ____, ____, ____, ____, KC_END, KC_PGDN, ____, KC_MPLY, KC_VOLU, KC_MUTE, + ____, RGB_VAI, RGB_VAD, ____, ____, ____, ____, ____, KC_MPRV, KC_VOLD, KC_MNXT), + +// Setup layer - Reset an additional "b" button +[L2] = LAYOUT_2_shifts( + RESET, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, + KC_B, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, RESET, + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____), + +}; + From fe8b9d0d0f2f137903ca17eefa8fa301a9c5dd75 Mon Sep 17 00:00:00 2001 From: Fayek Helmi Date: Sun, 15 Apr 2018 12:09:55 -0400 Subject: [PATCH 215/578] adding the 256k HHKB layout to the library (#2742) * adding the 256k HHKB layout to the library * changed the layouts for the modifying layers and added a readme file to explain my layout --- keyboards/dz60/keymaps/256k_HHKB/README.md | 113 ++++++++++ keyboards/dz60/keymaps/256k_HHKB/keymap.c | 250 +++++++++++++++++++++ 2 files changed, 363 insertions(+) create mode 100644 keyboards/dz60/keymaps/256k_HHKB/README.md create mode 100644 keyboards/dz60/keymaps/256k_HHKB/keymap.c diff --git a/keyboards/dz60/keymaps/256k_HHKB/README.md b/keyboards/dz60/keymaps/256k_HHKB/README.md new file mode 100644 index 000000000000..cd045a40d64f --- /dev/null +++ b/keyboards/dz60/keymaps/256k_HHKB/README.md @@ -0,0 +1,113 @@ +256k HHKB Layout: +=== + +this is my personal layer that i use on my Tina-C HHKB layout board with a DZ60 PCB. +--- + +there is 1 base layer and 4 modifyer layers: + +BASE: +--- + +``` + /* BASE LAYER + * + * ,-----------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \| | ~ ` | + * |-----------------------------------------------------------------------------------------+ + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | + * |-----------------------------------------------------------------------------------------+ + * | CTRL | A | S | D | F | G | H | J | K | L | ; | ' | Enter | + * |-----------------------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN | + * |-----------------------------------------------------------------------------------------+ + * | Win | Alt | Space | Alt | LIGHTS | + * `-----------------------------------------------------------------------------------------' + */ + ``` + + LAYER 1 (ALTFN): + --- + + this layer is my main function layer, i changed the default HHKB function layer to suit my need and also changed the placement of the modifyer key to the left alt since i want to control the layer activation with one hand and have the other hand control the keys on that layer freely. perhaps this is due to me being left handed but it feels more natural to me this way. + + ``` + /* ALTFN LAYER + * + * ,--------------------------------------------------------------------------------------------------------------------- + * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | INSERT | _ | + * |---------------------------------------------------------------------------------------------------------------------+ + * | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | UP | MUTE | V_DEC | V_INC | DEL | + * |---------------------------------------------------------------------------------------------------------------------+ + * | CTRL | _ | _ | _ | _ | _ | _ | HOME | LEFT | DOWN | RIGHT | END | _ | + * |---------------------------------------------------------------------------------------------------------------------+ + * | Shift | _ | _ | _ | _ | _ | _ | _ | PREV | NEXT | PLAY | _ | _ | + * |---------------------------------------------------------------------------------------------------------------------+ + * | _ | _ | _ | _ | _ | + * `---------------------------------------------------------------------------------------------------------------------' + */ + ``` + + +MOUSE LAYER (MOUSEFN): +--- + +*To access this layer you need to enter the ALTFN layer first then hit ESC button which will switch to the MOUSEFN layer* + +this is the second *hidden* layer that controls the mouse scroll wheel directions. i find it's useful to have these controls on the keyboard for certain applications that require scrolling in all 4 directions (Simple example: expanding an image preview to full size that overflows outside of the default monitor size and using the scroll wheel to mouve the image around.) + +also another benefit is that a lot of mice do not have horizontal control buttons for the scrolling + +(This layer is still experimental so i might change it later or modify it but so far i enjoy it) + +``` +/* MOUSEFN LAYER + * + * ,--------------------------------------------------------------------------------------------------------------------- + * | | ACC_1 | ACC_2 | ACC_3 | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | + * |---------------------------------------------------------------------------------------------------------------------+ + * | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | WHEEL_UP | _ | _ | _ | _ | + * |---------------------------------------------------------------------------------------------------------------------+ + * | CTRL | _ | _ | _ | _ | _ | _ | _ | WH_LEFT | WH_DOWN | WH_RIGHT | _ | _ | + * |---------------------------------------------------------------------------------------------------------------------+ + * | Shift | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | + * |---------------------------------------------------------------------------------------------------------------------+ + * | _ | _ | _ | _ | _ | + * `---------------------------------------------------------------------------------------------------------------------' + */ + ``` + + + STANDARD HHKB FN LAYER (FN): + --- + + this is the default HHKB function layer (mostly)... I have left it there on the same button and everything for 2 reasons: 1. for backup incase i forget where something was or if it contains a button that i did not include in my ALTFN layer. 2. as a reference for anyone else. + + *this layer will probably get removed once i get comfortable with my ALTFN layer.* + + + + LIGHTS LAYER: + --- + + this is the basic lights layer used to control the RBG backlight on the DZ60... i have removed the 3 backlight controls since i do not use any key LED Backlight. + + + ``` + /* LIGHTS LAYER + * + * ,---------------------------------------------------------------------------------------------------------------------+ + * | RGB_TOGGLE | STATIC | BREATHE | RAINBOW | SWIRL | SNAKE | KNIGHTRIDER | XMAS | STATIC_GRAD | _ | _ | _ | _ | _ | _ | + * |----------------------------------------------------------------------------------------------------------------------+ + * | RBG_MOD | HUE_INC | SATURATION_INC | BRIGHT_INC | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | + * |----------------------------------------------------------------------------------------------------------------------+ + * | CTRL | HUE_DEC | SATURATION_DEC | BRIGHT_DEC | _ | _ | _ | _ | _ | _ | _ | _ | _ | + * |----------------------------------------------------------------------------------------------------------------------+ + * | Shift | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | + * |----------------------------------------------------------------------------------------------------------------------+ + * | _ | _ | _ | _ | _ | + * `----------------------------------------------------------------------------------------------------------------------' + */ + ``` + + \ No newline at end of file diff --git a/keyboards/dz60/keymaps/256k_HHKB/keymap.c b/keyboards/dz60/keymaps/256k_HHKB/keymap.c new file mode 100644 index 000000000000..42b9f88639d2 --- /dev/null +++ b/keyboards/dz60/keymaps/256k_HHKB/keymap.c @@ -0,0 +1,250 @@ +#include "dz60.h" +#include "action_layer.h" + +// My layout is practically the default HHKB layout. +#define _DEFAULT 0 +#define _ALTFN 1 +#define _MOUSEFN 2 +#define _FN 3 +#define _LIGHTS 4 + + +#define ______ KC_TRNS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + + /* BASE LAYER + * + * ,-----------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \| | ~ ` | + * |-----------------------------------------------------------------------------------------+ + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | + * |-----------------------------------------------------------------------------------------+ + * | CTRL | A | S | D | F | G | H | J | K | L | ; | ' | Enter | + * |-----------------------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN | + * |-----------------------------------------------------------------------------------------+ + * | Win | Alt | Space | Alt | LIGHTS | + * `-----------------------------------------------------------------------------------------' + */ + + + [_DEFAULT] = LAYOUT_hhkb( + 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, KC_GRV, + 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, + 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_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), + KC_LGUI, MO(_ALTFN), KC_SPC, KC_RALT, MO(_LIGHTS)), + + + + + +/* ALTFN LAYER + * + * ,--------------------------------------------------------------------------------------------------------------------- + * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | INSERT | _ | + * |---------------------------------------------------------------------------------------------------------------------+ + * | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | UP | MUTE | V_DEC | V_INC | DEL | + * |---------------------------------------------------------------------------------------------------------------------+ + * | CTRL | _ | _ | _ | _ | _ | _ | HOME | LEFT | DOWN | RIGHT | END | _ | + * |---------------------------------------------------------------------------------------------------------------------+ + * | Shift | _ | _ | _ | _ | _ | _ | _ | PREV | NEXT | PLAY | _ | _ | + * |---------------------------------------------------------------------------------------------------------------------+ + * | _ | _ | _ | _ | _ | + * `---------------------------------------------------------------------------------------------------------------------' + */ + + [_ALTFN] = LAYOUT_hhkb( + + MO(_MOUSEFN), 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_PSCR, + KC_CAPS, ______, ______, ______, ______, ______, ______, ______, ______, KC_UP, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, + ______, ______, ______, ______, ______, ______, ______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, ______, + ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MPRV, KC_MNXT, KC_MPLY, ______, ______, + ______, ______, ______, ______, ______), + + + + + + + +/* MOUSEFN LAYER + * + * ,--------------------------------------------------------------------------------------------------------------------- + * | | ACC_1 | ACC_2 | ACC_3 | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | + * |---------------------------------------------------------------------------------------------------------------------+ + * | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | WHEEL_UP | _ | _ | _ | _ | + * |---------------------------------------------------------------------------------------------------------------------+ + * | CTRL | _ | _ | _ | _ | _ | _ | _ | WH_LEFT | WH_DOWN | WH_RIGHT | _ | _ | + * |---------------------------------------------------------------------------------------------------------------------+ + * | Shift | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | + * |---------------------------------------------------------------------------------------------------------------------+ + * | _ | _ | _ | _ | _ | + * `---------------------------------------------------------------------------------------------------------------------' + */ + + + [_MOUSEFN] = LAYOUT_hhkb( + + ______, KC_ACL0, KC_ACL1, KC_ACL2, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, + ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_WH_U, ______, ______, ______, ______, + ______, ______, ______, ______, ______, ______, ______, ______, KC_WH_L, KC_WH_D, KC_WH_R, ______, ______, + ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, + ______, ______, ______, ______, ______), + + + + + + + +/* FN LAYER + * + * ,------------------------------------------------------------------------------------------------------ + * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |INSERT | _ | + * |------------------------------------------------------------------------------------------------------+ + * | CAPS | _ | _ | _ | _ | _ | _ | _ | PRSC | SLOCK | PAUSE | UP | _ | DEL | + * |------------------------------------------------------------------------------------------------------+ + * | CTRL | _ | VOLDOWN | VOLUP | VOLMUTE | _ | _ | _ | HOME | PGUP | LEFT | IGHT | _ | + * |------------------------------------------------------------------------------------------------------+ + * | Shift | _ | _ | _ | _ | _ | _ | _ | END | PGDN | DOWN | _ | _ | + * |------------------------------------------------------------------------------------------------------+ + * | _ | _ | _ | _ | _ | + * `------------------------------------------------------------------------------------------------------' + */ + + + + [_FN] = LAYOUT_hhkb( + ______, 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_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, KC_DEL, + ______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, ______, + ______, ______, KC_MPRV, KC_MPLY, KC_MNXT, ______, ______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, ______, ______, + ______, ______, ______, ______, ______), + + + + + + + +/* LIGHTS LAYER + * + * ,---------------------------------------------------------------------------------------------------------------------+ + * | RGB_TOGGLE | STATIC | BREATHE | RAINBOW | SWIRL | SNAKE | KNIGHTRIDER | XMAS | STATIC_GRAD | _ | _ | _ | _ | _ | _ | + * |----------------------------------------------------------------------------------------------------------------------+ + * | RBG_MOD | HUE_INC | SATURATION_INC | BRIGHT_INC | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | + * |----------------------------------------------------------------------------------------------------------------------+ + * | CTRL | HUE_DEC | SATURATION_DEC | BRIGHT_DEC | _ | _ | _ | _ | _ | _ | _ | _ | _ | + * |----------------------------------------------------------------------------------------------------------------------+ + * | Shift | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | + * |----------------------------------------------------------------------------------------------------------------------+ + * | _ | _ | _ | _ | _ | + * `----------------------------------------------------------------------------------------------------------------------' + */ + + + + [_LIGHTS] = LAYOUT_hhkb( + RGB_TOG, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, ______, ______, ______, ______, ______, ______, + RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, + ______, RGB_HUD, RGB_SAD, RGB_VAD, ______, ______, ______, ______, ______, ______, ______, ______, ______, + ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, + ______, ______, ______, ______, ______), + +}; + + +/* + +RGB controls + +Key -> Description +========================= + +RGB_TOG -> Toggle RGB lighting on or off + +RGB_MOD -> Cycle through modes, reverse direction when Shift is held + +RGB_RMOD -> Cycle through modes in reverse, forward direction when Shift is held + +RGB_HUI -> Increase hue + +RGB_HUD -> Decrease hue + +RGB_SAI -> Increase saturation + +RGB_SAD -> Decrease saturation + +RGB_VAI -> Increase value (brightness) + +RGB_VAD -> Decrease value (brightness) + +RGB_M_P -> Static (no animation) mode + +RGB_M_B -> Breathing animation mode + +RGB_M_R -> Rainbow animation mode + +RGB_M_SW -> Swirl animation mode + +RGB_M_SN -> Snake animation mode + +RGB_M_K -> "Knight Rider" animation mode + +RGB_M_X -> Christmas animation mode + +RGB_M_G -> Static gradient animation mode + +*/ + +/* + Mouse controls: + + Key -> Aliases -> Description + ================================================== + + KC_MS_UP -> KC_MS_U -> Mouse Cursor Up + + KC_MS_DOWN -> KC_MS_D -> Mouse Cursor Down + + KC_MS_LEFT -> KC_MS_L -> Mouse Cursor Left + + KC_MS_RIGHT -> KC_MS_R -> Mouse Cursor Right + + KC_MS_BTN1 -> KC_BTN1 -> Mouse Button 1 + + KC_MS_BTN2 -> KC_BTN2 -> Mouse Button 2 + + KC_MS_BTN3 -> KC_BTN3 -> Mouse Button 3 + + KC_MS_BTN4 -> KC_BTN4 -> Mouse Button 4 + + KC_MS_BTN5 -> KC_BTN5 -> Mouse Button 5 + +KC_MS_WH_UP -> KC_WH_U -> Mouse Wheel Up + +KC_MS_WH_DOWN -> KC_WH_D -> Mouse Wheel Down + +KC_MS_WH_LEFT -> KC_WH_L -> Mouse Wheel Left + +KC_MS_WH_RIGHT -> KC_WH_R -> Mouse Wheel Right + +KC_MS_ACCEL0 -> KC_ACL0 -> Set mouse acceleration to 0 + +KC_MS_ACCEL1 -> KC_ACL1 -> Set mouse acceleration to 1 + +KC_MS_ACCEL2 -> KC_ACL2 -> Set mouse acceleration to 2 + +*/ + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + + + switch (id) { + + } + return MACRO_NONE; +} From 32fd5e4f61d50df6a5828b258d995a5da242600b Mon Sep 17 00:00:00 2001 From: David Rambo Date: Sun, 15 Apr 2018 12:46:26 -0400 Subject: [PATCH 216/578] keymaps for Iris, Planck, Satan, and XD75 (#2747) * DRambo Planck keymap in Colemak * DRambo Planck keymap in Colemak * Satan GH60 keymap for Bri QWERTY layout with Navigation layer toggled with "Caps Lock" key. * xd75 keymap in Colemak for Mac and Win * DRambo Planck keymap in Colemak * Satan GH60 keymap for Bri QWERTY layout with Navigation layer toggled with "Caps Lock" key. * xd75 keymap in Colemak for Mac and Win * Added Iris Colemak layout for Mac, Windows, and Gaming. * changed comment text * DRambo Planck keymap in Colemak * Satan GH60 keymap for Bri QWERTY layout with Navigation layer toggled with "Caps Lock" key. * xd75 keymap in Colemak for Mac and Win * Added Iris Colemak layout for Mac, Windows, and Gaming. * changed comment text * Added Iris keymap from DavidRambo * Added planck keymap from DavidRambo * Added xd75 keymap from DavidRambo * Added readme --- keyboards/iris/keymaps/davidrambo/config.h | 45 ++++++ keyboards/iris/keymaps/davidrambo/keymap.c | 158 +++++++++++++++++++ keyboards/iris/keymaps/davidrambo/readme.md | 3 + keyboards/iris/keymaps/davidrambo/rules.mk | 7 + keyboards/iris/keymaps/dnrambo/config.h | 45 ++++++ keyboards/iris/keymaps/dnrambo/keymap.c | 158 +++++++++++++++++++ keyboards/iris/keymaps/dnrambo/readme.md | 3 + keyboards/iris/keymaps/dnrambo/rules.mk | 7 + keyboards/planck/keymaps/davidrambo/config.h | 9 ++ keyboards/planck/keymaps/davidrambo/keymap.c | 98 ++++++++++++ keyboards/planck/keymaps/davidrambo/rules.mk | 6 + keyboards/planck/keymaps/rambo/config.h | 9 ++ keyboards/planck/keymaps/rambo/keymap.c | 98 ++++++++++++ keyboards/planck/keymaps/rambo/rules.mk | 6 + keyboards/satan/keymaps/bri/keymap.c | 102 ++++++++++++ keyboards/satan/keymaps/bri/readme.md | 2 + keyboards/xd75/keymaps/davidrambo/config.h | 26 +++ keyboards/xd75/keymaps/davidrambo/keymap.c | 150 ++++++++++++++++++ keyboards/xd75/keymaps/davidrambo/readme.md | 4 + keyboards/xd75/keymaps/davidrambo/rules.mk | 2 + keyboards/xd75/keymaps/rambo/config.h | 26 +++ keyboards/xd75/keymaps/rambo/keymap.c | 150 ++++++++++++++++++ keyboards/xd75/keymaps/rambo/readme.md | 4 + keyboards/xd75/keymaps/rambo/rules.mk | 2 + 24 files changed, 1120 insertions(+) create mode 100644 keyboards/iris/keymaps/davidrambo/config.h create mode 100644 keyboards/iris/keymaps/davidrambo/keymap.c create mode 100644 keyboards/iris/keymaps/davidrambo/readme.md create mode 100644 keyboards/iris/keymaps/davidrambo/rules.mk create mode 100644 keyboards/iris/keymaps/dnrambo/config.h create mode 100644 keyboards/iris/keymaps/dnrambo/keymap.c create mode 100644 keyboards/iris/keymaps/dnrambo/readme.md create mode 100644 keyboards/iris/keymaps/dnrambo/rules.mk create mode 100644 keyboards/planck/keymaps/davidrambo/config.h create mode 100644 keyboards/planck/keymaps/davidrambo/keymap.c create mode 100644 keyboards/planck/keymaps/davidrambo/rules.mk create mode 100644 keyboards/planck/keymaps/rambo/config.h create mode 100644 keyboards/planck/keymaps/rambo/keymap.c create mode 100644 keyboards/planck/keymaps/rambo/rules.mk create mode 100644 keyboards/satan/keymaps/bri/keymap.c create mode 100644 keyboards/satan/keymaps/bri/readme.md create mode 100644 keyboards/xd75/keymaps/davidrambo/config.h create mode 100644 keyboards/xd75/keymaps/davidrambo/keymap.c create mode 100644 keyboards/xd75/keymaps/davidrambo/readme.md create mode 100644 keyboards/xd75/keymaps/davidrambo/rules.mk create mode 100644 keyboards/xd75/keymaps/rambo/config.h create mode 100644 keyboards/xd75/keymaps/rambo/keymap.c create mode 100644 keyboards/xd75/keymaps/rambo/readme.md create mode 100644 keyboards/xd75/keymaps/rambo/rules.mk diff --git a/keyboards/iris/keymaps/davidrambo/config.h b/keyboards/iris/keymaps/davidrambo/config.h new file mode 100644 index 000000000000..01e078e32641 --- /dev/null +++ b/keyboards/iris/keymaps/davidrambo/config.h @@ -0,0 +1,45 @@ +/* +Copyright 2017 Danny Nguyen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ +#define PERMISSIVE_HOLD +#define PREVENT_STUCK_MODIFIERS +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS +/* +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 12 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +*/ +#define TAPPING_TERM 200 +#include "../../config.h" + +#endif diff --git a/keyboards/iris/keymaps/davidrambo/keymap.c b/keyboards/iris/keymaps/davidrambo/keymap.c new file mode 100644 index 000000000000..31ec3eba15ae --- /dev/null +++ b/keyboards/iris/keymaps/davidrambo/keymap.c @@ -0,0 +1,158 @@ +#include "iris.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +//keycode shorthands +#define KC____ KC_TRNS +#define KC_SYM MO(3) +#define KC_MAC TO(0) +#define KC_PC TO(1) +#define KC_GM TO(2) +#define KC_NAV LT(4, KC_TAB) +#define KC_NAVPC LT(5, KC_TAB) + +//text editor shortcuts for NAV and NAVPC +#define KC_AL LALT(KC_LEFT) +#define KC_AR LALT(KC_RGHT) +#define KC_CL LCTL(KC_LEFT) +#define KC_CR LCTL(KC_RGHT) +#define KC_A_BS LALT(KC_BSPC) +#define KC_C_BS LALT(KC_BSPC) + +//internet browser tab shortcuts and window swapping for Mac and Windows +#define KC_GSL LGUI(S(KC_LEFT)) +#define KC_GSR LGUI(S(KC_RGHT)) +#define KC_CPGD LCTL(KC_PGDN) +#define KC_CPGU LCTL(KC_PGUP) + +#define KC_CMBS GUI_T(KC_BSPC) +#define KC_CTBS CTL_T(KC_BSPC) +#define KC_C_TAB LCTL(KC_TAB) +#define KC_G_TAB LGUI(KC_TAB) +#define KC_A_TAB LALT(KC_TAB) + +//layer shorthands +#define _COLEMAK 0 +#define _PC 1 +#define _GAME 2 +#define _SYMBOL 3 +#define _NAV 4 +#define _NAVPC 5 + +enum { +// SFT_LCK //tapdance declarations + COLEMAK = 0, + PC, + GAME, + SYMBOL, + NAV, //Navigation layer for Mac Colemak + NAVPC, //Navigation layer for PC Colemak + SFT_LCK //tapdance declaration +}; + +#define KC_SFLK TD(SFT_LCK) // alias for tapdance + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_COLEMAK] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + GRV , Q , W , F , P , G , J , L , U , Y ,SCLN,BSPC, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + NAV , A , R , S , T , D , H , N , E , I , O ,QUOT, + //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + SFLK, Z , X , C , V , B , PC , ENT , K , M ,COMM, DOT,SLSH,RSFT, + //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + LCTL,LGUI,CMBS, SPC, SYM, LALT + // `----+----+----' `----+----+----' + ), + + [_PC] = KC_KEYMAP( + ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , + + ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , + + NAVPC,___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , + + ___ , ___ , ___ , ___ , ___ , ___ , GM, ___, ___ , ___ , ___ , ___ , ___ , ___ , + + LGUI , LCTL , CTBS , ___ , ___ , ___ + ), + + [_GAME] = KC_KEYMAP( + ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , + + ___ , T , Q , W , E , R , ___ , ___ , ___ , ___ , ___ , ___ , + + TAB , LSFT, A , S , D , F , ___ , ___ , ___ , ___ , ___ , ___ , + + I , LCTL, Z , X , C , V , M, P , ___, ___ , ___ , ___ , ___ , ___ , + + LALT , LALT , SPC, BSPC, MAC, ___ + ), + + [_SYMBOL] = KC_KEYMAP( + + ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , + + LBRC, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , RBRC, + + BSLS, EXLM, AT , HASH, DLR , PERC, CIRC, AMPR, ASTR, LPRN, RPRN, EQL , + + ___ , HOME, END , VOLD, VOLU, MPLY,___, ___,___, MINS, ___ , ___ , ___ , ___ , + + ___ , ___ , A_BS, ___, ___ , ___ + ), + + [_NAV] = KC_KEYMAP( + + ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , + + ___ , ___ , ___ , ___ , ___ , ___ , C_TAB, AL , UP , AR , DEL , ___ , + + ___ , ___ , ___ , ___ , ___ , ___ , GSL , LEFT, DOWN, RGHT, GSR , ___ , + + ___ , ___ , ___ , ___ , ___ , ___ ,___, ___,G_TAB, ___ , ___ , ___ , ___ , ___ , + + ___ , ___ , ___ , ___ , ___ , ___ + ), + + [_NAVPC] = KC_KEYMAP( + + ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , + + ___ , ___ , ___ , ___ , ___ , ___ , C_TAB, CL , UP , CR , DEL , ___ , + + ___ , ___ , ___ , ___ , ___ , ___ , CPGU, LEFT, DOWN, RGHT, CPGD, ___ , + + ___ , ___ , ___ , ___ , ___ , ___ ,___, ___,A_TAB, ___ , ___ , ___ , ___ , ___ , + + ___ , ___ , ___ , ___ , ___ , ___ + ), + +}; + +// Shift vs. capslock function. From bbaserdem's Planck keymap. +void caps_tap (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + register_code (KC_LSFT); + } else if (state->count == 2) { + unregister_code (KC_LSFT); + register_code (KC_CAPS); + } +} +void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + unregister_code (KC_LSFT); + } else { + unregister_code (KC_CAPS); + } +} + +qk_tap_dance_action_t tap_dance_actions[] = { + //Tap once for Shift, twice for Caps Lock + [SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end) +}; \ No newline at end of file diff --git a/keyboards/iris/keymaps/davidrambo/readme.md b/keyboards/iris/keymaps/davidrambo/readme.md new file mode 100644 index 000000000000..4d21f37c0914 --- /dev/null +++ b/keyboards/iris/keymaps/davidrambo/readme.md @@ -0,0 +1,3 @@ +# Colemak layout for Iris rev2.1 with Mac and Windows layers and a Gaming Layer. +# Symbol layer is based on my Planck layout, so it provides numbers, symbols, and volume controls. +# Two Navigation layers, for Mac and Windows Colemak layers respectively. \ No newline at end of file diff --git a/keyboards/iris/keymaps/davidrambo/rules.mk b/keyboards/iris/keymaps/davidrambo/rules.mk new file mode 100644 index 000000000000..0b7e7b9057fd --- /dev/null +++ b/keyboards/iris/keymaps/davidrambo/rules.mk @@ -0,0 +1,7 @@ +RGBLIGHT_ENABLE = no +BACKLIGHT_ENABLE = no +TAP_DANCE_ENABLE = yes + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/iris/keymaps/dnrambo/config.h b/keyboards/iris/keymaps/dnrambo/config.h new file mode 100644 index 000000000000..01e078e32641 --- /dev/null +++ b/keyboards/iris/keymaps/dnrambo/config.h @@ -0,0 +1,45 @@ +/* +Copyright 2017 Danny Nguyen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ +#define PERMISSIVE_HOLD +#define PREVENT_STUCK_MODIFIERS +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS +/* +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 12 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +*/ +#define TAPPING_TERM 200 +#include "../../config.h" + +#endif diff --git a/keyboards/iris/keymaps/dnrambo/keymap.c b/keyboards/iris/keymaps/dnrambo/keymap.c new file mode 100644 index 000000000000..31ec3eba15ae --- /dev/null +++ b/keyboards/iris/keymaps/dnrambo/keymap.c @@ -0,0 +1,158 @@ +#include "iris.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +//keycode shorthands +#define KC____ KC_TRNS +#define KC_SYM MO(3) +#define KC_MAC TO(0) +#define KC_PC TO(1) +#define KC_GM TO(2) +#define KC_NAV LT(4, KC_TAB) +#define KC_NAVPC LT(5, KC_TAB) + +//text editor shortcuts for NAV and NAVPC +#define KC_AL LALT(KC_LEFT) +#define KC_AR LALT(KC_RGHT) +#define KC_CL LCTL(KC_LEFT) +#define KC_CR LCTL(KC_RGHT) +#define KC_A_BS LALT(KC_BSPC) +#define KC_C_BS LALT(KC_BSPC) + +//internet browser tab shortcuts and window swapping for Mac and Windows +#define KC_GSL LGUI(S(KC_LEFT)) +#define KC_GSR LGUI(S(KC_RGHT)) +#define KC_CPGD LCTL(KC_PGDN) +#define KC_CPGU LCTL(KC_PGUP) + +#define KC_CMBS GUI_T(KC_BSPC) +#define KC_CTBS CTL_T(KC_BSPC) +#define KC_C_TAB LCTL(KC_TAB) +#define KC_G_TAB LGUI(KC_TAB) +#define KC_A_TAB LALT(KC_TAB) + +//layer shorthands +#define _COLEMAK 0 +#define _PC 1 +#define _GAME 2 +#define _SYMBOL 3 +#define _NAV 4 +#define _NAVPC 5 + +enum { +// SFT_LCK //tapdance declarations + COLEMAK = 0, + PC, + GAME, + SYMBOL, + NAV, //Navigation layer for Mac Colemak + NAVPC, //Navigation layer for PC Colemak + SFT_LCK //tapdance declaration +}; + +#define KC_SFLK TD(SFT_LCK) // alias for tapdance + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_COLEMAK] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + GRV , Q , W , F , P , G , J , L , U , Y ,SCLN,BSPC, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + NAV , A , R , S , T , D , H , N , E , I , O ,QUOT, + //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + SFLK, Z , X , C , V , B , PC , ENT , K , M ,COMM, DOT,SLSH,RSFT, + //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + LCTL,LGUI,CMBS, SPC, SYM, LALT + // `----+----+----' `----+----+----' + ), + + [_PC] = KC_KEYMAP( + ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , + + ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , + + NAVPC,___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , + + ___ , ___ , ___ , ___ , ___ , ___ , GM, ___, ___ , ___ , ___ , ___ , ___ , ___ , + + LGUI , LCTL , CTBS , ___ , ___ , ___ + ), + + [_GAME] = KC_KEYMAP( + ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , + + ___ , T , Q , W , E , R , ___ , ___ , ___ , ___ , ___ , ___ , + + TAB , LSFT, A , S , D , F , ___ , ___ , ___ , ___ , ___ , ___ , + + I , LCTL, Z , X , C , V , M, P , ___, ___ , ___ , ___ , ___ , ___ , + + LALT , LALT , SPC, BSPC, MAC, ___ + ), + + [_SYMBOL] = KC_KEYMAP( + + ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , + + LBRC, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , RBRC, + + BSLS, EXLM, AT , HASH, DLR , PERC, CIRC, AMPR, ASTR, LPRN, RPRN, EQL , + + ___ , HOME, END , VOLD, VOLU, MPLY,___, ___,___, MINS, ___ , ___ , ___ , ___ , + + ___ , ___ , A_BS, ___, ___ , ___ + ), + + [_NAV] = KC_KEYMAP( + + ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , + + ___ , ___ , ___ , ___ , ___ , ___ , C_TAB, AL , UP , AR , DEL , ___ , + + ___ , ___ , ___ , ___ , ___ , ___ , GSL , LEFT, DOWN, RGHT, GSR , ___ , + + ___ , ___ , ___ , ___ , ___ , ___ ,___, ___,G_TAB, ___ , ___ , ___ , ___ , ___ , + + ___ , ___ , ___ , ___ , ___ , ___ + ), + + [_NAVPC] = KC_KEYMAP( + + ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , + + ___ , ___ , ___ , ___ , ___ , ___ , C_TAB, CL , UP , CR , DEL , ___ , + + ___ , ___ , ___ , ___ , ___ , ___ , CPGU, LEFT, DOWN, RGHT, CPGD, ___ , + + ___ , ___ , ___ , ___ , ___ , ___ ,___, ___,A_TAB, ___ , ___ , ___ , ___ , ___ , + + ___ , ___ , ___ , ___ , ___ , ___ + ), + +}; + +// Shift vs. capslock function. From bbaserdem's Planck keymap. +void caps_tap (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + register_code (KC_LSFT); + } else if (state->count == 2) { + unregister_code (KC_LSFT); + register_code (KC_CAPS); + } +} +void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + unregister_code (KC_LSFT); + } else { + unregister_code (KC_CAPS); + } +} + +qk_tap_dance_action_t tap_dance_actions[] = { + //Tap once for Shift, twice for Caps Lock + [SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end) +}; \ No newline at end of file diff --git a/keyboards/iris/keymaps/dnrambo/readme.md b/keyboards/iris/keymaps/dnrambo/readme.md new file mode 100644 index 000000000000..4d21f37c0914 --- /dev/null +++ b/keyboards/iris/keymaps/dnrambo/readme.md @@ -0,0 +1,3 @@ +# Colemak layout for Iris rev2.1 with Mac and Windows layers and a Gaming Layer. +# Symbol layer is based on my Planck layout, so it provides numbers, symbols, and volume controls. +# Two Navigation layers, for Mac and Windows Colemak layers respectively. \ No newline at end of file diff --git a/keyboards/iris/keymaps/dnrambo/rules.mk b/keyboards/iris/keymaps/dnrambo/rules.mk new file mode 100644 index 000000000000..0b7e7b9057fd --- /dev/null +++ b/keyboards/iris/keymaps/dnrambo/rules.mk @@ -0,0 +1,7 @@ +RGBLIGHT_ENABLE = no +BACKLIGHT_ENABLE = no +TAP_DANCE_ENABLE = yes + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/planck/keymaps/davidrambo/config.h b/keyboards/planck/keymaps/davidrambo/config.h new file mode 100644 index 000000000000..c3bebf579906 --- /dev/null +++ b/keyboards/planck/keymaps/davidrambo/config.h @@ -0,0 +1,9 @@ +#ifndef CONFIG_USER_H + +#define CONFIG_USER_H +#define TAPPING_TERM 200 +#include "../../config.h" +#define PERMISSIVE_HOLD +#define PREVENT_STUCK_MODIFIERS + +#endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/davidrambo/keymap.c b/keyboards/planck/keymaps/davidrambo/keymap.c new file mode 100644 index 000000000000..37e22afb902a --- /dev/null +++ b/keyboards/planck/keymaps/davidrambo/keymap.c @@ -0,0 +1,98 @@ +#include "planck.h" + +//alias for clarity in layering +#define _______ KC_TRNS +#define A_BSPC LALT(KC_BSPC) +#define A_LEFT LALT(KC_LEFT) +#define A_RGHT LALT(KC_RGHT) +#define C_TAB LCTL(KC_TAB) +#define GSL LGUI(S(KC_LEFT)) +#define GSR LGUI(S(KC_RGHT)) +#define G_TAB LGUI(KC_TAB) +#define G_GRV LGUI(KC_GRV) // MAC: switch between windows within an application +#define SftEnt SFT_T(KC_ENT) +#define NAV LT(2, KC_TAB) + +#define _COLEMAK 0 +#define _SYMBOL 1 +#define _NAVIGATION 2 + +//tapdance declarations +enum { + SFT_LCK +}; + +//alias for tapdance +#define SftLck TD(SFT_LCK) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | ESC` | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Tab | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |SftLck| Z | X | C | V | B | K | M | , | . | /? |SftEnt| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | GUI | Ctrl | Alt | GUI | Space |Symbol| Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' +*/ + +[_COLEMAK] = { + {KC_GESC, KC_Q , KC_W , KC_F , KC_P , KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {NAV , KC_A , KC_R , KC_S , KC_T , KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {SftLck , KC_Z , KC_X , KC_C , KC_V , KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SftEnt }, + {KC_DEL , KC_LGUI, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + }, + +/* Symbol + * ,-----------------------------------------------------------------------------------. + * | [ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ] | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | \| | ! | @ | # | $ | % | ^ | & | * | ( | ) | =+ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | Home | End | ScUp | ScDn | F1 | F2 | -_ |Pg Up | | / | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | `~ | | | |Alt(Bk)| | |Pg Dn | Vol- | Vol+ | | + * `-----------------------------------------------------------------------------------' + */ +[_SYMBOL] = { + {KC_LBRC, KC_1, KC_2, KC_3, KC_4 , KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC}, + {KC_BSLS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL }, + {_______, KC_HOME, KC_END, KC_WH_U, KC_WH_D,KC_F1 , KC_F2 , KC_MINS, KC_PGUP, _______, _______, _______}, + {KC_GRV, _______, _______, _______, A_BSPC, _______, _______, _______, KC_PGDN, KC_VOLD, KC_VOLU, KC_MUTE} + }, + +/* Navigation*/ + +[_NAVIGATION] = { + {_______, _______, _______, _______, _______, _______, C_TAB , A_LEFT, KC_UP, A_RGHT , KC_DEL , _______}, + {_______, _______, _______, _______, _______, _______, GSL , KC_LEFT, KC_DOWN, KC_RGHT, GSR , _______}, + {_______, _______, _______, _______, _______, _______, G_TAB , KC_HOME, _______, KC_END, G_GRV , _______}, + {RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} +}; + +// Shift vs capslock function. From bbaserdem's Planck keymap. +void caps_tap (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + register_code (KC_LSFT); + } else if (state->count == 2) { + unregister_code (KC_LSFT); + register_code (KC_CAPS); + } +} +void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + unregister_code (KC_LSFT); + } else { + unregister_code (KC_CAPS); + } +} + +//Tap Dance Definitions +qk_tap_dance_action_t tap_dance_actions[] = { + //Tap once for Shift, twice for Caps Lock + [SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end ) +}; \ No newline at end of file diff --git a/keyboards/planck/keymaps/davidrambo/rules.mk b/keyboards/planck/keymaps/davidrambo/rules.mk new file mode 100644 index 000000000000..ffa9b870afef --- /dev/null +++ b/keyboards/planck/keymaps/davidrambo/rules.mk @@ -0,0 +1,6 @@ +TAP_DANCE_ENABLE = yes +MOUSEKEY_ENABLE = yes + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/rambo/config.h b/keyboards/planck/keymaps/rambo/config.h new file mode 100644 index 000000000000..c3bebf579906 --- /dev/null +++ b/keyboards/planck/keymaps/rambo/config.h @@ -0,0 +1,9 @@ +#ifndef CONFIG_USER_H + +#define CONFIG_USER_H +#define TAPPING_TERM 200 +#include "../../config.h" +#define PERMISSIVE_HOLD +#define PREVENT_STUCK_MODIFIERS + +#endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/rambo/keymap.c b/keyboards/planck/keymaps/rambo/keymap.c new file mode 100644 index 000000000000..37e22afb902a --- /dev/null +++ b/keyboards/planck/keymaps/rambo/keymap.c @@ -0,0 +1,98 @@ +#include "planck.h" + +//alias for clarity in layering +#define _______ KC_TRNS +#define A_BSPC LALT(KC_BSPC) +#define A_LEFT LALT(KC_LEFT) +#define A_RGHT LALT(KC_RGHT) +#define C_TAB LCTL(KC_TAB) +#define GSL LGUI(S(KC_LEFT)) +#define GSR LGUI(S(KC_RGHT)) +#define G_TAB LGUI(KC_TAB) +#define G_GRV LGUI(KC_GRV) // MAC: switch between windows within an application +#define SftEnt SFT_T(KC_ENT) +#define NAV LT(2, KC_TAB) + +#define _COLEMAK 0 +#define _SYMBOL 1 +#define _NAVIGATION 2 + +//tapdance declarations +enum { + SFT_LCK +}; + +//alias for tapdance +#define SftLck TD(SFT_LCK) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | ESC` | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Tab | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |SftLck| Z | X | C | V | B | K | M | , | . | /? |SftEnt| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | GUI | Ctrl | Alt | GUI | Space |Symbol| Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' +*/ + +[_COLEMAK] = { + {KC_GESC, KC_Q , KC_W , KC_F , KC_P , KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {NAV , KC_A , KC_R , KC_S , KC_T , KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {SftLck , KC_Z , KC_X , KC_C , KC_V , KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SftEnt }, + {KC_DEL , KC_LGUI, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + }, + +/* Symbol + * ,-----------------------------------------------------------------------------------. + * | [ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ] | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | \| | ! | @ | # | $ | % | ^ | & | * | ( | ) | =+ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | Home | End | ScUp | ScDn | F1 | F2 | -_ |Pg Up | | / | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | `~ | | | |Alt(Bk)| | |Pg Dn | Vol- | Vol+ | | + * `-----------------------------------------------------------------------------------' + */ +[_SYMBOL] = { + {KC_LBRC, KC_1, KC_2, KC_3, KC_4 , KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC}, + {KC_BSLS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL }, + {_______, KC_HOME, KC_END, KC_WH_U, KC_WH_D,KC_F1 , KC_F2 , KC_MINS, KC_PGUP, _______, _______, _______}, + {KC_GRV, _______, _______, _______, A_BSPC, _______, _______, _______, KC_PGDN, KC_VOLD, KC_VOLU, KC_MUTE} + }, + +/* Navigation*/ + +[_NAVIGATION] = { + {_______, _______, _______, _______, _______, _______, C_TAB , A_LEFT, KC_UP, A_RGHT , KC_DEL , _______}, + {_______, _______, _______, _______, _______, _______, GSL , KC_LEFT, KC_DOWN, KC_RGHT, GSR , _______}, + {_______, _______, _______, _______, _______, _______, G_TAB , KC_HOME, _______, KC_END, G_GRV , _______}, + {RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} +}; + +// Shift vs capslock function. From bbaserdem's Planck keymap. +void caps_tap (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + register_code (KC_LSFT); + } else if (state->count == 2) { + unregister_code (KC_LSFT); + register_code (KC_CAPS); + } +} +void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + unregister_code (KC_LSFT); + } else { + unregister_code (KC_CAPS); + } +} + +//Tap Dance Definitions +qk_tap_dance_action_t tap_dance_actions[] = { + //Tap once for Shift, twice for Caps Lock + [SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end ) +}; \ No newline at end of file diff --git a/keyboards/planck/keymaps/rambo/rules.mk b/keyboards/planck/keymaps/rambo/rules.mk new file mode 100644 index 000000000000..ffa9b870afef --- /dev/null +++ b/keyboards/planck/keymaps/rambo/rules.mk @@ -0,0 +1,6 @@ +TAP_DANCE_ENABLE = yes +MOUSEKEY_ENABLE = yes + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/satan/keymaps/bri/keymap.c b/keyboards/satan/keymaps/bri/keymap.c new file mode 100644 index 000000000000..e2ec80ef9509 --- /dev/null +++ b/keyboards/satan/keymaps/bri/keymap.c @@ -0,0 +1,102 @@ +#include "satan.h" + +#define _BL 0 +#define _FL 1 +#define _NAV 2 + +#define _______ KC_TRNS +#define A_LEFT LALT(KC_LEFT) +#define A_RGHT LALT(KC_RGHT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,-----------------------------------------------------------. + * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | + * |-----------------------------------------------------------| + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl | + * `-----------------------------------------------------------' + */ +[_BL] = KEYMAP_ANSI( + KC_GESC, 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_BSPC, \ + 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_BSLS, \ + MO(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, \ + KC_LCTL, KC_LALT,KC_LGUI, KC_SPC, KC_RGUI,KC_RALT, KC_RCTL, MO(_FL) ), + + /* Keymap _FL: Function Layer + * ,-----------------------------------------------------------. + * | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | | | |BL-|BL+|BL | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | F1|F2 | F3|F4 | F5| F6| F7| F8| | | | + * |-----------------------------------------------------------| + * |RESET| | | | | | | | + * `-----------------------------------------------------------' + */ +[_FL] = KEYMAP_ANSI( + #ifdef RGBLIGHT_ENABLE + KC_GRV , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10, KC_F11, KC_F12,_______, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC,BL_INC, BL_TOGG, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ + _______,RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,_______,_______,_______, \ + RESET ,_______,_______, _______, _______,_______,_______, _______), + #else + KC_GRV, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10, KC_F11, KC_F12,_______, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC, BL_INC,BL_TOGG, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ + RESET ,_______,_______, _______, _______,_______,_______,_______), + #endif + +[_NAV] = KEYMAP_ANSI( + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ + _______,_______,_______,_______,_______,_______,_______,A_LEFT , KC_UP ,A_RGHT ,_______,_______,_______,_______, \ + _______,_______,_______,_______,_______,_______,_______,KC_LEFT,KC_DOWN,KC_RGHT,_______,_______, _______, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ + _______,_______,_______, _______, _______,_______,_______,_______), + +}; +/* +enum function_id { + SHIFT_ESC, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +} +*/ diff --git a/keyboards/satan/keymaps/bri/readme.md b/keyboards/satan/keymaps/bri/readme.md new file mode 100644 index 000000000000..bed305997d5a --- /dev/null +++ b/keyboards/satan/keymaps/bri/readme.md @@ -0,0 +1,2 @@ +#QWERTY keymap for Satan GH60 with layers for arrow keys, function keys, and backlight controls. +#The layout of modifiers is intended to mimic the MacBook Air keyboard. \ No newline at end of file diff --git a/keyboards/xd75/keymaps/davidrambo/config.h b/keyboards/xd75/keymaps/davidrambo/config.h new file mode 100644 index 000000000000..e87ccde7979a --- /dev/null +++ b/keyboards/xd75/keymaps/davidrambo/config.h @@ -0,0 +1,26 @@ +/* Copyright 2017 Benjamin Kesselring + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +#define TAPPING_TERM 200 +#define PERMISSIVE_HOLD +#define PREVENT_STUCK_MODIFIERS + +#endif diff --git a/keyboards/xd75/keymaps/davidrambo/keymap.c b/keyboards/xd75/keymaps/davidrambo/keymap.c new file mode 100644 index 000000000000..6e95936c845c --- /dev/null +++ b/keyboards/xd75/keymaps/davidrambo/keymap.c @@ -0,0 +1,150 @@ +#include "xd75.h" + +//aliases for clarity in layering +#define _______ KC_TRNS +#define A_BSPC LALT(KC_BSPC) // delete whole word in Mac +#define C_BSPS LCTL(KC_BSPC) // delete whole word in PC +#define A_LEFT LALT(KC_LEFT) +#define A_RGHT LALT(KC_RGHT) +#define C_RGHT LCTL(KC_RGHT) +#define C_LEFT LCTL(KC_LEFT) +#define SftEnt SFT_T(KC_ENT) +#define GBSPC LGUI_T(KC_BSPC) +#define CBSPC LCTL_T(KC_BSPC) + +//internet browser tab shortcuts and window swapping for Mac and Win +#define GSL LGUI(S(KC_LEFT)) // back one tab in Safari +#define GSR LGUI(S(KC_RGHT)) // forward one tab in Safari +#define CTLPGDN LCTL(KC_PGDN) // back one tab on Windows +#define CTLPGUP LCTL(KC_PGUP) // forward one tab on Windows +#define G_TAB LGUI(KC_TAB) // MAC: switch applications +#define G_GRV LGUI(KC_GRV) // MAC: switch between windows within an application +#define A_TAB LALT(KC_TAB) +#define C_TAB LCTL(KC_TAB) + +// +#define NAV LT(3, KC_TAB) +#define NAVPC LT(4, KC_TAB) + +// Layer shorthand +#define _COLEMAK 0 +#define _PC 1 +#define _SYMBOL 2 //Function keys, numbers, symbols, Backlighting +#define _NAV 3 //Navigation Layer on Mac +#define _NAVPC 4 //Navigation Layer on Win + +//tapdance declarations +enum { + SFT_LCK +}; + +//alias for tapdance +#define SftLck TD(SFT_LCK) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* COLEMAK + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | `~ | 1 | 2 | 3 | 4 | 5 | - | SWITCH | = | 6 | 7 | 8 | 9 | 0 | BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | ESC/`~ | Q | W | F | P | G | [ | \ | ] | J | L | U | Y | ; | BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | NAVTAB | A | S | D | F | G | PgUp |PlayPaus| ENTER | H | N | E | I | O | ' | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * |SFT/CAPS| Z | X | C | V | B | PgDn | UP | ENTER | K | M | , | . | / | SftEnt | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------| + * | DEL | LGUI | LCTRL | LALT | LGUI | BKSPC | LEFT | DOWN | RIGHT | SPACE | SYMBOL | RGUI | RALT | RCTRL | BL | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_COLEMAK] = { /* COLEMAK */ + { KC_GRV , KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, TG(1) , KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC }, + { KC_GESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_LBRC, KC_BSLS, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC }, + { NAV , KC_A, KC_R, KC_S, KC_T, KC_D, KC_PGUP, KC_ESC , KC_ENT , KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT }, + { SftLck , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGDN, KC_UP , KC_ENT , KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SftEnt }, + { KC_DEL , KC_LGUI, KC_LCTL, KC_LALT, KC_LGUI, GBSPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, MO(2) , KC_RGUI, KC_RALT, KC_RCTL, BL_STEP }, + }, + +// Windows Layer: essentially swaps Control and GUI + + [_PC] = { /* WINDOWS */ + { _______, _______, _______, _______, _______, _______, _______, TG(0) , _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { NAVPC , _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, KC_LCTL, KC_LGUI, _______, KC_LCTL, CBSPC , _______, _______, _______, _______, _______, KC_RCTL, KC_RALT, KC_RGUI, _______ }, + }, + +/* SYMBOL + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | F12 | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | [{ | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | }] | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | ! | @ | # | $ | % | | | | ^ | & | * | ( | ) | = | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | -_ | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_SYMBOL] = { /* SYMBOL */ + { _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , _______, _______, _______, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , _______}, + { KC_LBRC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_RBRC}, + { _______, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL }, + { _______, BL_OFF , BL_ON , BL_DEC , BL_INC , KC_F11 , _______, _______, _______, KC_F12 , KC_MINS, _______, _______, _______, _______}, + { _______, _______, _______, _______, _______, A_BSPC , _______, _______, _______, _______, _______, _______, _______, _______, _______}, + }, + + + [_NAV] = { /* NAVIGATION for Mac */ + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, C_TAB , A_LEFT, KC_UP, A_RGHT , KC_DEL , _______}, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, GSL , KC_LEFT, KC_DOWN, KC_RGHT, GSR , _______}, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, G_TAB , KC_HOME, _______, KC_END , G_GRV , _______}, + { RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + }, + + [_NAVPC] = { /* NAVIGATION FOR WINDOWS: replaces Alt with Control, GUI with Alt, and browser tab shortcuts*/ + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, C_TAB , C_LEFT, KC_UP, C_RGHT , KC_DEL , _______}, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, CTLPGDN, KC_LEFT, KC_DOWN, KC_RGHT, CTLPGUP, _______}, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, A_TAB , KC_HOME, _______, KC_END , _______, _______}, + { RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + } +}; + +// Shift vs capslock function. From bbaserdem's Planck keymap. +void caps_tap (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + register_code (KC_LSFT); + } else if (state->count == 2) { + unregister_code (KC_LSFT); + register_code (KC_CAPS); + } +} +void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + unregister_code (KC_LSFT); + } else { + unregister_code (KC_CAPS); + } +} + +//Tap Dance Definitions +qk_tap_dance_action_t tap_dance_actions[] = { + //Tap once for Shift, twice for Caps Lock + [SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end ) +}; + +/* Template for future layers + [_LAYER_NAME] = { + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + } +}; +*/ diff --git a/keyboards/xd75/keymaps/davidrambo/readme.md b/keyboards/xd75/keymaps/davidrambo/readme.md new file mode 100644 index 000000000000..17b928c501f1 --- /dev/null +++ b/keyboards/xd75/keymaps/davidrambo/readme.md @@ -0,0 +1,4 @@ +# A Colemak layout for XD75 with both Mac and Windows layers. +# These two layers share momentary toggle access to a "Symbol" layer, which is modeled after my Planck layout. +# Each of the base Colemak layers have their own Navigation layers for the right hand to use arrows and shortcuts for both text editing and web browsing. +# The rules.mk file overrides the XD75's "BACKLIGHT_ENABLE" with YES and also adds tap dance functionality. \ No newline at end of file diff --git a/keyboards/xd75/keymaps/davidrambo/rules.mk b/keyboards/xd75/keymaps/davidrambo/rules.mk new file mode 100644 index 000000000000..edc9cc6bc1f7 --- /dev/null +++ b/keyboards/xd75/keymaps/davidrambo/rules.mk @@ -0,0 +1,2 @@ +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +TAP_DANCE_ENABLE = yes # Enable tap dance functionality \ No newline at end of file diff --git a/keyboards/xd75/keymaps/rambo/config.h b/keyboards/xd75/keymaps/rambo/config.h new file mode 100644 index 000000000000..e87ccde7979a --- /dev/null +++ b/keyboards/xd75/keymaps/rambo/config.h @@ -0,0 +1,26 @@ +/* Copyright 2017 Benjamin Kesselring + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +#define TAPPING_TERM 200 +#define PERMISSIVE_HOLD +#define PREVENT_STUCK_MODIFIERS + +#endif diff --git a/keyboards/xd75/keymaps/rambo/keymap.c b/keyboards/xd75/keymaps/rambo/keymap.c new file mode 100644 index 000000000000..6e95936c845c --- /dev/null +++ b/keyboards/xd75/keymaps/rambo/keymap.c @@ -0,0 +1,150 @@ +#include "xd75.h" + +//aliases for clarity in layering +#define _______ KC_TRNS +#define A_BSPC LALT(KC_BSPC) // delete whole word in Mac +#define C_BSPS LCTL(KC_BSPC) // delete whole word in PC +#define A_LEFT LALT(KC_LEFT) +#define A_RGHT LALT(KC_RGHT) +#define C_RGHT LCTL(KC_RGHT) +#define C_LEFT LCTL(KC_LEFT) +#define SftEnt SFT_T(KC_ENT) +#define GBSPC LGUI_T(KC_BSPC) +#define CBSPC LCTL_T(KC_BSPC) + +//internet browser tab shortcuts and window swapping for Mac and Win +#define GSL LGUI(S(KC_LEFT)) // back one tab in Safari +#define GSR LGUI(S(KC_RGHT)) // forward one tab in Safari +#define CTLPGDN LCTL(KC_PGDN) // back one tab on Windows +#define CTLPGUP LCTL(KC_PGUP) // forward one tab on Windows +#define G_TAB LGUI(KC_TAB) // MAC: switch applications +#define G_GRV LGUI(KC_GRV) // MAC: switch between windows within an application +#define A_TAB LALT(KC_TAB) +#define C_TAB LCTL(KC_TAB) + +// +#define NAV LT(3, KC_TAB) +#define NAVPC LT(4, KC_TAB) + +// Layer shorthand +#define _COLEMAK 0 +#define _PC 1 +#define _SYMBOL 2 //Function keys, numbers, symbols, Backlighting +#define _NAV 3 //Navigation Layer on Mac +#define _NAVPC 4 //Navigation Layer on Win + +//tapdance declarations +enum { + SFT_LCK +}; + +//alias for tapdance +#define SftLck TD(SFT_LCK) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* COLEMAK + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | `~ | 1 | 2 | 3 | 4 | 5 | - | SWITCH | = | 6 | 7 | 8 | 9 | 0 | BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | ESC/`~ | Q | W | F | P | G | [ | \ | ] | J | L | U | Y | ; | BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | NAVTAB | A | S | D | F | G | PgUp |PlayPaus| ENTER | H | N | E | I | O | ' | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * |SFT/CAPS| Z | X | C | V | B | PgDn | UP | ENTER | K | M | , | . | / | SftEnt | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------| + * | DEL | LGUI | LCTRL | LALT | LGUI | BKSPC | LEFT | DOWN | RIGHT | SPACE | SYMBOL | RGUI | RALT | RCTRL | BL | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_COLEMAK] = { /* COLEMAK */ + { KC_GRV , KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, TG(1) , KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC }, + { KC_GESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_LBRC, KC_BSLS, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC }, + { NAV , KC_A, KC_R, KC_S, KC_T, KC_D, KC_PGUP, KC_ESC , KC_ENT , KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT }, + { SftLck , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGDN, KC_UP , KC_ENT , KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SftEnt }, + { KC_DEL , KC_LGUI, KC_LCTL, KC_LALT, KC_LGUI, GBSPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, MO(2) , KC_RGUI, KC_RALT, KC_RCTL, BL_STEP }, + }, + +// Windows Layer: essentially swaps Control and GUI + + [_PC] = { /* WINDOWS */ + { _______, _______, _______, _______, _______, _______, _______, TG(0) , _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { NAVPC , _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, KC_LCTL, KC_LGUI, _______, KC_LCTL, CBSPC , _______, _______, _______, _______, _______, KC_RCTL, KC_RALT, KC_RGUI, _______ }, + }, + +/* SYMBOL + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | F12 | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | [{ | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | }] | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | ! | @ | # | $ | % | | | | ^ | & | * | ( | ) | = | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | -_ | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_SYMBOL] = { /* SYMBOL */ + { _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , _______, _______, _______, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , _______}, + { KC_LBRC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_RBRC}, + { _______, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL }, + { _______, BL_OFF , BL_ON , BL_DEC , BL_INC , KC_F11 , _______, _______, _______, KC_F12 , KC_MINS, _______, _______, _______, _______}, + { _______, _______, _______, _______, _______, A_BSPC , _______, _______, _______, _______, _______, _______, _______, _______, _______}, + }, + + + [_NAV] = { /* NAVIGATION for Mac */ + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, C_TAB , A_LEFT, KC_UP, A_RGHT , KC_DEL , _______}, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, GSL , KC_LEFT, KC_DOWN, KC_RGHT, GSR , _______}, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, G_TAB , KC_HOME, _______, KC_END , G_GRV , _______}, + { RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + }, + + [_NAVPC] = { /* NAVIGATION FOR WINDOWS: replaces Alt with Control, GUI with Alt, and browser tab shortcuts*/ + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, C_TAB , C_LEFT, KC_UP, C_RGHT , KC_DEL , _______}, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, CTLPGDN, KC_LEFT, KC_DOWN, KC_RGHT, CTLPGUP, _______}, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, A_TAB , KC_HOME, _______, KC_END , _______, _______}, + { RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + } +}; + +// Shift vs capslock function. From bbaserdem's Planck keymap. +void caps_tap (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + register_code (KC_LSFT); + } else if (state->count == 2) { + unregister_code (KC_LSFT); + register_code (KC_CAPS); + } +} +void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + unregister_code (KC_LSFT); + } else { + unregister_code (KC_CAPS); + } +} + +//Tap Dance Definitions +qk_tap_dance_action_t tap_dance_actions[] = { + //Tap once for Shift, twice for Caps Lock + [SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end ) +}; + +/* Template for future layers + [_LAYER_NAME] = { + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + } +}; +*/ diff --git a/keyboards/xd75/keymaps/rambo/readme.md b/keyboards/xd75/keymaps/rambo/readme.md new file mode 100644 index 000000000000..17b928c501f1 --- /dev/null +++ b/keyboards/xd75/keymaps/rambo/readme.md @@ -0,0 +1,4 @@ +# A Colemak layout for XD75 with both Mac and Windows layers. +# These two layers share momentary toggle access to a "Symbol" layer, which is modeled after my Planck layout. +# Each of the base Colemak layers have their own Navigation layers for the right hand to use arrows and shortcuts for both text editing and web browsing. +# The rules.mk file overrides the XD75's "BACKLIGHT_ENABLE" with YES and also adds tap dance functionality. \ No newline at end of file diff --git a/keyboards/xd75/keymaps/rambo/rules.mk b/keyboards/xd75/keymaps/rambo/rules.mk new file mode 100644 index 000000000000..edc9cc6bc1f7 --- /dev/null +++ b/keyboards/xd75/keymaps/rambo/rules.mk @@ -0,0 +1,2 @@ +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +TAP_DANCE_ENABLE = yes # Enable tap dance functionality \ No newline at end of file From ed62c6e146e685e41e434e3335065b1205f41925 Mon Sep 17 00:00:00 2001 From: ajp10304 Date: Sun, 15 Apr 2018 17:48:19 +0100 Subject: [PATCH 217/578] Ajp10304 (#2719) * AJP10304 layouts for Planck and JJ40 now have mouse support. Moved macros onto Adjust layer * .gitignore for intellij iml files. * Updated Macros to use send string --- .gitignore | 1 + keyboards/jj40/keymaps/ajp10304/keymap.c | 102 +++++++++---------- keyboards/jj40/keymaps/ajp10304/readme.md | 37 ++++--- keyboards/jj40/keymaps/ajp10304/rules.mk | 3 +- keyboards/planck/keymaps/ajp10304/keymap.c | 103 +++++++++----------- keyboards/planck/keymaps/ajp10304/readme.md | 65 ++++++------ keyboards/planck/keymaps/ajp10304/rules.mk | 3 +- 7 files changed, 148 insertions(+), 166 deletions(-) diff --git a/.gitignore b/.gitignore index 971e90453ba0..799fb54def9b 100644 --- a/.gitignore +++ b/.gitignore @@ -43,6 +43,7 @@ doxygen/ .project .settings/ .idea +*.iml .browse.VC.db* *.stackdump util/Win_Check_Output.txt diff --git a/keyboards/jj40/keymaps/ajp10304/keymap.c b/keyboards/jj40/keymaps/ajp10304/keymap.c index be5ee9e3681e..1da57c444fd3 100644 --- a/keyboards/jj40/keymaps/ajp10304/keymap.c +++ b/keyboards/jj40/keymaps/ajp10304/keymap.c @@ -15,7 +15,7 @@ enum jj40_layers { _FUNC, _MFNC, _ADJUST, - _DYN + _MOUSE }; enum jj40_keycodes { @@ -27,6 +27,7 @@ enum jj40_keycodes { MLWR, RAISE, MRSE, + MOUSE, DYNAMIC_MACRO_RANGE }; @@ -64,14 +65,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | MENU | Alt | Ctrl | Fn | + * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn | * `-----------------------------------------------------------------------------------' */ [_FUNC] = KEYMAP(\ - 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT ,\ - KC_LSHIFT, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL, KC_BSLASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) ,\ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT ,\ + KC_LSHIFT, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL, KC_BSLASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) ,\ + _______, _______, _______, _______, _______, _______, _______, MO(_MOUSE), _______, _______, _______, _______ \ ), /* Lower @@ -100,51 +101,50 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | | | | { | } | | |< | LEFT | DOWN |RIGHT | >| |ZOOM -| * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | Alt | Enter|Raise | | | | | + * | Mouse| | | | | Alt | Enter|Raise | | | | | * `-----------------------------------------------------------------------------------' */ [_RAISE] = KEYMAP(\ - KC_GRV, XXXXXXX, M(1), KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDOWN, XXXXXXX, KC_PSCREEN ,\ - KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) ,\ - _______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) ,\ - _______, _______, _______, _______, _______, KC_LALT, KC_ENT, _______, XXXXXXX, _______, _______, _______ \ + KC_GRV, XXXXXXX, M(1), KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDOWN, XXXXXXX, KC_PSCREEN ,\ + KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) ,\ + _______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) ,\ + MO(_MOUSE), _______, _______, _______, _______, KC_LALT, KC_ENT, _______, XXXXXXX, _______, _______, _______ \ ), - /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. - * | ???? | Reset|Qwerty| | | | | | | | | Del | + * | ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | CAPS | | | | | | | Mute | Vol+ | Play | | | + * | CAPS | | | | | PLAY1| PLAY2| Mute | Vol+ | Play | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | | | Prev | Vol- | Next | | | + * | | | | | | STOP | STOP | Prev | Vol- | Next | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | DYN | | | | + * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_ADJUST] = KEYMAP(\ - M(0), RESET, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,\ - KC_CAPS, _______, _______, _______, _______, _______, _______, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ ,\ - TG(_MAC), _______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ ,\ - _______, _______, _______, _______, _______, _______, _______, _______, MO(_DYN), _______, _______, _______ \ + M(0), RESET, QWERTY, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, KC_DEL ,\ + KC_CAPS, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ ,\ + TG(_MAC), _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ ,\ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ ), -/* DYN: Macro Recording and Playback +/* Mouse * ,-----------------------------------------------------------------------------------. - * | | | | | | REC1 | REC2 | | | | | | + * | ESC | | | | | | | | | | | | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | | | PLAY1| PLAY2| | | | | | + * | ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | STOP | STOP | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | + * | ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN |RIGHT | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_DYN]= KEYMAP(\ - _______, _______, _______, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, _______,\ - _______, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______,\ - _______, _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, _______, _______, _______, _______, _______,\ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______\ +[_MOUSE] = KEYMAP(\ + KC_ESC , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\ + KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _______, _______,\ + KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______,\ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______\ ), [_MAC]= KEYMAP(\ @@ -247,32 +247,22 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } +const macro_t *action_get_macro(keyrecord_t *record, uint8_t keycode, uint8_t opt) { + // These would trigger when you hit a key mapped as M(0) + if (record->event.pressed) { + switch(keycode) { + case 0: // Some custom string here + SEND_STRING(""); + return false; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - switch(id) { - // These would trigger when you hit a key mapped as M(0) - case 0: - if (record->event.pressed) { - return MACRO( - // SENSITIVE - END - ); - } - break; - case 1: // Word Select - if (record->event.pressed) { - return MACRO( - DOWN(KC_LCTL), DOWN(KC_RIGHT), UP(KC_RIGHT), DOWN(KC_LSFT), DOWN(KC_LEFT), UP(KC_LEFT), UP(KC_LSFT), UP(KC_LCTL), - END - ); - } - case 2: // Word Select - MAC - if (record->event.pressed) { - return MACRO( - DOWN(KC_LALT), DOWN(KC_RIGHT), UP(KC_RIGHT), DOWN(KC_LSFT), DOWN(KC_LEFT), UP(KC_LEFT), UP(KC_LSFT), UP(KC_LALT), - END - ); - } + case 1: // Word Select + SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_RIGHT) SS_DOWN(X_LSHIFT) SS_TAP(X_LEFT) SS_UP(X_LSHIFT) SS_UP(X_LCTRL)); + return false; + + case 2: // Word Select Mac + SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_RIGHT) SS_DOWN(X_LSHIFT) SS_TAP(X_LEFT) SS_UP(X_LSHIFT) SS_UP(X_LALT)); + return false; + } } return MACRO_NONE; }; diff --git a/keyboards/jj40/keymaps/ajp10304/readme.md b/keyboards/jj40/keymaps/ajp10304/readme.md index 406bb6ba2fa2..eaaacd05b3e5 100644 --- a/keyboards/jj40/keymaps/ajp10304/readme.md +++ b/keyboards/jj40/keymaps/ajp10304/readme.md @@ -27,7 +27,7 @@ Activated when `fn` held in the above `qwerty` layer. | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT| | Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift | -| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | MENU | Alt | Ctrl | Fn | +| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn | ##### Lower Layer Activated when `Lower` is held in the above `qwerty` layer. @@ -56,38 +56,37 @@ Activated when `Lower` is held in the above `qwerty` layer. | ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC| | ` | | | ( | ) | | | HOME | UP | END | |ZOOM +| | | | | { | } | ||<| LEFT | DOWN |RIGHT |>||ZOOM -| -| | | | | | Alt | Enter |Raise | | | | | +| Mouse | | | | | Alt | Enter |Raise | | | | | ##### Lower + Raise -Activated when `Lower` and `Raise` are held together the above `qwerty` layer. +Activated when `Lower` and `Raise` are held together in the above `qwerty` layer. * Audio controls in the same position as cursor keys from the `Raise` layer. * ????: Runs a macro for outputting a text string. Do not use this store passwords. * Reset: Enter bootloader for flashing firmware to the keyboard. * CAPS: Toggle caps lock. -* DYN: Enter `DYN` layer. * MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER, MRSE with RAISE and MFNC with FUNC respectively. +* REC1, REC2: Start recording macro. +* PLAY1, PLAY2: Playback macro. +* STOP1, STOP2: Stop recording macro. | | | | | | | | | | | | | | :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| ???? | Reset|Qwerty| | | | | | | | | Del | -| CAPS | | | | | | | Mute | Vol+ | Play | | | -| MAC | | | | | | | Prev | Vol- | Next | | | -| | | | | | | | | DYN | | | | - -##### DYN -Activated when `DYN` held along with `Lower` and `Raise` -Allows recording of macros. To start recording the macro, press either REC1 or REC2. -To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2. - -| | | | | | | | | | | | | -| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| | | | | | REC1 | REC2 | | | | | | -| | | | | | PLAY1| PLAY2| | | | | | -| | | | | | STOP | STOP | | | | | | +| ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del | +| CAPS | | | | | PLAY1| PLAY | Mute | Vol+ | Play | | | +| MAC | | | | | STOP | STOP | Prev | Vol- | Next | | | | | | | | | | | | | | | | + +##### Mouse +Activated when `fn` and `Raise` are held together. +| | | | | | | | | | | | | +| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:| +| | | | | | | | | | | | | +| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | | +| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN |RIGHT | | | +| | | | | | | | | | | | | ####Manual Flashing of hex file `bootloadHID -r .build/jj40_ajp10304.hex` diff --git a/keyboards/jj40/keymaps/ajp10304/rules.mk b/keyboards/jj40/keymaps/ajp10304/rules.mk index 76b36845c617..dc6ab13e89f1 100644 --- a/keyboards/jj40/keymaps/ajp10304/rules.mk +++ b/keyboards/jj40/keymaps/ajp10304/rules.mk @@ -2,4 +2,5 @@ ifndef QUANTUM_DIR include ../../../../Makefile endif -AUDIO_ENABLE = no \ No newline at end of file +AUDIO_ENABLE = no +MOUSEKEY_ENABLE = yes diff --git a/keyboards/planck/keymaps/ajp10304/keymap.c b/keyboards/planck/keymaps/ajp10304/keymap.c index 18a3f486d1f6..02ba8fff7661 100644 --- a/keyboards/planck/keymaps/ajp10304/keymap.c +++ b/keyboards/planck/keymaps/ajp10304/keymap.c @@ -15,7 +15,7 @@ enum planck_layers { _FUNC, _MFNC, _ADJUST, - _DYN + _MOUSE }; enum planck_keycodes { @@ -27,6 +27,7 @@ enum planck_keycodes { MLWR, RAISE, MRSE, + MOUSE, DYNAMIC_MACRO_RANGE }; @@ -64,14 +65,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | MENU | Alt | Ctrl | Fn | + * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn | * `-----------------------------------------------------------------------------------' */ [_FUNC] = { - {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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT }, - {KC_LSHIFT, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL, KC_BSLASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) }, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ } + {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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT }, + {KC_LSHIFT, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL, KC_BSLASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) }, + {_______, _______, _______, _______, _______, _______, _______, MO(_MOUSE), _______, _______, _______, _______ } }, /* Lower @@ -100,54 +101,52 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | | | | { | } | | |< | LEFT | DOWN |RIGHT | >| |ZOOM -| * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | Alt | Enter|Raise | | | | | + * | Mouse| | | | | Alt | Enter|Raise | | | | | * `-----------------------------------------------------------------------------------' */ [_RAISE] = { - {KC_GRV, XXXXXXX, M(1), KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDOWN, XXXXXXX, KC_PSCREEN }, - {KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) }, - {_______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) }, - {_______, _______, _______, _______, _______, KC_LALT, KC_ENT, _______, XXXXXXX, _______, _______, _______ } + {KC_GRV, XXXXXXX, M(1), KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDOWN, XXXXXXX, KC_PSCREEN }, + {KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) }, + {_______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) }, + {MO(_MOUSE), _______, _______, _______, _______, KC_LALT, KC_ENT, _______, XXXXXXX, _______, _______, _______ } }, - /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. - * | ???? | Reset|Qwerty| | | | | | | | | Del | + * | ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | CAPS | | | | | | | Mute | Vol+ | Play | | | + * | CAPS | | | | | PLAY1| PLAY2| Mute | Vol+ | Play | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | | | Prev | Vol- | Next | | | + * | | | | | | STOP | STOP | Prev | Vol- | Next | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | DYN | | | | + * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_ADJUST] = { - {M(0), RESET, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL }, - {KC_CAPS, _______, _______, _______, _______, _______, _______, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ }, - {TG(_MAC), _______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ }, - {_______, _______, _______, _______, _______, _______, _______, _______, MO(_DYN), _______, _______, _______ } + {M(0), RESET, QWERTY, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, KC_DEL }, + {KC_CAPS, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ }, + {TG(_MAC), _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ }, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ } }, -/* DYN: Macro Recording and Playback +/* Mouse * ,-----------------------------------------------------------------------------------. - * | | | | | | REC1 | REC2 | | | | | | + * | ESC | | | | | | | | | | | | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | | | PLAY1| PLAY2| | | | | | + * | ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | STOP | STOP | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | + * | ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN |RIGHT | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_DYN]= { - {_______, _______, _______, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +[_MOUSE] = { + {KC_ESC , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + {KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _______, _______ }, + {KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______ }, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ } }, - [_MAC]= { {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, @@ -248,32 +247,22 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } +const macro_t *action_get_macro(keyrecord_t *record, uint8_t keycode, uint8_t opt) { + // These would trigger when you hit a key mapped as M(0) + if (record->event.pressed) { + switch(keycode) { + case 0: // Some custom string here + SEND_STRING(""); + return false; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - switch(id) { - // These would trigger when you hit a key mapped as M(0) - case 0: - if (record->event.pressed) { - return MACRO( - // SENSITIVE - END - ); - } - break; - case 1: // Word Select - if (record->event.pressed) { - return MACRO( - DOWN(KC_LCTL), DOWN(KC_RIGHT), UP(KC_RIGHT), DOWN(KC_LSFT), DOWN(KC_LEFT), UP(KC_LEFT), UP(KC_LSFT), UP(KC_LCTL), - END - ); - } - case 2: // Word Select - MAC - if (record->event.pressed) { - return MACRO( - DOWN(KC_LALT), DOWN(KC_RIGHT), UP(KC_RIGHT), DOWN(KC_LSFT), DOWN(KC_LEFT), UP(KC_LEFT), UP(KC_LSFT), UP(KC_LALT), - END - ); - } + case 1: // Word Select + SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_RIGHT) SS_DOWN(X_LSHIFT) SS_TAP(X_LEFT) SS_UP(X_LSHIFT) SS_UP(X_LCTRL)); + return false; + + case 2: // Word Select Mac + SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_RIGHT) SS_DOWN(X_LSHIFT) SS_TAP(X_LEFT) SS_UP(X_LSHIFT) SS_UP(X_LALT)); + return false; + } } return MACRO_NONE; }; diff --git a/keyboards/planck/keymaps/ajp10304/readme.md b/keyboards/planck/keymaps/ajp10304/readme.md index 69b08ed511a5..3f92d76383a9 100644 --- a/keyboards/planck/keymaps/ajp10304/readme.md +++ b/keyboards/planck/keymaps/ajp10304/readme.md @@ -1,11 +1,12 @@ # AJP10304 Custom Planck Layout +# Also available for the JJ40 -**Note:** In the tables below where there are two characters on a key, +**Note:** In the tables below where there are two characters on a key, the second is the output when shift is applied. - + **Note:** The below tables assume a UK layout. -##### Main Qwerty Layer +##### Main Qwerty Layer * Tab: when held, operates as shift. * Enter: when held, operates as shift. @@ -26,13 +27,13 @@ Activated when `fn` held in the above `qwerty` layer. | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT| | Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift | -| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | MENU | Alt | Ctrl | Fn | +| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn | ##### Lower Layer Activated when `Lower` is held in the above `qwerty` layer. * Numbers are along the top row, their shifted counterparts are on row 2. -* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word. +* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word. * WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word. | | | | | | | | | | | | | @@ -41,48 +42,48 @@ Activated when `Lower` is held in the above `qwerty` layer. | ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks| | Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift | | | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play | - + ##### Raise Layer Activated when `Raise` is held in the above `qwerty` layer. - + * Preferred layer for typing brackets. * Allows for cursor navigation to be used solely with the right hand. * WRDSEL: Select the word where the cursor is. * |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping. -| | | | | | | | | | | | | -| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:| +| | | | | | | | | | | | | +| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:| | ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC| | ` | | | ( | ) | | | HOME | UP | END | |ZOOM +| | | | | { | } | ||<| LEFT | DOWN |RIGHT |>||ZOOM -| -| | | | | | Alt | Enter |Raise | | | | | - +| Mouse | | | | | Alt | Enter |Raise | | | | | + ##### Lower + Raise -Activated when `Lower` and `Raise` are held together the above `qwerty` layer. +Activated when `Lower` and `Raise` are held together in the above `qwerty` layer. -* Audio controls in the same position as cursor keys from the `Raise` layer. +* Audio controls in the same position as cursor keys from the `Raise` layer. * ????: Runs a macro for outputting a text string. Do not use this store passwords. * Reset: Enter bootloader for flashing firmware to the keyboard. * CAPS: Toggle caps lock. -* DYN: Enter `DYN` layer. -* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER, +* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER, MRSE with RAISE and MFNC with FUNC respectively. +* REC1, REC2: Start recording macro. +* PLAY1, PLAY2: Playback macro. +* STOP1, STOP2: Stop recording macro. -| | | | | | | | | | | | | -| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| ???? | Reset|Qwerty| | | | | | | | | Del | -| CAPS | | | | | | | Mute | Vol+ | Play | | | -| MAC | | | | | | | Prev | Vol- | Next | | | -| | | | | | | | | DYN | | | | - -##### DYN -Activated when `DYN` held along with `Lower` and `Raise` -Allows recording of macros. To start recording the macro, press either REC1 or REC2. -To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2. - -| | | | | | | | | | | | | -| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| | | | | | REC1 | REC2 | | | | | | -| | | | | | PLAY1| PLAY2| | | | | | -| | | | | | STOP | STOP | | | | | | | | | | | | | | | | | | | +| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| +| ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del | +| CAPS | | | | | PLAY1| PLAY | Mute | Vol+ | Play | | | +| MAC | | | | | STOP | STOP | Prev | Vol- | Next | | | +| | | | | | | | | | | | | + +##### Mouse +Activated when `fn` and `Raise` are held together. + +| | | | | | | | | | | | | +| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:| +| | | | | | | | | | | | | +| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | | +| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN |RIGHT | | | +| | | | | | | | | | | | | diff --git a/keyboards/planck/keymaps/ajp10304/rules.mk b/keyboards/planck/keymaps/ajp10304/rules.mk index 76b36845c617..dc6ab13e89f1 100644 --- a/keyboards/planck/keymaps/ajp10304/rules.mk +++ b/keyboards/planck/keymaps/ajp10304/rules.mk @@ -2,4 +2,5 @@ ifndef QUANTUM_DIR include ../../../../Makefile endif -AUDIO_ENABLE = no \ No newline at end of file +AUDIO_ENABLE = no +MOUSEKEY_ENABLE = yes From b7d095fdc312516091c2430f35ecba1a5ae5caf4 Mon Sep 17 00:00:00 2001 From: markhuguet <30506876+markhuguet@users.noreply.github.com> Date: Sun, 15 Apr 2018 12:49:31 -0400 Subject: [PATCH 218/578] Added Factory Style LED Controls (#2678) * This adds a keymap to the MF68 labeled factory. It is an attempt to mimic the layout on the factory keycaps of the non-backlit board. There are some small differences: 1) FN+WASD are an arrow cluster 2) FN+Z (Start media player) and FN+] (Start Calculator) are not mapped 3) FN+GHJKL are Backlight controls 4) An FN2 layer exists for future growth 5) The CAPS key is maped as FN2, for CAPS Lock use FN+CAPS * Changed the CAPS key to be CAPS Lock on short press, FN2 on hold Added LED controls to FN+Arrow Keys to better mimic factory backlit boards. --- keyboards/mf68/keymaps/factory/keymap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/mf68/keymaps/factory/keymap.c b/keyboards/mf68/keymaps/factory/keymap.c index 2533c93c3909..ffd857a89fcc 100644 --- a/keyboards/mf68/keymaps/factory/keymap.c +++ b/keyboards/mf68/keymaps/factory/keymap.c @@ -4,7 +4,7 @@ #define _FN1 1 #define _FN2 2 #define KC_ KC_TRNS -#define KC_X0 LT(_FN2, KC_GRV) +#define KC_X0 LT(_FN2, KC_CAPS) #define KC_X1 MO(_FN1) #define KC_X2 BL_STEP #define KC_X3 BL_BRTG @@ -35,11 +35,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /*|esc-`-1--`-2--`-3--`-4--`-5--`-6--`-7--`-8--`-9--`-0--`mnus`plus`--bksp--| |ins-`pgup| */ , , UP , , , , , , ,PSCR,SLCK,PAUS, X2 , , ,END, /*|tab---`-q--`-w--`-e--`-r--`-t--`-y--`-u--`-i--`-o--`-p--`-{--`-}--`--|---| `del-`pgdn' */ - CAPS ,LEFT,DOWN,RGHT, , X6 , X5 , X4 , X3 , X2 ,HOME, , , + X0 ,LEFT,DOWN,RGHT, , X6 , X5 , X4 , X3 , X2 ,HOME, , , /*|caps---`-a--`-s--`-d--`-f--`-g--`-h--`-j--`-k--`-l--`-;--`-'--`----enter-| ,----. */ - , ,MPLY,MSTP,MPRV,MNXT,VOLD,VOLU,MUTE, ,END , , , + , ,MPLY,MSTP,MPRV,MNXT,VOLD,VOLU,MUTE, ,END , , X5 , /*|shift----`-z--`-x--`-c--`-v--`-b--`-n--`-m--`-,--`-.--`-/--`-------shift-.--|-up-|----. */ - , , , , , , , , , + , , , , , , , X3 , X6 , X4 /*`ctrl-+-gui-+-alt-+----------space---------------+-fn---+-alt-+ctrl-' `left+down+rght' */ ), From 5d36118eaa2b7573090f4e1f42b6715f432bc7bb Mon Sep 17 00:00:00 2001 From: youdroid <13148824+youdroid@users.noreply.github.com> Date: Sun, 15 Apr 2018 18:50:46 +0200 Subject: [PATCH 219/578] Add French Layout for XD75 (#2681) --- keyboards/xd75/keymaps/french/README.md | 20 +++ keyboards/xd75/keymaps/french/config.h | 24 +++ keyboards/xd75/keymaps/french/keymap.c | 60 +++++++ keyboards/xd75/keymaps/french/keymap_french.c | 157 ++++++++++++++++++ keyboards/xd75/keymaps/french/rules.mk | 20 +++ 5 files changed, 281 insertions(+) create mode 100644 keyboards/xd75/keymaps/french/README.md create mode 100644 keyboards/xd75/keymaps/french/config.h create mode 100644 keyboards/xd75/keymaps/french/keymap.c create mode 100644 keyboards/xd75/keymaps/french/keymap_french.c create mode 100644 keyboards/xd75/keymaps/french/rules.mk diff --git a/keyboards/xd75/keymaps/french/README.md b/keyboards/xd75/keymaps/french/README.md new file mode 100644 index 000000000000..8c5330290ee9 --- /dev/null +++ b/keyboards/xd75/keymaps/french/README.md @@ -0,0 +1,20 @@ +# Clavier AZERTY français + +![Disposition Clavier](https://i.imgur.com/tH9TVBc.png) + + +# Configuration du clavier + +Ce clavier AZERTY est basé sur le fichier keymap_french.c de correspondance QWERTY - AZERTY. + +Ce fichier est composé de trois énumérations (layout français, touches de contrôle, touches multimédias) correspondant aux keycodes sous la forme d'hexa. + +Il peut être utilisé pour toute autre configuration de clavier juste en incluant ce fichier dans son propre keymap.c. + +La touche de fonction permet elle d'avoir accès aux différentes touches multimédias ainsi qu'au pavé numérique. Mais aussi si le clavier est équipé de led, à différents modes d'éclairage. + +# Compilation + +``` +make xd75:french:dfu +``` diff --git a/keyboards/xd75/keymaps/french/config.h b/keyboards/xd75/keymaps/french/config.h new file mode 100644 index 000000000000..015377b5f8f7 --- /dev/null +++ b/keyboards/xd75/keymaps/french/config.h @@ -0,0 +1,24 @@ +/* Copyright 2017 Benjamin Kesselring + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here + +#endif diff --git a/keyboards/xd75/keymaps/french/keymap.c b/keyboards/xd75/keymaps/french/keymap.c new file mode 100644 index 000000000000..a5d14674a927 --- /dev/null +++ b/keyboards/xd75/keymaps/french/keymap.c @@ -0,0 +1,60 @@ +#include "keymap_french.c" +#include "xd75.h" + + +// Layer shorthand +#define _AZ 0 +#define _FN 1 + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* AZERTY + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | ESC | & | é | " | ' | ( | - | è | _ | ç | à | ) | = | INSERT | BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | a | z | e | r | t | y | u | i | o | p | ^ | $ | ENTER | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | CAP LK | q | s | d | f | g | h | j | k | l | m | ù | * | ENTER | PG DN | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | LSHIFT | w | x | c | v | b | n | , | ; | : | ! | < | LSHIFT | UP | DEL | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------| + * | LCTRL | CMD | ALT | FN | SPACE | SPACE | SPACE | SPACE | ALGR | MENU | HOME | END | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_AZ] = { /* AZERTY */ + { FR_ESC, FR_AMP, FR_EACU, FR_QUOT, FR_APOS, FR_LPAR, FR_MINS, FR_EGRV, FR_UNDS, FR_CCED, FR_AGRV, FR_RPAR, FR_EQUA, FR_INST, FR_BSPC }, + { FR_TAB, FR_A, FR_Z, FR_E, FR_R, FR_T, FR_Y, FR_U, FR_I, FR_O, FR_P, FR_HAT, FR_DLR, FR_ENTR, FR_PGUP }, + { FR_CAPL, FR_Q, FR_S, FR_D, FR_F, FR_G, FR_H, FR_J, FR_K, FR_L, FR_M, FR_UGRV, FR_AST, FR_ENTR, FR_PGDN }, + { FR_LSFT, FR_W, FR_X, FR_C, FR_V, FR_B, FR_N, FR_COMM, FR_SCLN, FR_COLN, FR_EXCL, FR_LESS, FR_RSFT, FR_UP, FR_DEL }, + { FR_LCTR, FR_LCMD, FR_LALT, MO(_FN), FR_SPAC, FR_SPAC, FR_SPAC, FR_SPAC, FR_ALGR, FR_MENU, FR_HOME, FR_END, FR_LEFT, FR_DOWN, FR_RIGT }, + }, + + +/* FUNCTION + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PRINT | LED | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | PREV | PLAY | NEXT | | | | | NUM LCK| 7 | 8 | 9 | * | | LED+ | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | VOL- | MUTE | VOL+ | | | | | | 4 | 5 | 6 | - | | LED- | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | 1 | 2 | 3 | + | | LEDMAX | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | RESET | | | FN | | | | | | | 0 | . | PENT | | LEDLVL | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_FN] = { /* FUNCTION */ + { FR_EMPT, FR_F1, FR_F2, FR_F3, FR_F4, FR_F5, FR_F6, FR_F7, FR_F8, FR_F9, FR_F10, FR_F11, FR_F12, FR_PSCR, BL_TOGG }, + { FR_EMPT, FR_MPRV, FR_MPLY, FR_MNXT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_NUML, FR_7, FR_8, FR_9, FR_MULT, FR_EMPT, BL_INC }, + { FR_EMPT, FR_MVDN, FR_MUTE, FR_MVUP, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_4, FR_5, FR_6, FR_MOIN, FR_EMPT, BL_DEC }, + { FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_1, FR_2, FR_3, FR_PLUS, FR_EMPT, BL_ON }, + { RESET, FR_EMPT, FR_EMPT, FR_TRANS, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_0, FR_DOT, FR_ENTK, FR_EMPT, BL_STEP }, + }, +}; + +const uint16_t PROGMEM fn_actions[] = { +}; + diff --git a/keyboards/xd75/keymaps/french/keymap_french.c b/keyboards/xd75/keymaps/french/keymap_french.c new file mode 100644 index 000000000000..f7d068c33e9e --- /dev/null +++ b/keyboards/xd75/keymaps/french/keymap_french.c @@ -0,0 +1,157 @@ +enum french_key { + + FR_EMPT = 0x00, + FR_TRANS, + FR_Q = 0x04, + FR_B, + FR_C, + FR_D, + FR_E, + FR_F, + FR_G, + FR_H, + FR_I, + FR_J, + FR_K, + FR_L, + FR_COMM, /* 0x10 */ + FR_N, + FR_O, + FR_P, + FR_A, + FR_R, + FR_S, + FR_T, + FR_U, + FR_V, + FR_Z, + FR_X, + FR_Y, + FR_W, + FR_AMP, + FR_EACU, + FR_QUOT, /* 0x20 */ + FR_APOS, + FR_LPAR, + FR_MINS, + FR_EGRV, + FR_UNDS, + FR_CCED, + FR_AGRV, + FR_ENTR, + FR_ESC, + FR_BSPC, + FR_TAB, + FR_SPAC, + FR_RPAR, + FR_EQUA, + FR_HAT, + FR_DLR, /* 0x30 */ + FR_AST =0x32, + FR_M, + FR_UGRV, + FR_SCLN =0x36, + FR_COLN, + FR_EXCL, + FR_CAPL, + FR_F1, + FR_F2, + FR_F3, + FR_F4, + FR_F5, + FR_F6, + FR_F7, /* 0x40 */ + FR_F8, + FR_F9, + FR_F10, + FR_F11, + FR_F12, + FR_PSCR, + FR_INST =0x49, + FR_HOME, + FR_PGUP, + FR_DEL, + FR_END, + FR_PGDN, + FR_RIGT, + FR_LEFT, /* 0x50 */ + FR_DOWN, + FR_UP, + FR_NUML, + FR_SLSH, /* KEYPAD */ + FR_MULT, + FR_MOIN, + FR_PLUS, + FR_ENTK, + FR_1, + FR_2, + FR_3, + FR_4, + FR_5, + FR_6, + FR_7, + FR_8, /* 0x60 */ + FR_9, + FR_0, + FR_DOT, + FR_LESS, + FR_EQ =0x67 /* END KEYPAD */, + FR_F13, + FR_F14, + FR_F15, + FR_F16, + FR_F17, + FR_F18, + FR_F19, + FR_F20, + FR_F21, /* 0x70 */ + FR_F22, + FR_F23, + FR_F24, + FR_MENU =0x76 +}; + + +enum french_control_touch{ + + /* Modifiers */ + FR_LCTR = 0xE0, + FR_LSFT, + FR_LALT, + FR_LCMD, + FR_RCTR, + FR_RSFT, + FR_ALGR, + FR_RCMD +}; + + +enum french_media_key{ + /* System Control */ + FR_SYSTEM_POWER = 0xA5, + FR_SYSTEM_SLEEP, + FR_SYSTEM_WAKE, + + /* Media Control */ + FR_MUTE, + FR_MVUP, + FR_MVDN, + FR_MNXT, + FR_MPRV, + FR_MSTP, + FR_MPLY, + FR_MEDIA_SELECT, + FR_MEDIA_EJECT, + FR_MAIL, + FR_CALCULATOR, + FR_MY_COMPUTER, + FR_WWW_SEARCH, + FR_WWW_HOME, + FR_WWW_BACK, + FR_WWW_FORWARD, + FR_WWW_STOP, + FR_WWW_REFRESH, + FR_WWW_FAVORITES, + FR_MEDIA_FAST_FORWARD, + FR_MEDIA_REWIND /* 0xBC */ +}; diff --git a/keyboards/xd75/keymaps/french/rules.mk b/keyboards/xd75/keymaps/french/rules.mk new file mode 100644 index 000000000000..dfd79792fa5b --- /dev/null +++ b/keyboards/xd75/keymaps/french/rules.mk @@ -0,0 +1,20 @@ +# Copyright 2013 Jun Wako +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +RGBLIGHT_ENABLE = no + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif From 1b711453cafc335cf352808199416e0e57e62f2c Mon Sep 17 00:00:00 2001 From: Spencer Date: Sun, 15 Apr 2018 11:51:38 -0500 Subject: [PATCH 220/578] Updated Levinson and Fourier keymaps (#2685) * new file: keyboards/dilly/keymaps/delmo/config.h new file: keyboards/dilly/keymaps/delmo/keymap.c new file: keyboards/dilly/keymaps/delmo/rules.mk new file: keyboards/fourier/config.h new file: keyboards/fourier/fourier.c new file: keyboards/fourier/fourier.h new file: keyboards/fourier/i2c.c new file: keyboards/fourier/i2c.h new file: keyboards/fourier/keymaps/default/config.h new file: keyboards/fourier/keymaps/default/keymap.c new file: keyboards/fourier/keymaps/default/rules.mk new file: keyboards/fourier/keymaps/valgrahf/config.h new file: keyboards/fourier/keymaps/valgrahf/keymap.c new file: keyboards/fourier/keymaps/valgrahf/rules.mk new file: keyboards/fourier/matrix.c new file: keyboards/fourier/readme.md new file: keyboards/fourier/rev1/config.h new file: keyboards/fourier/rev1/rev1.c new file: keyboards/fourier/rev1/rev1.h new file: keyboards/fourier/rev1/rules.mk new file: keyboards/fourier/rules.mk new file: keyboards/fourier/serial.c new file: keyboards/fourier/serial.h new file: keyboards/fourier/split_util.c new file: keyboards/fourier/split_util.h * new file: keyboards/levinson/keymaps/valgrahf/config.h new file: keyboards/levinson/keymaps/valgrahf/keymap.c new file: keyboards/levinson/keymaps/valgrahf/rules.mk * modified: keyboards/levinson/keymaps/valgrahf/keymap.c * deleted: keyboards/dilly/keymaps/delmo/config.h deleted: keyboards/dilly/keymaps/delmo/keymap.c deleted: keyboards/dilly/keymaps/delmo/rules.mk * modified: keyboards/fourier/keymaps/valgrahf/keymap.c * deleted: keyboards/fourier/config.h deleted: keyboards/fourier/fourier.c deleted: keyboards/fourier/fourier.h deleted: keyboards/fourier/i2c.c deleted: keyboards/fourier/i2c.h deleted: keyboards/fourier/keymaps/default/config.h deleted: keyboards/fourier/keymaps/default/keymap.c deleted: keyboards/fourier/keymaps/default/rules.mk deleted: keyboards/fourier/keymaps/valgrahf/config.h deleted: keyboards/fourier/keymaps/valgrahf/keymap.c deleted: keyboards/fourier/keymaps/valgrahf/rules.mk deleted: keyboards/fourier/matrix.c deleted: keyboards/fourier/readme.md deleted: keyboards/fourier/rev1/config.h deleted: keyboards/fourier/rev1/rev1.c deleted: keyboards/fourier/rev1/rev1.h deleted: keyboards/fourier/rev1/rules.mk deleted: keyboards/fourier/rules.mk deleted: keyboards/fourier/serial.c deleted: keyboards/fourier/serial.h deleted: keyboards/fourier/split_util.c deleted: keyboards/fourier/split_util.h * deleted: keyboards/fourier/config.h deleted: keyboards/fourier/fourier.c deleted: keyboards/fourier/fourier.h deleted: keyboards/fourier/i2c.c deleted: keyboards/fourier/i2c.h deleted: keyboards/fourier/keymaps/default/config.h deleted: keyboards/fourier/keymaps/default/keymap.c deleted: keyboards/fourier/keymaps/default/rules.mk deleted: keyboards/fourier/keymaps/valgrahf/config.h deleted: keyboards/fourier/keymaps/valgrahf/keymap.c deleted: keyboards/fourier/keymaps/valgrahf/rules.mk deleted: keyboards/fourier/matrix.c deleted: keyboards/fourier/readme.md deleted: keyboards/fourier/rev1/config.h deleted: keyboards/fourier/rev1/rev1.c deleted: keyboards/fourier/rev1/rev1.h deleted: keyboards/fourier/rev1/rules.mk deleted: keyboards/fourier/rules.mk deleted: keyboards/fourier/serial.c deleted: keyboards/fourier/serial.h deleted: keyboards/fourier/split_util.c deleted: keyboards/fourier/split_util.h keyboards/fourier/ * new file: keyboards/fourier/config.h new file: keyboards/fourier/fourier.c new file: keyboards/fourier/fourier.h new file: keyboards/fourier/i2c.c new file: keyboards/fourier/i2c.h new file: keyboards/fourier/keymaps/default/config.h new file: keyboards/fourier/keymaps/default/keymap.c new file: keyboards/fourier/keymaps/default/rules.mk new file: keyboards/fourier/keymaps/valgrahf/config.h new file: keyboards/fourier/keymaps/valgrahf/keymap.c new file: keyboards/fourier/keymaps/valgrahf/rules.mk new file: keyboards/fourier/matrix.c new file: keyboards/fourier/readme.md new file: keyboards/fourier/rev1/config.h new file: keyboards/fourier/rev1/rev1.c new file: keyboards/fourier/rev1/rev1.h new file: keyboards/fourier/rev1/rules.mk new file: keyboards/fourier/rules.mk new file: keyboards/fourier/serial.c new file: keyboards/fourier/serial.h new file: keyboards/fourier/split_util.c new file: keyboards/fourier/split_util.h * modified: keyboards/fourier/keymaps/valgrahf/keymap.c * modified: keyboards/fourier/keymaps/valgrahf/keymap.c --- keyboards/dilly/keymaps/delmo/config.h | 10 ++ keyboards/dilly/keymaps/delmo/keymap.c | 107 +++++++++++++++++++ keyboards/dilly/keymaps/delmo/rules.mk | 1 + keyboards/fourier/keymaps/valgrahf/config.h | 31 ++++++ keyboards/fourier/keymaps/valgrahf/keymap.c | 73 +++++++++++++ keyboards/fourier/keymaps/valgrahf/rules.mk | 3 + keyboards/levinson/keymaps/valgrahf/config.h | 25 +++++ keyboards/levinson/keymaps/valgrahf/keymap.c | 67 ++++++++++++ keyboards/levinson/keymaps/valgrahf/rules.mk | 8 ++ 9 files changed, 325 insertions(+) create mode 100644 keyboards/dilly/keymaps/delmo/config.h create mode 100644 keyboards/dilly/keymaps/delmo/keymap.c create mode 100644 keyboards/dilly/keymaps/delmo/rules.mk create mode 100644 keyboards/fourier/keymaps/valgrahf/config.h create mode 100644 keyboards/fourier/keymaps/valgrahf/keymap.c create mode 100644 keyboards/fourier/keymaps/valgrahf/rules.mk create mode 100644 keyboards/levinson/keymaps/valgrahf/config.h create mode 100644 keyboards/levinson/keymaps/valgrahf/keymap.c create mode 100644 keyboards/levinson/keymaps/valgrahf/rules.mk diff --git a/keyboards/dilly/keymaps/delmo/config.h b/keyboards/dilly/keymaps/delmo/config.h new file mode 100644 index 000000000000..4d704c17ef36 --- /dev/null +++ b/keyboards/dilly/keymaps/delmo/config.h @@ -0,0 +1,10 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +#define TAPPING_TERM 200 +#define RETRO_TAPPING +#define PERMISSIVE_HOLD + +#endif diff --git a/keyboards/dilly/keymaps/delmo/keymap.c b/keyboards/dilly/keymaps/delmo/keymap.c new file mode 100644 index 000000000000..c0441ab67409 --- /dev/null +++ b/keyboards/dilly/keymaps/delmo/keymap.c @@ -0,0 +1,107 @@ +#include "dilly.h" +#include "action_layer.h" + +extern keymap_config_t keymap_config; + +#define _BASE 0 +#define _FN1 1 +#define _FN2 2 +#define _FN3 3 +#define _FN4 4 +#define _FN5 5 + +#define KC_ KC_TRNS +#define _______ KC_TRNS + +// Tap-Hold keys +//#define KC_ASFT MT(MOD_LSFT, KC_A) +#define KC_F_L3 LT(_FN3, KC_F) +#define KC_ZCTL MT(MOD_LCTL, KC_Z) +#define KC_XALT MT(MOD_LALT, KC_X) +//#define KC_CGUI MT(MOD_LGUI, KC_C) +#define KC_V_L4 LT(_FN4, KC_V) +#define KC_SPL2 LT(_FN2, KC_SPC) +#define KC_B_L1 LT(_FN1, KC_B) +#define KC_N_L5 LT(_FN5, KC_N) +//#define KC_MALT MT(MOD_RALT, KC_M) +//#define KC_BSCT MT(MOD_RCTL, KC_BSPC) +#define KC_ENTS MT(MOD_RSFT, KC_ENT) +#define KC_BSCS MT(MOD_RSFT, KC_BSPC) + +#define KC_GUIC LGUI(KC_C) + +#define KC_RST RESET +#define KC_BL_S BL_STEP +#define KC_DBUG DEBUG +#define KC_RTOG RGB_TOG +#define KC_RMOD RGB_MOD +#define KC_RHUI RGB_HUI +#define KC_RHUD RGB_HUD +#define KC_RSAI RGB_SAI +#define KC_RSAD RGB_SAD +#define KC_RVAI RGB_VAI +#define KC_RVAD RGB_VAD + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + Q , W , E , R , T , Y , U , I , O , P , + //|----+----+----+----+----+----+----+----+----+----| + A , S , D ,F_L3, G , H , J , K , L ,BSCS, + //|----+----+----+----+----+----+----+----+----+----| + ZCTL,XALT,C ,V_L4,B_L1,SPL2,N_L5,M ,DOT ,ENTS + //`----+----+----+----+----+----+----+----+----+----' + ), + + [_FN1] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , + //|----+----+----+----+----+----+----+----+----+----| + F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 , + //|----+----+----+----+----+----+----+----+----+----| + , , , , ,BSPC, , , ,CAPS + //`----+----+----+----+----+----+----+----+----+----' + ), + + [_FN2] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + EXLM, AT ,HASH,DLR ,PERC,CIRC,AMPR,ASTR,LPRN,RPRN, + //|----+----+----+----+----+----+----+----+----+----| + F11 ,F12 , , , , , , , ,GRV , + //|----+----+----+----+----+----+----+----+----+----| + , , , ,DEL , , , , , + //`----+----+----+----+----+----+----+----+----+----' + ), + + [_FN3] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + ESC , , , , ,MINS,EQL ,LBRC,RBRC,BSLS, + //|----+----+----+----+----+----+----+----+----+----| + TAB , , , , ,COMM,DOT ,SLSH,SCLN,QUOT, + //|----+----+----+----+----+----+----+----+----+----| + , , , ,BSPC, ,LEFT,DOWN, UP ,RGHT + //`----+----+----+----+----+----+----+----+----+----' + ), + + [_FN4] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + , , , , ,UNDS,PLUS,LCBR,RCBR,PIPE, + //|----+----+----+----+----+----+----+----+----+----| + TAB , , , , , LT , GT ,QUES,COLN,DQUO, + //|----+----+----+----+----+----+----+----+----+----| + , ,GUIC, ,BSPC, ,HOME,PGDN,PGUP,END + //`----+----+----+----+----+----+----+----+----+----' + ), + + [_FN5] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + RTOG,RMOD, ,RST ,RHUI,RSAI,RVAI, , , , + //|----+----+----+----+----+----+----+----+----+----| + , ,DBUG, ,RHUD,RSAD,RVAD, , , , + //|----+----+----+----+----+----+----+----+----+----| + BL_S, ,GUIC, , , , , , , + //`----+----+----+----+----+----+----+----+----+----' + ) + +}; \ No newline at end of file diff --git a/keyboards/dilly/keymaps/delmo/rules.mk b/keyboards/dilly/keymaps/delmo/rules.mk new file mode 100644 index 000000000000..1e3cebb14515 --- /dev/null +++ b/keyboards/dilly/keymaps/delmo/rules.mk @@ -0,0 +1 @@ +RGBLIGHT_ENABLE = yes diff --git a/keyboards/fourier/keymaps/valgrahf/config.h b/keyboards/fourier/keymaps/valgrahf/config.h new file mode 100644 index 000000000000..20e49c421956 --- /dev/null +++ b/keyboards/fourier/keymaps/valgrahf/config.h @@ -0,0 +1,31 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +#endif diff --git a/keyboards/fourier/keymaps/valgrahf/keymap.c b/keyboards/fourier/keymaps/valgrahf/keymap.c new file mode 100644 index 000000000000..93c92a68af50 --- /dev/null +++ b/keyboards/fourier/keymaps/valgrahf/keymap.c @@ -0,0 +1,73 @@ +#include "fourier.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BASE 0 +#define _FN1 1 +#define _FN2 2 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, +}; + +#define KC_ KC_TRNS +#define _______ KC_TRNS +#define XXXXXXX KC_NO +#define KC_FN1 LT(_FN1, KC_NO) +#define KC_FN2 LT(_FN2, KC_NO) +#define KC_SPFN LT(_FN1, KC_SPACE) +#define KC_RST RESET +#define KC_DBUG DEBUG +#define KC_RTOG RGB_TOG +#define KC_RMOD RGB_MOD +#define KC_RHUI RGB_HUI +#define KC_RHUD RGB_HUD +#define KC_RSAI RGB_SAI +#define KC_RSAD RGB_SAD +#define KC_RVAI RGB_VAI +#define KC_RVAD RGB_VAD + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = KC_KEYMAP( + //,----+----+----+----+----+----|----+----+----+----+----+----+----. + TAB , Q , W , E , R , T , Y , U , I , O , P , DEL,BSPC, + //|----`----`----`----`----`----|----`----`----`----`----`----`----| + ESC , A , S , D , F , G , H , J , K , L ,QUOT, SCLN , + //|-----`----`----`----`----`----|----`----`----`----`----`--------| + LSFT , Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, PGUP , + //|-------`----`----`----`----`----|----`----`----`----`----`------| + LCTL ,LALT, FN1, ,ENTER , SPACE , FN2 , HOME, END , PGDN + //`-----+----+-----+-------------|--------+-----+-----+-----+------' + ), + + [_FN1] = KC_KEYMAP( + //,----+----+----+----+----+----|----+----+----+----+----+----+----. + GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , , , + //|----`----`----`----`----`----|----`----`----`----`----`----`----| + DEL , F1 ,F2 , F3 , F4 , F5 , F6 ,MINS, EQL,LBRC,RBRC, BSLS , + //|-----`----`----`----`----`----|----`----`----`----`----`--------| + , F7 , F8 , F9 , F10, F11, F12, , , , UP , , + //|-------`----`----`----`----`----|----`----`----`----`----`------| + , , , , , ,RGUI,LEFT ,DOWN ,RIGHT + //`-----+----+-----+-------------|--------+-----+-----+-----+------' + ), + + [_FN2] = KC_KEYMAP( + //,----+----+----+----+----+----|----+----+----+----+----+----+----. + TILD,EXLM, AT ,HASH,DLR ,PERC,CIRC,AMPR,ASTR,LPRN,RPRN, , , + //|----`----`----`----`----`----|----`----`----`----`----`----`----| + DEL ,RHUI,RSAI,RVAI, , , ,UNDS,PLUS,LCBR,RCBR, PIPE , + //|-----`----`----`----`----`----|----`----`----`----`----`--------| + ,RHUD,RSAD,RVAD, , ,VOLU,VOLD, , , UP , , + //|-------`----`----`----`----`----|----`----`----`----`----`------| + ,RTOG,RMOD , , , , , LEFT, DOWN, RIGHT + //`-----+----+-----+-------------|--------+-----+-----+-----+------' + ) + +}; diff --git a/keyboards/fourier/keymaps/valgrahf/rules.mk b/keyboards/fourier/keymaps/valgrahf/rules.mk new file mode 100644 index 000000000000..457a3d01d4a4 --- /dev/null +++ b/keyboards/fourier/keymaps/valgrahf/rules.mk @@ -0,0 +1,3 @@ +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/levinson/keymaps/valgrahf/config.h b/keyboards/levinson/keymaps/valgrahf/config.h new file mode 100644 index 000000000000..b7c6b0a7f582 --- /dev/null +++ b/keyboards/levinson/keymaps/valgrahf/config.h @@ -0,0 +1,25 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#define RGB_DI_PIN D3 +#define RGBLED_NUM 12 +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_SLEEP + +#endif diff --git a/keyboards/levinson/keymaps/valgrahf/keymap.c b/keyboards/levinson/keymaps/valgrahf/keymap.c new file mode 100644 index 000000000000..5956ad27b093 --- /dev/null +++ b/keyboards/levinson/keymaps/valgrahf/keymap.c @@ -0,0 +1,67 @@ +#include "levinson.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +#define _BASE 0 +#define _FN1 1 +#define _FN2 2 + +#define KC_ KC_TRNS +#define _______ KC_TRNS +#define XXXXXXX KC_NO +#define KC_FN1 LT(_FN1, KC_NO) +#define KC_FN2 LT(_FN2, KC_NO) +#define KC_SPFN LT(_FN1, KC_SPACE) +#define KC_RST RESET +#define KC_DBUG DEBUG +#define KC_RTOG RGB_TOG +#define KC_RMOD RGB_MOD +#define KC_RHUI RGB_HUI +#define KC_RHUD RGB_HUD +#define KC_RSAI RGB_SAI +#define KC_RSAD RGB_SAD +#define KC_RVAI RGB_VAI +#define KC_RVAD RGB_VAD + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + TAB, Q , W , E , R , T , Y , U , I , O , P ,BSPC, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + ESC, A , S , D , F , G , H , J , K , L ,SCLN,QUOT, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + LSFT, Z , X , C , V , B , N , M ,COMM, DOT,SLSH,PGUP, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + LCTL,LGUI,LALT, FN1, ENT, ENT, SPC, SPC, FN2,HOME, END,PGDN + //`----+----+----+----+----+----' `----+----+----+----+----+----' + ), + + [_FN1] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + GRV, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + DEL, F1, F2, F3, F4, F5, F6,MINS, EQL,LBRC,RBRC,BSLS, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , F7, F8, F9, F10, F11, F12, , , , UP, , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , , , ,LEFT,DOWN,RIGHT + //`----+----+----+----+----+----' `----+----+----+----+----+----' + ), + + [_FN2] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN, , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + DEL,RHUI,RSAI,RVAI, , , ,UNDS,PLUS,LCBR,RCBR,PIPE, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + ,RHUD,RSAD,RVAD, , , , , , , , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + ,RTOG,RMOD, , , , , , , , , + //`----+----+----+----+----+----' `----+----+----+----+----+----' + ), + +}; diff --git a/keyboards/levinson/keymaps/valgrahf/rules.mk b/keyboards/levinson/keymaps/valgrahf/rules.mk new file mode 100644 index 000000000000..0db809fe4bb1 --- /dev/null +++ b/keyboards/levinson/keymaps/valgrahf/rules.mk @@ -0,0 +1,8 @@ +RGBLIGHT_ENABLE = yes +BACKLIGHT_ENABLE = yes +AUDIO_ENABLE = no +USE_I2C = no + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif From 13cdfb465d5f6a1833866c3bccde39db70054a85 Mon Sep 17 00:00:00 2001 From: Biacco42 Date: Mon, 16 Apr 2018 01:54:11 +0900 Subject: [PATCH 221/578] Add Illustrator keymap layout for Ergo42 (#2658) --- .../keymaps/default-illustrator/config.h | 37 ++++++ .../keymaps/default-illustrator/keymap.c | 119 ++++++++++++++++++ .../keymaps/default-illustrator/rules.mk | 3 + 3 files changed, 159 insertions(+) create mode 100644 keyboards/ergo42/keymaps/default-illustrator/config.h create mode 100644 keyboards/ergo42/keymaps/default-illustrator/keymap.c create mode 100644 keyboards/ergo42/keymaps/default-illustrator/rules.mk diff --git a/keyboards/ergo42/keymaps/default-illustrator/config.h b/keyboards/ergo42/keymaps/default-illustrator/config.h new file mode 100644 index 000000000000..5a6261c4f7cf --- /dev/null +++ b/keyboards/ergo42/keymaps/default-illustrator/config.h @@ -0,0 +1,37 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#endif diff --git a/keyboards/ergo42/keymaps/default-illustrator/keymap.c b/keyboards/ergo42/keymaps/default-illustrator/keymap.c new file mode 100644 index 000000000000..f46dbc4b8db3 --- /dev/null +++ b/keyboards/ergo42/keymaps/default-illustrator/keymap.c @@ -0,0 +1,119 @@ +#include "ergo42.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +#define BASE 0 +#define META 1 +#define SYMB 2 +#define GAME 3 +#define ILLUST 4 + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* BASE + * ,------------------------------------------------. ,------------------------------------------------. + * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | @ | + * |------+------+------+------+------+------+------| |-------------+------+------+------+------+------| + * | Alt | A | S | D | F | G | ( | | ) | H | J | K | L | ; | : | + * |------+------+------+------+------+------+------| |------|------+------+------+------+------+------| + * | Sft | Z | X | C | V | B | { | | } | N | M | , | . | / |\/Sft | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | Ctrl | GUI | App |=>ILST|ESC/ |Space/|Tab/ | |Back |Enter/| Del |PrtSc |=>GAME|=>ILST| \ | + * | | | | |~SYMB |RCtrl |Shift | |Space |~META | | | | | | + * `------------------------------------------------' `------------------------------------------------' + */ + +[BASE] = KEYMAP( \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_RBRC, KC_BSLS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, \ + KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, S(KC_8), S(KC_9), KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, S(KC_RBRC), S(KC_BSLS), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_RO), \ + KC_LCTRL, KC_LGUI, KC_APP, TG(ILLUST), LT(SYMB, KC_ESC), RCTL_T(KC_SPC), SFT_T(KC_TAB), KC_BSPC, LT(META, KC_ENT), KC_DELT, KC_PSCR, TG(GAME), TG(ILLUST), KC_JYEN \ +), + +/* META + * ,------------------------------------------------. ,------------------------------------------------. + * | 1 | 2 | 3 | 4 | 5 | 6 | [ | | ] | 7 | 8 | 9 | 0 | - | ^ | + * |------+------+------+------+------+------+------| |-------------+------+------+------+------+------| + * | Alt | F1 | |Muhen | Henk | | ( | | ) | Left | Down | Up |Right | | | + * |------+------+------+------+------+------+------| |------|------+------+------+------+------+------| + * | Sft | F2 | F3 | F4 | F5 | F6 | { | | } | F7 | F8 | F9 | F10 | F11 |\/Sft | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | Ctrl | GUI | App | |ESC/ |Space/|Tab/ | |Back |Enter/| Del |Reset | | | \ | + * | | | | |~SYMB |RCtrl |Shift | |Space |~META | | | | | | + * `------------------------------------------------' `------------------------------------------------' + */ + +[META] = KEYMAP( \ + 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_F1, XXXXXXX, KC_MHEN, KC_HENK, XXXXXXX, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, \ + _______, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, SFT_T(KC_RO), \ + _______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, RESET, XXXXXXX, XXXXXXX, _______ \ +), + +/* SYMB + * ,------------------------------------------------. ,------------------------------------------------. + * | ! | " | # | $ | % | & | [ | | ] | ' | ( | ) | ~ | = | ~ | + * |------+------+------+------+------+------+------| |-------------+------+------+------+------+------| + * | Alt | | | | | | ( | | ) | | | | | + | * | + * |------+------+------+------+------+------+------| |------|------+------+------+------+------+------| + * | Sft | | | | | | { | | } | | | < | > | ? | \ | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | Ctrl | GUI | App | |ESC/ |Space/|Tab/ | |Back |Enter/| Del |PrtSc | | | \ | + * | | | | |~SYMB |RCtrl |Shift | |Space |~META | | | | | | + * `------------------------------------------------' `------------------------------------------------' + */ + +[SYMB] = KEYMAP( \ + S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), _______, _______, S(KC_7), S(KC_8), S(KC_9), S(KC_0), S(KC_MINS), S(KC_EQL), \ + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, S(KC_SCLN), S(KC_QUOT), \ + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, S(KC_COMM), S(KC_DOT), S(KC_SLSH), S(KC_RO), \ + _______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______ \ +), + +/* GAME + * ,------------------------------------------------. ,------------------------------------------------. + * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | @ | + * |------+------+------+------+------+------+------| |-------------+------+------+------+------+------| + * | Alt | A | S | D | F | G | ( | | ) | H | J | K | L | ; | : | + * |------+------+------+------+------+------+------| |------|------+------+------+------+------+------| + * | Sft | Z | X | C | V | B | { | | } | N | M | , | . | / |\/Sft | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | Ctrl | GUI | App | | ESC |Space |Tab | |Back |Enter | Del |PrtSc |=>GAME| | \ | + * | | | | | | | | |Space | | | | | | | + * `------------------------------------------------' `------------------------------------------------' + */ +[GAME] = KEYMAP( \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_RBRC, KC_BSLS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, \ + KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, S(KC_8), S(KC_9), KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, S(KC_RBRC), S(KC_BSLS), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_RO), \ + KC_LCTRL, KC_LGUI, KC_APP, XXXXXXX, KC_ESC, KC_SPC, KC_TAB, KC_BSPC, KC_ENT, KC_DELT, KC_PSCR, _______, XXXXXXX, KC_JYEN \ +), + +/* ILLUST + * ,------------------------------------------------. ,------------------------------------------------. + * | Tab | H | G | I | P | C+J | C+] | | ] | Y | U | I | O | P | @ | + * |------+------+------+------+------+------+------| |-------------+------+------+------+------+------| + * | Alt | R | S | A | V |Sft+W | C+[ | | ) | H | J | K | L | ; | : | + * |------+------+------+------+------+------+------| |------|------+------+------+------+------+------| + * | Sft | Z | X | C | V | B | F | | } | N | M | , | . | / |\/Sft | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | Ctrl | GUI | App |=>ILST| ESC | Ctrl | Del | |Back |Enter/| Del |PrtSc |=>GAME|=>ILST| \ | + * | | | | | | | | |Space |~META | | | | | | + * `------------------------------------------------' `------------------------------------------------' + */ + +[ILLUST] = KEYMAP( \ + KC_TAB, KC_H, KC_G, KC_I, KC_P, LCTL(KC_J), LCTL(KC_BSLS), _______, _______, _______, _______, _______, _______, _______, \ + KC_LALT, KC_R, KC_S, KC_A, KC_V, S(KC_W), LCTL(KC_RBRC), _______, _______, _______, _______, _______, _______, _______, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F, _______, _______, _______, _______, _______, _______, _______, \ + KC_LCTRL, KC_LGUI, KC_APP, _______, KC_ESC, KC_RCTL, KC_DELT, _______, _______, _______, _______, XXXXXXX, _______, _______ \ +) + +}; + diff --git a/keyboards/ergo42/keymaps/default-illustrator/rules.mk b/keyboards/ergo42/keymaps/default-illustrator/rules.mk new file mode 100644 index 000000000000..457a3d01d4a4 --- /dev/null +++ b/keyboards/ergo42/keymaps/default-illustrator/rules.mk @@ -0,0 +1,3 @@ +ifndef QUANTUM_DIR + include ../../../../Makefile +endif From e2fb3079c7168ba109dfeeec20931ad75870186a Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Mon, 16 Apr 2018 01:54:56 +0900 Subject: [PATCH 222/578] update Helix keymap 'five_rows' (#2635) * add 'HELIX=' option for build * add IOS_DEVICE_ENABLE for iPad * shrink size to helix five_rows keymap.c * shrink size. _ADJUST number change * add KEYPAD layer * modify keypad leyer * display RGB mode on slave side OLED * fix Colemak, Dvorak center DEL to BS * change LEFT BS to LEFT SP and add AUX layer for try old map * update update_base_layer() * add right keypad and keypad func layer * use MO() macro insted of LOWER,RAISE,ADJUST custom key-code * remove LOWER,RAISE,ADJUST custom key-code * use MO(_LOWER|_RAISE|_ADJUST) * relayout ADJUST layer * modify Function Layer. PGUP,PGDN swap HOME,END * add Keypad aux layer for '00' send * update README.md, README_jp.md * fix README.md * fix README.md, README_jp.md --- .../helix/rev2/keymaps/five_rows/README.md | 73 ++-- .../helix/rev2/keymaps/five_rows/README_jp.md | 95 +++-- .../helix/rev2/keymaps/five_rows/config.h | 33 +- .../helix/rev2/keymaps/five_rows/keymap.c | 330 ++++++++++-------- .../helix/rev2/keymaps/five_rows/rules.mk | 39 ++- 5 files changed, 341 insertions(+), 229 deletions(-) diff --git a/keyboards/helix/rev2/keymaps/five_rows/README.md b/keyboards/helix/rev2/keymaps/five_rows/README.md index edb768f3b22b..4feaac2efbfd 100644 --- a/keyboards/helix/rev2/keymaps/five_rows/README.md +++ b/keyboards/helix/rev2/keymaps/five_rows/README.md @@ -4,15 +4,17 @@ This keymap is only for 5 rows Helix keyboard. ## Layout -![fig1](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/662082b66231eb8d1f45776d813c57f29d445e68/helix-five_rows_r2.png) +![fig1](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3.png) ## Layer |Priority|Number|Name|Discription| | ---- | ---- | --- | --- | -|high|16|Adjust| keyboard local functions| -||4|Extra char| some charactors | -||3|Function| function keys | +|high|9|Adjust| keyboard local functions (violet)| +||8|KFunction| TenkeyPad function keys (bule)| +||7|Extra char| some charactors (red)| +||6|Function| function keys (blue)| +||2|Keypad|TenkeyPad| ||2|Dvorak|Dvorak| ||1|Colemak|Colemak| |low|0|Qwerty|QWERTY (base)| @@ -23,7 +25,9 @@ Adjust Layer has keyboard local function keys. * LED control. * Mac/Win mode change. -* Qwerty/Colemak/Dvorak change. +* Qwerty/Colemak/Dvorak/TenkeyPad change. + +![fig2](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3adj.png) ### Mac mode and Win mode @@ -32,42 +36,49 @@ Mac mode swap Alt/Win(GUI) key. |mode|key|code| | ---- | ---- | --- | |Mac mode|Adjust + g(Qwerty)|AG_NORM| -|Win mode|Adjust + h(Qwerty)|AG_SWAP| -| |Adjust + t(Qwerty)| | +| |Adjust + h(Qwerty)| | +|Win mode|Adjust + t(Qwerty)|AG_SWAP| +| |Adjust + y(Qwerty)| | ### LED control |command|key|code| | ---- | ---- | --- | -|on/off|Adjust + ,(Qwerty)|RGB_TOG| -| |Adjust + v(Qwerty)| | -|change mode|Adjust + Right option |RGB_SMOD| -| |Adjust + c(Qwerty)| | -|HUE +|Adjust + .(Qwerty) |RGB_HUI| -| |Adjust + Left Control| | -|HUE -|Adjust + menu |RGB_HUD| -| |Adjust + Left Shift | | -|SAT +|Adjust + /(Qwerty) |RGB_SAI| +|on/off|Adjust + e(Qwerty)|RGB_TOG| +| |Adjust + i(Qwerty)| | +|change mode|Adjust + d(Qwerty) |RGB_SMOD| +| |Adjust + k(Qwerty)| | +|HUE +|Adjust + Left Control|RGB_HUI| +| |Adjust + Right Control| | +|HUE -|Adjust + Left Shift |RGB_HUD| +| |Adjust + Right Shift | | +|SAT +|Adjust + ;(Qwerty) |RGB_SAI| | |Adjust + a(Qwerty) | | -|SAT -|Adjust + right hand left side Fn|RGB_SAD| -| |Adjust + z(Qwerty) | | -|Bright +|Adjust + Right Shift |RGB_VAI| -| |Adjust + s(Qwerty)| | -|Bright -|Adjust + right hand right side Fn|RGB_VAD| -| |Adjust + x(Qwerty) | | -|reset|Adjust + w(Qwerty)|RGBRST| +|SAT -|Adjust + z(Qwerty) |RGB_SAD| +| |Adjust + /(Qwerty) | | +|Bright +|Adjust + s(Qwerty) |RGB_VAI| +| |Adjust + l(Qwerty) | | +|Bright -|Adjust + x(Qwerty) |RGB_VAD| +| |Adjust + >(Qwerty) | | +|reset|Adjust + w|RGBRST| -### Qwerty, Colemak, Dvorak selection +### Qwerty, Colemak, Dvorak, TenkeyPad selection |char layout|key| | ---- | ---- | -|Qwerty | Adjust + j(Qwerty) | -| | Adjust + 5| -|Calemak| Adjust + k(Qwerty) | -| | Adjust + 4| -|Dvorak | Adjust + l(Qwerty) | -| | Adjust + 3| +|Qwerty | Adjust + 5 | +| | Adjust + 6 | +|Calemak| Adjust + 4 | +| | Adjust + 7 | +|Dvorak | Adjust + 3 | +| | Adjust + 8 | +|Keypad | Adjust + 2 | +| | Adjust + 9 | + +## TenkeyPad layout + +![fig3](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3key.png) ## Note -![fig2](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/9979482e9aa0b25962fad9ee634cd1c23cef1751/five_rows_making.jpg) +![fig4](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/d6e9af7684c051de4744b9dee9cd96b762bf4e2d/five_rows_making2.jpg) diff --git a/keyboards/helix/rev2/keymaps/five_rows/README_jp.md b/keyboards/helix/rev2/keymaps/five_rows/README_jp.md index 8d3d8f2def80..932e200a5638 100644 --- a/keyboards/helix/rev2/keymaps/five_rows/README_jp.md +++ b/keyboards/helix/rev2/keymaps/five_rows/README_jp.md @@ -7,33 +7,38 @@ ## キー配置 以下に、Qwerty配列時の、文字配列の図を示します。 -![fig1](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/662082b66231eb8d1f45776d813c57f29d445e68/helix-five_rows_r2.png) +![fig1](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3.png) ## レイヤー |優先順位|番号|名称|内容| | ---- | ---- | --- | --- | -|高い|16|Adjust|機能キー(紫)| -||4|Extra char|記号類(赤)| -||3|Function|ファンクションキー類(青)| +|高い|9|Adjust|機能キー(紫)| +||8|KFunction|テンキーパッド用ファンクションキー類(青)| +||7|Extra char|記号類(赤)| +||6|Function|ファンクションキー類(青)| +||3|Keypad|テンキーパッド配列| ||2|Dvorak|Dvorak配列| ||1|Colemak|Colemak配列| |低い|0|Qwerty|QWERTY配列(ベース)| -Qwerty/Colemak/Dvorak の各レイヤーは、後述する、Ajuest キーによる選択で、いずれか一つだけが有効になり、標準のキーマップとなります。 +Qwerty/Colemak/Dvorak/Keypad の各レイヤーは、後述する、Ajuestレイヤーの キーによる選択で、いずれか一つだけが有効になり、標準のキーマップとなります。 -Adjust レイヤーは、Adjust キーを押している間だけ有効になり、標準のキーマップの上にかぶさるように一部のキーが置き換わります。 +Function レイヤーは、下段両端の4つのFnキーのどれかひとつを押している間だけ有効になり、矢印キー等のナビゲーションキーや F1, F2, ...F12キーなどが配置されています。 +上の図の青色の刻印のキーのあるレイヤーです。 -Function レイヤーは、Fn キーを押している間だけ有効になり、標準のキーマップの上にかぶさるように一部のキーが置き換わります。 +Extra レイヤーは、下段中央部の Enter キーか BS キーを一定時間(0.2秒)以上押していると押している間だけ有効になり、'+=-_[]{}' の 8つの記号と「英数」キー、「かな」キーが配置されています。 +このため、Enter/BS キーで Enter/BS を入力するには、Enter/BSキーを押して短時間ですぐ離してください。 +上の図の赤色の刻印のキーのあるレイヤーです。 -Extra レイヤーは、Enter キーを一定時間(0.1秒)以上押していると押している間だけ有効になり、標準のキーマップの上にかぶさるように一部のキーが置き換わります。 -このため、Enterキーで Enter を入力するには、Enterキーを押して短時間ですぐ離してください。 +Adjust レイヤーは、Adjust キーを押している間有効になります。 +Adjust キーは Function レイヤーに有り、下段両端の4つのFnキーのどれか一つを押しながら、下段中央部の Enter キーか BS キーを押すことで Adjust レイヤーが有効になります。 +Adjust キー (Enter/BS)を押した後は、Fnキーは離して構いません。 ### Adjust レイヤー -Ajust レイヤーは、Helix の標準キーマップ "default" から F1,F2..F12 を除き、右側にあった機能キーを -左側にも追加したものとなっています。 +Ajust レイヤーは、LEDのコントロール、Mac/Win モードの切り替え、Qwerty配列, Colemak配列, Dvorak配列, TenkeyPad配列の切り替えが行えます。 -LEDコントロール、Mac/Win モードの切り替え、Qwerty配列, Colemak配列, Dvorak配列の切り替えが行えます。 +![fig2](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3adj.png) ### MacモードとWinモード キーボードには、Mac モードと、Win モードの二つのモードがあります。 @@ -44,12 +49,13 @@ LEDコントロール、Mac/Win モードの切り替え、Qwerty配列, Colemak |コマンド|指定キー|コード| | ---- | ---- | --- | |Macモード|Adjust + g(Qwerty)|AG_NORM| -|Winモード|Adjust + h(Qwerty)|AG_SWAP| -| |Adjust + t(Qwerty)| | +| |Adjust + h(Qwerty)| | +|Winモード|Adjust + t(Qwerty)|AG_SWAP| +| |Adjust + y(Qwerty)| | Mac モードと Win モードでは、AltキーとWin(GUI)キーが入れ替わります。 -Mac モードでは、上の配列図の「英数キー」と「かなキー」で英語モードと日本語モードの切り替えができます。。 +Mac モードでは、Extra レイヤー の「英数」キーと「かな」キーで英語モードと日本語モードの切り替えができます。 Winモードでは、該当のキーはどちらも共に Alt + `(日本語IMEの切り替え)として入力されます。 @@ -60,35 +66,48 @@ Winモードでは、該当のキーはどちらも共に Alt + `(日本語IME |コマンド|指定キー|コード| | ---- | ---- | --- | -|オン/オフ|Adjust + ,(Qwerty)|RGB_TOG| -| |Adjust + v(Qwerty)| | -|モード切り替え|Adjust + Right option |RGB_SMOD| -| |Adjust + c(Qwerty)| | -|色相 +|Adjust + .(Qwerty)|RGB_HUI| -| |Adjust + Left Control| | -|色相 -|Adjust + menu|RGB_HUD| -| |Adjust + Left Shift | | -|彩度 +|Adjust + /(Qwerty) |RGB_SAI| +|オン/オフ|Adjust + e(Qwerty)|RGB_TOG| +| |Adjust + i(Qwerty)| | +|モード切り替え|Adjust + d(Qwerty) |RGB_SMOD| +| |Adjust + k(Qwerty)| | +|色相 +|Adjust + Left Control|RGB_HUI| +| |Adjust + Right Control| | +|色相 -|Adjust + Left Shift |RGB_HUD| +| |Adjust + Right Shift | | +|彩度 +|Adjust + ;(Qwerty) |RGB_SAI| | |Adjust + a(Qwerty) | | -|彩度 -|Adjust + 右手Fnの左側|RGB_SAD| -| |Adjust + z(Qwerty) | | -|明度 +|Adjust + Right Shift|RGB_VAI| -| |Adjust + s(Qwerty) | | -|明度 -|Adjust + 右手Fnの右側|RGB_VAD| -| |Adjust + x(Qwerty) | | +|彩度 -|Adjust + z(Qwerty) |RGB_SAD| +| |Adjust + /(Qwerty) | | +|明度 +|Adjust + s(Qwerty) |RGB_VAI| +| |Adjust + l(Qwerty) | | +|明度 -|Adjust + x(Qwerty) |RGB_VAD| +| |Adjust + >(Qwerty) | | |リセット|Adjust + w|RGBRST| ### 文字配列選択 -Qwerty, Colemak, Dvorak それぞれの文字配列の選択は以下のキーを使います。 +Qwerty, Colemak, Dvorak, Keypad それぞれの文字配列の選択は以下のキーを使います。 |選択配列|指定キー| | ---- | ---- | -|Qwerty | Adjust + j(Qwerty) | -| | Adjust + 5| -|Calemak| Adjust + k(Qwerty) | -| | Adjust + 4| -|Dvorak | Adjust + l(Qwerty) | -| | Adjust + 3| +|Qwerty | Adjust + 5 | +| | Adjust + 6 | +|Calemak| Adjust + 4 | +| | Adjust + 7 | +|Dvorak | Adjust + 3 | +| | Adjust + 8 | +|Keypad | Adjust + 2 | +| | Adjust + 9 | + +## テンキーパッドのキー配置 +以下に、テンキーパッド配列時の、文字配列の図を示します。 + +![fig3](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3key.png) + +図でわかるように、テンキーと F1,F2..F12 のキー入力ができる配列です。 +F12キーは一定時間(0.2秒)以上押していると KFunc キーとして働き、押している間は、青色の刻印のキー入力を行えます。 +F12 そのものを入力するときは押して短時間ですぐ離してください。 +F12キーを押しているときは、F11キー は Adjust キーとなり、Adjust レイヤーが有効になります。 +これによって、Qwerty 配列などに戻すことが可能になります。 ## 備考 本キーマップは、通常のキーボードの主要部分のホームポジション周辺をなるべくそのまま踏襲する方針で作成しました。 @@ -99,4 +118,4 @@ Qwerty, Colemak, Dvorak それぞれの文字配列の選択は以下のキー * Control キーを左右共にホームポジションの行に移動。 * 左手親指に BackSpace キーを割り当てる。 -![fig2](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/9979482e9aa0b25962fad9ee634cd1c23cef1751/five_rows_making.jpg) +![fig4](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/d6e9af7684c051de4744b9dee9cd96b762bf4e2d/five_rows_making2.jpg) diff --git a/keyboards/helix/rev2/keymaps/five_rows/config.h b/keyboards/helix/rev2/keymaps/five_rows/config.h index 8b1f00d9c0be..10d9fc1c4b9a 100644 --- a/keyboards/helix/rev2/keymaps/five_rows/config.h +++ b/keyboards/helix/rev2/keymaps/five_rows/config.h @@ -78,30 +78,45 @@ along with this program. If not, see . #define RGBLED_NUM 6 #endif -#if RGBLED_NUM <= 6 - #define RGBLIGHT_LIMIT_VAL 255 +#ifndef IOS_DEVICE_ENABLE + #if RGBLED_NUM <= 6 + #define RGBLIGHT_LIMIT_VAL 255 + #else + #if HELIX_ROWS == 5 + #define RGBLIGHT_LIMIT_VAL 120 + #else + #define RGBLIGHT_LIMIT_VAL 130 + #endif + #endif + #define RGBLIGHT_VAL_STEP 17 #else - #if HELIX_ROWS == 5 - #define RGBLIGHT_LIMIT_VAL 120 + #if RGBLED_NUM <= 6 + #define RGBLIGHT_LIMIT_VAL 90 #else - #define RGBLIGHT_LIMIT_VAL 130 + #if HELIX_ROWS == 5 + #define RGBLIGHT_LIMIT_VAL 35 + #else + #define RGBLIGHT_LIMIT_VAL 45 + #endif #endif + #define RGBLIGHT_VAL_STEP 4 #endif #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 -#endif -#ifdef RGBLIGHT_ENABLE + +#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) // USB_MAX_POWER_CONSUMPTION value for Helix keyboard // 120 RGBoff, OLEDoff // 120 OLED // 330 RGB 6 // 300 RGB 32 // 310 OLED & RGB 32 - #define USB_MAX_POWER_CONSUMPTION 330 + #define USB_MAX_POWER_CONSUMPTION 400 #else // fix iPhone and iPad power adapter issue // iOS device need lessthan 100 #define USB_MAX_POWER_CONSUMPTION 100 #endif + +#endif /* CONFIG_USER_H */ diff --git a/keyboards/helix/rev2/keymaps/five_rows/keymap.c b/keyboards/helix/rev2/keymaps/five_rows/keymap.c index f036c94ef85f..d4fabd5a2491 100644 --- a/keyboards/helix/rev2/keymaps/five_rows/keymap.c +++ b/keyboards/helix/rev2/keymaps/five_rows/keymap.c @@ -27,23 +27,27 @@ extern uint8_t is_master; // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them // entirely and just use numbers. -#define _QWERTY 0 -#define _COLEMAK 1 -#define _DVORAK 2 -#define _LOWER 3 -#define _RAISE 4 -#define _ADJUST 16 +enum layer_number { + _QWERTY = 0, + _COLEMAK, + _DVORAK, + _KEYPAD, + _AUX, + _KAUX, + _LOWER, + _RAISE, + _PADFUNC, + _ADJUST, +}; enum custom_keycodes { QWERTY = SAFE_RANGE, COLEMAK, DVORAK, - LOWER, - RAISE, - ADJUST, - BACKLIT, + KEYPAD, EISU, KANA, + ZERO2, RGBRST }; @@ -63,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty * ,-----------------------------------------. ,-----------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS | + * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | * |------+------+------+------+------+------| |------+------+------+------+------+------| @@ -71,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | Shift| Z | X | C | V | B | ` | ' | N | M | , | . | / | Shift| * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * |Adjust| Lower| Caps | GUI | Alt | Del | Enter| Enter| Space| Alt | GUI | Menu |Lower |Lower | + * |Lower | Lower| Caps | GUI | Alt | Space| BS | Enter| Space| Alt | GUI | Menu |Lower |Lower | * `-------------------------------------------------------------------------------------------------' */ [_QWERTY] = KEYMAP( \ @@ -79,8 +83,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, \ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_RCTL, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_QUOT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ - ADJUST, LOWER, KC_CAPS, KC_LALT, KC_LGUI, KC_BSPC, LT(_RAISE,KC_ENT), \ - LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP, LOWER, LOWER \ + MO(_LOWER),MO(_LOWER), KC_CAPS, KC_LALT, KC_LGUI, KC_SPC, LT(_RAISE,KC_BSPC), \ + LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP,MO(_LOWER),MO(_LOWER) \ ), /* Colemak @@ -93,7 +97,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | Shift| Z | X | C | V | B | ` | ' | K | M | , | . | / | Shift| * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * |Adjust| Lower| Caps | GUI | Alt | Del | Enter| Enter| Space| Alt | GUI | Menu |Lower |Lower | + * |Lower | Lower| Caps | GUI | Alt | Space| BS | Enter| Space| Alt | GUI | Menu |Lower |Lower | * `-------------------------------------------------------------------------------------------------' */ [_COLEMAK] = KEYMAP( \ @@ -101,8 +105,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, \ KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_RCTL, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_QUOT, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ - ADJUST, LOWER, KC_CAPS, KC_LALT, KC_LGUI, KC_DEL, LT(_RAISE,KC_ENT), \ - LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP, LOWER, LOWER \ + MO(_LOWER),MO(_LOWER), KC_CAPS, KC_LALT, KC_LGUI, KC_SPC, LT(_RAISE,KC_BSPC), \ + LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP,MO(_LOWER),MO(_LOWER) \ ), /* Dvorak @@ -115,7 +119,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | Shift| ; | Q | J | K | X | ` | / | B | M | W | V | Z | Shift| * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * |Adjust| Lower| Caps | GUI | Alt | Del | Enter| Enter| Space| Alt | GUI | Menu |Lower |Lower | + * |Lower | Lower| Caps | GUI | Alt | Space| BS | Enter| Space| Alt | GUI | Menu |Lower |Lower | * `-------------------------------------------------------------------------------------------------' */ [_DVORAK] = KEYMAP( \ @@ -123,10 +127,75 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS, \ KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_RCTL, \ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_GRV, KC_SLSH, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, \ - ADJUST, LOWER, KC_CAPS, KC_LALT, KC_LGUI, KC_DEL, LT(_RAISE,KC_ENT), \ - LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP, LOWER, LOWER \ + MO(_LOWER),MO(_LOWER), KC_CAPS, KC_LALT, KC_LGUI, KC_SPC, LT(_RAISE,KC_BSPC), \ + LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP,MO(_LOWER),MO(_LOWER) \ + ), + + /* Keypad + * ,-----------------------------------------. ,-----------------------------------------. + * | Tab | / | * | Del | F1 | F6 | | F1 | F6 | Del | Tab | / | * | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | 7 | 8 | 9 | BS | F2 | F7 | | F2 | F7 | BS | 7 | 8 | 9 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | 4 | 5 | 6 | - | F3 | F8 | | F3 | F8 | - | 4 | 5 | 6 | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | 1 | 2 | 3 | + | F4 | F9 | F11 | F11 | F4 | F9 | + | 1 | 2 | 3 | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | 0 | , | . | Enter| F5 | F10 | F12 | F12 | F5 | F10 | Enter| 0 | , | . | + * `-------------------------------------------------------------------------------------------------' + */ + [_KEYPAD] = KEYMAP( \ + KC_TAB, KC_PSLS, KC_PAST, KC_DEL, KC_F1, KC_F6, KC_F1, KC_F6, KC_DEL, KC_TAB, KC_PSLS, KC_PAST, \ + KC_KP_7, KC_KP_8, KC_KP_9, KC_BSPC, KC_F2, KC_F7, KC_F2, KC_F7, KC_BSPC, KC_KP_7, KC_KP_8, KC_KP_9, \ + KC_KP_4, KC_KP_5, KC_KP_6, KC_PMNS, KC_F3, KC_F8, KC_F3, KC_F8, KC_PMNS, KC_KP_4, KC_KP_5, KC_KP_6, \ + KC_KP_1, KC_KP_2, KC_KP_3, KC_PPLS, KC_F4, KC_F9, KC_F11, KC_F11, KC_F4, KC_F9, KC_PPLS, KC_KP_1, KC_KP_2, KC_KP_3, \ + KC_KP_0, KC_COMM, KC_PDOT, KC_PENT, KC_F5, KC_F10, LT(_PADFUNC,KC_F12), + LT(_PADFUNC,KC_F12),KC_F5, KC_F10, KC_PENT, KC_KP_0, KC_COMM, KC_PDOT \ ), + /* AUX modifier key layer + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | 00 | | | | | | | | | | | 00 | | + * `-------------------------------------------------------------------------------------------------' + */ + [_KAUX] = KEYMAP( \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, ZERO2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ZERO2, _______ \ + ), + + /* Keypad function layer + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | Pause| ScrLk| PtrSc| | PtrSc| ScrLk| Pause| | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | Home | Up | PgUp | | PgUp | Up | Home | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | |Delete|Insert| Left | Down | Right| | Left | Down | Right|Insert|Delete| | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | End | | PgDn |Adjust|Adjust| PgDn | | End | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | | | + * `-------------------------------------------------------------------------------------------------' + */ + [_PADFUNC] = KEYMAP( \ + XXXXXXX, XXXXXXX, XXXXXXX, KC_PAUS, KC_SLCK, KC_PSCR, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX, XXXXXXX, \ + XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_PGUP, KC_PGUP, KC_UP, KC_HOME, XXXXXXX, XXXXXXX, XXXXXXX, \ + XXXXXXX, KC_DEL, KC_INS, KC_LEFT, KC_DOWN, KC_RGHT, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_DEL, XXXXXXX, \ + XXXXXXX, XXXXXXX, XXXXXXX, KC_END, XXXXXXX, KC_PGDN,MO(_ADJUST), + MO(_ADJUST), KC_PGDN, XXXXXXX, KC_END, XXXXXXX, XXXXXXX, XXXXXXX, \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ + ), + /* Lower * ,-----------------------------------------. ,-----------------------------------------. * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | @@ -135,7 +204,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------| |------+------+------+------+------+------| * | | PgUp | | Up |Delete| Home | | Home |Delete| Up | | PgUp | | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | PgDn | Left | Down | Right| End | | | End | Left | Down | Right| PgDn | | + * | | PgDn | Left | Down | Right| End |Adjust|Adjust| End | Left | Down | Right| PgDn | | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | | | PrtSc| | | | | | | | | PrtSc| | | * `-------------------------------------------------------------------------------------------------' @@ -143,9 +212,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LOWER] = KEYMAP( \ XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \ XXXXXXX, XXXXXXX, KC_PAUS, KC_SLCK, KC_INS, XXXXXXX, XXXXXXX, KC_INS, KC_SLCK, KC_PAUS, XXXXXXX, KC_F12, \ - _______, KC_PGUP, XXXXXXX, KC_UP, KC_DEL, KC_HOME, KC_HOME, KC_DEL, KC_UP, XXXXXXX, KC_PGUP, _______, \ - _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, XXXXXXX, XXXXXXX, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, \ - XXXXXXX, _______, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______ \ + _______, KC_HOME, XXXXXXX, KC_UP, KC_DEL, KC_PGUP, KC_PGUP, KC_DEL, KC_UP, XXXXXXX, KC_HOME, _______, \ + _______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, XXXXXXX, XXXXXXX,KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, \ + _______, _______, KC_PSCR, _______, _______, _______, MO(_ADJUST), + MO(_ADJUST), _______, _______, _______, KC_PSCR, _______, _______ \ ), /* Raise @@ -166,28 +236,51 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LSFT(KC_MINS), KC_MINS, KC_EQL, LSFT(KC_EQL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ _______, XXXXXXX, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), KC_LBRC, KC_RBRC, LSFT(KC_RBRC), XXXXXXX, XXXXXXX, XXXXXXX, _______, \ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EISU, EISU, KANA, KANA, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, \ - _______, _______, XXXXXXX, _______, _______, XXXXXXX, _______, _______, XXXXXXX, _______, _______, XXXXXXX, _______, _______ \ + MO(_ADJUST),MO(_ADJUST),XXXXXXX, _______, _______, XXXXXXX, _______, + _______, XXXXXXX, _______, _______, XXXXXXX,MO(_ADJUST),MO(_ADJUST) \ ), /* Adjust (Lower + Raise) * ,-----------------------------------------. ,-----------------------------------------. - * | | | |Dvorak|Colemk|Qwerty| | | | | | | | + * | | |Keypad|Dvorak|Colemk|Qwerty| |Qwerty|Colemk|Dvorak|Keypad| | | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | Reset|RGBRST| | | Win | | | | | | | | + * | | Reset|RGBRST|RGB ON|Aud on| Win | | Win |Aud on|RGB ON|RGBRST| | | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | HUE+ | SAT+ | VAL+ |Aud on|Audoff| Mac | | Win |Qwerty|Colemk|Dvorak| | | + * | HUE+ | SAT+ | VAL+ |RGB md|Audoff| Mac | | Mac |Audoff|RGB md| VAL+ | SAT+ | HUE+ | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | HUE- | SAT- | VAL- |RGB md|RGB ON| | | | | |RGB ON| HUE+ | SAT+ | VAL+ | + * | HUE- | SAT- | VAL- | | | | | | | | | VAL- | SAT- | HUE- | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | MODE | HUE- | SAT- | VAL- | + * | | | | | | | | | | | | | | | * `-------------------------------------------------------------------------------------------------' */ [_ADJUST] = KEYMAP( \ - XXXXXXX, XXXXXXX, XXXXXXX, DVORAK, COLEMAK, QWERTY, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - XXXXXXX, RESET, RGBRST, XXXXXXX, XXXXXXX, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - RGB_HUI, RGB_SAI, RGB_VAI, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, XXXXXXX, XXXXXXX, \ - RGB_HUD, RGB_SAD, RGB_VAD,RGB_SMOD, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \ - _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD \ + XXXXXXX, XXXXXXX, KEYPAD, DVORAK, COLEMAK, QWERTY, QWERTY, COLEMAK, DVORAK, KEYPAD, XXXXXXX, XXXXXXX, \ + XXXXXXX, RESET, RGBRST, RGB_TOG, AU_ON, AG_SWAP, AG_SWAP, AU_ON, RGB_TOG, RGBRST, XXXXXXX, XXXXXXX, \ + RGB_HUI, RGB_SAI, RGB_VAI,RGB_SMOD, AU_OFF, AG_NORM, AG_NORM, AU_OFF,RGB_SMOD, RGB_VAI, RGB_SAI, RGB_HUI, \ + RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_SAD, RGB_HUD, \ + _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______ \ + ), + + /* AUX modifier key layer + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | BS | Enter| | | | | | | | + * `-------------------------------------------------------------------------------------------------' + */ + [_AUX] = KEYMAP( \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, KC_BSPC, LT(_RAISE,KC_ENT), \ + _______, _______, _______, _______, _______, _______, _______ \ ) }; @@ -206,31 +299,32 @@ float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); #endif -// define variables for reactive RGB -bool TOG_STATUS = false; -int RGB_current_mode; -static uint32_t current_default_layer_state; +static int current_default_layer; uint32_t default_layer_state_set_kb(uint32_t state) { - current_default_layer_state = state; + // 1<<_QWERTY - 1 == 1 - 1 == _QWERTY (=0) + // 1<<_COLEMAK - 1 == 2 - 1 == _COLEMAK (=1) + current_default_layer = state - 1; + // 1<<_DVORAK - 2 == 4 - 2 == _DVORAK (=2) + if ( current_default_layer == 3 ) current_default_layer -= 1; + // 1<<_KEYPAD - 5 == 8 - 5 == _KEYPAD (=3) + if ( current_default_layer == 7 ) current_default_layer -= 4; return state; } -void persistent_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); -} - -// Setting ADJUST layer RGB back to default -void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { - #ifdef RGBLIGHT_ENABLE - //rgblight_mode(RGB_current_mode); - #endif - layer_on(layer3); - } else { - layer_off(layer3); - } +void update_base_layer(int base) +{ + if( current_default_layer != base ) { + eeconfig_update_default_layer(1UL<event.pressed) { - //not sure how to have keyboard check mode and set it to a variable, so my work around - //uses another variable that would be set to true after the first time a reactive key is pressed. - if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false - } else { - TOG_STATUS = !TOG_STATUS; - #ifdef RGBLIGHT_ENABLE - //rgblight_mode(16); - #endif - } - layer_on(_LOWER); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } else { - #ifdef RGBLIGHT_ENABLE - //rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_dvorak); #endif - TOG_STATUS = false; - layer_off(_LOWER); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + update_base_layer(_KEYPAD); } return false; break; - case RAISE: + case ZERO2: if (record->event.pressed) { - //not sure how to have keyboard check mode and set it to a variable, so my work around - //uses another variable that would be set to true after the first time a reactive key is pressed. - if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false - } else { - TOG_STATUS = !TOG_STATUS; - #ifdef RGBLIGHT_ENABLE - //rgblight_mode(15); - #endif - } - layer_on(_RAISE); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } else { - #ifdef RGBLIGHT_ENABLE - //rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change - #endif - layer_off(_RAISE); - TOG_STATUS = false; - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + SEND_STRING("00"); } return false; break; - case ADJUST: - if (record->event.pressed) { - layer_on(_ADJUST); - } else { - layer_off(_ADJUST); - } - return false; - break; - //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released - case RGB_MOD: - #ifdef RGBLIGHT_ENABLE - if (record->event.pressed) { - rgblight_mode(RGB_current_mode); - rgblight_step(); - RGB_current_mode = rgblight_config.mode; - } - #endif - return false; - break; case EISU: if (record->event.pressed) { if(keymap_config.swap_lalt_lgui==false){ @@ -356,7 +400,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { eeconfig_update_rgblight_default(); rgblight_enable(); - RGB_current_mode = rgblight_config.mode; } #endif break; @@ -368,9 +411,6 @@ void matrix_init_user(void) { #ifdef AUDIO_ENABLE startup_user(); #endif - #ifdef RGBLIGHT_ENABLE - RGB_current_mode = rgblight_config.mode; - #endif //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h #ifdef SSD1306OLED TWI_Init(TWI_BIT_PRESCALE_1, TWI_BITLENGTH_FROM_FREQ(1, 800000)); @@ -428,36 +468,45 @@ static void render_logo(struct CharacterMatrix *matrix) { 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4, 0}; matrix_write(matrix, logo); +#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_ANIMATIONS) + char buf[30]; + if(rgblight_config.enable) { + snprintf(buf, sizeof(buf), " LED %2d: %d,%d,%d ", + rgblight_config.mode, + rgblight_config.hue/RGBLIGHT_HUE_STEP, + rgblight_config.sat/RGBLIGHT_SAT_STEP, + rgblight_config.val/RGBLIGHT_VAL_STEP); + matrix_write(matrix, buf); + } +#endif //matrix_write_P(&matrix, PSTR(" Split keyboard kit")); } -// #define DEBUG_OLED_LAYER_DISPLAY - static const char Qwerty_name[] PROGMEM = " Qwerty"; static const char Colemak_name[] PROGMEM = " Colemak"; static const char Dvorak_name[] PROGMEM = " Dvorak"; +static const char Keypad_name[] PROGMEM = " Keypad"; -static const char Raise_name[] PROGMEM = ":Extra"; +static const char AUX_name[] PROGMEM = ":AUX"; +static const char KAUX_name[] PROGMEM = ":00"; +static const char Padfunc_name[] PROGMEM = ":PadFunc"; static const char Lower_name[] PROGMEM = ":Func"; +static const char Raise_name[] PROGMEM = ":Extra"; static const char Adjust_name[] PROGMEM = ":Adjust"; static const char *layer_names[] = { [_QWERTY] = Qwerty_name, [_COLEMAK] = Colemak_name, [_DVORAK] = Dvorak_name, - [_RAISE] = Raise_name, - [_LOWER] = Lower_name, + [_KEYPAD] = Keypad_name, + [_AUX] = AUX_name, + [_KAUX] = KAUX_name, + [_LOWER] = Lower_name, + [_RAISE] = Raise_name, + [_PADFUNC]= Padfunc_name, [_ADJUST] = Adjust_name }; -static int search_bit_form_lsb(uint32_t data) -{ - int i; - for( i = 0; i < 32 && (data & 1)==0 ; data >>= 1, i++ ) - {} - return i; -} - void render_status(struct CharacterMatrix *matrix) { // Render to mode icon @@ -473,21 +522,9 @@ void render_status(struct CharacterMatrix *matrix) { } // Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below -#ifdef DEBUG_OLED_LAYER_DISPLAY - char buf[40]; -#endif int name_num; uint32_t lstate; - - name_num = search_bit_form_lsb(current_default_layer_state); - if( name_num < sizeof(layer_names)/sizeof(char *) ) { - matrix_write_P(matrix, layer_names[name_num]); -#ifdef DEBUG_OLED_LAYER_DISPLAY - } else { - snprintf(buf, sizeof(buf), "base=%d? ", name_num); - matrix_write(matrix, buf); -#endif - } + matrix_write_P(matrix, layer_names[current_default_layer]); matrix_write_P(matrix, PSTR("\n")); for( lstate = layer_state, name_num = 0; lstate && name_num < sizeof(layer_names)/sizeof(char *); @@ -495,11 +532,6 @@ void render_status(struct CharacterMatrix *matrix) { if( (lstate & 1) != 0 ) { if( layer_names[name_num] ) { matrix_write_P(matrix, layer_names[name_num]); -#ifdef DEBUG_OLED_LAYER_DISPLAY - } else { - snprintf(buf, sizeof(buf), ":L=%d?", name_num); - matrix_write(matrix, buf); -#endif } } } diff --git a/keyboards/helix/rev2/keymaps/five_rows/rules.mk b/keyboards/helix/rev2/keymaps/five_rows/rules.mk index bde606238e2d..67344f94f037 100644 --- a/keyboards/helix/rev2/keymaps/five_rows/rules.mk +++ b/keyboards/helix/rev2/keymaps/five_rows/rules.mk @@ -23,19 +23,50 @@ define HELIX_CUSTOMISE_MSG $(info - LED_BACK_ENABLE=$(LED_BACK_ENABLE)) $(info - LED_UNDERGLOW_ENABLE=$(LED_UNDERGLOW_ENABLE)) $(info - LED_ANIMATION=$(LED_ANIMATIONS)) + $(info - IOS_DEVICE_ENABLE=$(IOS_DEVICE_ENABLE)) endef # Helix keyboard customize -# you can edit follows 4 Variables -# jp: 以下の4つの変数を必要に応じて編集します。 +# you can edit follows 5 Variables +# jp: 以下の5つの変数を必要に応じて編集します。 OLED_ENABLE = no # OLED_ENABLE LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) LED_ANIMATIONS = yes # LED animations +IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) #### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE. #### Do not enable these with audio at the same time. +### Helix keyboard 'five_rows' keymap: convenient command line option +## make HELIX= helix:five_rows +## option= oled | back | under | na | ios +## ex. +## make HELIX=oled helix:five_rows +## make HELIX=oled,back helix:five_rows +## make HELIX=oled,under helix:five_rows +## make HELIX=oled,back,na helix:five_rows +## make HELIX=oled,back,ios helix:five_rows +## +ifneq ($(strip $(HELIX)),) + ifeq ($(findstring oled,$(HELIX)), oled) + OLED_ENABLE = yes + endif + ifeq ($(findstring back,$(HELIX)), back) + LED_BACK_ENABLE = yes + else ifeq ($(findstring under,$(HELIX)), under) + LED_UNDERGLOW_ENABLE = yes + endif + ifeq ($(findstring na,$(HELIX)), na) + LED_ANIMATIONS = no + endif + ifeq ($(findstring ios,$(HELIX)), ios) + IOS_DEVICE_ENABLE = yes + endif + $(eval $(call HELIX_CUSTOMISE_MSG)) + $(info ) +endif + # Uncomment these for checking # jp: コンパイル時にカスタマイズの状態を表示したい時はコメントをはずします。 # $(eval $(call HELIX_CUSTOMISE_MSG)) @@ -54,6 +85,10 @@ else RGBLIGHT_ENABLE = no endif +ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes) + OPT_DEFS += -DIOS_DEVICE_ENABLE +endif + ifeq ($(strip $(LED_ANIMATIONS)), yes) OPT_DEFS += -DRGBLIGHT_ANIMATIONS endif From e9d32b60b7f103cda42a19c5216e65b7b64ce9eb Mon Sep 17 00:00:00 2001 From: fredizzimo Date: Mon, 16 Apr 2018 03:42:53 +0300 Subject: [PATCH 223/578] Add a custom USB driver for ARM (#2750) * Copy Chibios serial_usb_driver into the chibios/protocol It's renamed to usb_driver to avoid name conflicts * Make the usb driver compile * Disable ChibiOS serial usb driver for all keyboards * Change usb_main to use QMKUSBDriver * Initialize the usb driver buffers * Add support for fixed size queues * Fix USB driver initialization * Don't transfer an empty packet for fixed size streams --- .../chibios_test/stm32_f072_onekey/halconf.h | 2 +- .../chibios_test/stm32_f103_onekey/halconf.h | 2 +- .../chibios_test/teensy_lc_onekey/halconf.h | 2 +- keyboards/clueboard/60/halconf.h | 2 +- keyboards/ergodox_infinity/halconf.h | 2 +- keyboards/infinity60/halconf.h | 2 +- keyboards/jm60/halconf.h | 2 +- keyboards/k_type/halconf.h | 2 +- keyboards/whitefox/halconf.h | 2 +- tmk_core/protocol/chibios.mk | 1 + tmk_core/protocol/chibios/usb_driver.c | 502 ++++++++++++++++++ tmk_core/protocol/chibios/usb_driver.h | 184 +++++++ tmk_core/protocol/chibios/usb_main.c | 84 +-- 13 files changed, 738 insertions(+), 51 deletions(-) create mode 100644 tmk_core/protocol/chibios/usb_driver.c create mode 100644 tmk_core/protocol/chibios/usb_driver.h diff --git a/keyboards/chibios_test/stm32_f072_onekey/halconf.h b/keyboards/chibios_test/stm32_f072_onekey/halconf.h index 762572558581..8b9724b1a30e 100644 --- a/keyboards/chibios_test/stm32_f072_onekey/halconf.h +++ b/keyboards/chibios_test/stm32_f072_onekey/halconf.h @@ -139,7 +139,7 @@ * @brief Enables the SERIAL over USB subsystem. */ #if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB TRUE +#define HAL_USE_SERIAL_USB FALSE #endif /** diff --git a/keyboards/chibios_test/stm32_f103_onekey/halconf.h b/keyboards/chibios_test/stm32_f103_onekey/halconf.h index 762572558581..8b9724b1a30e 100644 --- a/keyboards/chibios_test/stm32_f103_onekey/halconf.h +++ b/keyboards/chibios_test/stm32_f103_onekey/halconf.h @@ -139,7 +139,7 @@ * @brief Enables the SERIAL over USB subsystem. */ #if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB TRUE +#define HAL_USE_SERIAL_USB FALSE #endif /** diff --git a/keyboards/chibios_test/teensy_lc_onekey/halconf.h b/keyboards/chibios_test/teensy_lc_onekey/halconf.h index 5e1f6a8a14f2..1b6f2adc2069 100644 --- a/keyboards/chibios_test/teensy_lc_onekey/halconf.h +++ b/keyboards/chibios_test/teensy_lc_onekey/halconf.h @@ -139,7 +139,7 @@ * @brief Enables the SERIAL over USB subsystem. */ #if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB TRUE +#define HAL_USE_SERIAL_USB FALSE #endif /** diff --git a/keyboards/clueboard/60/halconf.h b/keyboards/clueboard/60/halconf.h index 8fe8e0c6f586..e617fdffc790 100644 --- a/keyboards/clueboard/60/halconf.h +++ b/keyboards/clueboard/60/halconf.h @@ -146,7 +146,7 @@ * @brief Enables the SERIAL over USB subsystem. */ #if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB TRUE +#define HAL_USE_SERIAL_USB FALSE #endif /** diff --git a/keyboards/ergodox_infinity/halconf.h b/keyboards/ergodox_infinity/halconf.h index 3f4ffb7bef86..ade55ae72d9a 100644 --- a/keyboards/ergodox_infinity/halconf.h +++ b/keyboards/ergodox_infinity/halconf.h @@ -139,7 +139,7 @@ * @brief Enables the SERIAL over USB subsystem. */ #if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB TRUE +#define HAL_USE_SERIAL_USB FALSE #endif /** diff --git a/keyboards/infinity60/halconf.h b/keyboards/infinity60/halconf.h index f48413c6dd55..b87b0635c476 100644 --- a/keyboards/infinity60/halconf.h +++ b/keyboards/infinity60/halconf.h @@ -139,7 +139,7 @@ * @brief Enables the SERIAL over USB subsystem. */ #if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB TRUE +#define HAL_USE_SERIAL_USB FALSE #endif /** diff --git a/keyboards/jm60/halconf.h b/keyboards/jm60/halconf.h index 762572558581..8b9724b1a30e 100644 --- a/keyboards/jm60/halconf.h +++ b/keyboards/jm60/halconf.h @@ -139,7 +139,7 @@ * @brief Enables the SERIAL over USB subsystem. */ #if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB TRUE +#define HAL_USE_SERIAL_USB FALSE #endif /** diff --git a/keyboards/k_type/halconf.h b/keyboards/k_type/halconf.h index f48413c6dd55..b87b0635c476 100644 --- a/keyboards/k_type/halconf.h +++ b/keyboards/k_type/halconf.h @@ -139,7 +139,7 @@ * @brief Enables the SERIAL over USB subsystem. */ #if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB TRUE +#define HAL_USE_SERIAL_USB FALSE #endif /** diff --git a/keyboards/whitefox/halconf.h b/keyboards/whitefox/halconf.h index f48413c6dd55..b87b0635c476 100644 --- a/keyboards/whitefox/halconf.h +++ b/keyboards/whitefox/halconf.h @@ -139,7 +139,7 @@ * @brief Enables the SERIAL over USB subsystem. */ #if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB TRUE +#define HAL_USE_SERIAL_USB FALSE #endif /** diff --git a/tmk_core/protocol/chibios.mk b/tmk_core/protocol/chibios.mk index 6e7cfbd83298..222fb4dad41d 100644 --- a/tmk_core/protocol/chibios.mk +++ b/tmk_core/protocol/chibios.mk @@ -5,6 +5,7 @@ CHIBIOS_DIR = $(PROTOCOL_DIR)/chibios SRC += $(CHIBIOS_DIR)/usb_main.c SRC += $(CHIBIOS_DIR)/main.c SRC += usb_descriptor.c +SRC += $(CHIBIOS_DIR)/usb_driver.c VPATH += $(TMK_PATH)/$(PROTOCOL_DIR) VPATH += $(TMK_PATH)/$(CHIBIOS_DIR) diff --git a/tmk_core/protocol/chibios/usb_driver.c b/tmk_core/protocol/chibios/usb_driver.c new file mode 100644 index 000000000000..fe535eeb3a8b --- /dev/null +++ b/tmk_core/protocol/chibios/usb_driver.c @@ -0,0 +1,502 @@ +/* + ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file hal_serial_usb.c + * @brief Serial over USB Driver code. + * + * @addtogroup SERIAL_USB + * @{ + */ + +#include "hal.h" +#include "usb_driver.h" +#include + +/*===========================================================================*/ +/* Driver local definitions. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver exported variables. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver local variables and types. */ +/*===========================================================================*/ + +/* + * Current Line Coding. + */ +static cdc_linecoding_t linecoding = { + {0x00, 0x96, 0x00, 0x00}, /* 38400. */ + LC_STOP_1, LC_PARITY_NONE, 8 +}; + +/*===========================================================================*/ +/* Driver local functions. */ +/*===========================================================================*/ + +static bool qmkusb_start_receive(QMKUSBDriver *qmkusbp) { + uint8_t *buf; + + /* If the USB driver is not in the appropriate state then transactions + must not be started.*/ + if ((usbGetDriverStateI(qmkusbp->config->usbp) != USB_ACTIVE) || + (qmkusbp->state != QMKUSB_READY)) { + return true; + } + + /* Checking if there is already a transaction ongoing on the endpoint.*/ + if (usbGetReceiveStatusI(qmkusbp->config->usbp, qmkusbp->config->bulk_in)) { + return true; + } + + /* Checking if there is a buffer ready for incoming data.*/ + buf = ibqGetEmptyBufferI(&qmkusbp->ibqueue); + if (buf == NULL) { + return true; + } + + /* Buffer found, starting a new transaction.*/ + usbStartReceiveI(qmkusbp->config->usbp, qmkusbp->config->bulk_out, + buf, qmkusbp->ibqueue.bsize - sizeof(size_t)); + + return false; +} + +/* + * Interface implementation. + */ + +static size_t _write(void *ip, const uint8_t *bp, size_t n) { + + return obqWriteTimeout(&((QMKUSBDriver *)ip)->obqueue, bp, + n, TIME_INFINITE); +} + +static size_t _read(void *ip, uint8_t *bp, size_t n) { + + return ibqReadTimeout(&((QMKUSBDriver *)ip)->ibqueue, bp, + n, TIME_INFINITE); +} + +static msg_t _put(void *ip, uint8_t b) { + + return obqPutTimeout(&((QMKUSBDriver *)ip)->obqueue, b, TIME_INFINITE); +} + +static msg_t _get(void *ip) { + + return ibqGetTimeout(&((QMKUSBDriver *)ip)->ibqueue, TIME_INFINITE); +} + +static msg_t _putt(void *ip, uint8_t b, systime_t timeout) { + + return obqPutTimeout(&((QMKUSBDriver *)ip)->obqueue, b, timeout); +} + +static msg_t _gett(void *ip, systime_t timeout) { + + return ibqGetTimeout(&((QMKUSBDriver *)ip)->ibqueue, timeout); +} + +static size_t _writet(void *ip, const uint8_t *bp, size_t n, systime_t timeout) { + + return obqWriteTimeout(&((QMKUSBDriver *)ip)->obqueue, bp, n, timeout); +} + +static size_t _readt(void *ip, uint8_t *bp, size_t n, systime_t timeout) { + + return ibqReadTimeout(&((QMKUSBDriver *)ip)->ibqueue, bp, n, timeout); +} + +static const struct QMKUSBDriverVMT vmt = { + _write, _read, _put, _get, + _putt, _gett, _writet, _readt +}; + +/** + * @brief Notification of empty buffer released into the input buffers queue. + * + * @param[in] bqp the buffers queue pointer. + */ +static void ibnotify(io_buffers_queue_t *bqp) { + QMKUSBDriver *qmkusbp = bqGetLinkX(bqp); + (void) qmkusb_start_receive(qmkusbp); +} + +/** + * @brief Notification of filled buffer inserted into the output buffers queue. + * + * @param[in] bqp the buffers queue pointer. + */ +static void obnotify(io_buffers_queue_t *bqp) { + size_t n; + QMKUSBDriver *qmkusbp = bqGetLinkX(bqp); + + /* If the USB driver is not in the appropriate state then transactions + must not be started.*/ + if ((usbGetDriverStateI(qmkusbp->config->usbp) != USB_ACTIVE) || + (qmkusbp->state != QMKUSB_READY)) { + return; + } + + /* Checking if there is already a transaction ongoing on the endpoint.*/ + if (!usbGetTransmitStatusI(qmkusbp->config->usbp, qmkusbp->config->bulk_in)) { + /* Trying to get a full buffer.*/ + uint8_t *buf = obqGetFullBufferI(&qmkusbp->obqueue, &n); + if (buf != NULL) { + /* Buffer found, starting a new transaction.*/ + usbStartTransmitI(qmkusbp->config->usbp, qmkusbp->config->bulk_in, buf, n); + } + } +} + +/*===========================================================================*/ +/* Driver exported functions. */ +/*===========================================================================*/ + +/** + * @brief Serial Driver initialization. + * @note This function is implicitly invoked by @p halInit(), there is + * no need to explicitly initialize the driver. + * + * @init + */ +void qmkusbInit(void) { +} + +/** + * @brief Initializes a generic full duplex driver object. + * @details The HW dependent part of the initialization has to be performed + * outside, usually in the hardware initialization code. + * + * @param[out] qmkusbp pointer to a @p QMKUSBDriver structure + * + * @init + */ +void qmkusbObjectInit(QMKUSBDriver *qmkusbp, const QMKUSBConfig *config) { + + qmkusbp->vmt = &vmt; + osalEventObjectInit(&qmkusbp->event); + qmkusbp->state = QMKUSB_STOP; + // Note that the config uses the USB direction naming + ibqObjectInit(&qmkusbp->ibqueue, true, config->ob, + config->out_size, config->out_buffers, + ibnotify, qmkusbp); + obqObjectInit(&qmkusbp->obqueue, true, config->ib, + config->in_size, config->in_buffers, + obnotify, qmkusbp); +} + +/** + * @brief Configures and starts the driver. + * + * @param[in] qmkusbp pointer to a @p QMKUSBDriver object + * @param[in] config the serial over USB driver configuration + * + * @api + */ +void qmkusbStart(QMKUSBDriver *qmkusbp, const QMKUSBConfig *config) { + USBDriver *usbp = config->usbp; + + osalDbgCheck(qmkusbp != NULL); + + osalSysLock(); + osalDbgAssert((qmkusbp->state == QMKUSB_STOP) || (qmkusbp->state == QMKUSB_READY), + "invalid state"); + usbp->in_params[config->bulk_in - 1U] = qmkusbp; + usbp->out_params[config->bulk_out - 1U] = qmkusbp; + if (config->int_in > 0U) { + usbp->in_params[config->int_in - 1U] = qmkusbp; + } + qmkusbp->config = config; + qmkusbp->state = QMKUSB_READY; + osalSysUnlock(); +} + +/** + * @brief Stops the driver. + * @details Any thread waiting on the driver's queues will be awakened with + * the message @p MSG_RESET. + * + * @param[in] qmkusbp pointer to a @p QMKUSBDriver object + * + * @api + */ +void qmkusbStop(QMKUSBDriver *qmkusbp) { + USBDriver *usbp = qmkusbp->config->usbp; + + osalDbgCheck(qmkusbp != NULL); + + osalSysLock(); + + osalDbgAssert((qmkusbp->state == QMKUSB_STOP) || (qmkusbp->state == QMKUSB_READY), + "invalid state"); + + /* Driver in stopped state.*/ + usbp->in_params[qmkusbp->config->bulk_in - 1U] = NULL; + usbp->out_params[qmkusbp->config->bulk_out - 1U] = NULL; + if (qmkusbp->config->int_in > 0U) { + usbp->in_params[qmkusbp->config->int_in - 1U] = NULL; + } + qmkusbp->config = NULL; + qmkusbp->state = QMKUSB_STOP; + + /* Enforces a disconnection.*/ + chnAddFlagsI(qmkusbp, CHN_DISCONNECTED); + ibqResetI(&qmkusbp->ibqueue); + obqResetI(&qmkusbp->obqueue); + osalOsRescheduleS(); + + osalSysUnlock(); +} + +/** + * @brief USB device suspend handler. + * @details Generates a @p CHN_DISCONNECT event and puts queues in + * non-blocking mode, this way the application cannot get stuck + * in the middle of an I/O operations. + * @note If this function is not called from an ISR then an explicit call + * to @p osalOsRescheduleS() in necessary afterward. + * + * @param[in] qmkusbp pointer to a @p QMKUSBDriver object + * + * @iclass + */ +void qmkusbSuspendHookI(QMKUSBDriver *qmkusbp) { + + chnAddFlagsI(qmkusbp, CHN_DISCONNECTED); + bqSuspendI(&qmkusbp->ibqueue); + bqSuspendI(&qmkusbp->obqueue); +} + +/** + * @brief USB device wakeup handler. + * @details Generates a @p CHN_CONNECT event and resumes normal queues + * operations. + * + * @note If this function is not called from an ISR then an explicit call + * to @p osalOsRescheduleS() in necessary afterward. + * + * @param[in] qmkusbp pointer to a @p QMKUSBDriver object + * + * @iclass + */ +void qmkusbWakeupHookI(QMKUSBDriver *qmkusbp) { + + chnAddFlagsI(qmkusbp, CHN_CONNECTED); + bqResumeX(&qmkusbp->ibqueue); + bqResumeX(&qmkusbp->obqueue); +} + +/** + * @brief USB device configured handler. + * + * @param[in] qmkusbp pointer to a @p QMKUSBDriver object + * + * @iclass + */ +void qmkusbConfigureHookI(QMKUSBDriver *qmkusbp) { + + ibqResetI(&qmkusbp->ibqueue); + bqResumeX(&qmkusbp->ibqueue); + obqResetI(&qmkusbp->obqueue); + bqResumeX(&qmkusbp->obqueue); + chnAddFlagsI(qmkusbp, CHN_CONNECTED); + (void) qmkusb_start_receive(qmkusbp); +} + +/** + * @brief Default requests hook. + * @details Applications wanting to use the Serial over USB driver can use + * this function as requests hook in the USB configuration. + * The following requests are emulated: + * - CDC_GET_LINE_CODING. + * - CDC_SET_LINE_CODING. + * - CDC_SET_CONTROL_LINE_STATE. + * . + * + * @param[in] usbp pointer to the @p USBDriver object + * @return The hook status. + * @retval true Message handled internally. + * @retval false Message not handled. + */ +bool qmkusbRequestsHook(USBDriver *usbp) { + + if ((usbp->setup[0] & USB_RTYPE_TYPE_MASK) == USB_RTYPE_TYPE_CLASS) { + switch (usbp->setup[1]) { + case CDC_GET_LINE_CODING: + usbSetupTransfer(usbp, (uint8_t *)&linecoding, sizeof(linecoding), NULL); + return true; + case CDC_SET_LINE_CODING: + usbSetupTransfer(usbp, (uint8_t *)&linecoding, sizeof(linecoding), NULL); + return true; + case CDC_SET_CONTROL_LINE_STATE: + /* Nothing to do, there are no control lines.*/ + usbSetupTransfer(usbp, NULL, 0, NULL); + return true; + default: + return false; + } + } + return false; +} + +/** + * @brief SOF handler. + * @details The SOF interrupt is used for automatic flushing of incomplete + * buffers pending in the output queue. + * + * @param[in] qmkusbp pointer to a @p QMKUSBDriver object + * + * @iclass + */ +void qmkusbSOFHookI(QMKUSBDriver *qmkusbp) { + + /* If the USB driver is not in the appropriate state then transactions + must not be started.*/ + if ((usbGetDriverStateI(qmkusbp->config->usbp) != USB_ACTIVE) || + (qmkusbp->state != QMKUSB_READY)) { + return; + } + + /* If there is already a transaction ongoing then another one cannot be + started.*/ + if (usbGetTransmitStatusI(qmkusbp->config->usbp, qmkusbp->config->bulk_in)) { + return; + } + + /* Checking if there only a buffer partially filled, if so then it is + enforced in the queue and transmitted.*/ + if (obqTryFlushI(&qmkusbp->obqueue)) { + size_t n; + uint8_t *buf = obqGetFullBufferI(&qmkusbp->obqueue, &n); + + /* For fixed size drivers, fill the end with zeros */ + if (qmkusbp->config->fixed_size) { + memset(buf + n, 0, qmkusbp->config->in_size - n); + n = qmkusbp->config->in_size; + } + + osalDbgAssert(buf != NULL, "queue is empty"); + + usbStartTransmitI(qmkusbp->config->usbp, qmkusbp->config->bulk_in, buf, n); + } +} + +/** + * @brief Default data transmitted callback. + * @details The application must use this function as callback for the IN + * data endpoint. + * + * @param[in] usbp pointer to the @p USBDriver object + * @param[in] ep IN endpoint number + */ +void qmkusbDataTransmitted(USBDriver *usbp, usbep_t ep) { + uint8_t *buf; + size_t n; + QMKUSBDriver *qmkusbp = usbp->in_params[ep - 1U]; + + if (qmkusbp == NULL) { + return; + } + + osalSysLockFromISR(); + + /* Signaling that space is available in the output queue.*/ + chnAddFlagsI(qmkusbp, CHN_OUTPUT_EMPTY); + + /* Freeing the buffer just transmitted, if it was not a zero size packet.*/ + if (usbp->epc[ep]->in_state->txsize > 0U) { + obqReleaseEmptyBufferI(&qmkusbp->obqueue); + } + + /* Checking if there is a buffer ready for transmission.*/ + buf = obqGetFullBufferI(&qmkusbp->obqueue, &n); + + if (buf != NULL) { + /* The endpoint cannot be busy, we are in the context of the callback, + so it is safe to transmit without a check.*/ + usbStartTransmitI(usbp, ep, buf, n); + } + else if ((usbp->epc[ep]->in_state->txsize > 0U) && + ((usbp->epc[ep]->in_state->txsize & + ((size_t)usbp->epc[ep]->in_maxsize - 1U)) == 0U)) { + /* Transmit zero sized packet in case the last one has maximum allowed + size. Otherwise the recipient may expect more data coming soon and + not return buffered data to app. See section 5.8.3 Bulk Transfer + Packet Size Constraints of the USB Specification document.*/ + if (!qmkusbp->config->fixed_size) { + usbStartTransmitI(usbp, ep, usbp->setup, 0); + } + + } + else { + /* Nothing to transmit.*/ + } + + osalSysUnlockFromISR(); +} + +/** + * @brief Default data received callback. + * @details The application must use this function as callback for the OUT + * data endpoint. + * + * @param[in] usbp pointer to the @p USBDriver object + * @param[in] ep OUT endpoint number + */ +void qmkusbDataReceived(USBDriver *usbp, usbep_t ep) { + QMKUSBDriver *qmkusbp = usbp->out_params[ep - 1U]; + if (qmkusbp == NULL) { + return; + } + + osalSysLockFromISR(); + + /* Signaling that data is available in the input queue.*/ + chnAddFlagsI(qmkusbp, CHN_INPUT_AVAILABLE); + + /* Posting the filled buffer in the queue.*/ + ibqPostFullBufferI(&qmkusbp->ibqueue, + usbGetReceiveTransactionSizeX(qmkusbp->config->usbp, + qmkusbp->config->bulk_out)); + + /* The endpoint cannot be busy, we are in the context of the callback, + so a packet is in the buffer for sure. Trying to get a free buffer + for the next transaction.*/ + (void) qmkusb_start_receive(qmkusbp); + + osalSysUnlockFromISR(); +} + +/** + * @brief Default data received callback. + * @details The application must use this function as callback for the IN + * interrupt endpoint. + * + * @param[in] usbp pointer to the @p USBDriver object + * @param[in] ep endpoint number + */ +void qmkusbInterruptTransmitted(USBDriver *usbp, usbep_t ep) { + + (void)usbp; + (void)ep; +} + +/** @} */ diff --git a/tmk_core/protocol/chibios/usb_driver.h b/tmk_core/protocol/chibios/usb_driver.h new file mode 100644 index 000000000000..558479e19734 --- /dev/null +++ b/tmk_core/protocol/chibios/usb_driver.h @@ -0,0 +1,184 @@ +/* + ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file usb_driver.h + * @brief Usb driver suitable for both packet and serial formats + * + * @addtogroup SERIAL_USB + * @{ + */ + +#ifndef USB_DRIVER_H +#define USB_DRIVER_H + +#include "hal_usb_cdc.h" + +/*===========================================================================*/ +/* Driver constants. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Derived constants and error checks. */ +/*===========================================================================*/ + +#if HAL_USE_USB == FALSE +#error "The USB Driver requires HAL_USE_USB" +#endif + +/*===========================================================================*/ +/* Driver data structures and types. */ +/*===========================================================================*/ + +/** + * @brief Driver state machine possible states. + */ +typedef enum { + QMKUSB_UNINIT = 0, /**< Not initialized. */ + QMKUSB_STOP = 1, /**< Stopped. */ + QMKUSB_READY = 2 /**< Ready. */ +} qmkusbstate_t; + +/** + * @brief Structure representing a serial over USB driver. + */ +typedef struct QMKUSBDriver QMKUSBDriver; + +/** + * @brief Serial over USB Driver configuration structure. + * @details An instance of this structure must be passed to @p sduStart() + * in order to configure and start the driver operations. + */ +typedef struct { + /** + * @brief USB driver to use. + */ + USBDriver *usbp; + /** + * @brief Bulk IN endpoint used for outgoing data transfer. + */ + usbep_t bulk_in; + /** + * @brief Bulk OUT endpoint used for incoming data transfer. + */ + usbep_t bulk_out; + /** + * @brief Interrupt IN endpoint used for notifications. + * @note If set to zero then the INT endpoint is assumed to be not + * present, USB descriptors must be changed accordingly. + */ + usbep_t int_in; + + /** + * @brief The number of buffers in the queues + */ + size_t in_buffers; + size_t out_buffers; + + /** + * @brief The size of each buffer in the queue, typically the same as the endpoint size + */ + size_t in_size; + size_t out_size; + + /** + * @brief Always send full buffers in_size (the rest is filled with zeroes) + */ + bool fixed_size; + + /* Input buffer + * @note needs to be initialized with a memory buffer of the right size + */ + uint8_t* ib; + /* Output buffer + * @note needs to be initialized with a memory buffer of the right size + */ + uint8_t* ob; +} QMKUSBConfig; + +/** + * @brief @p SerialDriver specific data. + */ +#define _qmk_usb_driver_data \ + _base_asynchronous_channel_data \ + /* Driver state.*/ \ + qmkusbstate_t state; \ + /* Input buffers queue.*/ \ + input_buffers_queue_t ibqueue; \ + /* Output queue.*/ \ + output_buffers_queue_t obqueue; \ + /* End of the mandatory fields.*/ \ + /* Current configuration data.*/ \ + const QMKUSBConfig *config; + +/** + * @brief @p SerialUSBDriver specific methods. + */ +#define _qmk_usb_driver_methods \ + _base_asynchronous_channel_methods + +/** + * @extends BaseAsynchronousChannelVMT + * + * @brief @p SerialDriver virtual methods table. + */ +struct QMKUSBDriverVMT { + _qmk_usb_driver_methods +}; + +/** + * @extends BaseAsynchronousChannel + * + * @brief Full duplex serial driver class. + * @details This class extends @p BaseAsynchronousChannel by adding physical + * I/O queues. + */ +struct QMKUSBDriver { + /** @brief Virtual Methods Table.*/ + const struct QMKUSBDriverVMT *vmt; + _qmk_usb_driver_data +}; + +/*===========================================================================*/ +/* Driver macros. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* External declarations. */ +/*===========================================================================*/ + +#ifdef __cplusplus +extern "C" { +#endif + void qmkusbInit(void); + void qmkusbObjectInit(QMKUSBDriver *qmkusbp, const QMKUSBConfig * config); + void qmkusbStart(QMKUSBDriver *qmkusbp, const QMKUSBConfig *config); + void qmkusbStop(QMKUSBDriver *qmkusbp); + void qmkusbSuspendHookI(QMKUSBDriver *qmkusbp); + void qmkusbWakeupHookI(QMKUSBDriver *qmkusbp); + void qmkusbConfigureHookI(QMKUSBDriver *qmkusbp); + bool qmkusbRequestsHook(USBDriver *usbp); + void qmkusbSOFHookI(QMKUSBDriver *qmkusbp); + void qmkusbDataTransmitted(USBDriver *usbp, usbep_t ep); + void qmkusbDataReceived(USBDriver *usbp, usbep_t ep); + void qmkusbInterruptTransmitted(USBDriver *usbp, usbep_t ep); +#ifdef __cplusplus +} +#endif + +#endif /* USB_DRIVER_H */ + +/** @} */ diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c index f980024ab80d..cbe25719441d 100644 --- a/tmk_core/protocol/chibios/usb_main.c +++ b/tmk_core/protocol/chibios/usb_main.c @@ -29,6 +29,7 @@ #endif #include "wait.h" #include "usb_descriptor.h" +#include "usb_driver.h" #ifdef NKRO_ENABLE #include "keycode_config.h" @@ -170,27 +171,23 @@ static const USBEndpointConfig nkro_ep_config = { typedef struct { size_t queue_capacity_in; size_t queue_capacity_out; - uint8_t* queue_buffer_in; - uint8_t* queue_buffer_out; USBInEndpointState in_ep_state; USBOutEndpointState out_ep_state; USBInEndpointState int_ep_state; USBEndpointConfig in_ep_config; USBEndpointConfig out_ep_config; USBEndpointConfig int_ep_config; - const SerialUSBConfig config; - SerialUSBDriver driver; -} stream_driver_t; + const QMKUSBConfig config; + QMKUSBDriver driver; +} usb_driver_config_t; -#define STREAM_DRIVER(stream, notification) { \ +#define QMK_USB_DRIVER_CONFIG(stream, notification, fixedsize) { \ .queue_capacity_in = stream##_IN_CAPACITY, \ .queue_capacity_out = stream##_OUT_CAPACITY, \ - .queue_buffer_in = (uint8_t[BQ_BUFFER_SIZE(stream##_IN_CAPACITY, stream##_EPSIZE)]) {}, \ - .queue_buffer_out = (uint8_t[BQ_BUFFER_SIZE(stream##_OUT_CAPACITY,stream##_EPSIZE)]) {}, \ .in_ep_config = { \ .ep_mode = stream##_IN_MODE, \ .setup_cb = NULL, \ - .in_cb = sduDataTransmitted, \ + .in_cb = qmkusbDataTransmitted, \ .out_cb = NULL, \ .in_maxsize = stream##_EPSIZE, \ .out_maxsize = 0, \ @@ -204,7 +201,7 @@ typedef struct { .ep_mode = stream##_OUT_MODE, \ .setup_cb = NULL, \ .in_cb = NULL, \ - .out_cb = sduDataReceived, \ + .out_cb = qmkusbDataReceived, \ .in_maxsize = 0, \ .out_maxsize = stream##_EPSIZE, \ /* The pointer to the states will be filled during initialization */ \ @@ -216,7 +213,7 @@ typedef struct { .int_ep_config = { \ .ep_mode = USB_EP_MODE_TYPE_INTR, \ .setup_cb = NULL, \ - .in_cb = sduInterruptTransmitted, \ + .in_cb = qmkusbInterruptTransmitted, \ .out_cb = NULL, \ .in_maxsize = CDC_NOTIFICATION_EPSIZE, \ .out_maxsize = 0, \ @@ -230,7 +227,14 @@ typedef struct { .usbp = &USB_DRIVER, \ .bulk_in = stream##_IN_EPNUM, \ .bulk_out = stream##_OUT_EPNUM, \ - .int_in = notification \ + .int_in = notification, \ + .in_buffers = stream##_IN_CAPACITY, \ + .out_buffers = stream##_OUT_CAPACITY, \ + .in_size = stream##_EPSIZE, \ + .out_size = stream##_EPSIZE, \ + .fixed_size = fixedsize, \ + .ib = (uint8_t[BQ_BUFFER_SIZE(stream##_IN_CAPACITY, stream##_EPSIZE)]) {}, \ + .ob = (uint8_t[BQ_BUFFER_SIZE(stream##_OUT_CAPACITY,stream##_EPSIZE)]) {}, \ } \ } @@ -238,36 +242,36 @@ typedef struct { union { struct { #ifdef CONSOLE_ENABLE - stream_driver_t console_driver; + usb_driver_config_t console_driver; #endif #ifdef RAW_ENABLE - stream_driver_t raw_driver; + usb_driver_config_t raw_driver; #endif #ifdef MIDI_ENABLE - stream_driver_t midi_driver; + usb_driver_config_t midi_driver; #endif #ifdef VIRTSER_ENABLE - stream_driver_t serial_driver; + usb_driver_config_t serial_driver; #endif }; - stream_driver_t array[0]; + usb_driver_config_t array[0]; }; -} stream_drivers_t; +} usb_driver_configs_t; -static stream_drivers_t drivers = { +static usb_driver_configs_t drivers = { #ifdef CONSOLE_ENABLE #define CONSOLE_IN_CAPACITY 4 #define CONSOLE_OUT_CAPACITY 4 #define CONSOLE_IN_MODE USB_EP_MODE_TYPE_INTR #define CONSOLE_OUT_MODE USB_EP_MODE_TYPE_INTR - .console_driver = STREAM_DRIVER(CONSOLE, 0), + .console_driver = QMK_USB_DRIVER_CONFIG(CONSOLE, 0, true), #endif #ifdef RAW_ENABLE #define RAW_IN_CAPACITY 4 #define RAW_OUT_CAPACITY 4 #define RAW_IN_MODE USB_EP_MODE_TYPE_INTR #define RAW_OUT_MODE USB_EP_MODE_TYPE_INTR - .raw_driver = STREAM_DRIVER(RAW, 0), + .raw_driver = QMK_USB_DRIVER_CONFIG(RAW, 0, false), #endif #ifdef MIDI_ENABLE @@ -275,7 +279,7 @@ static stream_drivers_t drivers = { #define MIDI_STREAM_OUT_CAPACITY 4 #define MIDI_STREAM_IN_MODE USB_EP_MODE_TYPE_BULK #define MIDI_STREAM_OUT_MODE USB_EP_MODE_TYPE_BULK - .midi_driver = STREAM_DRIVER(MIDI_STREAM, 0), + .midi_driver = QMK_USB_DRIVER_CONFIG(MIDI_STREAM, 0, false), #endif #ifdef VIRTSER_ENABLE @@ -283,11 +287,11 @@ static stream_drivers_t drivers = { #define CDC_OUT_CAPACITY 4 #define CDC_IN_MODE USB_EP_MODE_TYPE_BULK #define CDC_OUT_MODE USB_EP_MODE_TYPE_BULK - .serial_driver = STREAM_DRIVER(CDC, CDC_NOTIFICATION_EPNUM), + .serial_driver = QMK_USB_DRIVER_CONFIG(CDC, CDC_NOTIFICATION_EPNUM, false), #endif }; -#define NUM_STREAM_DRIVERS (sizeof(drivers) / sizeof(stream_driver_t)) +#define NUM_USB_DRIVERS (sizeof(drivers) / sizeof(usb_driver_config_t)) /* --------------------------------------------------------- @@ -315,13 +319,13 @@ static void usb_event_cb(USBDriver *usbp, usbevent_t event) { #ifdef NKRO_ENABLE usbInitEndpointI(usbp, NKRO_IN_EPNUM, &nkro_ep_config); #endif /* NKRO_ENABLE */ - for (int i=0;iibqueue.notify; - ibqObjectInit(&driver->ibqueue, false, drivers.array[i].queue_buffer_in, drivers.array[i].in_ep_config.in_maxsize, drivers.array[i].queue_capacity_in, notify, driver); - notify = driver->obqueue.notify; - ibqObjectInit(&driver->ibqueue, false, drivers.array[i].queue_buffer_out, drivers.array[i].out_ep_config.out_maxsize, drivers.array[i].queue_capacity_out, notify, driver); - sduStart(driver, &drivers.array[i].config); + qmkusbObjectInit(driver, &drivers.array[i].config); + qmkusbStart(driver, &drivers.array[i].config); } /* From 5aada76f12239f2faa43d0c312b6168367017a40 Mon Sep 17 00:00:00 2001 From: Maarten Dekkers Date: Tue, 17 Apr 2018 00:15:28 +0200 Subject: [PATCH 224/578] Update maartenwut's keymaps (tada68, atom47) and add GH60 layout (#2751) --- keyboards/atom47/keymaps/maartenwut/keymap.c | 44 +++++++++++++----- keyboards/gh60/keymaps/maartenwut/keymap.c | 47 ++++++++++++++++++++ keyboards/tada68/keymaps/maartenwut/keymap.c | 40 ++--------------- 3 files changed, 84 insertions(+), 47 deletions(-) create mode 100755 keyboards/gh60/keymaps/maartenwut/keymap.c diff --git a/keyboards/atom47/keymaps/maartenwut/keymap.c b/keyboards/atom47/keymaps/maartenwut/keymap.c index 7de75e10ec4a..d526d836c35d 100644 --- a/keyboards/atom47/keymaps/maartenwut/keymap.c +++ b/keyboards/atom47/keymaps/maartenwut/keymap.c @@ -11,36 +11,60 @@ #define _______ KC_TRNS +enum custom_keycodes { + CTRLZ = SAFE_RANGE, + CTRLX, + CTRLC, + CTRLV +}; + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MA] = KEYMAP_ANSI( - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, \ + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, \ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ KC_LCTL, KC_LGUI, KC_LALT, MO(_LO), KC_SPC, KC_SPC, MO(_RA), KC_RALT, KC_APP, KC_RCTRL), \ +[_LO] = KEYMAP_ANSI( + KC_GRV, 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, \ + _______, CTRLZ, CTRLX, CTRLC, CTRLV, _______, _______, KC_QUOT, KC_LBRC, KC_RBRC, KC_BSLS, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET), \ + [_RA] = KEYMAP_ANSI( _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, _______, _______, \ KC_CAPS, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY, KC_PSCR, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \ -[_LO] = KEYMAP_ANSI( - KC_GRV, 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, \ - _______, _______, _______, _______, _______, _______, _______, KC_QUOT, KC_LBRC, KC_RBRC, KC_BSLS, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET), \ - }; void led_set_user(uint8_t usb_led) { if (usb_led & (1<event.pressed) { + switch(keycode) { + case CTRLZ: + SEND_STRING(SS_LCTRL("z")); + return false; + case CTRLX: + SEND_STRING(SS_LCTRL("x")); + return false; + case CTRLC: + SEND_STRING(SS_LCTRL("c")); + return false; + case CTRLV: + SEND_STRING(SS_LCTRL("v")); + return false; + } + } + return true; +}; diff --git a/keyboards/gh60/keymaps/maartenwut/keymap.c b/keyboards/gh60/keymaps/maartenwut/keymap.c new file mode 100755 index 000000000000..825a40336713 --- /dev/null +++ b/keyboards/gh60/keymaps/maartenwut/keymap.c @@ -0,0 +1,47 @@ +#include "gh60.h" +#include "action_layer.h" + +#define _MA 0 +#define _GA 1 +#define _FL 2 +#define _AR 3 + +#define TRNS KC_TRNS +#define trigger_time 400 + +#define LSHIFT OSM(MOD_LSFT) +#define SPACE LT(_AR, KC_SPC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// Main Layer +[_MA] = KEYMAP_HHKB( + KC_GESC, 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_BSPC, KC_NO, + 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_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, SPACE, KC_NO, KC_RALT, MO(_FL), KC_RCTRL), + +//Function Layer +[_FL] = KEYMAP_HHKB( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RESET, KC_NO, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_PSCR, + TRNS, KC_MS_L, KC_MS_D, KC_MS_R, TRNS, TG(_GA), TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_VOLD, KC_VOLU, KC_MUTE, TRNS, KC_MPLY, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), + +//Arrow keys layer (space bar) +[_AR] = KEYMAP_HHKB( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TRNS, KC_NO, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_PGUP, KC_UP, KC_PGDN, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_LEFT, KC_DOWN, KC_RGHT, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), +//Game layer (fn + g) +[_GA] = KEYMAP_HHKB( + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_NO, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + KC_LSFT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, KC_SPC, TRNS, TRNS, MO(_FL), TRNS), + +}; diff --git a/keyboards/tada68/keymaps/maartenwut/keymap.c b/keyboards/tada68/keymaps/maartenwut/keymap.c index c5b9d987ea44..f427f56a6bd5 100755 --- a/keyboards/tada68/keymaps/maartenwut/keymap.c +++ b/keyboards/tada68/keymaps/maartenwut/keymap.c @@ -13,21 +13,20 @@ #define LSHIFT OSM(MOD_LSFT) #define SPACE LT(_AR, KC_SPC) -#define CAPS LT(_LE, KC_CAPS) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Main Layer [_MA] = KEYMAP_ANSI( KC_GESC, 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_BSPC, KC_MPLY, 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_BSLS, KC_DEL, - CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, SPACE, KC_RALT, KC_RCTRL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), //Function Layer [_FL] = KEYMAP_ANSI( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RESET, KC_PSCR, - TRNS, KC_BTN1, KC_MS_U, KC_BTN2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TO(_LO), + TRNS, KC_BTN1, KC_MS_U, KC_BTN2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_INS, TRNS, KC_MS_L, KC_MS_D, KC_MS_R, TRNS, TG(_GA), TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_HOME, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_VOLD, KC_VOLU, KC_MUTE, TRNS, KC_WH_U, KC_END, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_WH_L, KC_WH_D, KC_WH_R), @@ -38,45 +37,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TRNS, TRNS, TRNS, TRNS, TRNS, TERM_ON, TERM_OFF, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, M(0), TRNS, TRNS, TRNS), -//LED control layer (caps) -[_LE] = KEYMAP_ANSI( - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, BL_TOGG, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, BL_INC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, BL_DEC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), - //Game layer (fn + g) [_GA] = KEYMAP_ANSI( TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - KC_CAPS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_LSFT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_SPC, TRNS, TRNS, MO(_FL), TRNS, TRNS, TRNS), - -[_UL] = KEYMAP_ANSI( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(_MA), - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TRNS, KC_NO, KC_NO, KC_NO), - -[_LO] = KEYMAP_ANSI( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MO(_UL), KC_NO, KC_NO, KC_NO), -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - switch (id) { - case 0: - if (record->event.pressed) { - SEND_STRING("Password"); - } - break; - } - return MACRO_NONE; }; \ No newline at end of file From ec9058f22714894b3b518000fd95977f68251fb9 Mon Sep 17 00:00:00 2001 From: zwnk Date: Wed, 18 Apr 2018 00:50:20 -0300 Subject: [PATCH 225/578] impstyle keymap added (#2753) --- keyboards/iris/keymaps/impstyle/keymap.c | 119 +++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 keyboards/iris/keymaps/impstyle/keymap.c diff --git a/keyboards/iris/keymaps/impstyle/keymap.c b/keyboards/iris/keymaps/impstyle/keymap.c new file mode 100644 index 000000000000..84f89c9c09b0 --- /dev/null +++ b/keyboards/iris/keymaps/impstyle/keymap.c @@ -0,0 +1,119 @@ +#include QMK_KEYBOARD_H + +extern keymap_config_t keymap_config; + +#define _QWERTY 0 +#define _LOWER 1 +#define _RAISE 2 +#define _ADJUST 16 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + ADJUST, +}; + +#define KC_ KC_TRNS +#define _______ KC_TRNS + +#define KC_LOWR LOWER +#define KC_RASE RAISE +#define KC_RST RESET +#define KC_BL_S BL_STEP +#define KC_TGLW TG(_LOWER) +#define KC_TGRS TG(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = LAYOUT( + KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,KC_BSPC, + KC_TAB , KC_Q , KC_W ,KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_MINS , + KC_LSFT, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L ,KC_SCLN,KC_QUOT, + KC_LCTL, KC_Z , KC_X , KC_C , KC_V , KC_B ,KC_TGRS, KC_TGLW , KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_BSLASH, + KC_LGUI,KC_RASE,KC_SPC , KC_ENT ,KC_LOWR,KC_LALT + ), + + [_LOWER] = LAYOUT( + KC_TILD,KC_EXLM, KC_AT ,KC_HASH,KC_DLR ,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSPC, + _______,_______,KC_PGUP,_______,_______,KC_LBRC, KC_RBRC, KC_P7 , KC_P8 , KC_P9 ,KC_PLUS,_______, + _______ ,KC_HOME,KC_PGDN,KC_END,_______,KC_LPRN, KC_RPRN, KC_P4 , KC_P5 , KC_P6 ,KC_MINS,KC_PIPE, + _______,_______,_______,_______,_______,_______,_______, _______ ,_______, KC_P1 , KC_P2 , KC_P3 ,KC_EQL ,KC_UNDS , + _______ ,_______,KC_DEL , KC_BSPC ,_______, KC_P0 + +), + [_RAISE] = LAYOUT( + KC_F12 , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 ,KC_F10 ,KC_F11 , + _______ ,_______, KC_UP ,_______,_______,KC_LBRC, KC_RBRC,_______,KC_NLCK,KC_INS ,KC_SLCK,KC_MUTE, + _______ ,KC_LEFT,KC_DOWN,KC_RGHT,_______,KC_LPRN, KC_RPRN,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_VOLU, + _______,_______,_______,_______,_______,_______,_______, KC_PLUS,_______,_______,_______,_______,_______,KC_VOLD, + _______ ,_______,_______, KC_EQL,_______,_______ + ), + + [_ADJUST] = LAYOUT( + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RESET , DEBUG , RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------. ,--------|--------+--------+--------+--------+--------+--------| + BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //`--------+--------+--------+----+---+--------+--------+--------/ \--------+--------+--------+---+----+--------+--------+--------' + _______, _______, _______, _______, _______, _______ + // `--------+--------+--------' `--------+--------+--------' + ) + +}; + +#ifdef AUDIO_ENABLE +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +#endif + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_qwerty); + #endif + persistent_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + break; + } + return true; +} From 9ab786d1d8f07a252d109e4fcea92b929a7fb5cf Mon Sep 17 00:00:00 2001 From: Ethan Madden Date: Tue, 17 Apr 2018 20:50:50 -0700 Subject: [PATCH 226/578] Added amj40 keymap (#2754) fixed shift area keymap updates to try to make this thing usable documentation tweaks fix readme mismatch clean up and finish docs --- .../amj40/keymaps/jetpacktuxedo/keymap.c | 43 +++++++++++++++ .../amj40/keymaps/jetpacktuxedo/readme.md | 55 +++++++++++++++++++ .../amj40/keymaps/jetpacktuxedo/rules.mk | 27 +++++++++ 3 files changed, 125 insertions(+) create mode 100755 keyboards/amj40/keymaps/jetpacktuxedo/keymap.c create mode 100755 keyboards/amj40/keymaps/jetpacktuxedo/readme.md create mode 100644 keyboards/amj40/keymaps/jetpacktuxedo/rules.mk diff --git a/keyboards/amj40/keymaps/jetpacktuxedo/keymap.c b/keyboards/amj40/keymaps/jetpacktuxedo/keymap.c new file mode 100755 index 000000000000..62f4376f5862 --- /dev/null +++ b/keyboards/amj40/keymaps/jetpacktuxedo/keymap.c @@ -0,0 +1,43 @@ +#include "amj40.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // Default Layer + [0] = KEYMAP( \ + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,\ + LT(2, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(2, KC_ENT),\ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, MT(MOD_RSFT, KC_SLSH),\ + KC_LCTL, KC_LGUI, KC_LALT, LT(1, KC_SPC), LT(1, KC_SPC), KC_RALT, MO(3), KC_RCTL \ + ), + + // Number Layer + [1] = KEYMAP( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_TRNS, KC_MINS, KC_EQL, KC_SCLN, KC_QUOT, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, MT(MOD_RSFT, KC_BSLS), \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS\ + ), + + // Shifted Layer + [2] = KEYMAP( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,\ + KC_TRNS, KC_UNDS, KC_PLUS, KC_COLN, KC_DQUO, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_PIPE, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS\ + ), + + // Fkey Layer + [3] = KEYMAP( \ + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RESET,\ + KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, TG(4), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS\ + ), + + // Gaming Layer + [4] = KEYMAP( \ + KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WH_U, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS,\ + KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,\ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\ + KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS\ + ), +}; diff --git a/keyboards/amj40/keymaps/jetpacktuxedo/readme.md b/keyboards/amj40/keymaps/jetpacktuxedo/readme.md new file mode 100755 index 000000000000..64ae16c7eb8b --- /dev/null +++ b/keyboards/amj40/keymaps/jetpacktuxedo/readme.md @@ -0,0 +1,55 @@ +Jetpacktuxedo's AMJ40 layout +===================== + +This is based heavily on my minivan layout, with most difference stemming from the different widths between the minivan and the AMJ40. ![Image of my specific layout](https://i.imgur.com/B9XraJY.jpg) + +## Base Layer (0) + +The base layer is pretty simple, straight qwerty layout where available. Both spacebars go to layer 1 when held. `tab` is `tab` when pressed and `fn2` when held, `enter` is the same. `GESC` is `esc` when used alone, but `~` when shifted. `/` is `/` when tapped but `rshift` when held. +``` +|GESC| Q | W | E | R | T | Y | U | I | O | P |BSPC| +| TAB | A | S | D | F | G | H | J | K | L | ENTER | +|LSHIFT | Z | X | C | V | B | N | M | , | . | / | +|LCTRL|LWIN|LALT | SPACE | SPACE |RALT |FN 3|RCTRL | +``` + +## Number Layer (1) + +Numbers are set up just like on my minivan layout, but symbols are a bit different because the AMJ40 is one key narrower than the minivan and also lacks dedicated arrows. Decided to go with `hjkl` arrows, which takes some getting used to. `;` is on a layer now because of the narrowness I mentioned before, and it (along with `-`, `=`, and `'`) moves to the right hand to leave room for the `hjkl` arrows. `delete` on `backspace`, `[` and `]` on `<` and `>`, and `\` on `/` are all stolen straight from my minivan layout. +``` +| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |DEL | +| | - | = | ; | ' | | ← | ↓ | ↑ | → | | +| | | | | | | | | [ | ] | \ | +| | | | | | | | | +``` + +## Shifted Layer (2) + +I don't want to be using two key combos constantly, so I also added this symbol layer that is basically shift+numeric layer. Also has nav keys on top of where arrows sit on the previous layer +``` +| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) |DEL | +| | _ | + | : | " | |HOME|PGDN|PGUP|END | | +| | | | | | | | | { | } | | | +| | | | | | | | | +``` + +## Fkey Layer (3) + +Honestly, I use this more for jumping to my gaming layer and for reset than I use it for Fkeys. Lol. Hitting the left windows key while in this layer locks the gaming layer listed below +``` +| | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 |F10 |RSET| +| |F11 |F12 | | | | | | | | | +| | | | | | | | | | | | +| |FN 4| | | | | | | +``` + +## "Gaming" Layer (4) + +Based on the "gaming" layer on my minivan that I mostly just use for mouse keys. To toggle this back off you hit the right windows key (to go to layer 3) and then the left windows key again. +``` +|ESC | | | | | |MWUP|MLCK|M UP|MRCK| | | +| TAB | | | | | |MWDN|M L |M DN|M R | | +| | | | | | | | | | | | +| | | | SPACE | | | | | +``` + diff --git a/keyboards/amj40/keymaps/jetpacktuxedo/rules.mk b/keyboards/amj40/keymaps/jetpacktuxedo/rules.mk new file mode 100644 index 000000000000..d7f3e76054e4 --- /dev/null +++ b/keyboards/amj40/keymaps/jetpacktuxedo/rules.mk @@ -0,0 +1,27 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. It uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD + + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif From a7fca476866ea7efac69c7519d9666665c9a62a8 Mon Sep 17 00:00:00 2001 From: internetirl Date: Wed, 18 Apr 2018 22:21:36 -0400 Subject: [PATCH 227/578] Link to Atmel's flip is broken. (#2752) The link to Atmel's flip is broken. It re-directs to http://www.microchip.com/. Please update! I think this is the correct link. Please verify. http://www.microchip.com/developmenttools/productdetails.aspx?partno=flip --- docs/flashing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/flashing.md b/docs/flashing.md index 8e1381f69818..e5fe59f8f039 100644 --- a/docs/flashing.md +++ b/docs/flashing.md @@ -20,7 +20,7 @@ Compatible flashers: * [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI) * [dfu-programmer](https://github.com/dfu-programmer/dfu-programmer) / `:dfu` in QMK (recommended command line) -* [Atmel's Flip](http://www.atmel.com/tools/flip.aspx) (not recommended) +* [Atmel's Flip](http://www.microchip.com/developmenttools/productdetails.aspx?partno=flip) (not recommended) Flashing sequence: From 3d3c093173f6e9a838671bd7484b3a11dc564c1a Mon Sep 17 00:00:00 2001 From: adiron Date: Thu, 19 Apr 2018 05:22:08 +0300 Subject: [PATCH 228/578] Added bending to MIDI (#2740) This is done via MI_BENDD and MI_BENDU. At the moment the value is hardcoded and cannot be adjusted (future commit?) and is the max for the `midi_send_pitchbend` function (up or down). `MI_BENDD` and `MI_BENDU` both require `#define MIDI_ADVANCED` MIDI pitch bend was already implemented in `protocol/midi.c`, I merely added the keycodes to trigger them. :) (thanks to Jack, two years ago in commit fb4fe52c apparently) --- quantum/process_keycode/process_midi.c | 20 ++++++++++++++++++++ quantum/quantum_keycodes.h | 3 +++ 2 files changed, 23 insertions(+) diff --git a/quantum/process_keycode/process_midi.c b/quantum/process_keycode/process_midi.c index 9728076dfd3d..a67f736285fb 100644 --- a/quantum/process_keycode/process_midi.c +++ b/quantum/process_keycode/process_midi.c @@ -222,6 +222,26 @@ bool process_midi(uint16_t keycode, keyrecord_t *record) dprintf("midi modulation interval %d\n", midi_config.modulation_interval); } return false; + case MI_BENDD: + if (record->event.pressed) { + midi_send_pitchbend(&midi_device, midi_config.channel, -0x2000); + dprintf("midi pitchbend channel:%d amount:%d\n", midi_config.channel, -0x2000); + } + else { + midi_send_pitchbend(&midi_device, midi_config.channel, 0); + dprintf("midi pitchbend channel:%d amount:%d\n", midi_config.channel, 0); + } + return false; + case MI_BENDU: + if (record->event.pressed) { + midi_send_pitchbend(&midi_device, midi_config.channel, 0x1fff); + dprintf("midi pitchbend channel:%d amount:%d\n", midi_config.channel, 0x1fff); + } + else { + midi_send_pitchbend(&midi_device, midi_config.channel, 0); + dprintf("midi pitchbend channel:%d amount:%d\n", midi_config.channel, 0); + } + return false; }; return true; diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h index 8122bfe7397d..d545440c99d0 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h @@ -383,6 +383,9 @@ enum quantum_keycodes { MI_MOD, // modulation MI_MODSD, // decrease modulation speed MI_MODSU, // increase modulation speed + + MI_BENDD, // Bend down + MI_BENDU, // Bend up #endif // MIDI_ADVANCED // Backlight functionality From b4bdebab9a48546160465d64000724a07617054e Mon Sep 17 00:00:00 2001 From: Cole Markham Date: Wed, 18 Apr 2018 23:57:24 -0500 Subject: [PATCH 229/578] Meira updates for bluetooth and audio (#2731) * Add audio output * Update Miera to fix bluetooth issues, bootloader definition. * Added keymap with audio example * Cleanup Meira audio code --- keyboards/meira/config.h | 4 + keyboards/meira/featherble/config.h | 4 + keyboards/meira/featherble/rules.mk | 2 +- keyboards/meira/keymaps/cole/config.h | 31 +++ keyboards/meira/keymaps/cole/keymap.c | 253 +++++++++++++++++++++++ keyboards/meira/keymaps/cole/readme.md | 1 + keyboards/meira/keymaps/cole/rules.mk | 2 + keyboards/meira/keymaps/default/config.h | 10 + keyboards/meira/keymaps/default/keymap.c | 11 + keyboards/meira/meira.c | 20 -- keyboards/meira/meira.h | 1 + keyboards/meira/promicro/rules.mk | 13 ++ keyboards/meira/rules.mk | 39 ++-- 13 files changed, 347 insertions(+), 44 deletions(-) create mode 100644 keyboards/meira/keymaps/cole/config.h create mode 100644 keyboards/meira/keymaps/cole/keymap.c create mode 100644 keyboards/meira/keymaps/cole/readme.md create mode 100644 keyboards/meira/keymaps/cole/rules.mk diff --git a/keyboards/meira/config.h b/keyboards/meira/config.h index b9bdd426a0e4..5e9dd6837e07 100644 --- a/keyboards/meira/config.h +++ b/keyboards/meira/config.h @@ -35,11 +35,15 @@ along with this program. If not, see . /* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ #define DIODE_DIRECTION CUSTOM_MATRIX +#ifdef BACKLIGHT_ENABLE #define BACKLIGHT_LEVELS 10 #define BACKLIGHT_PWM_MAP {2, 4, 8, 16, 40, 55, 70, 128, 200, 255} +#endif +#ifdef RGBLIGHT_ENABLE #define RGB_DI_PIN D3 #define RGBLIGHT_TIMER #define RGBLED_NUM 15 // Number of LEDs +#endif #endif diff --git a/keyboards/meira/featherble/config.h b/keyboards/meira/featherble/config.h index ea26bedfa06a..b7cdfe8bdb8d 100644 --- a/keyboards/meira/featherble/config.h +++ b/keyboards/meira/featherble/config.h @@ -36,6 +36,10 @@ along with this program. If not, see . #define LED_EN_PIN D2 #define UNUSED_PINS +#define QMK_SPEAKER B5 +#define B5_AUDIO +#define AUDIO_VOICES + #define CATERINA_BOOTLOADER diff --git a/keyboards/meira/featherble/rules.mk b/keyboards/meira/featherble/rules.mk index 3f32ba890bac..e27608983f14 100644 --- a/keyboards/meira/featherble/rules.mk +++ b/keyboards/meira/featherble/rules.mk @@ -1,3 +1,3 @@ BLUETOOTH_ENABLE = yes F_CPU = 8000000 - +BLUETOOTH = AdafruitBLE diff --git a/keyboards/meira/keymaps/cole/config.h b/keyboards/meira/keymaps/cole/config.h new file mode 100644 index 000000000000..90c490e83620 --- /dev/null +++ b/keyboards/meira/keymaps/cole/config.h @@ -0,0 +1,31 @@ +/* Copyright 2017 Cole Markham, WoodKeys.click + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here +#define MUSIC_MASK (keycode != KC_NO) +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(IMPERIAL_MARCH) + // Disable music mode to keep the firmware size down + #define NO_MUSIC_MODE + +#endif + +#endif diff --git a/keyboards/meira/keymaps/cole/keymap.c b/keyboards/meira/keymaps/cole/keymap.c new file mode 100644 index 000000000000..b1c230d92641 --- /dev/null +++ b/keyboards/meira/keymaps/cole/keymap.c @@ -0,0 +1,253 @@ +/* Copyright 2017 Cole Markham + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "meira.h" +#include "lighting.h" + +#ifdef RGBLIGHT_ENABLE +//Following line allows macro to read current RGB settings +extern rgblight_config_t rgblight_config; +#endif + +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _ADJUST 16 + + +#ifndef BLUETOOTH_ENABLE +#define OUT_BT KC_TRNS +#endif + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + ADJUST, +}; + +// define variables for reactive RGB +bool TOG_STATUS = false; +int RGB_current_mode; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Tab | A | S | D | F | G | H | J | K | L | ; | ' | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Ctrl | Ctrl | Alt |Lower | Cmd |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_QWERTY] = KEYMAP( \ + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \ + ADJUST, KC_LCTL, KC_LALT, KC_LALT, LOWER, KC_LGUI, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + ), + + /* Lower + * ,-----------------------------------------------------------------------------------. + * | | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ~ | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_LOWER] = KEYMAP( \ + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ + KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, KC_QUOT, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END \ + ), + + /* Raise + * ,-----------------------------------------------------------------------------------. + * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ` | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Home | PgUp | PgDn | End | + * `-----------------------------------------------------------------------------------' + */ + [_RAISE] = KEYMAP( \ + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END \ + ), + + /* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_ADJUST] = KEYMAP( \ + RESET, _______, _______, KC_MRWD, KC_MPLY, KC_MFFD, KC_PSCR, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, \ + BL_STEP, RGB_MOD, _______, AU_ON, AU_OFF, _______, _______, _______, _______, _______, _______, _______, \ + BL_TOGG, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, OUT_AUTO, OUT_USB, OUT_BT \ + ) +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +// Setting ADJUST layer RGB back to default +void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { +#ifdef RGBLIGHT_ENABLE + rgblight_mode(RGB_current_mode); +#endif + layer_on(layer3); + } else { + layer_off(layer3); + } +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LOWER: + if (record->event.pressed) { + //not sure how to have keyboard check mode and set it to a variable, so my work around + //uses another variable that would be set to true after the first time a reactive key is pressed. + if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false + } else { + TOG_STATUS = !TOG_STATUS; +#ifdef RGBLIGHT_ENABLE + rgblight_mode(16); +#endif + } + layer_on(_LOWER); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } else { +#ifdef RGBLIGHT_ENABLE + rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change +#endif + TOG_STATUS = false; + layer_off(_LOWER); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + //not sure how to have keyboard check mode and set it to a variable, so my work around + //uses another variable that would be set to true after the first time a reactive key is pressed. + if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false + } else { + TOG_STATUS = !TOG_STATUS; +#ifdef RGBLIGHT_ENABLE + rgblight_mode(15); +#endif + } + layer_on(_RAISE); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } else { +#ifdef RGBLIGHT_ENABLE + rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change +#endif + layer_off(_RAISE); + TOG_STATUS = false; + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case ADJUST: + // FIXME add RGB feedback + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + break; + case BL_TOGG: +#ifdef BACKLIGHT_ENABLE + if (record->event.pressed) { + print("Enabling backlight\n"); + backlight_init_ports(); + } +#endif + return false; + break; + case BL_STEP: + if (record->event.pressed) { +#ifdef BACKLIGHT_ENABLE + backlight_step(); +#endif + + } + return false; + break; + //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released +#ifdef RGBLIGHT_ENABLE + case RGB_MOD: + if (record->event.pressed) { + rgblight_mode(RGB_current_mode); + rgblight_step(); + RGB_current_mode = rgblight_config.mode; + } + return false; + break; +#endif + } + return true; +} + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/meira/keymaps/cole/readme.md b/keyboards/meira/keymaps/cole/readme.md new file mode 100644 index 000000000000..be8404881324 --- /dev/null +++ b/keyboards/meira/keymaps/cole/readme.md @@ -0,0 +1 @@ +# The default keymap for meira diff --git a/keyboards/meira/keymaps/cole/rules.mk b/keyboards/meira/keymaps/cole/rules.mk new file mode 100644 index 000000000000..8f8d53e57a5c --- /dev/null +++ b/keyboards/meira/keymaps/cole/rules.mk @@ -0,0 +1,2 @@ +AUDIO_ENABLE = yes # Audio output on port C6 +EXTRAFLAGS+=-flto # -4-7k \ No newline at end of file diff --git a/keyboards/meira/keymaps/default/config.h b/keyboards/meira/keymaps/default/config.h index 97210115b9e5..5f5844a70a18 100644 --- a/keyboards/meira/keymaps/default/config.h +++ b/keyboards/meira/keymaps/default/config.h @@ -20,5 +20,15 @@ #include "../../config.h" // place overrides here +#define MUSIC_MASK (keycode != KC_NO) +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PLANCK_SOUND) + // #define STARTUP_SONG SONG(NO_SOUND) + + #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(COLEMAK_SOUND), \ + SONG(DVORAK_SOUND) \ + } +#endif #endif diff --git a/keyboards/meira/keymaps/default/keymap.c b/keyboards/meira/keymaps/default/keymap.c index dd55859a580e..4bbd014cb799 100644 --- a/keyboards/meira/keymaps/default/keymap.c +++ b/keyboards/meira/keymaps/default/keymap.c @@ -37,6 +37,17 @@ enum custom_keycodes { ADJUST, }; +#ifdef AUDIO_ENABLE + +float tone_my_startup[][2] = SONG(ODE_TO_JOY); +float tone_my_goodbye[][2] = SONG(ROCK_A_BYE_BABY); + +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); + +#endif /* AUDIO_ENABLE */ + // define variables for reactive RGB bool TOG_STATUS = false; int RGB_current_mode; diff --git a/keyboards/meira/meira.c b/keyboards/meira/meira.c index 2ae53e00a3e3..3ff62a080b91 100644 --- a/keyboards/meira/meira.c +++ b/keyboards/meira/meira.c @@ -22,30 +22,10 @@ extern void backlight_set(uint8_t level); -#ifdef AUDIO_ENABLE - float tone_startup[][2] = SONG(STARTUP_SOUND); - float tone_goodbye[][2] = SONG(GOODBYE_SOUND); -#endif - - -void shutdown_user(void) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_goodbye, false, 0); - _delay_ms(150); - stop_all_notes(); - #endif -} - - void matrix_init_kb(void) { debug_enable=true; print("meira matrix_init_kb\n"); -#ifdef AUDIO_ENABLE - _delay_ms(20); // gets rid of tick - PLAY_NOTE_ARRAY(tone_startup, false, 0); -#endif - #ifdef ISSI_ENABLE issi_init(); diff --git a/keyboards/meira/meira.h b/keyboards/meira/meira.h index 35c5ba419de8..8cdcd09fe22b 100644 --- a/keyboards/meira/meira.h +++ b/keyboards/meira/meira.h @@ -54,6 +54,7 @@ void reset_keyboard_kb(void); #define LAYOUT_ortho_4x12 KEYMAP #define KC_LAYOUT_ortho_4x12 KC_KEYMAP +#define LAYOUT_kc_ortho_4x12 KC_KEYMAP #endif diff --git a/keyboards/meira/promicro/rules.mk b/keyboards/meira/promicro/rules.mk index 3c81f1b344a1..22e49971f1cd 100644 --- a/keyboards/meira/promicro/rules.mk +++ b/keyboards/meira/promicro/rules.mk @@ -1 +1,14 @@ +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + BLUETOOTH_ENABLE = no diff --git a/keyboards/meira/rules.mk b/keyboards/meira/rules.mk index e898146abd20..d3e45fc8d0d0 100644 --- a/keyboards/meira/rules.mk +++ b/keyboards/meira/rules.mk @@ -4,19 +4,6 @@ SRC += matrix.c TWIlib.c issi.c lighting.c #MCU = at90usb1286 MCU = atmega32u4 -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - # # LUFA specific @@ -37,6 +24,12 @@ ARCH = AVR8 # CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. F_USB = $(F_CPU) +# Bootloader +# This definition is optional, and if your keyboard supports multiple bootloaders of +# different sizes, comment this out, and the correct address will be loaded +# automatically (+60). See bootloader.mk for all options. +BOOTLOADER = caterina + # Interrupt driven control endpoint task(+60) OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT @@ -54,10 +47,10 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # change yes to no to disable # BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work @@ -74,13 +67,13 @@ ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be di CUSTOM_MATRIX = yes -ifeq ($(strip $(ISSI_ENABLE)), yes) - TMK_COMMON_DEFS += -DISSI_ENABLE -endif - -ifeq ($(strip $(WATCHDOG_ENABLE)), yes) - TMK_COMMON_DEFS += -DWATCHDOG_ENABLE -endif +#ifeq ($(strip $(ISSI_ENABLE)), yes) +# TMK_COMMON_DEFS += -DISSI_ENABLE +#endif +# +#ifeq ($(strip $(WATCHDOG_ENABLE)), yes) +# TMK_COMMON_DEFS += -DWATCHDOG_ENABLE +#endif DEFAULT_FOLDER = meira/promicro LAYOUTS = ortho_4x12 From 23b45710acc57ed147e006a8c79a1caf6fa57fd7 Mon Sep 17 00:00:00 2001 From: Cole Markham Date: Sun, 17 Dec 2017 22:04:50 -0600 Subject: [PATCH 230/578] Add support for Big Series 1-key PCB by Woodkeys.click --- keyboards/bigseries/bigseries.c | 26 ++++ keyboards/bigseries/bigseries.h | 28 ++++ keyboards/bigseries/config.h | 59 ++++++++ keyboards/bigseries/keymaps/default/keymap.c | 93 +++++++++++++ keyboards/bigseries/keymaps/leddance/config.h | 23 ++++ keyboards/bigseries/keymaps/leddance/keymap.c | 127 ++++++++++++++++++ keyboards/bigseries/keymaps/leddance/rules.mk | 1 + keyboards/bigseries/readme.md | 15 +++ keyboards/bigseries/rules.mk | 59 ++++++++ 9 files changed, 431 insertions(+) create mode 100755 keyboards/bigseries/bigseries.c create mode 100755 keyboards/bigseries/bigseries.h create mode 100755 keyboards/bigseries/config.h create mode 100755 keyboards/bigseries/keymaps/default/keymap.c create mode 100644 keyboards/bigseries/keymaps/leddance/config.h create mode 100755 keyboards/bigseries/keymaps/leddance/keymap.c create mode 100644 keyboards/bigseries/keymaps/leddance/rules.mk create mode 100644 keyboards/bigseries/readme.md create mode 100755 keyboards/bigseries/rules.mk diff --git a/keyboards/bigseries/bigseries.c b/keyboards/bigseries/bigseries.c new file mode 100755 index 000000000000..0ef84478b31a --- /dev/null +++ b/keyboards/bigseries/bigseries.c @@ -0,0 +1,26 @@ +/* +Copyright 2018 Cole Markham + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include "bigseries.h" + +void matrix_scan_kb(void) { + // Looping keyboard code goes here + // This runs every cycle (a lot) + matrix_scan_user(); +#ifdef BACKLIGHT_ENABLE + backlight_task(); +#endif +}; diff --git a/keyboards/bigseries/bigseries.h b/keyboards/bigseries/bigseries.h new file mode 100755 index 000000000000..4a8ac1116cda --- /dev/null +++ b/keyboards/bigseries/bigseries.h @@ -0,0 +1,28 @@ +/* +Copyright 2018 Cole Markham + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#ifndef BIGSWITCH_H +#define BIGSWITCH_H + +#include "quantum.h" + +#define KEYMAP( \ + K00 \ +) { \ + { K00 } \ +} + +#endif diff --git a/keyboards/bigseries/config.h b/keyboards/bigseries/config.h new file mode 100755 index 000000000000..3c401f563ba8 --- /dev/null +++ b/keyboards/bigseries/config.h @@ -0,0 +1,59 @@ +/* +Copyright 2018 Cole Markham + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6071 +#define DEVICE_VER 0x0002 +#define MANUFACTURER WoodKeys.click +#define PRODUCT BigSeries Single Keyboard +#define DESCRIPTION Single key board for Novelkeys Big Series Switch + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 1 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B0 } +#define MATRIX_COL_PINS { B4 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 50 + +/* key combination for command */ +#define IS_COMMAND() ( \ + false \ +) + +/* prevent stuck modifiers */ +#define PREVENT_STUCK_MODIFIERS + +#ifdef RGBLIGHT_ENABLE +#define RGB_DI_PIN D3 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 5 +#endif + +#endif diff --git a/keyboards/bigseries/keymaps/default/keymap.c b/keyboards/bigseries/keymaps/default/keymap.c new file mode 100755 index 000000000000..67cfb168c243 --- /dev/null +++ b/keyboards/bigseries/keymaps/default/keymap.c @@ -0,0 +1,93 @@ +/* +Copyright 2018 Cole Markham + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "../../bigseries.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +KEYMAP( + KC_A), + + +}; + + +bool initialized = 0; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + return MACRO_NONE ; +} + +void matrix_init_user(void) { + if (!initialized){ + dprintf("Initializing in matrix_scan_user"); + rgblight_enable(); + rgblight_mode(7); + rgblight_sethsv(0,255,255); + rgblight_setrgb(0x00, 0x00, 0xFF); + initialized = 1; + } +} + +void matrix_scan_user(void) { +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_A: + if (record->event.pressed) { + SEND_STRING("Howdy!!\n"); + rgblight_step(); + return false; + } + } + return true; +} + +void led_set_user(uint8_t usb_led) { + + if (usb_led & (1 << USB_LED_NUM_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_COMPOSE)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_KANA)) { + + } else { + + } + +} diff --git a/keyboards/bigseries/keymaps/leddance/config.h b/keyboards/bigseries/keymaps/leddance/config.h new file mode 100644 index 000000000000..57398fb996ba --- /dev/null +++ b/keyboards/bigseries/keymaps/leddance/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2018 Cole Markham + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#define TAPPING_TERM 400 + +#endif diff --git a/keyboards/bigseries/keymaps/leddance/keymap.c b/keyboards/bigseries/keymaps/leddance/keymap.c new file mode 100755 index 000000000000..4cb57f4375aa --- /dev/null +++ b/keyboards/bigseries/keymaps/leddance/keymap.c @@ -0,0 +1,127 @@ +/* +Copyright 2018 Cole Markham + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "../../bigseries.h" +#include "print.h" + +extern rgblight_config_t rgblight_config; + +enum custom_keycodes { + BL = SAFE_RANGE +}; + +enum custom_layers { + BASE = 0, + LED +}; + +//Tap Dance Declarations +enum { + TD_TOGGLE = 0 +}; + +void dance_toggle (qk_tap_dance_state_t *state, void *user_data) { + if (state->count >= 2) { + println("Double tapped, switching layers"); + if (layer_state_is(LED)) { + layer_off(LED); + } else { + layer_on(LED); + } + } else { + print("Single tapped: "); + if (layer_state_is(LED)) { +#ifdef RGBLIGHT_ENABLE + if (!rgblight_config.enable) { + rgblight_enable(); + } + rgblight_step(); +#endif + } else { + println("Base layer, sending string"); + SEND_STRING("This thing is BIG!!\n"); + } + } +} + +//Tap Dance Definitions +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_TOGGLE] = ACTION_TAP_DANCE_FN(dance_toggle) +// Other declarations would go here, separated by commas, if you have them +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[BASE] = KEYMAP( + TD(TD_TOGGLE)), +[LED] = KEYMAP( + TD(TD_TOGGLE) + ) + + +}; + + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + return MACRO_NONE ; +} + + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // Nothing here, see dance_toggle + return true; +} + +void led_set_user(uint8_t usb_led) { + + if (usb_led & (1 << USB_LED_NUM_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_COMPOSE)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_KANA)) { + + } else { + + } + +} diff --git a/keyboards/bigseries/keymaps/leddance/rules.mk b/keyboards/bigseries/keymaps/leddance/rules.mk new file mode 100644 index 000000000000..1ba2fa8fbefa --- /dev/null +++ b/keyboards/bigseries/keymaps/leddance/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes \ No newline at end of file diff --git a/keyboards/bigseries/readme.md b/keyboards/bigseries/readme.md new file mode 100644 index 000000000000..dfb415668980 --- /dev/null +++ b/keyboards/bigseries/readme.md @@ -0,0 +1,15 @@ +# Big Series Keyboard + +![Big Series 1-Key](https://woodkeys.click/wp-content/uploads/2017/12/woodkeys_419.jpg) + +A PCB for the Big Series Switch by [NovelKeys](https://novelkeys.xyz). Available in 1, 2, 3, and 4 switch versions from [Woodkeys.click](https://woodkeys.click/product-category/big-series/). + +Keyboard Maintainer: [Cole Markham](https://github.com/colemarkham) / [Woodkeys.click](https://woodkeys.click) +Hardware Supported: Big Series PCBs +Hardware Availability: [Woodkeys.click](https://woodkeys.click), [NovelKeys](https://novelkeys.xyz) + +Make example for this keyboard (after setting up your build environment): + + make bigseries:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. \ No newline at end of file diff --git a/keyboards/bigseries/rules.mk b/keyboards/bigseries/rules.mk new file mode 100755 index 000000000000..4cac07f72532 --- /dev/null +++ b/keyboards/bigseries/rules.mk @@ -0,0 +1,59 @@ +#SRC += rgb_backlight.c + +# MCU name +MCU = atmega32u2 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Custom backlighting code is used, so this should not be enabled +AUDIO_ENABLE = no # This can be enabled if a speaker is connected to the expansion port. Not compatible with RGBLIGHT below +RGBLIGHT_ENABLE = yes # This can be enabled if a ws2812 strip is connected to the expansion port. + From 8b0b17a369be6d3dff4cb9bad4253960252a5e95 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Wed, 18 Apr 2018 22:47:04 -0700 Subject: [PATCH 231/578] Add Faux Clicking as subset of Audio feature (#2748) * Add Faux Clicky to main Audio feature * Make clicky settings user configurable * Add additional documentation * Don't play when music mode is enabled (hopefully) --- docs/feature_audio.md | 30 ++++++++++ keyboards/viterbi/keymaps/drashna/keymap.c | 2 +- quantum/process_keycode/process_audio.c | 69 +++++++++++++++++++++- quantum/quantum_keycodes.h | 11 ++++ users/drashna/config.h | 1 + users/drashna/drashna.c | 18 ------ users/drashna/drashna.h | 1 - 7 files changed, 111 insertions(+), 21 deletions(-) diff --git a/docs/feature_audio.md b/docs/feature_audio.md index eaaa2fe512fb..1b8ca86f4985 100644 --- a/docs/feature_audio.md +++ b/docs/feature_audio.md @@ -97,6 +97,36 @@ You can completely disable Music Mode as well. This is useful, if you're pressed #define NO_MUSIC_MODE +## Faux Click + +This adds a click sound each time you hit a button, to simulate click sounds from the keyboard. And the sounds are slightly different for each keypress, so it doesn't sound like a single long note, if you type rapidly. + +* `CK_TOGG` - Toggles the status (will play sound if enabled) +* `CK_RST` - Resets the frequency to the default state +* `CK_UP` - Increases the frequency of the clicks +* `CK_DOWN` - Decreases the frequency of the clicks + +The feature is disabled by default, to save space. To enable it, add this to your `config.h`: + + #define AUDIO_CLICKY + +Additionally, even when enabled, the feature is not enabled by default, so you would need to turn it on first. And since we don't use EEPROM to store the setting (yet), you can default this to on by adding this to your `config.h`: + + #define AUDIO_CLICKY_ON + +You can configure the default, min and max frequencies, the stepping and built in randomness by defining these values: + +| Option | Default Value | Description | +|--------|---------------|-------------| +| `AUDIO_CLICKY_FREQ_DEFAULT` | 440.0f | Sets the default/starting audio frequency for the clicky sounds. | +| `AUDIO_CLICKY_FREQ_MIN` | 65.0f | Sets the lowest frequency (under 60f are a bit buggy). | +| `AUDIO_CLICKY_FREQ_MAX` | 1500.0f | Sets the the highest frequency. Too high may result in coworkers attacking you. | +| `AUDIO_CLICKY_FREQ_FACTOR` | 1.18921f| Sets the stepping of UP/DOWN key codes. | +| `AUDIO_CLICKY_FREQ_RANDOMNESS` | 0.05f | Sets a factor of randomness for the clicks, Setting this to `0f` will make each click identical. | + + + + ## MIDI Functionality This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile. diff --git a/keyboards/viterbi/keymaps/drashna/keymap.c b/keyboards/viterbi/keymaps/drashna/keymap.c index b5a7c18f88bc..78c60d1a68cc 100644 --- a/keyboards/viterbi/keymaps/drashna/keymap.c +++ b/keyboards/viterbi/keymaps/drashna/keymap.c @@ -67,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_MEDIA] = LAYOUT_ortho_5x7( - KC_MAKE, KC_RESET,MU_TOG, AUD_ON, AUD_OFF, KC_FXCL, RGB_SAD, + KC_MAKE, KC_RESET,MU_TOG, AUD_ON, AUD_OFF, CK_TOGG, RGB_SAD, MEDIA, EPRM, KC_RGB_T,RGB_M_P, RGB_M_B, RGB_M_R, RGB_SAI, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_M_SW,RGB_M_SN,RGB_M_K, RGB_HUD, KC_MPLY, KC_MPRV, KC_MNXT, RGB_M_X, RGB_M_G, RGB_M_P, RGB_HUI, diff --git a/quantum/process_keycode/process_audio.c b/quantum/process_keycode/process_audio.c index 32057ae8dc3e..2d92e4064d2c 100644 --- a/quantum/process_keycode/process_audio.c +++ b/quantum/process_keycode/process_audio.c @@ -10,6 +10,46 @@ float voice_change_song[][2] = VOICE_CHANGE_SONG; #define PITCH_STANDARD_A 440.0f #endif +#ifdef AUDIO_CLICKY +#ifdef AUDIO_CLICKY_ON +bool clicky_enable = true; +#else +bool clicky_enable = false; +#endif +#ifndef AUDIO_CLICKY_FREQ_DEFAULT +#define AUDIO_CLICKY_FREQ_DEFAULT 440.0f +#endif +#ifndef AUDIO_CLICKY_FREQ_MIN +#define AUDIO_CLICKY_FREQ_MIN 65.0f +#endif +#ifndef AUDIO_CLICKY_FREQ_MAX +#define AUDIO_CLICKY_FREQ_MAX 1500.0f +#endif +#ifndef AUDIO_CLICKY_FREQ_FACTOR +#define AUDIO_CLICKY_FREQ_FACTOR 1.18921f +#endif +#ifndef AUDIO_CLICKY_FREQ_RANDOMNESS +#define AUDIO_CLICKY_FREQ_RANDOMNESS 0.05f +#endif + +float clicky_freq = AUDIO_CLICKY_FREQ_DEFAULT; +float clicky_song[][2] = {{AUDIO_CLICKY_FREQ_DEFAULT, 3}, {AUDIO_CLICKY_FREQ_DEFAULT, 1}}; // 3 and 1 --> durations + +#ifndef NO_MUSIC_MODE +extern bool music_activated; +extern bool midi_activated; +#endif + +void clicky_play(void) { +#ifndef NO_MUSIC_MODE + if (music_activated || midi_activated) return; +#endif + clicky_song[0][0] = 2.0f * clicky_freq * (1.0f + AUDIO_CLICKY_FREQ_RANDOMNESS * ( ((float)rand()) / ((float)(RAND_MAX)) ) ); + clicky_song[1][0] = clicky_freq * (1.0f + AUDIO_CLICKY_FREQ_RANDOMNESS * ( ((float)rand()) / ((float)(RAND_MAX)) ) ); + PLAY_SONG(clicky_song); +} +#endif + static float compute_freq_for_midi_note(uint8_t note) { // https://en.wikipedia.org/wiki/MIDI_tuning_standard @@ -49,6 +89,33 @@ bool process_audio(uint16_t keycode, keyrecord_t *record) { return false; } +#ifdef AUDIO_CLICKY + if (keycode == CLICKY_TOGGLE && record->event.pressed) { clicky_enable = !clicky_enable; } + + if (keycode == CLICKY_RESET && record->event.pressed) { clicky_freq = AUDIO_CLICKY_FREQ_DEFAULT; } + + if (keycode == CLICKY_UP && record->event.pressed) { + float new_freq = clicky_freq * AUDIO_CLICKY_FREQ_FACTOR; + if (new_freq < AUDIO_CLICKY_FREQ_MAX) { + clicky_freq = new_freq; + } + } + if (keycode == CLICKY_TOGGLE && record->event.pressed) { + float new_freq = clicky_freq / AUDIO_CLICKY_FREQ_FACTOR; + if (new_freq > AUDIO_CLICKY_FREQ_MIN) { + clicky_freq = new_freq; + } + } + + + if ( (clicky_enable && keycode != CLICKY_TOGGLE) || (!clicky_enable && keycode == CLICKY_TOGGLE) ) { + if (record->event.pressed) { + stop_all_notes(); + clicky_play();; + } + } +#endif // AUDIO_CLICKY + return true; } @@ -65,4 +132,4 @@ void process_audio_all_notes_off(void) { } __attribute__ ((weak)) -void audio_on_user() {} \ No newline at end of file +void audio_on_user() {} diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h index d545440c99d0..d6030284a915 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h @@ -140,6 +140,12 @@ enum quantum_keycodes { AU_OFF, AU_TOG, + // Faux clicky as part of main audio feature + CLICKY_TOGGLE, + CLICKY_UP, + CLICKY_DOWN, + CLICKY_RESET, + #ifdef FAUXCLICKY_ENABLE // Faux clicky FC_ON, @@ -561,6 +567,11 @@ enum quantum_keycodes { #define KC_GESC GRAVE_ESC +#define CK_TOGG CLICKY_TOGGLE +#define CK_RST CLICKY_RESET +#define CK_UP CLICKY_UP +#define CK_DOWN CLICKY_DOWN + #define RGB_MOD RGB_MODE_FORWARD #define RGB_SMOD RGB_MODE_FORWARD #define RGB_RMOD RGB_MODE_REVERSE diff --git a/users/drashna/config.h b/users/drashna/config.h index 68394ee4dbba..f9b0d4d17a2a 100644 --- a/users/drashna/config.h +++ b/users/drashna/config.h @@ -3,6 +3,7 @@ #ifdef AUDIO_ENABLE +#define AUDIO_CLICKY #define STARTUP_SONG SONG(E1M1_DOOM) #define GOODBYE_SONG SONG(SONIC_RING) #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c index 170c320d3648..73bd249e4ce9 100644 --- a/users/drashna/drashna.c +++ b/users/drashna/drashna.c @@ -224,19 +224,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { xprintf("KL: row: %u, column: %u, pressed: %u\n", record->event.key.col, record->event.key.row, record->event.pressed); #endif //CONSOLE_ENABLE - // Run custom faux click code, but only if faux clicky is enabled -#ifdef AUDIO_ENABLE - if ( (faux_click_enabled && keycode != KC_FXCL) || (!faux_click_enabled && keycode == KC_FXCL) ) { - if (record->event.pressed) { - stop_all_notes(); - PLAY_SONG(fauxclicky_pressed); - } else { - stop_all_notes(); - PLAY_SONG(fauxclicky_released); - } - } -#endif //AUDIO_ENABLE - switch (keycode) { case KC_QWERTY: @@ -398,11 +385,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #endif // TAP_DANCE_ENABLE - case KC_FXCL: - if (!record->event.pressed) { // Toggles the custom faux click code - faux_click_enabled = !faux_click_enabled; - } - return false; break; case KC_RGB_T: // This allows me to use underglow as layer indication, or as normal #ifdef RGBLIGHT_ENABLE if (record->event.pressed) { diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h index 1086fa02ed0e..b7cbaa44afb0 100644 --- a/users/drashna/drashna.h +++ b/users/drashna/drashna.h @@ -83,7 +83,6 @@ enum userspace_custom_keycodes { KC_SECRET_3, KC_SECRET_4, KC_SECRET_5, - KC_FXCL, NEW_SAFE_RANGE //use "NEWPLACEHOLDER for keymap specific codes }; From 7dda7158fb6fd337debfe735f27dd7a1a65450d2 Mon Sep 17 00:00:00 2001 From: blindassassin111 <38090555+blindassassin111@users.noreply.github.com> Date: Thu, 19 Apr 2018 00:52:17 -0500 Subject: [PATCH 232/578] added omnikey_blackheart keyboard support (#2688) * added omnikey_blackheart keyboard support * fixing omnikey_blackheart layout * fixing omnikey_blackheart NKRO --- keyboards/omnikey_blackheart/config.h | 60 +++++++++++++++++++ .../keymaps/default/keymap.c | 48 +++++++++++++++ .../omnikey_blackheart/omnikey_blackheart.c | 1 + .../omnikey_blackheart/omnikey_blackheart.h | 22 +++++++ keyboards/omnikey_blackheart/readme.md | 14 +++++ keyboards/omnikey_blackheart/rules.mk | 56 +++++++++++++++++ 6 files changed, 201 insertions(+) create mode 100644 keyboards/omnikey_blackheart/config.h create mode 100644 keyboards/omnikey_blackheart/keymaps/default/keymap.c create mode 100644 keyboards/omnikey_blackheart/omnikey_blackheart.c create mode 100644 keyboards/omnikey_blackheart/omnikey_blackheart.h create mode 100644 keyboards/omnikey_blackheart/readme.md create mode 100644 keyboards/omnikey_blackheart/rules.mk diff --git a/keyboards/omnikey_blackheart/config.h b/keyboards/omnikey_blackheart/config.h new file mode 100644 index 000000000000..14b4a5f172ac --- /dev/null +++ b/keyboards/omnikey_blackheart/config.h @@ -0,0 +1,60 @@ +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER blindassassin111 +#define PRODUCT Omnikey Blackheart PCB +#define DESCRIPTION Teensy++ Board for Omnikey keyboards + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 23 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B7, D0, D1, D2, D3, D4 } +#define MATRIX_COL_PINS { C2, C3, C4, C7, C1, C0, E1, E0, D7, F7, F6, F5, F4, F3, F2, F1, F0, E6, E7, B0, B1, B2, B3 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* number of backlight levels */ +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 0 +#endif + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* force n-key rollover*/ +#define FORCE_NKRO + +/* prevent stuck modifiers */ +#define PREVENT_STUCK_MODIFIERS + + +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 0 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif + +#endif \ No newline at end of file diff --git a/keyboards/omnikey_blackheart/keymaps/default/keymap.c b/keyboards/omnikey_blackheart/keymaps/default/keymap.c new file mode 100644 index 000000000000..9dff862e87ef --- /dev/null +++ b/keyboards/omnikey_blackheart/keymaps/default/keymap.c @@ -0,0 +1,48 @@ +#include "omnikey_blackheart.h" + +// Fillers to make layering more clear +#define ______ KC_TRNS +#define XXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = KEYMAP(\ + KC_F11 , KC_F12 , KC_ESC , 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_PSCR , KC_SLCK , KC_PAUS , + KC_F1 , KC_F2 , KC_GRV , 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_BSPC , KC_INS , KC_HOME , KC_PGUP , KC_NLCK , KC_PSLS, KC_PAST, KC_PMNS, + KC_F3 , KC_F4 , 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_BSLS , KC_DEL , KC_END , KC_PGDN , KC_P7 , KC_P8 , KC_P9 , KC_PPLS, + KC_F5 , KC_F6 , KC_CAPS , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT , KC_ENT , XXXXXX , XXXXXX , XXXXXX , KC_P4 , KC_P5 , KC_P6 , KC_EQL, + KC_F7 , KC_F8 , KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_RSFT , MO(1) , XXXXXX , KC_UP , XXXXXX , KC_P1 , KC_P2 , KC_P3 , KC_PENT, + KC_F9 , KC_F10 , KC_LCTL , KC_LGUI , KC_LALT , XXXXXX , KC_SPC , KC_RALT , KC_RGUI , KC_RCTL , XXXXXX , KC_LEFT , KC_DOWN , KC_RIGHT, KC_P0 , KC_PDOT + ), + + [1] = KEYMAP(\ + KC_F11 , KC_F12 , KC_ESC , 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_PSCR , KC_SLCK , KC_PAUS , + KC_F1 , KC_F2 , RESET , 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_BSPC , KC_INS , KC_HOME , KC_PGUP , KC_NLCK , KC_PSLS, KC_PAST, KC_PMNS, + KC_F3 , KC_F4 , 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_BSLS , KC_DEL , KC_END , KC_PGDN , KC_P7 , KC_P8 , KC_P9 , KC_PPLS, + KC_F5 , KC_F6 , KC_CAPS , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT , KC_ENT , XXXXXX , XXXXXX , XXXXXX , KC_P4 , KC_P5 , KC_P6 , KC_EQL, + KC_F7 , KC_F8 , KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_RSFT , ______ , XXXXXX , KC_UP , XXXXXX , KC_P1 , KC_P2 , KC_P3 , KC_PENT, + KC_F9 , KC_F10 , KC_LCTL , KC_LGUI , KC_LALT , XXXXXX , KC_SPC , KC_RALT , KC_RGUI , KC_RCTL , XXXXXX , KC_LEFT , KC_DOWN , KC_RIGHT, KC_P0 , KC_PDOT + ), +}; + +void led_set_kb(uint8_t usb_led) { + DDRB |= (1 << 4) | (1 << 5) | (1 << 6); + + if (usb_led & (1 << USB_LED_NUM_LOCK)) { + PORTB |= (1 << 4); + } else { + PORTB &= ~(1 << 4); + } + + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + PORTB |= (1 << 5); + } else { + PORTB &= ~(1 << 5); + } + + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + PORTB |= (1 << 6); + } else { + PORTB &= ~(1 << 6); + } +} \ No newline at end of file diff --git a/keyboards/omnikey_blackheart/omnikey_blackheart.c b/keyboards/omnikey_blackheart/omnikey_blackheart.c new file mode 100644 index 000000000000..e54047fa68a9 --- /dev/null +++ b/keyboards/omnikey_blackheart/omnikey_blackheart.c @@ -0,0 +1 @@ +#include "omnikey_blackheart.h" diff --git a/keyboards/omnikey_blackheart/omnikey_blackheart.h b/keyboards/omnikey_blackheart/omnikey_blackheart.h new file mode 100644 index 000000000000..e0baa7f63a8e --- /dev/null +++ b/keyboards/omnikey_blackheart/omnikey_blackheart.h @@ -0,0 +1,22 @@ +#ifndef omnikey_blackheart +#define omnikey_blackheart + +#include "quantum.h" + +#define KEYMAP( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, K117, K118, K119, K120, K121, K122, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217, K218, K219, K220, K221, K222, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K316, K317, K318, K319, K320, K321, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415, K416, K417, K418, K419, K420, K421, \ + K500, K501, K502, K503, K504, K505, K507, K512, K513, K514, K515, K516, K517, K518, K519, K520 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, K117, K118, K119, K120, K121, K122 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217, K218, K219, K220, K221, K222 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K316, K317, K318, K319, K320, K321, KC_NO }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415, K416, K417, K418, K419, K420, K421, KC_NO }, \ + { K500, K501, K502, K503, K504, K505, KC_NO, K507, KC_NO, KC_NO, KC_NO, KC_NO, K512, K513, K514, K515, K516, K517, K518, K519, K520, KC_NO, KC_NO } \ +} + +#endif \ No newline at end of file diff --git a/keyboards/omnikey_blackheart/readme.md b/keyboards/omnikey_blackheart/readme.md new file mode 100644 index 000000000000..b318f3e37108 --- /dev/null +++ b/keyboards/omnikey_blackheart/readme.md @@ -0,0 +1,14 @@ +Omnikey Blackheart PCB +=== + +A replacement PCB for Omnikey keyboards. Supports 101, 102, Plus, Ultra T, Ultra, Prime and Stellar, as well as customs. + +Keyboard Maintainer: QMK Community and blindassassin111 +Hardware Supported: Omnikey blackheart PCB +Hardware Availability: https://deskthority.net/group-buys-f50/omnikey-replacement-pcb-t18276.html + +Make example for this keyboard (after setting up your build environment): + + make omnikey_blackheart:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/omnikey_blackheart/rules.mk b/keyboards/omnikey_blackheart/rules.mk new file mode 100644 index 000000000000..3d4422e9867d --- /dev/null +++ b/keyboards/omnikey_blackheart/rules.mk @@ -0,0 +1,56 @@ +# MCU name +MCU = at90usb1286 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= no # Commands for debug and configuration +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality +AUDIO_ENABLE ?= no +RGBLIGHT_ENABLE ?= no \ No newline at end of file From 5226e4c79b3da327735f59344df7e402f254532d Mon Sep 17 00:00:00 2001 From: Joe Wasson Date: Fri, 13 Apr 2018 14:34:47 -0700 Subject: [PATCH 233/578] Correct documentation for `PREVENT_STUCK_MODIFIERS` --- docs/config_options.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/config_options.md b/docs/config_options.md index d45592f82fbd..acc402665b75 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -116,7 +116,7 @@ If you define these options you will enable the associated feature, which may in * `#define FORCE_NKRO` * NKRO by default requires to be turned on, this forces it on during keyboard startup regardless of EEPROM setting. NKRO can still be turned off but will be turned on again if the keyboard reboots. * `#define PREVENT_STUCK_MODIFIERS` - * when switching layers, this will release all mods + * stores the layer a key press came from so the same layer is used when the key is released, regardless of which layers are enabled ## Behaviors That Can Be Configured From 8ec22695199e9f3ae52e83d945763ba892f5bcd9 Mon Sep 17 00:00:00 2001 From: Harry Mills Date: Thu, 19 Apr 2018 10:18:58 -0400 Subject: [PATCH 234/578] Add magic backspace to my layout (#2758) * Add Haegin's keymap * Potential improvements to the keyboard * Add haegin minidox layout * Add Haegin's keyboard to ergodox layouts * Update Haegin's minidox keymap * Add home, end, and page up and down * Magic Backspace Backspace still acts as control when you hold it down, but if you tap it twice and hold it's a held backspace. Tapping it more than twice it continues to act as backspace, but it deletes more characters with each tap with the quantity deleted based on the fibonacci sequence. * Switch to deleting words after 4 taps When hitting backspace, after 4 taps this switches to deleting by word because if you're hitting backspace that frantically you must need to delete a lot of stuff. Holding backspace after 4 taps will delete words in the same way that holding alt+backspace deletes words on a normal keyboard. --- layouts/community/ergodox/haegin/keymap.c | 90 +++++++++++++++++++++-- layouts/community/ergodox/haegin/rules.mk | 1 + 2 files changed, 85 insertions(+), 6 deletions(-) create mode 100644 layouts/community/ergodox/haegin/rules.mk diff --git a/layouts/community/ergodox/haegin/keymap.c b/layouts/community/ergodox/haegin/keymap.c index 56aee727d8d5..aa017c8ea53b 100644 --- a/layouts/community/ergodox/haegin/keymap.c +++ b/layouts/community/ergodox/haegin/keymap.c @@ -11,6 +11,10 @@ #define _______ KC_TRNS +enum { + TD_BSPC = 0 +}; + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer @@ -46,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LT(SYMBOLS,KC_GRV), KC_QUOT, KC_SLSH, KC_LALT, SFT_T(KC_RGHT), KC_HOME, KC_END, KC_PGUP, - GUI_T(KC_SPC), CTL_T(KC_BSPC), LGUI(KC_SPC), + GUI_T(KC_SPC), TD(TD_BSPC), LGUI(KC_SPC), // Right hand KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, LGUI(KC_SPC), @@ -136,17 +140,91 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, // right hand - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_UP, _______, _______, _______, - KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_MPLY, - _______, KC_VOLD, KC_MPRV, KC_MPLY, KC_MFFD, _______, _______, - KC_MUTE, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, + KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_MPLY, + KC_MUTE, KC_VOLD, KC_MPRV, KC_MPLY, KC_MFFD, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WBAK ), }; +enum { + BSPC_LETTER = 0, + BSPC_WORD = 1, + HOLD_CTRL = 2 +}; + +typedef struct { + int a; + int b; + int state; +} fib_tap; + +static fib_tap fib_bspc = { + .a = 0, + .b = 1, + .state = BSPC_LETTER +}; + +void cur_backspace (qk_tap_dance_state_t *state) { + int next_fib = fib_bspc.a + fib_bspc.b; + fib_bspc.a = fib_bspc.b; + fib_bspc.b = next_fib; + for (int i=0; i < next_fib; i++) { + unregister_code(KC_BSPC); + register_code(KC_BSPC); + } +} + +void dance_backspace (qk_tap_dance_state_t *state, void *user_data) { + // If we're at the fifth tap, switch to deleting by words, and reset the fib + // counter + if (state->count == 4) { + register_code(KC_LALT); + fib_bspc.state = BSPC_WORD; + fib_bspc.a = 0; + fib_bspc.b = 1; + } + // If we're on the first press, wait to find out if it's being held + // If we're on the second tap, process the first tap, because we're past + // holding for ctrl now, then act normally + if (state->count == 2) { + register_code(KC_BSPC); + } + if (state->count > 1) { + cur_backspace(state); + } +}; + +void dance_backspace_ended (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + if (state->pressed) { + fib_bspc.state = HOLD_CTRL; + register_code(KC_LCTRL); + } else { + register_code(KC_BSPC); + } + } +}; + +void dance_backspace_reset (qk_tap_dance_state_t *state, void *user_data) { + switch (fib_bspc.state) { + case HOLD_CTRL: unregister_code(KC_LCTRL); break; + case BSPC_WORD: unregister_code(KC_BSPC); unregister_code(KC_LALT); break; + case BSPC_LETTER: unregister_code(KC_BSPC); break; + } + fib_bspc.a = 0; + fib_bspc.b = 1; + fib_bspc.state = BSPC_LETTER; +}; + +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_BSPC] = ACTION_TAP_DANCE_FN_ADVANCED (dance_backspace, dance_backspace_ended, dance_backspace_reset) +}; + const uint16_t PROGMEM fn_actions[] = { [1] = ACTION_LAYER_TAP_TOGGLE(SYMBOLS) // FN1 - Momentary Layer 1 (Symbols) }; diff --git a/layouts/community/ergodox/haegin/rules.mk b/layouts/community/ergodox/haegin/rules.mk new file mode 100644 index 000000000000..31e0fcf29339 --- /dev/null +++ b/layouts/community/ergodox/haegin/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE=yes From 75360ebdae60023d8ea515ccf187fcd46eb4ebc1 Mon Sep 17 00:00:00 2001 From: Christian Richter Date: Thu, 19 Apr 2018 16:20:03 +0200 Subject: [PATCH 235/578] Add gh60 chaser Layout (#2757) --- keyboards/gh60/keymaps/chaser/README.md | 96 +++++++ keyboards/gh60/keymaps/chaser/keymap.c | 331 ++++++++++++++++++++++++ 2 files changed, 427 insertions(+) create mode 100644 keyboards/gh60/keymaps/chaser/README.md create mode 100644 keyboards/gh60/keymaps/chaser/keymap.c diff --git a/keyboards/gh60/keymaps/chaser/README.md b/keyboards/gh60/keymaps/chaser/README.md new file mode 100644 index 000000000000..e6ec9e82bed8 --- /dev/null +++ b/keyboards/gh60/keymaps/chaser/README.md @@ -0,0 +1,96 @@ +# [dragonchasers](https://github.com/dragonchaser) GH60 layout + +Layout derived from the default GH60 keymap. + +![Photo of the keyboard](https://pbs.twimg.com/media/DQzlD0yX0AA8spX.jpg) + +## Layers + +### Base Layer +``` +,-----------------------------------------------------------. +|Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | +|-----------------------------------------------------------| +|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | +|-----------------------------------------------------------| +|FN | A| S| D| F| G| H| J| K| L| ;| '|Return | +|-----------------------------------------------------------| +|Shift | Z| X| C| V| B| N| M| ,| .| /| Up |FN | +|-----------------------------------------------------------| +|Ctrl|Gui |Alt | Space |Alt |Left |Down|Right| +`-----------------------------------------------------------' + +Note: right FN triggers function layer, + left FN(CAPS) is a one-shot button for the macro layer +``` + +### Function Layer +``` +,-----------------------------------------------------------. +|GRV|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| DEL | +|-----------------------------------------------------------| +| MB3|MB2|MUP|MB1|MWU| | | |INS| |RST| | |Print| +|-----------------------------------------------------------| +| | ML|MDN|MR |MWD| | | | | | | | +|-----------------------------------------------------------| +|CAPS | | | | | | | | | | |PGUP| | +|-----------------------------------------------------------| +| | | | |Ctrl|HOME|PGD |END | +`-----------------------------------------------------------' +``` + +### Macro Layer +``` +,-----------------------------------------------------------. +|DEF| |DUE| | | | | | | | | |GAM| ARR| +|-----------------------------------------------------------| +| |MAG|CLO|DUT|RBS|TIG| | | |COU|PSH| | | | +|-----------------------------------------------------------| +| |ADD|STS|DFF|FTC|PLL| | |LOG| | | | +|-----------------------------------------------------------| +| | | |COM| |BRN| | | | |MUT|VOL+|PLPA| +|-----------------------------------------------------------| +| | | | |APP |PREV|VOL-|NEXT| +`-----------------------------------------------------------' + +Abbreviations: +-------------- +DEF - return to default layer +DUE - enable git duet mode +GAM - backlight WASD +ARR - backlight arrows +- +MAG - git submodule sync --recursive \ + && git submodule update --init --recursive \ + && git submodule foreach --recursive "git co . \ + && git reset --hard && git clean -dffx" +CLO - git clone +DUT - git duet (when in duet mode) +RBS - git rebase +TIG - tig +COU - git checkout +PSH - git push +- +ADD - git add +STS - git status +DFF - git diff +FTC - git fetch +PLL - git pull +LOG - git log +- +COM - git commit (or git duet commit if in duet mode) +BRN - git branch +MUT - audio mute +VOL+ - increase volume +PLPA - play/pause +- +APP - application (windows menu key) +PREV - previous song +VOL- - decrease volume +NEXT - next song + +Note: git commands are SEND_STRING macros sent to the + currently focused window Make sure it is your terminal :) + ``` + +**NOTE:** an outdated version of this keymap is also present for the Satan keyboard, which is no longer maintained since I could not get my hands on a properly working PCB. diff --git a/keyboards/gh60/keymaps/chaser/keymap.c b/keyboards/gh60/keymaps/chaser/keymap.c new file mode 100644 index 000000000000..cc32859161d6 --- /dev/null +++ b/keyboards/gh60/keymaps/chaser/keymap.c @@ -0,0 +1,331 @@ +#include QMK_KEYBOARD_H +#include "action_layer.h" +#include "eeconfig.h" +#include + + +extern keymap_config_t keymap_config; + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _FL 1 +#define _MC 2 + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +bool git_duet = false; +bool backlight_arrows = false; +bool backlight_gaming = false; +enum custom_keycodes { + /* GIT related keycodes */ + G_ADD = SAFE_RANGE, G_BRN, G_COM, G_COU, G_CLO, + G_DFF, G_DUE, G_DUT, G_FTC, G_LOG, G_MAG, G_MRG, + G_MRT, G_PSH, G_PLL, G_RBS, G_STH, G_STS, G_TIG, + + /* Multi-media related keycodes */ + A_MUTE, A_NEXT, A_PLPA, A_PREV, A_VOUP, A_VDWN, + + /* System related shortcuts */ + F_BTN, M_WAPP, K_ARR, K_WASD, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* + * ,-----------------------------------------------------------. + * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | + * |-----------------------------------------------------------| + * |FN | A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /| Up |FN | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |Left |Down|Right| + * `-----------------------------------------------------------' + * + * Note: right FN triggers function layer, + * left FN is a one-shot button for the macro layer + */ +[_QW] = { /* Layer 0: Qwerty */ + {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_BSPC}, + {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_BSLS}, + {OSL(_MC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, XXXXXXX, KC_ENT }, + {KC_LSFT , XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, F_BTN, KC_UP}, + {KC_LCTL , KC_LGUI, KC_LALT, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT} +},\ + +/* + * ,-----------------------------------------------------------. + * |GRV|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| DEL | + * |-----------------------------------------------------------| + * | MB3|MB2|MUP|MB1|MWU| | | |INS| |RST| | |Print| + * |-----------------------------------------------------------| + * | | ML|MDN|MR |MWD| | | | | | | | + * |-----------------------------------------------------------| + * |CAPS | | | | | | | | | | |PGUP| | + * |-----------------------------------------------------------| + * | | | | |Ctrl|HOME|PGD |END | + * `-----------------------------------------------------------' + */ +[_FL] = { /* Layer 1: Functions */ + {KC_GRV , 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_DEL }, + {KC_MS_BTN3 , KC_MS_BTN2 ,KC_MS_UP ,KC_MS_BTN1 , KC_MS_WH_UP , _______, _______, _______, KC_INS , _______, RESET , _______, _______ , KC_PSCREEN}, + {KC_CAPS , KC_MS_LEFT ,KC_MS_DOWN ,KC_MS_RIGHT, KC_MS_WH_DOWN, _______, _______, _______, _______, _______, _______ , XXXXXXX, KC_TILDE}, + {_______ , XXXXXXX , _______ , _______ , _______ , _______, _______, _______, _______, _______, _______ , _______, _______ , KC_PGUP}, + {_______ , _______ , _______ , XXXXXXX , XXXXXXX , _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RCTRL, KC_HOME, KC_PGDOWN, KC_END} +}, + +/* + * ,-----------------------------------------------------------. + * |DEF| |DUE| | | | | | | | | |GAM| ARR| + * |-----------------------------------------------------------| + * | |MAG|CLO|DUT|RBS|TIG|MRT| | |COU|PSH| | | | + * |-----------------------------------------------------------| + * | |ADD|STS|DFF|FTC|PLL|MRG| |STH|LOG| | | F_OFF| + * |-----------------------------------------------------------| + * | | | |COM| |BRN| | | | |MUT|VOL+|PLPA| + * |-----------------------------------------------------------| + * | | | | |APP |PREV|VOL-|NEXT| + * `-----------------------------------------------------------' + * + * Abbreviations: + * -------------- + * DEF - return to default layer + * DUE - enable git duet mode + * CLO - git clone + * DUT - git duet (when in duet mode) + * RBS - git rebase + * MAG - git submodule sync --recursive && git submodule update --init --recursive && git submodule foreach --recursive "git co . && git reset --hard && git clean -dffx" + * TIG - tig + * MRG - git merge + * MRT - git mergetool + * COU - git checkout + * PSH - git push + * ADD - git add + * STS - git status + * DFF - git diff + * FTC - git fetch + * PLL - git pull + * STH - git stash + * LOG - git log + * COM - git commit (or git duet commit if in duet mode) + * BRN - git branch + * APP - application (windows menu key) + * MUT - audio mute + * VOL+ - increase volume + * VOL- - decrease volume + * PLPA - play/pause + * PREV - previous song + * NEXT - next song + * ARR - backlight arrow keys + * GAM - backlight WASD + * + * Note: git commands are SEND_STRING macros sent to the + * currently focused window Make sure it is your terminal :) + */ +[_MC] = { /* Layer 2: Macros (Git & Multimedia) */ + {TO(_QW), XXXXXXX,G_DUE , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX , XXXXXXX, K_WASD , K_ARR }, + {XXXXXXX, G_MAG ,G_CLO , G_DUT , G_RBS , G_TIG , G_MRT , XXXXXXX, XXXXXXX, G_COU , G_PSH , XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, G_ADD ,G_STS , G_DFF , G_FTC , G_PLL , G_MRG , XXXXXXX, G_STH , G_LOG , XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, G_COM , XXXXXXX, G_BRN , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX , A_MUTE, A_PLPA, A_VOUP}, + {XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_WAPP , A_PREV, A_VDWN, A_NEXT} +}, + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch(keycode) { + /* + * Begin git layer + */ + case G_ADD: + SEND_STRING("git add "); + layer_off(_MC); + return false;break; + case G_BRN: + SEND_STRING("git branch\n"); + layer_off(_MC); + return false;break; + case G_CLO: + SEND_STRING("git clone "); + layer_off(_MC); + return false;break; + case G_COM: + if(git_duet) { + SEND_STRING("git duet-commit "); + } else { + SEND_STRING("git commit "); + } + layer_off(_MC); + return false;break; + case G_COU: + SEND_STRING("git checkout "); + layer_off(_MC); + return false;break; + case G_DFF: + SEND_STRING("git diff\n"); + layer_off(_MC); + return false;break; + case G_DUE: + git_duet = !git_duet; + if(git_duet) { + gh60_esc_led_on(); + } else { + gh60_esc_led_off(); + } + layer_off(_MC); + return false;break; + case G_DUT: + if(git_duet) { + SEND_STRING("git duet "); + } + layer_off(_MC); + return false; break; + case G_FTC: + SEND_STRING("git fetch "); + layer_off(_MC); + return false;break; + case G_LOG: + SEND_STRING("git log --graph\n"); + layer_off(_MC); + return false;break; + case G_MAG: + // This is some git-magic to resync recursive submodule structures inside git projects (thx to https://github.com/jimmykarily) + SEND_STRING("git submodule sync --recursive && git submodule update --init --recursive && git submodule foreach --recursive \" git co . && git reset --hard && git clean -dffx \" \n"); + layer_off(_MC); + return false; break; + case G_MRG: + SEND_STRING("git merge "); + layer_off(_MC); + return false;break; + case G_MRT: + SEND_STRING("git mergetool "); + layer_off(_MC); + return false;break; + case G_PLL: + SEND_STRING("git pull "); + layer_off(_MC); + return false;break; + case G_PSH: + SEND_STRING("git push "); + layer_off(_MC); + return false;break; + case G_RBS: + SEND_STRING("git rebase "); + layer_off(_MC); + return false;break; + case G_STH: + SEND_STRING("git stash "); + layer_off(_MC); + return false;break; + case G_STS: + SEND_STRING("git status\n"); + layer_off(_MC); + return false;break; + case G_TIG: + SEND_STRING("tig\n"); + layer_off(_MC); + return false;break; + /* + * End git layer + */ + + /* + * Begin multimedia keys + */ + case A_MUTE: + register_code(KC_AUDIO_MUTE); + unregister_code(KC_AUDIO_MUTE); + layer_off(_MC); + return false;break; + case A_PLPA: + register_code(KC_MEDIA_PLAY_PAUSE); + unregister_code(KC_MEDIA_PLAY_PAUSE); + layer_off(_MC); + return false;break; + case A_VOUP: + register_code(KC_AUDIO_VOL_UP); + return false;break; + case A_VDWN: + register_code(KC_AUDIO_VOL_DOWN); + return false;break; + case A_PREV: + register_code(KC_MEDIA_PREV_TRACK); + unregister_code(KC_MEDIA_PREV_TRACK); + layer_off(_MC); + return false;break; + case A_NEXT: + register_code(KC_MEDIA_NEXT_TRACK); + unregister_code(KC_MEDIA_NEXT_TRACK); + layer_off(_MC); + return false;break; + /* + * End multimedia keys + */ + + // Tap dance to get the app button mapped + case M_WAPP: + register_code(KC_APP); + unregister_code(KC_APP); + layer_off(_MC); + return false;break; + + /* + * Begin multimedia keys + */ + case K_ARR: + backlight_arrows = !backlight_arrows; + if(backlight_arrows) { + gh60_poker_leds_on(); + } else { + gh60_poker_leds_off(); + } + layer_off(_MC); + return false;break; + case K_WASD: + backlight_gaming = !backlight_gaming; + if(backlight_gaming) { + gh60_wasd_leds_on(); + } else { + gh60_wasd_leds_off(); + } + layer_off(_MC); + return false; break; + case F_BTN: + gh60_fn_led_on(); + layer_on(_FL); + return false;break; + } + /* + * End multimedia keys + */ + + } else { + switch(keycode) { + /* + * Oneshots that will switch back to the default layer on KEY_UP + */ + case A_VOUP: + unregister_code(KC_AUDIO_VOL_UP); + layer_off(_MC); + return false;break; + case A_VDWN: + unregister_code(KC_AUDIO_VOL_DOWN); + layer_off(_MC); + return false;break; + case F_BTN: + layer_off(_FL); + gh60_fn_led_off(); + return false;break; + } + } + return true; +}; From eaa0b24335db0df875d967f63dfa97a7a9b325d8 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Thu, 19 Apr 2018 08:31:50 -0700 Subject: [PATCH 236/578] ScrabblePad Support (#2760) * Initial commit for donutcat's 15x15 monstrosity * modify readmes to be more descriptive * Add info.json to support QMK Configurator * Update copyright and change REPLACE_WITH_YOUR_NAME to MechMerlin * update naming convention for ScrabblePad * remove .vscode directory as per Jack's comments --- keyboards/scrabblepad/config.h | 190 ++++++++++++++++++ keyboards/scrabblepad/info.json | 12 ++ .../scrabblepad/keymaps/default/config.h | 24 +++ .../scrabblepad/keymaps/default/keymap.c | 72 +++++++ .../scrabblepad/keymaps/default/readme.md | 6 + keyboards/scrabblepad/readme.md | 17 ++ keyboards/scrabblepad/rules.mk | 67 ++++++ keyboards/scrabblepad/scrabblepad.c | 43 ++++ keyboards/scrabblepad/scrabblepad.h | 57 ++++++ 9 files changed, 488 insertions(+) create mode 100644 keyboards/scrabblepad/config.h create mode 100644 keyboards/scrabblepad/info.json create mode 100644 keyboards/scrabblepad/keymaps/default/config.h create mode 100644 keyboards/scrabblepad/keymaps/default/keymap.c create mode 100644 keyboards/scrabblepad/keymaps/default/readme.md create mode 100644 keyboards/scrabblepad/readme.md create mode 100644 keyboards/scrabblepad/rules.mk create mode 100644 keyboards/scrabblepad/scrabblepad.c create mode 100644 keyboards/scrabblepad/scrabblepad.h diff --git a/keyboards/scrabblepad/config.h b/keyboards/scrabblepad/config.h new file mode 100644 index 000000000000..01f847dd47e7 --- /dev/null +++ b/keyboards/scrabblepad/config.h @@ -0,0 +1,190 @@ +/* +Copyright 2018 MechMerlin + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Donut Cables +#define PRODUCT ScrabblePad +#define DESCRIPTION 15x15 Ortholinear Board + +/* key matrix size */ +#define MATRIX_ROWS 15 +#define MATRIX_COLS 15 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { D3, F1, C7, F2, C6, F3, C5, F4, C4, F5, C3, F6, C2, F7, C1 } +#define MATRIX_COL_PINS { D4, D5, D7, B7, D0, D1, D2, C0, F0, B4, B5, B6, E1, E7, E0 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +//#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 1 + +#endif diff --git a/keyboards/scrabblepad/info.json b/keyboards/scrabblepad/info.json new file mode 100644 index 000000000000..1368abd4b2b7 --- /dev/null +++ b/keyboards/scrabblepad/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "scrabblepad", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 15, + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":7, "y":4}, {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":0, "y":5}, {"x":1, "y":5}, {"x":2, "y":5}, {"x":3, "y":5}, {"x":4, "y":5}, {"x":5, "y":5}, {"x":6, "y":5}, {"x":7, "y":5}, {"x":8, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, {"x":11, "y":5}, {"x":12, "y":5}, {"x":13, "y":5}, {"x":14, "y":5}, {"x":0, "y":6}, {"x":1, "y":6}, {"x":2, "y":6}, {"x":3, "y":6}, {"x":4, "y":6}, {"x":5, "y":6}, {"x":6, "y":6}, {"x":7, "y":6}, {"x":8, "y":6}, {"x":9, "y":6}, {"x":10, "y":6}, {"x":11, "y":6}, {"x":12, "y":6}, {"x":13, "y":6}, {"x":14, "y":6}, {"x":0, "y":7}, {"x":1, "y":7}, {"x":2, "y":7}, {"x":3, "y":7}, {"x":4, "y":7}, {"x":5, "y":7}, {"x":6, "y":7}, {"x":7, "y":7}, {"x":8, "y":7}, {"x":9, "y":7}, {"x":10, "y":7}, {"x":11, "y":7}, {"x":12, "y":7}, {"x":13, "y":7}, {"x":14, "y":7}, {"x":0, "y":8}, {"x":1, "y":8}, {"x":2, "y":8}, {"x":3, "y":8}, {"x":4, "y":8}, {"x":5, "y":8}, {"x":6, "y":8}, {"x":7, "y":8}, {"x":8, "y":8}, {"x":9, "y":8}, {"x":10, "y":8}, {"x":11, "y":8}, {"x":12, "y":8}, {"x":13, "y":8}, {"x":14, "y":8}, {"x":0, "y":9}, {"x":1, "y":9}, {"x":2, "y":9}, {"x":3, "y":9}, {"x":4, "y":9}, {"x":5, "y":9}, {"x":6, "y":9}, {"x":7, "y":9}, {"x":8, "y":9}, {"x":9, "y":9}, {"x":10, "y":9}, {"x":11, "y":9}, {"x":12, "y":9}, {"x":13, "y":9}, {"x":14, "y":9}, {"x":0, "y":10}, {"x":1, "y":10}, {"x":2, "y":10}, {"x":3, "y":10}, {"x":4, "y":10}, {"x":5, "y":10}, {"x":6, "y":10}, {"x":7, "y":10}, {"x":8, "y":10}, {"x":9, "y":10}, {"x":10, "y":10}, {"x":11, "y":10}, {"x":12, "y":10}, {"x":13, "y":10}, {"x":14, "y":10}, {"x":0, "y":11}, {"x":1, "y":11}, {"x":2, "y":11}, {"x":3, "y":11}, {"x":4, "y":11}, {"x":5, "y":11}, {"x":6, "y":11}, {"x":7, "y":11}, {"x":8, "y":11}, {"x":9, "y":11}, {"x":10, "y":11}, {"x":11, "y":11}, {"x":12, "y":11}, {"x":13, "y":11}, {"x":14, "y":11}, {"x":0, "y":12}, {"x":1, "y":12}, {"x":2, "y":12}, {"x":3, "y":12}, {"x":4, "y":12}, {"x":5, "y":12}, {"x":6, "y":12}, {"x":7, "y":12}, {"x":8, "y":12}, {"x":9, "y":12}, {"x":10, "y":12}, {"x":11, "y":12}, {"x":12, "y":12}, {"x":13, "y":12}, {"x":14, "y":12}, {"x":0, "y":13}, {"x":1, "y":13}, {"x":2, "y":13}, {"x":3, "y":13}, {"x":4, "y":13}, {"x":5, "y":13}, {"x":6, "y":13}, {"x":7, "y":13}, {"x":8, "y":13}, {"x":9, "y":13}, {"x":10, "y":13}, {"x":11, "y":13}, {"x":12, "y":13}, {"x":13, "y":13}, {"x":14, "y":13}, {"x":0, "y":14}, {"x":1, "y":14}, {"x":2, "y":14}, {"x":3, "y":14}, {"x":4, "y":14}, {"x":5, "y":14}, {"x":6, "y":14}, {"x":7, "y":14}, {"x":8, "y":14}, {"x":9, "y":14}, {"x":10, "y":14}, {"x":11, "y":14}, {"x":12, "y":14}, {"x":13, "y":14}, {"x":14, "y":14}] + } + } +} diff --git a/keyboards/scrabblepad/keymaps/default/config.h b/keyboards/scrabblepad/keymaps/default/config.h new file mode 100644 index 000000000000..2c852d181991 --- /dev/null +++ b/keyboards/scrabblepad/keymaps/default/config.h @@ -0,0 +1,24 @@ +/* Copyright 2018 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +// place overrides here + +#endif diff --git a/keyboards/scrabblepad/keymaps/default/keymap.c b/keyboards/scrabblepad/keymaps/default/keymap.c new file mode 100644 index 000000000000..bfbab6e885c7 --- /dev/null +++ b/keyboards/scrabblepad/keymaps/default/keymap.c @@ -0,0 +1,72 @@ +/* Copyright 2018 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "scrabblepad.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT( /* Base */ + KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ + KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ + KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ + KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ + KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ + KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ + KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ + KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ + KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ + KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ + KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ + KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ + KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ + KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC, \ + KC_D, KC_O, KC_N, KC_U, KC_T, KC_C, KC_A, KC_T, KC_SPC, KC_R, KC_U, KC_L, KC_E, KC_S, KC_SPC \ +), +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/scrabblepad/keymaps/default/readme.md b/keyboards/scrabblepad/keymaps/default/readme.md new file mode 100644 index 000000000000..4123e76671de --- /dev/null +++ b/keyboards/scrabblepad/keymaps/default/readme.md @@ -0,0 +1,6 @@ +# The default keymap for ScrabblePad + +This is the default keymap for the ScrabblePad. + +On each row, each key is used to spell out each character in +the following string: "donutcat rules ". diff --git a/keyboards/scrabblepad/readme.md b/keyboards/scrabblepad/readme.md new file mode 100644 index 000000000000..30ba92196370 --- /dev/null +++ b/keyboards/scrabblepad/readme.md @@ -0,0 +1,17 @@ +# ScrabblePad + +The ScrabblePad is a 15x15 ortholinear keyboard designed for use with +the XDA Scrabble Board sold by [Novelkeys](https://novelkeys.xyz). + +It uses a [Teensy++ 2.0](https://www.pjrc.com/store/teensypp.html) +featuring an at90usb1286 8 bit microcontroller. + +Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) +Hardware Supported: Teensy++ 2.0 and ScrabblePad PCB +Hardware Availability: [Donut Cables](https://donutcables.com/) + +Make example for this keyboard (after setting up your build environment): + + make scrabblepad:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/scrabblepad/rules.mk b/keyboards/scrabblepad/rules.mk new file mode 100644 index 000000000000..20f532af4d5b --- /dev/null +++ b/keyboards/scrabblepad/rules.mk @@ -0,0 +1,67 @@ +# MCU name +MCU = at90usb1286 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/scrabblepad/scrabblepad.c b/keyboards/scrabblepad/scrabblepad.c new file mode 100644 index 000000000000..e97cbd46c014 --- /dev/null +++ b/keyboards/scrabblepad/scrabblepad.c @@ -0,0 +1,43 @@ +/* Copyright 2018 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "scrabblepad.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} diff --git a/keyboards/scrabblepad/scrabblepad.h b/keyboards/scrabblepad/scrabblepad.h new file mode 100644 index 000000000000..fbe0dfc7276e --- /dev/null +++ b/keyboards/scrabblepad/scrabblepad.h @@ -0,0 +1,57 @@ +/* Copyright 2018 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#ifndef SCRABBLEPAD_H +#define SCRABBLEPAD_H + +#include "quantum.h" + +// Written in the format K(row)(column) where numbering is in hexadecimal +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, \ + k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5A, k5B, k5C, k5D, k5E, \ + k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6A, k6B, k6C, k6D, k6E, \ + k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7A, k7B, k7C, k7D, k7E, \ + k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8A, k8B, k8C, k8D, k8E, \ + k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, k9A, k9B, k9C, k9D, k9E, \ + kA0, kA1, kA2, kA3, kA4, kA5, kA6, kA7, kA8, kA9, kAA, kAB, kAC, kAD, kAE, \ + kB0, kB1, kB2, kB3, kB4, kB5, kB6, kB7, kB8, kB9, kBA, kBB, kBC, kBD, kBE, \ + kC0, kC1, kC2, kC3, kC4, kC5, kC6, kC7, kC8, kC9, kCA, kCB, kCC, kCD, kCE, \ + kD0, kD1, kD2, kD3, kD4, kD5, kD6, kD7, kD8, kD9, kDA, kDB, kDC, kDD, kDE, \ + kE0, kE1, kE2, kE3, kE4, kE5, kE6, kE7, kE8, kE9, kEA, kEB, kEC, kED, kEE \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, }, \ + { k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5A, k5B, k5C, k5D, k5E, }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6A, k6B, k6C, k6D, k6E, }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7A, k7B, k7C, k7D, k7E, }, \ + { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8A, k8B, k8C, k8D, k8E, }, \ + { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, k9A, k9B, k9C, k9D, k9E, }, \ + { kA0, kA1, kA2, kA3, kA4, kA5, kA6, kA7, kA8, kA9, kAA, kAB, kAC, kAD, kAE, }, \ + { kB0, kB1, kB2, kB3, kB4, kB5, kB6, kB7, kB8, kB9, kBA, kBB, kBC, kBD, kBE, }, \ + { kC0, kC1, kC2, kC3, kC4, kC5, kC6, kC7, kC8, kC9, kCA, kCB, kCC, kCD, kCE, }, \ + { kD0, kD1, kD2, kD3, kD4, kD5, kD6, kD7, kD8, kD9, kDA, kDB, kDC, kDD, kDE, }, \ + { kE0, kE1, kE2, kE3, kE4, kE5, kE6, kE7, kE8, kE9, kEA, kEB, kEC, kED, kEE } \ +} + +#endif From 47f55f417b9ecd2199b0b253e6dfb6881f9a8746 Mon Sep 17 00:00:00 2001 From: Cole Markham Date: Thu, 19 Apr 2018 11:09:33 -0500 Subject: [PATCH 237/578] Implement magic 8-ball mode for big series switch (#2763) --- keyboards/bigseries/keymaps/8ball/keymap.c | 144 +++++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100755 keyboards/bigseries/keymaps/8ball/keymap.c diff --git a/keyboards/bigseries/keymaps/8ball/keymap.c b/keyboards/bigseries/keymaps/8ball/keymap.c new file mode 100755 index 000000000000..df4e3dde8bac --- /dev/null +++ b/keyboards/bigseries/keymaps/8ball/keymap.c @@ -0,0 +1,144 @@ +/* +Copyright 2018 Cole Markham + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "../../bigseries.h" + +static const char * const ANSWERS[] = { +// "Yes" answers +"It is certain\n", +"It is decidedly so\n", +"Without a doubt\n", +"Yes definitely\n", +"You may rely on it\n", +"As I see it, yes\n", +"Most likely\n", +"Outlook good\n", +"Yes\n", +"Signs point to yes\n", +// Uncertain answers, index 10 +"Reply hazy try again\n", +"Ask again later\n", +"Better not tell you now\n", +"Cannot predict now\n", +"Concentrate and ask again\n", +// "No" answers, index 15 +"Don't count on it\n", +"My reply is no\n", +"My sources say no\n", +"Outlook not so good\n", +"Very doubtful\n" +}; + +#define UNCERTAIN_BREAK 10 +#define NO_BREAK 15 +#define NUM_ANSWERS 20 +// Timeout of answer color in ms +#define ANSWER_TIMEOUT 3000 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +KEYMAP( + KC_A), +}; + + +void reset_rgb(void); + +bool initialized = 0; +uint32_t lastTime = 0; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + return MACRO_NONE ; +} + +void matrix_init_user(void) { + if (!initialized){ + dprintf("Initializing in matrix_scan_user"); + rgblight_enable(); + reset_rgb(); + initialized = 1; + } +} + +void matrix_scan_user(void) { + if (lastTime > 0 && timer_elapsed32(lastTime) > ANSWER_TIMEOUT) { + lastTime = 0; + reset_rgb(); + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_A: + if (record->event.pressed) { + uint8_t num = rand() / (RAND_MAX / NUM_ANSWERS + 1); + rgblight_mode(1); + if (num < UNCERTAIN_BREAK) { + rgblight_setrgb_green(); + } else if (num < NO_BREAK) { + rgblight_setrgb_yellow(); + } else { + rgblight_setrgb_red(); + } + send_string(ANSWERS[num]); + lastTime = timer_read32(); + return false; + } + } + return true; +} + +void led_set_user(uint8_t usb_led) { + + if (usb_led & (1 << USB_LED_NUM_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_COMPOSE)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_KANA)) { + + } else { + + } + +} + +void reset_rgb(void) { + // This gets called on init and after the timeout for the answer color + // If you want to change the default color/mode, do it here + rgblight_sethsv_blue(); + rgblight_mode(7); +} From d3c6da7afff15fa493d7a6c8b00ec6e4ac7274f3 Mon Sep 17 00:00:00 2001 From: Kenneth Aloysius Date: Fri, 20 Apr 2018 02:28:55 +1000 Subject: [PATCH 238/578] Updated personal keymaps, fixed Let's Split default keymap, updated JJ40 README (#2704) * Add M6-A keymap * Update XD60 keymap * Update XD60 keymap readme * Update JJ40 and Let's Split keymaps * Add readme for M6-A * Fix typo, update JJ40 README * Update jj40 readme * Cleanup jj40 keymap * Revert Let's Split QWERTY layer to default before #2010 * Update numpad layers * Fix: Let's Split keymap getting stuck mods due to having keycodes assigned on the Raise layer * Keep ASCII art consistent with keymap --- keyboards/converter/ibm_terminal/matrix.c | 2 +- .../four_banger/keymaps/default/keymap.c | 6 +- keyboards/jj40/README.md | 15 +- keyboards/jj40/keymaps/krusli/config.h | 2 +- keyboards/jj40/keymaps/krusli/keymap.c | 135 +++++----- keyboards/jj40/keymaps/krusli/readme.md | 4 +- keyboards/jj40/keymaps/krusli/rules.mk | 2 +- keyboards/lets_split/keymaps/default/keymap.c | 6 +- keyboards/lets_split/keymaps/krusli/keymap.c | 239 ++++++++++++++++++ keyboards/lets_split/keymaps/krusli/readme.md | 2 + keyboards/ps2avrGB/program | 2 +- keyboards/rama/m6_a/keymaps/krusli/README.md | 26 ++ keyboards/rama/m6_a/keymaps/krusli/keymap.c | 72 ++++++ keyboards/sweet16/keymaps/default/keymap.c | 2 +- keyboards/xd60/keymaps/krusli/HHKB-like.txt | 0 keyboards/xd60/keymaps/krusli/keymap.c | 50 ++-- keyboards/xd60/keymaps/krusli/readme.md | 2 +- util/atmega32a_program.py | 2 +- 18 files changed, 463 insertions(+), 106 deletions(-) create mode 100644 keyboards/lets_split/keymaps/krusli/keymap.c create mode 100644 keyboards/lets_split/keymaps/krusli/readme.md create mode 100644 keyboards/rama/m6_a/keymaps/krusli/README.md create mode 100644 keyboards/rama/m6_a/keymaps/krusli/keymap.c delete mode 100644 keyboards/xd60/keymaps/krusli/HHKB-like.txt diff --git a/keyboards/converter/ibm_terminal/matrix.c b/keyboards/converter/ibm_terminal/matrix.c index 9d717b61f536..caa0a3805105 100644 --- a/keyboards/converter/ibm_terminal/matrix.c +++ b/keyboards/converter/ibm_terminal/matrix.c @@ -108,7 +108,7 @@ uint8_t matrix_scan(void) state = RESET; } break; - // after reset receive keyboad ID(2 bytes) + // after reset receive keyboard ID(2 bytes) case KBD_ID0: if (code) { state = KBD_ID1; diff --git a/keyboards/four_banger/keymaps/default/keymap.c b/keyboards/four_banger/keymaps/default/keymap.c index 245155381647..6c5f7c8a55f8 100644 --- a/keyboards/four_banger/keymaps/default/keymap.c +++ b/keyboards/four_banger/keymaps/default/keymap.c @@ -6,7 +6,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT_ortho_2x2( - KC_1, KC_U, + KC_1, KC_U, KC_P, UP_URL ), }; @@ -15,10 +15,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case UP_URL: if (record->event.pressed) { - SEND_STRING("http://1upkeyboads.com"); + SEND_STRING("http://1upkeyboards.com"); } return false; break; } return true; -} \ No newline at end of file +} diff --git a/keyboards/jj40/README.md b/keyboards/jj40/README.md index 563f5788e318..1b47ab816253 100644 --- a/keyboards/jj40/README.md +++ b/keyboards/jj40/README.md @@ -18,13 +18,24 @@ Note that this is a complete replacement for the firmware, so you won't be using Bootmapper Client to change any keyboard settings, since not all the USB report options are supported. -In addition you may need the AVR toolchain and `bootloadHID` for flashing: +In addition you may need the AVR toolchain and `bootloadHID` ([GitHub repo](https://github.com/whiteneon/bootloadHID)) for flashing: +For macOS: ``` $ brew cask install crosspack-avr $ brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb ``` +For Linux: +``` +$ sudo apt install libusb-dev +$ wget https://www.obdev.at/downloads/vusb/bootloadHID.2012-12-08.tar.gz +$ tar -xzf bootloadHID.2012-12-08.tar.gz +$ cd bootloadHID.2012-12-08/commandline +$ make +$ sudo cp bootloadHID /usr/bin +``` + In order to use the `./program` script, which can reboot the board into the bootloader, you'll need Python 2 with PyUSB installed: @@ -32,7 +43,7 @@ the bootloader, you'll need Python 2 with PyUSB installed: $ pip install pyusb ``` -If you prefer, you can just build it and flash the firmware directly with +If you prefer (or are having issues with a `program` flash), you can just build it (`make jj40:` and flash the firmware (`.hex` file) directly with `bootloadHID` if you boot the board while holding down `Backspace` (`Top Right Key`) to keep it in the bootloader: diff --git a/keyboards/jj40/keymaps/krusli/config.h b/keyboards/jj40/keymaps/krusli/config.h index 52aaa8f24dce..6d98a37a6782 100644 --- a/keyboards/jj40/keymaps/krusli/config.h +++ b/keyboards/jj40/keymaps/krusli/config.h @@ -4,6 +4,6 @@ #include "../../config.h" #define PREVENT_STUCK_MODIFIERS -#define TAPPING_TERM 300 +// #define TAPPING_TERM 300 #endif diff --git a/keyboards/jj40/keymaps/krusli/keymap.c b/keyboards/jj40/keymaps/krusli/keymap.c index df692cc484f4..2e6e9a76e7d0 100644 --- a/keyboards/jj40/keymaps/krusli/keymap.c +++ b/keyboards/jj40/keymaps/krusli/keymap.c @@ -4,6 +4,7 @@ #define _QWERTY 0 #define _LOWER 1 #define _RAISE 2 +#define _NUMPAD 3 enum custom_keycodes { QWERTY = SAFE_RANGE, @@ -15,66 +16,84 @@ void matrix_scan_user(void) { // runs at every matrix scan. } -enum { - TD_H_E = 0 -}; - -qk_tap_dance_action_t tap_dance_actions[] = { - [TD_H_E] = ACTION_TAP_DANCE_DOUBLE(KC_HOME, KC_END) -}; +// enum { +// TD_H_E = 0 +// }; +// +// qk_tap_dance_action_t tap_dance_actions[] = { +// [TD_H_E] = ACTION_TAP_DANCE_DOUBLE(KC_HOME, KC_END) +// }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Qwerty - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ; | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | Ctrl | GUI | Alt |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_QWERTY] = KEYMAP( \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ - TD(TD_H_E), KC_LCTL, KC_LGUI, KC_LALT, MO(_LOWER), KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ -), + /* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Ctrl | GUI | Alt |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_QWERTY] = KEYMAP( \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ + TO(_NUMPAD),KC_LCTL, KC_LGUI, KC_LALT, MO(_LOWER), KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + ), + + /* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | RGB | RGB | RGB | RGB |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | RGB | RGB | RGB | | | Next | Vol- | Vol+ | Play | | + * `-----------------------------------------------------------------------------------' + */ + [_LOWER] = KEYMAP( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, _______, \ + _______, RGB_SAD, RGB_SAI, RGB_HUI, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + ), -/* Lower - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_LOWER] = KEYMAP( \ - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,_______, _______, _______, \ - BL_TOGG, BL_STEP, BL_BRTG, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ -), + /* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | Home | End | PgUp | PgDn |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Prev | Play | Next | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_RAISE] = KEYMAP( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, KC_END, KC_PGUP, KC_PGDN, _______, \ + _______, KC_MRWD, KC_MPLY, KC_MNXT, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + ), -/* Raise - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | RGB | RGB | RGB | RGB |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | RGB | RGB | RGB | RGB | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_RAISE] = KEYMAP( \ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, _______, \ - RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ -) + /* Numpad + * ,-----------------------------------------------------------------------------------. + * | Esc | 7 | 8 | 9 | * | / | | | | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | <-- | 4 | 5 | 6 | + | - | | | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | 1 | 2 | 3 |Enter |Enter | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Qwerty| 0 | . | . |Enter |Enter | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_NUMPAD] = KEYMAP( \ + KC_ESC, KC_P7, KC_P8, KC_P9, KC_PAST, KC_PSLS, _______, _______, _______, _______, _______, _______, \ + KC_BSPC, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_PMNS, _______, _______, _______, _______, _______, _______, \ + _______, KC_P1, KC_P2, KC_P3, KC_PENT, KC_PENT, _______, _______, _______, _______, _______, _______, \ + TO(_QWERTY),KC_P0, KC_PDOT, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______ \ + ) }; diff --git a/keyboards/jj40/keymaps/krusli/readme.md b/keyboards/jj40/keymaps/krusli/readme.md index 75a84d0e677f..ed760e8a61c6 100644 --- a/keyboards/jj40/keymaps/krusli/readme.md +++ b/keyboards/jj40/keymaps/krusli/readme.md @@ -1,2 +1,4 @@ # krusli -Default JJ40 keymap, adapted with RGB underglow support. GUI and LAlt is also swapped. +JJ40 keymap based off the default Planck layout with a numpad layer and with RGB underglow controls. + +GUI and LAlt is also swapped to their standard positions. diff --git a/keyboards/jj40/keymaps/krusli/rules.mk b/keyboards/jj40/keymaps/krusli/rules.mk index e5ddcae8d927..5c6bb684e521 100644 --- a/keyboards/jj40/keymaps/krusli/rules.mk +++ b/keyboards/jj40/keymaps/krusli/rules.mk @@ -1 +1 @@ -TAP_DANCE_ENABLE = yes +# TAP_DANCE_ENABLE = yes diff --git a/keyboards/lets_split/keymaps/default/keymap.c b/keyboards/lets_split/keymaps/default/keymap.c index 0de3a1390e22..7cc9e53c023c 100644 --- a/keyboards/lets_split/keymaps/default/keymap.c +++ b/keyboards/lets_split/keymaps/default/keymap.c @@ -29,18 +29,18 @@ enum custom_keycodes { #define XXXXXXX KC_NO const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Qwerty * ,-----------------------------------------------------------------------------------. * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Tab | A | S | D | F | G | H | J | K | L | ; | ' | + * | Tab | A | S | D | F | G | H | J | K | L | ; | " | * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt |Adjust|Lower |Space |Space |Raise | Left | Down | Up |Right | + * |Adjust| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ + [_QWERTY] = LAYOUT( \ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ diff --git a/keyboards/lets_split/keymaps/krusli/keymap.c b/keyboards/lets_split/keymaps/krusli/keymap.c new file mode 100644 index 000000000000..177aa7168381 --- /dev/null +++ b/keyboards/lets_split/keymaps/krusli/keymap.c @@ -0,0 +1,239 @@ +#include "lets_split.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _NUMPAD 5 +#define _ADJUST 16 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, + ADJUST, + NUMPAD +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | ' | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Numpad| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = KEYMAP( \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ + NUMPAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | ' | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = KEYMAP( \ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ + ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | ' | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = KEYMAP( \ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , \ + ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = KEYMAP( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | Home | End | PgUp | PgDn |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = KEYMAP( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, KC_END, KC_PGUP, KC_PGDN, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +), + +/* Numpad + * ,-----------------------------------------------------------------------------------. + * | Esc | 7 | 8 | 9 | * | / | | | | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | <-- | 4 | 5 | 6 | + | - | | | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | 1 | 2 | 3 |Enter |Enter | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Qwerty| 0 | . | . |Enter |Enter | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_NUMPAD] = KEYMAP( \ + KC_ESC, KC_P7, KC_P8, KC_P9, KC_PAST, KC_PSLS, _______, _______, _______, _______, _______, _______, \ + KC_BSPC, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_PMNS, _______, _______, _______, _______, _______, _______, \ + _______, KC_P1, KC_P2, KC_P3, KC_PENT, KC_PENT, _______, _______, _______, _______, _______, _______, \ + QWERTY, KC_P0, KC_PDOT, KC_PDOT, KC_PENT, KC_PENT, _______, _______, _______, _______, _______, _______ \ +), + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = KEYMAP( \ + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +) + + +}; + +#ifdef AUDIO_ENABLE +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +#endif + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_qwerty); + #endif + persistent_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case NUMPAD: + if (record->event.pressed) + persistent_default_layer_set(1UL<<_NUMPAD); + return false; + break; + case COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_colemak); + #endif + persistent_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_dvorak); + #endif + persistent_default_layer_set(1UL<<_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + break; + } + return true; +} diff --git a/keyboards/lets_split/keymaps/krusli/readme.md b/keyboards/lets_split/keymaps/krusli/readme.md new file mode 100644 index 000000000000..175ef3c11a53 --- /dev/null +++ b/keyboards/lets_split/keymaps/krusli/readme.md @@ -0,0 +1,2 @@ +# krusli +Let's Split keymap based off the default Planck layout with a numpad layer. diff --git a/keyboards/ps2avrGB/program b/keyboards/ps2avrGB/program index 298e645477de..b777b911066b 100755 --- a/keyboards/ps2avrGB/program +++ b/keyboards/ps2avrGB/program @@ -73,7 +73,7 @@ if len(sys.argv) < 2: kb = checkForKeyboardInNormalMode() if kb is not None: - print('Found a keyboad in normal mode. Attempting to send it to bootloader mode ...', end='') + print('Found a keyboard in normal mode. Attempting to send it to bootloader mode ...', end='') sendDeviceToBootloaderMode(kb) print(' done.') print("Hint: If your keyboard can't be set to bootloader mode automatically, plug it in while pressing the bootloader key to do so manually.") diff --git a/keyboards/rama/m6_a/keymaps/krusli/README.md b/keyboards/rama/m6_a/keymaps/krusli/README.md new file mode 100644 index 000000000000..771b47a475ff --- /dev/null +++ b/keyboards/rama/m6_a/keymaps/krusli/README.md @@ -0,0 +1,26 @@ +# krusli's RAMA M6-A Layout + +Personal keymap for the RAMA M6-A. + +Keymap was from my own port for the M6-A before official support was added, thus the backlighting code is not ported yet from the official default keymap. + +Top-right button acts as a "toggle between layers" button. Layer 0 -> Layer 1 -> Layer 2 -> Layer 0 -> ... + +- Layer 0: Git and Discord shortcuts +- Layer 1: Media playback and volume controls +- Layer 2: Osu! gamepad layer + +## Helpful alternative keymaps (WIP) +### Arrow cluster +Use [karabiner-elements](https://github.com/tekezo/Karabiner-Elements) on macOS so that the state of the modifiers (shift, caps lock) are synchronised between keyboards (for shift + arrow key text selection, for example). It's also a handy tool for customising keyboard behaviour on a Mac. + +On Windows/Linux modifier state should be shared between all keyboards by default. + +Installation: install [homebrew](https://brew.sh) and run `brew install Caskroom/cask/karabiner-elements`. + +```C +KEYMAP( + KC_ESC, KC_UP, TO(_LAYER0), + KC_LEFT, KC_DOWN, KC_RIGHT +) +``` diff --git a/keyboards/rama/m6_a/keymaps/krusli/keymap.c b/keyboards/rama/m6_a/keymaps/krusli/keymap.c new file mode 100644 index 000000000000..679d0bc43bac --- /dev/null +++ b/keyboards/rama/m6_a/keymaps/krusli/keymap.c @@ -0,0 +1,72 @@ +#include "../../m6_a.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. + +enum layers { + _LAYER0, + _LAYER1, + _LAYER2 +}; + +enum custom_keycodes { + GIT_ADD = SAFE_RANGE, + GIT_COMMIT, + GIT_PUSH, + MUTE, + DEAFEN +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch(keycode) { + case GIT_ADD: + SEND_STRING("git add ."SS_TAP(X_ENTER)); + break; + case GIT_COMMIT: + SEND_STRING("git commit -m "SS_DOWN(X_LSHIFT)SS_TAP(X_QUOTE)SS_UP(X_LSHIFT)); + break; + case GIT_PUSH: + SEND_STRING("git push"SS_TAP(X_ENTER)); + break; + case MUTE: + SEND_STRING(SS_LGUI(SS_LSFT("M"))); + break; + case DEAFEN: + SEND_STRING(SS_LGUI(SS_LSFT("D"))); + break; + return false; + } + } + return true; +}; + +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_LAYER0] = KEYMAP( + MUTE, DEAFEN, TO(_LAYER1), + GIT_ADD, GIT_COMMIT, GIT_PUSH + ), + [_LAYER1] = KEYMAP( + KC_VOLD, KC_VOLU, TO(_LAYER2), + KC_MRWD, KC_MPLY, KC_MNXT + ), + [_LAYER2] = KEYMAP( + KC_ESC, KC_UP, TO(_LAYER0), + KC_Z, KC_X, KC_SPACE + ) +}; + +void matrix_init_user(void) { + #ifdef BACKLIGHT_ENABLE + backlight_level(0); + #endif +} diff --git a/keyboards/sweet16/keymaps/default/keymap.c b/keyboards/sweet16/keymaps/default/keymap.c index 7fa8615438a7..2ddf8acb4107 100644 --- a/keyboards/sweet16/keymaps/default/keymap.c +++ b/keyboards/sweet16/keymaps/default/keymap.c @@ -17,7 +17,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case UP_URL: if (record->event.pressed) { - SEND_STRING("http://1upkeyboads.com"); + SEND_STRING("http://1upkeyboards.com"); } return false; break; diff --git a/keyboards/xd60/keymaps/krusli/HHKB-like.txt b/keyboards/xd60/keymaps/krusli/HHKB-like.txt deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/keyboards/xd60/keymaps/krusli/keymap.c b/keyboards/xd60/keymaps/krusli/keymap.c index 95a3e3fadf49..cf3edff4035c 100644 --- a/keyboards/xd60/keymaps/krusli/keymap.c +++ b/keyboards/xd60/keymaps/krusli/keymap.c @@ -1,40 +1,26 @@ #include "xd60.h" #include "action_layer.h" -/* HHKB-like layout for standard 60% layout with split RShift and split backspace */ +#define _______ KC_TRNS -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +#define _BASE 0 +#define _FN 1 - // 0: Base Layer - LAYOUT_ALL( - 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, KC_GRV, \ - 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, \ - 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, \ - KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, F(0), \ - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, F(0), KC_RCTL, KC_RCTL), - - // 1: Function Layer - /* Layer HHKB: HHKB mode (HHKB Fn) - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - | Caps | | | | | | | | Psc | Slk | Pus | Up | | Backs | | - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter | | | - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - | | | | | | | + | - | End | PgD | Dow | | | | | - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - - |------+------+----------------------+------+------+ - | **** | **** | ******************** | **** | **** | - |------+------+----------------------+------+------+ - */ - LAYOUT_ALL( - RESET, 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_F13, KC_F14, \ - 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_BSPC, \ - 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_NO, KC_ENT, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(0), KC_TRNS, KC_TRNS), +/* HHKB-like layout for standard 60% layout with split RShift */ +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = KEYMAP( + 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_BSPC, _______, \ + 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_BSLS, \ + KC_CAPS, 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, \ + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, F(0), \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, _______, KC_APP, KC_RCTL), + + [_FN] = KEYMAP( + KC_GRV, 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_DEL, _______, \ + RESET, RGB_TOG, RGB_MOD, RGB_HUI, RGB_VAD, RGB_VAI, RGB_SAD, RGB_SAI, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_INS, \ + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_NO, _______ \ + _______, KC_NO, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______), }; // Custom Actions diff --git a/keyboards/xd60/keymaps/krusli/readme.md b/keyboards/xd60/keymaps/krusli/readme.md index aefb23cca3b5..34f46e026ca2 100644 --- a/keyboards/xd60/keymaps/krusli/readme.md +++ b/keyboards/xd60/keymaps/krusli/readme.md @@ -1,7 +1,7 @@ # krusli's Keymap for XIUDI's 60% XD60 PCB ## Additional Notes -Keymap for the XD60 with 2.25u left shift and split backspace. HHKB-like function layer. +Keymap for the XD60 (ANSI) with 2.25u left shift, split right shift. HHKB-like function layer. ## Build To build this keymap, simply run `make xd60:krusli` on the top-level directory for QMK. diff --git a/util/atmega32a_program.py b/util/atmega32a_program.py index 298e645477de..b777b911066b 100755 --- a/util/atmega32a_program.py +++ b/util/atmega32a_program.py @@ -73,7 +73,7 @@ def sendDeviceToBootloaderMode(dev): kb = checkForKeyboardInNormalMode() if kb is not None: - print('Found a keyboad in normal mode. Attempting to send it to bootloader mode ...', end='') + print('Found a keyboard in normal mode. Attempting to send it to bootloader mode ...', end='') sendDeviceToBootloaderMode(kb) print(' done.') print("Hint: If your keyboard can't be set to bootloader mode automatically, plug it in while pressing the bootloader key to do so manually.") From 5ec3bd9e40a9f04a05d23569fc1a402927e1a5c2 Mon Sep 17 00:00:00 2001 From: Josh Asplund Date: Thu, 19 Apr 2018 11:30:45 -0500 Subject: [PATCH 239/578] Adds default IC keymap (#2677) --- .../keymaps/input_club/README.md | 23 ++ .../keymaps/input_club/keymap.c | 267 ++++++++++++++++++ 2 files changed, 290 insertions(+) create mode 100644 keyboards/ergodox_infinity/keymaps/input_club/README.md create mode 100644 keyboards/ergodox_infinity/keymaps/input_club/keymap.c diff --git a/keyboards/ergodox_infinity/keymaps/input_club/README.md b/keyboards/ergodox_infinity/keymaps/input_club/README.md new file mode 100644 index 000000000000..31ae23ac4039 --- /dev/null +++ b/keyboards/ergodox_infinity/keymaps/input_club/README.md @@ -0,0 +1,23 @@ +# Input Club ErgoDox Infinity Layout + +A basic ErgoDox layout that duplicates the default Input Club layout + +## Features + +Base Layers + +- QWERTY +- Function Keys +- Numpad + +## Building and flashing + +1. Put your board in DFU mode with either the button on the bottom, or with a software key in your current firmware +2. Flash left half: + ```bash + make ergodox_infinity:input_club:dfu-util + ``` +3. Flash right half: + ```bash + make ergodox_infinity:input_club:dfu-util MASTER=right + ``` diff --git a/keyboards/ergodox_infinity/keymaps/input_club/keymap.c b/keyboards/ergodox_infinity/keymaps/input_club/keymap.c new file mode 100644 index 000000000000..e77319d2c8fe --- /dev/null +++ b/keyboards/ergodox_infinity/keymaps/input_club/keymap.c @@ -0,0 +1,267 @@ +#include QMK_KEYBOARD_H +#include "debug.h" +#include "action_layer.h" +#include "version.h" + +#define L0 0 // default layer +#define L1 1 +#define L2 2 + +enum custom_keycodes { + PLACEHOLDER = SAFE_RANGE, // can always be here + EPRM, + VRSN, + RGB_SLD +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[L0] = LAYOUT_ergodox( // layer 0 : default +/* + * left hand + * +-------+-----+-----+-----+-----+-----+-----+ + * | = | 0 | 2 | 3 | 4 | 5 | ESC | + * +-------+-----+-----+-----+-----+-----+-----+ + * | \ | Q | W | E | R | T |LCK-1| + * +-------+-----+-----+-----+-----+-----+ | + * | TAB | A | S | D | F | G +-----+ + * +-------+-----+-----+-----+-----+-----+ f1 | + * | LSHIFT| Z | X | C | V | B | | + * +-+-----+-----+-----+-----+-----+-----+-----+ + * |LGUI | ` | \ |LEFT |RIGHT| + * +-----+-----+-----+-----+-----+ +-----+-----+ + * |LCTRL| LALT| + * +-----+-----+-----+ + * | | | HOME| + * |BKSPC| DEL +-----+ + * | | | END | + * +-----+-----+-----+ + */ + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, + KC_BSLS, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(L1), + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(L1), + KC_LGUI, KC_GRV, KC_BSLS, KC_LEFT, KC_RGHT, + KC_LCTL, KC_LALT, + KC_HOME, + KC_BSPC, KC_DELT, KC_END, +/* right hand + * +-----+-----+-----+-----+-----+-----+-------+ + * |LCK-2| 6 | 7 | 8 | 9 | 0 | - | + * +-----+-----+-----+-----+-----+-----+-------+ + * | [ | Y | U | I | O | P | ] | + * | +-----+-----+-----+-----+-----+-------+ + * +-----+ H | J | K | L | ; | ' | + * | f1 +-----+-----+-----+-----+-----+-------+ + * | | N | M | , | . | / | RSHIFT| + * +-----+-----+-----+-----+-----+-----+-----+-+ + * |LEFT |DOWN | UP |RIGHT| RGUI| + * +-----+-----+ +-----+-----+-----+-----+-----+ + * | RALT|RCTRL| + * +-----+-----+-----+ + * | PGUP| | | + * +-----+ ENT | SPC | + * | PGDN| | | + * +-----+-----+-----+ + */ + TG(L2), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_LBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRC, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + MO(L1), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_RGUI, + KC_RALT, KC_RCTL, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC + ), + +[L1] = LAYOUT_ergodox( // layer 1 : function layers +/* left hand + * +-------+-----+-----+-----+-----+-----+-----+ + * | | f1 | f2 | f3 | f4 | f5 | f11 | + * +-------+-----+-----+-----+-----+-----+-----+ + * | | | | | | | | + * +-------+-----+-----+-----+-----+-----+ | + * | | | | | | +-----+ + * +-------+-----+-----+-----+-----+-----+ | + * | | | | | | | | + * +-+-----+-----+-----+-----+-----+-----+-----+ + * | | | | | | + * +-----+-----+-----+-----+-----+ +-----+-----+ + * | | | + * +-----+-----+-----+ + * | | | | + * | | +-----+ + * | | | | + * +-----+-----+-----+ + */ + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, +/* right hand + * +-----+-----+-----+-----+-----+-----+-------+ + * | f12 | f6 | f7 | f8 | f9 | f10 | | + * +-----+-----+-----+-----+-----+-----+-------+ + * | | | | | | | | + * | +-----+-----+-----+-----+-----+-------+ + * +-----+ | | | | | | + * | +-----+-----+-----+-----+-----+-------+ + * | | | | | | | | + * +-----+-----+-----+-----+-----+-----+-----+-+ + * | | | | | | + * +-----+-----+ +-----+-----+-----+-----+-----+ + * | | | + * +-----+-----+-----+ + * | | | | + * +-----+ | | + * | | | | + * +-----+-----+-----+ + */ + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +[L2] = LAYOUT_ergodox( +/* Left hand + * +-------+-----+-----+-----+-----+-----+-----+ + * | FLASH | | | | | | | + * +-------+-----+-----+-----+-----+-----+-----+ + * | | | | | | | | + * +-------+-----+-----+-----+-----+-----+ | + * | | | | | | +-----+ + * +-------+-----+-----+-----+-----+-----+ | + * | | | | | | | | + * +-+-----+-----+-----+-----+-----+-----+-----+ + * | | | | | | + * +-----+-----+-----+-----+-----+ +-----+-----+ + * | | | + * +-----+-----+-----+ + * | | | | + * | | +-----+ + * | | | | + * +-----+-----+-----+ + */ + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, +/* right hand + * +-----+-----+-----+-----+-----+-----+-------+ + * | | |NMLCK| P/ | P* | P- | | + * +-----+-----+-----+-----+-----+-----+-------+ + * | | | P7 | P8 | P9 | P+ | | + * | +-----+-----+-----+-----+-----+-------+ + * +-----+ | P4 | P5 | P6 | P+ | | + * | +-----+-----+-----+-----+-----+-------+ + * | | | P1 | P2 | P3 |PENT | | + * +-----+-----+-----+-----+-----+-----+-----+-+ + * | | | P. |PENT | | + * +-----+-----+ +-----+-----+-----+-----+-----+ + * | | | + * +-----+-----+-----+ + * | | | | + * +-----+ | P0 | + * | | | | + * +-----+-----+-----+ + */ + KC_TRNS, KC_TRNS, KC_NUMLOCK, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_TRNS, + KC_TRNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, KC_TRNS, + KC_TRNS, KC_TRNS, KC_KP_DOT, KC_KP_ENTER, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_KP_0 +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(L1) // FN1 - Momentary Layer 1 (Function) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + break; + case 1: + if (record->event.pressed) { // For resetting EEPROM + eeconfig_init(); + } + break; + } + return MACRO_NONE; +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + // dynamically generate these. + case EPRM: + if (record->event.pressed) { + eeconfig_init(); + } + return false; + break; + case VRSN: + if (record->event.pressed) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + return false; + break; + case RGB_SLD: + if (record->event.pressed) { + #ifdef RGBLIGHT_ENABLE + rgblight_mode(1); + #endif + } + return false; + break; + } + return true; +} + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; From 3bb647910a09146309cef59eedd78be72697c88f Mon Sep 17 00:00:00 2001 From: Salt-Peanuts Date: Thu, 19 Apr 2018 21:11:07 -0400 Subject: [PATCH 240/578] Updated info and fixed minor errors (#2769) --- keyboards/kinesis/config.h | 2 +- keyboards/kinesis/readme.md | 4 ++-- keyboards/kinesis/stapelberg/readme.md | 5 ++--- keyboards/kinesis/stapelberg/stapelberg.h | 14 +++++++------- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/keyboards/kinesis/config.h b/keyboards/kinesis/config.h index 7cb0532c64f1..a4e06b6ebb24 100644 --- a/keyboards/kinesis/config.h +++ b/keyboards/kinesis/config.h @@ -23,7 +23,7 @@ along with this program. If not, see . /* USB Device descriptor parameter */ #define VENDOR_ID 0xFEED #define MANUFACTURER You -#define PRODUCT kinesis-advantage +#define PRODUCT Kinesis Advantage/Contoured #define DESCRIPTION A custom keyboard // Mouse diff --git a/keyboards/kinesis/readme.md b/keyboards/kinesis/readme.md index 2813ee273b3a..3802f50c9a3a 100644 --- a/keyboards/kinesis/readme.md +++ b/keyboards/kinesis/readme.md @@ -1,10 +1,10 @@ -# Firmware for the Kinesis advantage keyboard +# Firmware for the Kinesis Advantage/Contoured keyboard There are at least two different ways to replace the controller in this keyboard. The Stapelberg folder contains the docs and configuration for using the custom controller created by Michael Stapelberg. -The alvicstep folder contains docs and configuration for directly wiring a Teensy2++ to the existing controller board. This follows the pinouts described in https://github.com/alvicstep/tmk_keyboard, which is where the name comes from. +The alvicstep folder contains docs and configuration for directly wiring a Teensy2++ to the existing controller board. This follows the pinouts described in https://github.com/alvicstep/tmk_keyboard, which is where the name comes from. ## Keymaps Both hardware solutions should work with the same keymaps diff --git a/keyboards/kinesis/stapelberg/readme.md b/keyboards/kinesis/stapelberg/readme.md index 0dcb7c283f35..2a69bb725007 100644 --- a/keyboards/kinesis/stapelberg/readme.md +++ b/keyboards/kinesis/stapelberg/readme.md @@ -44,11 +44,10 @@ The exterior cables can be seen here. ### Default -To build with the default keymap, run `make default` while in the -`kinesis_stapelberg` working directory. +To build with the default keymap, run `make kinesis/stapelberg` while in the QMK directory. ### Dvorak This keymap contains a dvorak implementation as well as media and symbol layers. -Run `make dvorak` while in the `kinesis_stapelberg` working directory. +Run `make kinesis/stapelberg:dvorak` while in the QMK directory. diff --git a/keyboards/kinesis/stapelberg/stapelberg.h b/keyboards/kinesis/stapelberg/stapelberg.h index c90fc3d52db7..8c8619745d5f 100644 --- a/keyboards/kinesis/stapelberg/stapelberg.h +++ b/keyboards/kinesis/stapelberg/stapelberg.h @@ -58,13 +58,13 @@ PD4 k4x Row: 4 R F V -- -- DEL PD5 k5x Row: 5 T G B RT LAL LCT PD6 k6x Row: 6 Y H N UP SPC PGD PD7 k7x Row: 7 U J M -- RET -- -PB0 k8x Row: 8 I K COM DWN RCT PGU -PB1 k9x Row: 9 O L PER LBR -- RAL -PB2 kAx Row: 0 P SEM SLA RBR -- -- -PB3 kBx Row: MIN BSL APO RSH X1 -- -- -PB4 kCx Row: ESC F3 F6 F9 F12 PAU -- -PB5 kDx Row: F1 F4 F7 F10 PRT PRG -- -PB6 kEx Row: F2 F5 F8 F11 SLK KEY -- +PC0 k8x Row: 8 I K COM DWN RCT PGU +PC1 k9x Row: 9 O L PER LBR -- RAL +PC2 kAx Row: 0 P SEM SLA RBR -- -- +PC3 kBx Row: MIN BSL APO RSH X1 -- -- +PC4 kCx Row: ESC F3 F6 F9 F12 PAU -- +PC5 kDx Row: F1 F4 F7 F10 PRT PRG -- +PC6 kEx Row: F2 F5 F8 F11 SLK KEY -- */ From 1de6458921963d40d812e696528d21fed744a732 Mon Sep 17 00:00:00 2001 From: That-Canadian Date: Fri, 20 Apr 2018 08:51:34 -0700 Subject: [PATCH 241/578] Launchpad (#2767) * Line ending stuff again * Added base launchpad files and a default layout * Updated KEYMAP to LAYOUT, also editing default keymap a bit and added a readme --- keyboards/launchpad/config.h | 75 ++++++++++++++++++++ keyboards/launchpad/keymaps/default/keymap.c | 66 +++++++++++++++++ keyboards/launchpad/keymaps/default/rules.mk | 25 +++++++ keyboards/launchpad/launchpad.c | 1 + keyboards/launchpad/launchpad.h | 11 +++ keyboards/launchpad/readme.md | 32 +++++++++ keyboards/launchpad/rev1/config.h | 32 +++++++++ keyboards/launchpad/rev1/rev1.c | 14 ++++ keyboards/launchpad/rev1/rev1.h | 24 +++++++ keyboards/launchpad/rev1/rules.mk | 3 + keyboards/launchpad/rules.mk | 67 +++++++++++++++++ 11 files changed, 350 insertions(+) create mode 100644 keyboards/launchpad/config.h create mode 100644 keyboards/launchpad/keymaps/default/keymap.c create mode 100644 keyboards/launchpad/keymaps/default/rules.mk create mode 100644 keyboards/launchpad/launchpad.c create mode 100644 keyboards/launchpad/launchpad.h create mode 100644 keyboards/launchpad/readme.md create mode 100644 keyboards/launchpad/rev1/config.h create mode 100644 keyboards/launchpad/rev1/rev1.c create mode 100644 keyboards/launchpad/rev1/rev1.h create mode 100644 keyboards/launchpad/rev1/rules.mk create mode 100644 keyboards/launchpad/rules.mk diff --git a/keyboards/launchpad/config.h b/keyboards/launchpad/config.h new file mode 100644 index 000000000000..9d1e310d3ecf --- /dev/null +++ b/keyboards/launchpad/config.h @@ -0,0 +1,75 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x1337 +#define PRODUCT_ID 0x6007 +#define MANUFACTURER Maple Computing +#define PRODUCT Launch Pad +#define DESCRIPTION An all-in-on macropad + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 2 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#ifdef SUBPROJECT_rev1 + #include "rev1/config.h" +#endif + +#endif diff --git a/keyboards/launchpad/keymaps/default/keymap.c b/keyboards/launchpad/keymaps/default/keymap.c new file mode 100644 index 000000000000..67103576d97a --- /dev/null +++ b/keyboards/launchpad/keymaps/default/keymap.c @@ -0,0 +1,66 @@ +// Below layout is based upon /u/That-Canadian's planck layout +#include "launchpad.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 + +#define _FUNC 15 + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-------------. + * | 1 | 2 | + * |------+------| + * | 3 | 4 | + * |------+------| + * | 5 | 6 | + * |------+------| + * | FUNC | 8 | + * `-------------' + */ +[_QWERTY] = LAYOUT( \ + KC_1, KC_2, \ + KC_3, KC_4, \ + KC_5, KC_6, \ + MO(_FUNC), KC_8 \ +), + +/* Function + * ,-------------. + * | Q |CALDEL| + * |------+------| + * | A |TSKMGR| + * |------+------| + * | Z | X | + * |------+------| + * | | C | + * `-------------' + */ +[_FUNC] = LAYOUT( \ + KC_Q, CALTDEL, \ + KC_A, TSKMGR, \ + KC_Z, KC_X, \ + _______, KC_C \ +) + +}; + +void matrix_init_user(void) { + +} diff --git a/keyboards/launchpad/keymaps/default/rules.mk b/keyboards/launchpad/keymaps/default/rules.mk new file mode 100644 index 000000000000..260b9d8fad60 --- /dev/null +++ b/keyboards/launchpad/keymaps/default/rules.mk @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/launchpad/launchpad.c b/keyboards/launchpad/launchpad.c new file mode 100644 index 000000000000..cc2812a76c66 --- /dev/null +++ b/keyboards/launchpad/launchpad.c @@ -0,0 +1 @@ +#include "launchpad.h" diff --git a/keyboards/launchpad/launchpad.h b/keyboards/launchpad/launchpad.h new file mode 100644 index 000000000000..85432de0ad23 --- /dev/null +++ b/keyboards/launchpad/launchpad.h @@ -0,0 +1,11 @@ +#ifndef LAUNCHPAD_H +#define LAUNCHPAD_H + +#ifdef KEYBOARD_launchpad_rev1 + #include "rev1.h" +#endif + +#include "quantum.h" + + +#endif diff --git a/keyboards/launchpad/readme.md b/keyboards/launchpad/readme.md new file mode 100644 index 000000000000..80b5de321910 --- /dev/null +++ b/keyboards/launchpad/readme.md @@ -0,0 +1,32 @@ +Launch Pad +=== + +![Launch Pad](https://i.imgur.com/WVTe0Ku.png) + +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + +A budget-minded, 4-8 key macro-pad with built in legs, plate & case. + +Supports MX & Alps switches. 2x 1u or 1x 2u supported for each row. + +Supports 2u PCB-Mount stabilizers. + +Runs off of 1x Pro Micro & 8x diodes (1n4148). + +Optional "Reset" switch can be used on the PCB. + +A fantastic project for beginners to learn to solder, veteran's of the hobby who want to add an easy macro-pad to their collection, and everyone in between. + +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + +Make example for this keyboard (after setting up your build environment): + + make launchpad/rev1:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. + +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + +Due to PCB tolerance issues outside of our control, the snap-apart legs included on the PCB may need extra padding to prevent a small amount of wobbling once placed properly. We have included small, clear, and semi-permanent "glue dots" in each order (PCB Only -and- Full Kit) to help with this. You may also use plastic wrap, tape, Elmer's glue, hot glue, rubber cement, etc. We advise against using anything more "permanent" in case you wish to make changes to your Launch Pad in the future. It is also best to attach legs after all of your soldering and building is finished, to get the most accurate feel for your Launch Pad. + +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- \ No newline at end of file diff --git a/keyboards/launchpad/rev1/config.h b/keyboards/launchpad/rev1/config.h new file mode 100644 index 000000000000..67a4154226f2 --- /dev/null +++ b/keyboards/launchpad/rev1/config.h @@ -0,0 +1,32 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef REV1_CONFIG_H +#define REV1_CONFIG_H + +#include "../config.h" + +#define DEVICE_VER 0x0001 + +/* Let's Macro V2 pin-out */ +#define MATRIX_ROW_PINS { C6, B1, B3, D7 } +#define MATRIX_COL_PINS { D2, F7 } +#define UNUSED_PINS + +#define DIODE_DIRECTION COL2ROW + +#endif diff --git a/keyboards/launchpad/rev1/rev1.c b/keyboards/launchpad/rev1/rev1.c new file mode 100644 index 000000000000..a7aec80e10f7 --- /dev/null +++ b/keyboards/launchpad/rev1/rev1.c @@ -0,0 +1,14 @@ +#include "launchpad.h" + +void matrix_init_kb(void) { + + // JTAG disable for PORT F. write JTD bit twice within four cycles. + MCUCR |= (1< Date: Fri, 20 Apr 2018 08:52:56 -0700 Subject: [PATCH 242/578] QMK Configurator support for alps64 pcb (#2774) * Change KEYMAP to LAYOUT * add layouts that match the layouts hasu has defined for alps64 * add layouts in info.json for aek, standard, and infinity * Add LAYOUT_iso and LAYOUT_all along with respective info.json LAYOUTs --- keyboards/alps64/alps64.h | 72 ++++++++++++++++++++++- keyboards/alps64/info.json | 28 +++++++++ keyboards/alps64/keymaps/default/keymap.c | 2 +- 3 files changed, 99 insertions(+), 3 deletions(-) create mode 100644 keyboards/alps64/info.json diff --git a/keyboards/alps64/alps64.h b/keyboards/alps64/alps64.h index 83af132dfc62..a7ac93421cbb 100644 --- a/keyboards/alps64/alps64.h +++ b/keyboards/alps64/alps64.h @@ -21,7 +21,7 @@ along with this program. If not, see . /* Alps64 keymap definition macro */ -#define KEYMAP( \ +#define LAYOUT_all( \ K36, K37, K46, K47, K56, K57, K66, K67, K76, K77, K06, K07, K17, K26, K27, \ K34, K35, K44, K45, K54, K55, K64, K65, K75, K05, K15, K16, K25, K24, \ K32, K33, K43, K52, K53, K63, K73, K74, K03, K04, K13, K14, K23, \ @@ -38,7 +38,75 @@ along with this program. If not, see . { K70, K71, K72, K73, K74, K75, K76, K77 } \ } -#define KC_KEYMAP( \ +#define LAYOUT_iso( \ + K36, K37, K46, K47, K56, K57, K66, K67, K76, K77, K06, K07, K17, K27, \ + K34, K35, K44, K45, K54, K55, K64, K65, K75, K05, K15, K16, K25, K24, \ + K32, K33, K43, K52, K53, K63, K73, K74, K03, K04, K13, K14, K23, \ + K31, K41, K42, K51, K61, K62, K71, K72, K01, K02, K11, K12, K21, \ + K30, K40, K50, K60, K70, K00, K20 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07 }, \ + { KC_NO, K11, K12, K13, K14, K15, K16, K17 }, \ + { K20, K21, KC_NO, K23, K24, K25, KC_NO, K27 }, \ + { K30, K31, K32, K33, K34, K35, K36, K37 }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, K56, K57 }, \ + { K60, K61, K62, K63, K64, K65, K66, K67 }, \ + { K70, K71, K72, K73, K74, K75, K76, K77 } \ +} + +#define LAYOUT_standard_60( \ + K36, K37, K46, K47, K56, K57, K66, K67, K76, K77, K06, K07, K17, K27, \ + K34, K35, K44, K45, K54, K55, K64, K65, K75, K05, K15, K16, K25, K24, \ + K32, K33, K43, K52, K53, K63, K73, K74, K03, K04, K13, K14, K23, \ + K31, K42, K51, K61, K62, K71, K72, K01, K02, K11, K12, K21, \ + K30, K40, K50, K60, K70, K00, K10, K20 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17 }, \ + { K20, K21, KC_NO, K23, K24, K25, KC_NO, K27 }, \ + { K30, K31, K32, K33, K34, K35, K36, K37 }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, K56, K57 }, \ + { K60, K61, K62, K63, K64, K65, K66, K67 }, \ + { K70, K71, K72, K73, K74, K75, K76, K77 } \ +} + +#define LAYOUT_infinity( \ + K36, K37, K46, K47, K56, K57, K66, K67, K76, K77, K06, K07, K17, K26, K27, \ + K34, K35, K44, K45, K54, K55, K64, K65, K75, K05, K15, K16, K25, K24, \ + K32, K33, K43, K52, K53, K63, K73, K74, K03, K04, K13, K14, K23, \ + K31, K42, K51, K61, K62, K71, K72, K01, K02, K11, K12, K21, K22, \ + K30, K40, K50, K60, K70, K00, K10, K20 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17 }, \ + { K20, K21, K22, K23, K24, K25, K26, K27 }, \ + { K30, K31, K32, K33, K34, K35, K36, K37 }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, K56, K57 }, \ + { K60, K61, K62, K63, K64, K65, K66, K67 }, \ + { K70, K71, K72, K73, K74, K75, K76, K77 } \ +} + +#define LAYOUT_aek_103( \ + K36, K37, K46, K47, K56, K57, K66, K67, K76, K77, K06, K07, K17, K27, \ + K34, K35, K44, K45, K54, K55, K64, K65, K75, K05, K15, K16, K25, K24, \ + K32, K33, K43, K52, K53, K63, K73, K74, K03, K04, K13, K14, K23, \ + K31, K42, K51, K61, K62, K71, K72, K01, K02, K11, K12, K21, \ + K30, K40, K50, K60, K70, K00, K20 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07 }, \ + { KC_NO, K11, K12, K13, K14, K15, K16, K17 }, \ + { K20, K21, KC_NO, K23, K24, K25, KC_NO, K27 }, \ + { K30, K31, K32, K33, K34, K35, K36, K37 }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, K56, K57 }, \ + { K60, K61, K62, K63, K64, K65, K66, K67 }, \ + { K70, K71, K72, K73, K74, K75, K76, K77 } \ +} + +#define LAYOUT_kc( \ K36, K37, K46, K47, K56, K57, K66, K67, K76, K77, K06, K07, K17, K26, K27, \ K34, K35, K44, K45, K54, K55, K64, K65, K75, K05, K15, K16, K25, K24, \ K32, K33, K43, K52, K53, K63, K73, K74, K03, K04, K13, K14, K23, \ diff --git a/keyboards/alps64/info.json b/keyboards/alps64/info.json new file mode 100644 index 000000000000..41735cf7ea86 --- /dev/null +++ b/keyboards/alps64/info.json @@ -0,0 +1,28 @@ +{ + "keyboard_name": "alps64", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + }, + + "LAYOUT_standard_60": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + }, + + "LAYOUT_infinity": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":6}, {"label":"Alt", "x":10, "y":4, "w":1.5}, {"label":"Win", "x":11.5, "y":4}, {"label":"Menu", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] + }, + + "LAYOUT_aek_103": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4, "w":1.25}, {"label":"Alt", "x":2.75, "y":4, "w":1.5}, {"x":4.25, "y":4, "w":6.5}, {"label":"Alt", "x":10.75, "y":4, "w":1.5}, {"label":"Menu", "x":12.25, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] + }, + + "LAYOUT_iso": { + "layout": [{"label":"\u00ac", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"AltGr", "x":11, "y":4, "w":1.5}, {"label":"Menu", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] + } + } +} diff --git a/keyboards/alps64/keymaps/default/keymap.c b/keyboards/alps64/keymaps/default/keymap.c index 49ef9b2bf3ab..12f78952dfe0 100644 --- a/keyboards/alps64/keymaps/default/keymap.c +++ b/keyboards/alps64/keymaps/default/keymap.c @@ -2,7 +2,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: qwerty */ - KC_KEYMAP( \ + LAYOUT_kc( \ GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, NUHS, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, \ From ded93909446b633f3d296d3a360505330c1f9155 Mon Sep 17 00:00:00 2001 From: Salt-Peanuts Date: Fri, 20 Apr 2018 11:53:35 -0400 Subject: [PATCH 243/578] Updated folder name; overdue updates to keymap and readme files (#2770) * Updated info and fixed minor errors * Updated folder name; overdue updates to keymap and readme files Updated folder name; overdue updates to keymap and readme files --- .../{salty => insertsnideremarks}/config.h | 4 +- .../keymaps/insertsnideremarks/keymap.c | 681 ++++++++++++++++++ .../keymaps/insertsnideremarks/readme.md | 249 +++++++ .../{salty => insertsnideremarks}/rules.mk | 7 +- keyboards/kinesis/keymaps/salty/keymap.c | 433 ----------- keyboards/kinesis/keymaps/salty/readme.md | 14 - 6 files changed, 937 insertions(+), 451 deletions(-) rename keyboards/kinesis/keymaps/{salty => insertsnideremarks}/config.h (64%) create mode 100644 keyboards/kinesis/keymaps/insertsnideremarks/keymap.c create mode 100644 keyboards/kinesis/keymaps/insertsnideremarks/readme.md rename keyboards/kinesis/keymaps/{salty => insertsnideremarks}/rules.mk (86%) delete mode 100644 keyboards/kinesis/keymaps/salty/keymap.c delete mode 100644 keyboards/kinesis/keymaps/salty/readme.md diff --git a/keyboards/kinesis/keymaps/salty/config.h b/keyboards/kinesis/keymaps/insertsnideremarks/config.h similarity index 64% rename from keyboards/kinesis/keymaps/salty/config.h rename to keyboards/kinesis/keymaps/insertsnideremarks/config.h index 5afb80435027..38d08b20c8bf 100644 --- a/keyboards/kinesis/keymaps/salty/config.h +++ b/keyboards/kinesis/keymaps/insertsnideremarks/config.h @@ -5,6 +5,8 @@ #include "../../config.h" // place overrides here -#define TAPPING_TERM 200 +#define PREVENT_STUCK_MODIFIERS +#define TAPPING_TERM 175 + #endif diff --git a/keyboards/kinesis/keymaps/insertsnideremarks/keymap.c b/keyboards/kinesis/keymaps/insertsnideremarks/keymap.c new file mode 100644 index 000000000000..8885867ee879 --- /dev/null +++ b/keyboards/kinesis/keymaps/insertsnideremarks/keymap.c @@ -0,0 +1,681 @@ +#include "kinesis.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +enum kinesis_layers { + _CMODDH, // Colemak Mod-DH Matrix (default layer) + _QWERTY, // Qwerty + _COLEMAK, // Colemak + _NUMBERS, // Numbers & Symbols + _NUMBERS2, // Numbers & Symbols 2 (identical as _NUMBERS; basically used for tri-layer access to _ADJUST) + _FUNCTION, // Function + _FUNCTION2, // Function 2 (identical as _FUNCTION; used to allow for easier use of space and backspace while using function layer arrows) + _NUMPAD, // Numpad + _CMODDHGM, // Colemak Mod-DH Matrix gaming/vanilla (no dual-role keys with layer access) + _QWERTYGM, // QWERTY gaming/vanilla (no dual-role keys with layer access) + _ADJUST // Adjust layer +}; + +enum kinesis_keycodes { + CMODDH = SAFE_RANGE, + QWERTY, + COLEMAK, + CMODDHGM, + QWERTYGM, + SPCFN = LT(_FUNCTION, KC_SPC), + BSPCFN = LT(_FUNCTION2, KC_BSPC), + ENTNS = LT(_NUMBERS, KC_ENT), + DELNS = LT(_NUMBERS2, KC_DEL), + CTLESC = CTL_T(KC_ESC), + NKROTG = MAGIC_TOGGLE_NKRO +}; + +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +//Tap Dance Declarations +enum { + ADJ = 0, + LBCB, + RBCB, + EQPL, + PLEQ, + MNUN, + SLAS, + GVTL, + PPLEQ, + PMNUN, + PSLPAS +}; + +void dance_LAYER_finished(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + layer_on(_ADJUST); + set_oneshot_layer(_ADJUST, ONESHOT_START); + } +} +void dance_LAYER_reset(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + layer_off(_ADJUST); + clear_oneshot_layer_state(ONESHOT_PRESSED); + } +} + +qk_tap_dance_action_t tap_dance_actions[] = { +[ADJ] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_LAYER_finished, dance_LAYER_reset), // Double-tap to activate Adjust layer via oneshot layer +[LBCB] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_LCBR), // Left bracket on a single-tap, left brace on a double-tap +[RBCB] = ACTION_TAP_DANCE_DOUBLE(KC_RBRC, KC_RCBR), // Right bracket on a single-tap, right brace on a double-tap +[EQPL] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, KC_PLUS), // Plus sign on a single-tap, equal sign on a double-tap +[PLEQ] = ACTION_TAP_DANCE_DOUBLE(KC_PLUS, KC_EQL), // Equal sign on a single-tap, plus sign on a double-tap +[MNUN] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, KC_UNDS), // Minus sign on a single-tap, underscore on a double-tap +[SLAS] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_ASTR), // Slash in a single-tap, asterisk in a double-tap +[GVTL] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, KC_TILD), // Grave on a single-tap, tilde on a double-tap +[PPLEQ] = ACTION_TAP_DANCE_DOUBLE(KC_PPLS, KC_EQL), // Numpad plus sign on a single-tap, equal sign on a double-tap +[PMNUN] = ACTION_TAP_DANCE_DOUBLE(KC_PMNS, KC_UNDS), // Numpad minus sign on a single-tap, underscore on a double-tap +[PSLPAS] = ACTION_TAP_DANCE_DOUBLE(KC_PSLS, KC_PAST) // Numpad slash on a single-tap, numpad asterisk on a double-tap +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Colemak Mod-DH Matrix +* (Defauit layer; keys separated by /: tap for first, hold for second; uses Space Cadet Shifts) +* ,-----------------------------------------------------------------------------------------------------------. +* | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Adjst| +* `-----------------------------------------------------------------------------------------------------------' +* ,-------------------------------------------. ,-------------------------------------------. +* | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Tab | Q | W | F | P | B | | J | L | U | Y | ; | \ | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* |Esc/Ctrl| A | R | S | T | G | | M | N | E | I | O | ' | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* |SC Shift| Z | X | C | D | V | | K | H | , | . | / |SC Shift| +* `--------+------+------+------+------+------' `------+------+------+------+------+--------' +* | Ins | ` | [ | ] | | Left | Down | Up | Right| +* `---------------------------' `---------------------------' +* ,---------------. ,---------------. +* |Esc/Ctl| Hyper | | RAlt | RCtl | +* ,-------|-------|-------| |-------+-------+-------. +* | Space | Enter |App/Alt| | RGUI | Delete| Bspc | +* | / | / |-------| |-------| / | / | +* | Fn | Number| Bspc | | Tab |Number2| Fn2 | +* `-----------------------' `-----------------------' +*/ +[_CMODDH] = KEYMAP( + // Left Hand + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, + CTLESC, KC_A, KC_R, KC_S, KC_T, KC_G, + KC_LSPO, KC_Z, KC_X, KC_C, KC_D, KC_V, + KC_INS, KC_GRV, KC_LBRC, KC_RBRC, + //Left Thumb + CTLESC, ALL_T(KC_NO), + ALT_T(KC_APP), + SPCFN, ENTNS, KC_BSPC, + //Right Hand + KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, TG(_NUMPAD), MO(_ADJUST), + KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, + KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + //Right Thumb + KC_RALT, KC_RCTL, + KC_RGUI, + KC_TAB, DELNS, BSPCFN +), + +/* QWERTY +* (Keys separated by /: tap for first, hold for second; uses Space Cadet Shifts) +* ,-----------------------------------------------------------------------------------------------------------. +* | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Adjst| +* `-----------------------------------------------------------------------------------------------------------' +* ,-------------------------------------------. ,-------------------------------------------. +* | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* |Esc/Ctrl| A | S | D | F | G | | H | J | K | L | ; | ' | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* |SC Shift| Z | X | C | V | B | | N | M | , | . | / |SC Shift| +* `--------+------+------+------+------+------' `------+------+------+------+------+--------' +* | Ins | ` | [ | ] | | Left | Down | Up | Right| +* `---------------------------' `---------------------------' +* ,---------------. ,---------------. +* |Esc/Ctl| Hyper | | RAlt | RCtl | +* ,-------|-------|-------| |-------+-------+-------. +* | Space | Enter |App/Alt| | RGUI | Delete| Bspc | +* | / | / |-------| |-------| / | / | +* | Fn | Number| Bspc | | Tab |Number2| Fn2 | +* `-----------------------' `-----------------------' +*/ +[_QWERTY] = KEYMAP( + // Left Hand + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, + CTLESC, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, + KC_INS, KC_GRV, KC_LBRC, KC_RBRC, + //Left Thumb + CTLESC, ALL_T(KC_NO), + ALT_T(KC_APP), + SPCFN, ENTNS, KC_BSPC, + + //Right Hand + KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, TG(_NUMPAD), MO(_ADJUST), + KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + //Right Thumb + KC_RALT, KC_RCTL, + KC_RGUI, + KC_TAB, DELNS, BSPCFN +), + +/* Colemak +* (Keys separated by /: tap for first, hold for second; uses Space Cadet Shifts) +* ,-----------------------------------------------------------------------------------------------------------. +* | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Adjst| +* `-----------------------------------------------------------------------------------------------------------' +* ,-------------------------------------------. ,-------------------------------------------. +* | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* |Esc/Ctrl| A | R | S | T | D | | H | N | E | I | O | ' | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* |SC Shift| Z | X | C | V | B | | K | M | , | . | / |SC Shift| +* `--------+------+------+------+------+------' `------+------+------+------+------+--------' +* | Ins | ` | [ | ] | | Left | Down | Up | Right| +* `---------------------------' `---------------------------' +* ,---------------. ,---------------. +* |Esc/Ctl| Hyper | | RAlt | RCtl | +* ,-------|-------|-------| |-------+-------+-------. +* | Space | Enter |App/Alt| | RGUI | Delete| Bspc | +* | / | / |-------| |-------| / | / | +* | Fn | Number| Bspc | | Tab |Number2| Fn2 | +* `-----------------------' `-----------------------' +*/ +[_COLEMAK] = KEYMAP( + // Left Hand + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, + CTLESC, KC_A, KC_R, KC_S, KC_T, KC_D, + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, + KC_INS, KC_GRV, KC_LBRC, KC_RBRC, + //Left Thumb + CTLESC, ALL_T(KC_NO), + ALT_T(KC_APP), + SPCFN, ENTNS, KC_BSPC, + //Right Hand + KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, TG(_NUMPAD), MO(_ADJUST), + KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, + KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + //Right Thumb + KC_RALT, KC_RCTL, + KC_RGUI, + KC_TAB, DELNS, BSPCFN +), + +/* Number/symbol layer +* (Multiple characters: single-tap for first, double-tap for second) +* ,-----------------------------------------------------------------------------------------------------------. +* | | | | | | | | | | | | | | | | | | | +* `-----------------------------------------------------------------------------------------------------------' +* ,-------------------------------------------. ,-------------------------------------------. +* | F12 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | 6 | 7 | 8 | 9 | 0 | | ^ | & | * | ( | ) | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | 1 | 2 | 3 | 4 | 5 | | ! | @ | # | $ | % | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | . | / * | - _ | + = | | ` ~ | [ { | ] } | | | | +* `--------+------+------+------+------+------' `------+------+------+------+------+--------' +* | ( | ) | [ { | ] } | | | | | | +* `---------------------------' `---------------------------' +* ,---------------. ,---------------. +* | | | | | | +* ,-------|-------|-------| |-------+-------+-------. +* | | | | | | | | +* | | |-------| |-------| | | +* | | | | | | | | +* `-----------------------' `-----------------------' +*/ +[_NUMBERS] = KEYMAP( + // Left Hand + _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + _______, KC_6, KC_7, KC_8, KC_9, KC_0, + _______, KC_1, KC_2, KC_3, KC_4, KC_5, + _______, _______, KC_DOT, TD(SLAS), TD(MNUN), TD(PLEQ), + KC_LPRN, KC_RPRN, TD(LBCB), TD(RBCB), + // Left Thumb + _______, _______, + _______, + _______, _______, _______, + // Right Hand + _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, + TD(GVTL), TD(LBCB), TD(RBCB), _______, _______, _______, + _______, _______, _______, _______, + // Right Thumb + _______, _______, + _______, + _______, _______, _______ +), + +[_NUMBERS2] = KEYMAP( + // Left Hand + _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + _______, KC_6, KC_7, KC_8, KC_9, KC_0, + _______, KC_1, KC_2, KC_3, KC_4, KC_5, + _______, _______, KC_DOT, TD(SLAS), TD(MNUN), TD(PLEQ), + KC_LPRN, KC_RPRN, TD(LBCB), TD(RBCB), + // Left Thumb + _______, _______, + _______, + _______, _______, _______, + // Right Hand + _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, + TD(GVTL), TD(LBCB), TD(RBCB), _______, _______, _______, + _______, _______, _______, _______, + // Right Thumb + _______, _______, + _______, + _______, _______, _______ +), + +/* Function layer +* ,-----------------------------------------------------------------------------------------------------------. +* | | | | | | | | | | | | | | | | | | | +* `-----------------------------------------------------------------------------------------------------------' +* ,-------------------------------------------. ,-------------------------------------------. +* | F12 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | | Up | | | | | | Up |Ctrl+Y| | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | |Ctrl+A| Left | Down | Right|C+A+Tb| | PgUp | Right| Down | Left | Home | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | |Ctrl+Z|Ctrl+X|Ctrl+C|Ctrl+V| Bspc | | PgDn | Mute | Vol- | Vol+ | End | | +* `--------+------+------+------+------+------' `------+------+------+------+------+--------' +* | | | | | | Prev | Play | Next | Stop | +* `---------------------------' `---------------------------' +* ,---------------. ,---------------. +* | | | | | | +* ,-------|-------|-------| |-------+-------+-------. +* | | | | | | | | +* | | |-------| |-------| | | +* | | | | |C+A+Tab| | | +* `-----------------------' `-----------------------' +*/ +[_FUNCTION] = KEYMAP( + // Left Hand + _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + _______, _______, _______, KC_UP, _______, _______, + _______, LCTL(KC_A), KC_LEFT, KC_DOWN, KC_RGHT, LCA(KC_TAB), + _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_BSPC, + _______, _______, _______, _______, + // Left Thumb + _______, _______, + _______, + _______, _______, _______, + // Right Hand + _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, _______, KC_UP, LCTL(KC_Y), _______, _______, + KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, _______, + KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, KC_END, _______, + KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, + // Right Thumb + _______, _______, + _______, + LCA(KC_TAB), _______, _______ +), + +[_FUNCTION2] = KEYMAP( + // Left Hand + _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + _______, _______, _______, KC_UP, _______, _______, + _______, LCTL(KC_A), KC_LEFT, KC_DOWN, KC_RGHT, LCA(KC_TAB), + _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_BSPC, + _______, _______, _______, _______, + // Left Thumb + _______, _______, + _______, + _______, _______, _______, + // Right Hand + _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, _______, KC_UP, LCTL(KC_Y), _______, _______, + KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, _______, + KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, KC_END, _______, + KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, + // Right Thumb + _______, _______, + _______, + LCA(KC_TAB), _______, _______ +), + +/* Numpad layer +* (Left side duplicates layout from the Numbers layer, just with numpad output; right side layout close to PC numpad layout) +* ,-----------------------------------------------------------------------------------------------------------. +* | | | | | | | | | | | | | | | | | | | +* `-----------------------------------------------------------------------------------------------------------' +* ,-------------------------------------------. ,-------------------------------------------. +* | | NumLk| | | | | | Tab | NumLk| KP / | kP *| KP - | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | KP 6 | KP 7 | KP 8 | KP 9 | KP 0 | | | KP 7 | KP 8 | KP 9 | KP + | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | KP 1 | KP 2 | KP 3 | KP 4 | KP 5 | | | KP 4 | KP 5 | KP 6 | = | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | KP . |KP/KP*| KP- _| KP+ =| | | KP 1 | KP 2 | KP 3 |KP Ent| | +* `--------+------+------+------+------+------' `------+------+------+------+------+--------' +* | ( | ) | [ { | ] } | | KP 0 | , | KP . |KP Ent| +* `---------------------------' `---------------------------' +* ,---------------. ,---------------. +* | | | | | | +* ,-------|-------|-------| |-------+-------+-------. +* | | | | | | | | +* | | |-------| |-------| | | +* | | | | | | | | +* `-----------------------' `-----------------------' +*/ +[_NUMPAD] = KEYMAP( + // Left Hand + _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_NLCK, _______, _______, _______, _______, + _______, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, + _______, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, + _______, _______, KC_PDOT, TD(PSLPAS), TD(PMNUN), TD(PPLEQ), + KC_LPRN, KC_RPRN, TD(LBCB), TD(RBCB), + // Left Thumb + _______, _______, + _______, + _______, _______, _______, + // Right Hand + _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_TAB, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, _______, + _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, + _______, KC_P4, KC_P5, KC_P6, KC_EQL, _______, + _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, + KC_P0, KC_COMM, KC_PDOT, KC_PENT, + // Right Thumb + _______, _______, + _______, + _______, _______, _______ +), + +/* Colemak Mod-DH Matrix gaming/vanilla +* (No access to Function or Numbers layers; mainly used for gaming; double-tap the TD(ADJ) above LAlt to access Adjust layer) +* ,-----------------------------------------------------------------------------------------------------------. +* | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Adjst| +* `-----------------------------------------------------------------------------------------------------------' +* ,-------------------------------------------. ,-------------------------------------------. +* | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Tab | Q | W | F | P | B | | J | L | U | Y | ; | \ | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Ctrl | A | R | S | T | G | | M | N | E | I | O | ' | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Shift | Z | X | C | D | V | | K | H | , | . | / | Shift | +* `--------+------+------+------+------+------' `------+------+------+------+------+--------' +* | Ins | ` | [ | ] | | Left | Down | Up | Right| +* `---------------------------' `---------------------------' +* ,---------------. ,---------------. +* |Esc/Ctl|TD(ADJ)| | RAlt | RCtl | +* ,-------|-------|-------| |-------+-------+-------. +* | | | LAlt | | RGUI | | | +* | Space | Enter |-------| |-------| Delete| Bspc | +* | | | Bspc | | Tab | | | +* `-----------------------' `-----------------------' +*/ +[_CMODDHGM] = KEYMAP( + // Left Hand + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, + KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, + KC_INS, KC_GRV, KC_LBRC, KC_RBRC, + //Left Thumb + CTLESC, TD(ADJ), + KC_LALT, + KC_SPC, KC_ENT, KC_BSPC, + //Right Hand + KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, TG(_NUMPAD), MO(_ADJUST), + KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, + KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + //Right Thumb + KC_RALT, KC_RCTL, + KC_RGUI, + KC_TAB, KC_DEL, KC_BSPC +), + +/* QWERTY gaming/vanilla +* (No access to Function or Numbers layers; mainly used for gaming; double-tap the TD(ADJ) above LAlt to access Adjust layer) +* ,-----------------------------------------------------------------------------------------------------------. +* | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Adjst| +* `-----------------------------------------------------------------------------------------------------------' +* ,-------------------------------------------. ,-------------------------------------------. +* | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Shift | Z | X | C | V | B | | N | M | , | . | / | Shift | +* `--------+------+------+------+------+------' `------+------+------+------+------+--------' +* | Ins | ` | [ | ] | | Left | Down | Up | Right| +* `---------------------------' `---------------------------' +* ,---------------. ,---------------. +* |Esc/Ctl|TD(ADJ)| | RAlt | RCtl | +* ,-------|-------|-------| |-------+-------+-------. +* | | | LAlt | | RGUI | | | +* | Space | Enter |-------| |-------| Delete| Bspc | +* | | | Bspc | | Tab | | | +* `-----------------------' `-----------------------' +*/ +[_QWERTYGM] = KEYMAP( + // Left Hand + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, + KC_INS, KC_GRV, KC_LBRC, KC_RBRC, + //Left Thumb + CTLESC, TD(ADJ), + KC_LALT, + KC_SPC, KC_ENT, KC_BSPC, + //Right Hand + KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, TG(_NUMPAD), MO(_ADJUST), + KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + //Right Thumb + KC_RALT, KC_RCTL, + KC_RGUI, + KC_TAB, KC_DEL, KC_BSPC +), + +/* Adjust layer +* (Enter/Number + Delete/Number2 under non-gaming/vanilla layers) +* ,-----------------------------------------------------------------------------------------------------------. +* | | | | | | | | | | | | | | | | | | | +* `-----------------------------------------------------------------------------------------------------------' +* ,-------------------------------------------. ,-------------------------------------------. +* | |CModDH|Qwerty|Colmak|CMoDGM| QWGM | |Numpad| | | | | RESET | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | | | | | | | | | | | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | | | | | | |NKROTG| | | | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | | | | | | | | | | | | +* `--------+------+------+------+------+------' `------+------+------+------+------+--------' +* | | | | | | | | | | +* `---------------------------' `---------------------------' +* ,---------------. ,---------------. +* | | | | | | +* ,-------|-------|-------| |-------+-------+-------. +* | | | | | | | | +* | | |-------| |-------| | | +* | | | | | | | | +* `-----------------------' `-----------------------' +*/ +[_ADJUST] = KEYMAP( + // Left Hand + _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, CMODDH, QWERTY, COLEMAK, CMODDHGM, QWERTYGM, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + // Left Thumb + _______, _______, + _______, + _______, _______, _______, + // Right Hand + _______, _______, _______, _______, _______, _______, _______, _______, _______, + TG(_NUMPAD), _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, + _______, NKROTG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + // Right Thumb + _______, _______, + _______, + _______, _______, _______ +) + +}; + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case CMODDH: + if (record->event.pressed) { + persistent_default_layer_set(1UL << _CMODDH); + layer_off ( _QWERTY); + layer_off ( _COLEMAK); + layer_off ( _NUMBERS); + layer_off ( _NUMBERS2); + layer_off ( _FUNCTION); + layer_off ( _FUNCTION2); + layer_off ( _NUMPAD); + layer_off ( _CMODDHGM); + layer_off ( _QWERTYGM); + layer_off ( _ADJUST); + } + return false; + break; + case QWERTY: + if (record->event.pressed) { + persistent_default_layer_set(1UL << _QWERTY); + layer_off ( _CMODDH); + layer_off ( _COLEMAK); + layer_off ( _NUMBERS); + layer_off ( _NUMBERS2); + layer_off ( _FUNCTION); + layer_off ( _FUNCTION2); + layer_off ( _NUMPAD); + layer_off ( _CMODDHGM); + layer_off ( _QWERTYGM); + layer_off ( _ADJUST); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + persistent_default_layer_set(1UL << _COLEMAK); + layer_off ( _CMODDH); + layer_off ( _QWERTY); + layer_off ( _NUMBERS); + layer_off ( _NUMBERS2); + layer_off ( _FUNCTION); + layer_off ( _FUNCTION2); + layer_off ( _NUMPAD); + layer_off ( _CMODDHGM); + layer_off ( _QWERTYGM); + layer_off ( _ADJUST); + } + return false; + break; + case CMODDHGM: + if (record->event.pressed) { + default_layer_set(1UL << _CMODDHGM); + layer_off ( _CMODDH); + layer_off ( _QWERTY); + layer_off ( _COLEMAK); + layer_off ( _NUMBERS); + layer_off ( _NUMBERS2); + layer_off ( _FUNCTION); + layer_off ( _FUNCTION2); + layer_off ( _NUMPAD); + layer_off ( _QWERTYGM); + layer_off ( _ADJUST); + } + return false; + break; + case QWERTYGM: + if (record->event.pressed) { + default_layer_set(1UL << _QWERTYGM); + layer_off ( _CMODDH); + layer_off ( _QWERTY); + layer_off ( _COLEMAK); + layer_off ( _NUMBERS); + layer_off ( _NUMBERS2); + layer_off ( _FUNCTION); + layer_off ( _FUNCTION2); + layer_off ( _NUMPAD); + layer_off ( _CMODDHGM); + layer_off ( _ADJUST); + } + return false; + break; + case ENTNS: + if (record->event.pressed) { + layer_on(_NUMBERS); + update_tri_layer(_NUMBERS, _NUMBERS2, _ADJUST); + } else { + layer_off(_NUMBERS); + update_tri_layer(_NUMBERS, _NUMBERS2, _ADJUST); + } + break; + case DELNS: + if (record->event.pressed) { + layer_on(_NUMBERS2); + update_tri_layer(_NUMBERS, _NUMBERS2, _ADJUST); + } else { + layer_off(_NUMBERS2); + update_tri_layer(_NUMBERS, _NUMBERS2, _ADJUST); + } + break; + } + return true; +} \ No newline at end of file diff --git a/keyboards/kinesis/keymaps/insertsnideremarks/readme.md b/keyboards/kinesis/keymaps/insertsnideremarks/readme.md new file mode 100644 index 000000000000..1920d4f9b810 --- /dev/null +++ b/keyboards/kinesis/keymaps/insertsnideremarks/readme.md @@ -0,0 +1,249 @@ +# insertsnideremarks' Kinesis Keymap + +These layouts are derived from what I was using on my Kinesis Contoured keyboards with Hasu's TMK converters. With the move to QMK via Stapelberg replacement controller, I've cleaned up the layouts a bit while adding more functions and layers. + +There are minor changes in the base keywell layout of non-alpha keys (e.g., CapsLock is ESC/Ctl, arrow clusters on one side), while the thumb clusters deviate more from the default layout. + +Changes to the thumb clusters include: +* The navigations keys moved to function layers. +* The function of 2u keys have been reversed - I've always used space with my left thumb, and I find it more helpful to have access to Space and Enter while using my mouse/trackball. +* Backspace have been duplicated on both clusters. +* The 2u keys serve dual function as momentary layer switchers. + +I've largely left the function keys untouched, with the intension of not using them. They are neither easy to use nor reach due to their locations and size, and, prior to Advantage2, particularly terrible rubber domes were used for them. They have since updated the keys with Cherry ML switches on Advantage2, but did not resolve the issues of size or location. Additionally, leaving the function keys unused here makes it easier for me to adapt the keymaps to my other keyboards, most of which do not have physical function keys. + +I use Colemak Mod-DH Matrix as my default layout. There QWERTY and Colemak layouts as well. + +Additionally, I've added gaming/vanilla version of Colemak Mod-DH Matrix and QWERTY layouts. These layouts have no access to the Function or Numbers layers, thus no dual-role keys with layer access, and are mainly used for gaming. + +Persistent default layer has been enabled for Colemak Mod-DH Matrix, QWERTY, and Colemak. The gaming/vanilla Colemak Mod-DH Matrix and QWERTY can be set as default layer, but will not be persistent. + +## Future plans + +* Add status LEDs to the Stapelberg PCB (usually used for Caps Lock, Num Lock, and Scroll Lock). May configure it as layer indicator. +* Add a speaker now that QMK supports additional pins for audio use. +* Utilize the leftover spots on the key matrix, as well as unused pins on Teensy to run macropad and/or foot pedals. + + +### Colemak Mod-DH Matrix + (Default layer, keys separated by /: tap for first, hold for second; uses Space Cadet Shifts) + ,-----------------------------------------------------------------------------------------------------------. + | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Adjst| + `-----------------------------------------------------------------------------------------------------------' + ,-------------------------------------------. ,-------------------------------------------. + | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | Tab | Q | W | F | P | B | | J | L | U | Y | ; | \ | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + |Esc/Ctrl| A | R | S | T | G | | M | N | E | I | O | ' | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + |SC Shift| Z | X | C | D | V | | K | H | , | . | / |SC Shift| + `--------+------+------+------+------+------' `------+------+------+------+------+--------' + | Ins | ` | [ | ] | | Left | Down | Up | Right| + `---------------------------' `---------------------------' + ,---------------. ,---------------. + |Esc/Ctl| Hyper | | RAlt | RCtl | + ,-------|-------|-------| |-------+-------+-------. + | Space | Enter |App/Alt| | RGUI | Delete| Bspc | + | / | / |-------| |-------| / | / | + | Fn | Number| Bspc | | Tab |Number2| Fn2 | + `-----------------------' `-----------------------' + + +### QWERTY + (Keys separated by /: tap for first, hold for second; uses Space Cadet Shifts) + ,-----------------------------------------------------------------------------------------------------------. + | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Adjst| + `-----------------------------------------------------------------------------------------------------------' + ,-------------------------------------------. ,-------------------------------------------. + | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + |Esc/Ctrl| A | S | D | F | G | | H | J | K | L | ; | ' | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + |SC Shift| Z | X | C | V | B | | N | M | , | . | / |SC Shift| + `--------+------+------+------+------+------' `------+------+------+------+------+--------' + | Ins | ` | [ | ] | | Left | Down | Up | Right| + `---------------------------' `---------------------------' + ,---------------. ,---------------. + |Esc/Ctl| Hyper | | RAlt | RCtl | + ,-------|-------|-------| |-------+-------+-------. + | Space | Enter |App/Alt| | RGUI | Delete| Bspc | + | / | / |-------| |-------| / | / | + | Fn | Number| Bspc | | Tab |Number2| Fn2 | + `-----------------------' `-----------------------' + + +### Colemak + (Keys separated by /: tap for first, hold for second; uses Space Cadet Shifts) + ,-----------------------------------------------------------------------------------------------------------. + | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Adjst| + `-----------------------------------------------------------------------------------------------------------' + ,-------------------------------------------. ,-------------------------------------------. + | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + |Esc/Ctrl| A | R | S | T | D | | H | N | E | I | O | ' | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + |SC Shift| Z | X | C | V | B | | K | M | , | . | / |SC Shift| + `--------+------+------+------+------+------' `------+------+------+------+------+--------' + | Ins | ` | [ | ] | | Left | Down | Up | Right| + `---------------------------' `---------------------------' + ,---------------. ,---------------. + |Esc/Ctl| Hyper | | RAlt | RCtl | + ,-------|-------|-------| |-------+-------+-------. + | Space | Enter |App/Alt| | RGUI | Delete| Bspc | + | / | / |-------| |-------| / | / | + | Fn | Number| Bspc | | Tab |Number2| Fn2 | + `-----------------------' `-----------------------' + + +### Numbers & Symbols layer + (Multiple characters: single-tap for first, double-tap for second) + ,-----------------------------------------------------------------------------------------------------------. + | | | | | | | | | | | | | | | | | | | + `-----------------------------------------------------------------------------------------------------------' + ,-------------------------------------------. ,-------------------------------------------. + | F12 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | 6 | 7 | 8 | 9 | 0 | | ^ | & | * | ( | ) | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | 1 | 2 | 3 | 4 | 5 | | ! | @ | # | $ | % | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | | . | / * | - _ | + = | | ` ~ | [ { | ] } | | | | + `--------+------+------+------+------+------' `------+------+------+------+------+--------' + | ( | ) | [ { | ] } | | | | | | + `---------------------------' `---------------------------' + ,---------------. ,---------------. + | | | | | | + ,-------|-------|-------| |-------+-------+-------. + | | | | | | | | + | | |-------| |-------| | | + | | | | | | | | + `-----------------------' `-----------------------' + + +### Function layer + ,-----------------------------------------------------------------------------------------------------------. + | | | | | | | | | | | | | | | | | | | + `-----------------------------------------------------------------------------------------------------------' + ,-------------------------------------------. ,-------------------------------------------. + | F12 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | | | Up | | | | | | Up |Ctrl+Y| | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | |Ctrl+A| Left | Down | Right| | | PgUp | Right| Down | Left | Home | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | |Ctrl+Z|Ctrl+X|Ctrl+C|Ctrl+V| | | PgDn | Mute | Vol- | Vol+ | End | | + `--------+------+------+------+------+------' `------+------+------+------+------+--------' + | | | | | | Prev | Play | Next | Stop | + `---------------------------' `---------------------------' + ,---------------. ,---------------. + | | | | | | + ,-------|-------|-------| |-------+-------+-------. + | | | | | | | | + | | |-------| |-------| | | + | | | | |C+A+Tab| | | + `-----------------------' `-----------------------' + + +### Numpad layer + (Left side duplicates layout from the Numbers layer, just with numpad output; right side layout close to PC numpad layout) + ,-----------------------------------------------------------------------------------------------------------. + | | | | | | | | | | | | | | | | | | | + `-----------------------------------------------------------------------------------------------------------' + ,-------------------------------------------. ,-------------------------------------------. + | | NumLk| | | | | | Tab | NumLk| KP / | kP *| KP - | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | KP 6 | KP 7 | KP 8 | KP 9 | KP 0 | | | KP 7 | KP 8 | KP 9 | KP + | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | KP 1 | KP 2 | KP 3 | KP 4 | KP 5 | | | KP 4 | KP 5 | KP 6 | = | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | | KP . |KP/KP*| KP- _| KP+ =| | | KP 1 | KP 2 | KP 3 |KP Ent| | + `--------+------+------+------+------+------' `------+------+------+------+------+--------' + | ( | ) | [ { | ] } | | KP 0 | , | KP . |KP Ent| + `---------------------------' `---------------------------' + ,---------------. ,---------------. + | | | | | | + ,-------|-------|-------| |-------+-------+-------. + | | | | | | | | + | | |-------| |-------| | | + | | | | | | | | + `-----------------------' `-----------------------' + + +### Colemak Mod-DH Matrix gaming/vanilla + (No access to Function or Numbers layers; mainly used for gaming; double-tap TD(ADJ) for one shot access to Adjust layer) + ,-----------------------------------------------------------------------------------------------------------. + | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Adjst| + `-----------------------------------------------------------------------------------------------------------' + ,-------------------------------------------. ,-------------------------------------------. + | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | Tab | Q | W | F | P | B | | J | L | U | Y | ; | \ | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | Ctrl | A | R | S | T | G | | M | N | E | I | O | ' | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | Shift | Z | X | C | D | V | | K | H | , | . | / | Shift | + `--------+------+------+------+------+------' `------+------+------+------+------+--------' + | Ins | ` | [ | ] | | Left | Down | Up | Right| + `---------------------------' `---------------------------' + ,---------------. ,---------------. + |Esc/Ctl|TD(ADJ)| | RAlt | RCtl | + ,-------|-------|-------| |-------+-------+-------. + | | | LAlt | | RGUI | | | + | Space | Enter |-------| |-------| Delete| Bspc | + | | | Bspc | | Tab | | | + `-----------------------' `-----------------------' + + +### QWERTY gaming/vanilla + (No access to Function or Numbers layers; mainly used for gaming; double-tap TD(ADJ) for one shot access to Adjust layer) + ,-----------------------------------------------------------------------------------------------------------. + | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Adjst| + `-----------------------------------------------------------------------------------------------------------' + ,-------------------------------------------. ,-------------------------------------------. + | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | Shift | Z | X | C | V | B | | N | M | , | . | / | Shift | + `--------+------+------+------+------+------' `------+------+------+------+------+--------' + | Ins | ` | [ | ] | | Left | Down | Up | Right| + `---------------------------' `---------------------------' + ,---------------. ,---------------. + |Esc/Ctl|TD(ADJ)| | RAlt | RCtl | + ,-------|-------|-------| |-------+-------+-------. + | | | LAlt | | RGUI | | | + | Space | Enter |-------| |-------| Delete| Bspc | + | | | Bspc | | Tab | | | + `-----------------------' `-----------------------' + +### Adjust layer + (Press Enter/Number + Delete/Number2 together under non-gaming/vanilla layers; Numpad is a toggle) + ,-----------------------------------------------------------------------------------------------------------. + | | | | | | | | | | | | | | | | | | | + `-----------------------------------------------------------------------------------------------------------' + ,-------------------------------------------. ,------------------------------------------ + | |CModDH|Qwerty|Colmak|CMoDGM| QWGM | |Numpad| | | | | RESET | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | | | | | | | | | | | | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | | | | | | | | NKRO | | | | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | | | | | | | | | | | | | + `--------+------+------+------+------+------' `------+------+------+------+------+--------' + | | | | | | | | | | + `---------------------------' `---------------------------' + ,---------------. ,---------------. + | | | | | | + ,-------|-------|-------| |-------+-------+-------. + | | | | | | | | + | | |-------| |-------| | | + | | | | | | | | + `-----------------------' `-----------------------' + \ No newline at end of file diff --git a/keyboards/kinesis/keymaps/salty/rules.mk b/keyboards/kinesis/keymaps/insertsnideremarks/rules.mk similarity index 86% rename from keyboards/kinesis/keymaps/salty/rules.mk rename to keyboards/kinesis/keymaps/insertsnideremarks/rules.mk index e08bf38c8bf3..e1af05cb4420 100644 --- a/keyboards/kinesis/keymaps/salty/rules.mk +++ b/keyboards/kinesis/keymaps/insertsnideremarks/rules.mk @@ -2,11 +2,13 @@ # change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # +DEFAULT_FOLDER = kinesis/stapelberg + BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = no # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls @@ -16,7 +18,6 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend TAP_DANCE_ENABLE = yes # Enable Tap Dancing function -KEY_LOCK_ENABLE = yes # Enable key lock ifndef QUANTUM_DIR include ../../../../Makefile diff --git a/keyboards/kinesis/keymaps/salty/keymap.c b/keyboards/kinesis/keymaps/salty/keymap.c deleted file mode 100644 index bfbb17adc669..000000000000 --- a/keyboards/kinesis/keymaps/salty/keymap.c +++ /dev/null @@ -1,433 +0,0 @@ -#include "kinesis.h" -#include "action_layer.h" -#include "eeconfig.h" - -#define _QW 0 // Base QWERTY -#define _CM 1 // Colemak -#define _QG 2 // QWERTY gaming -#define _NS 3 // Number/Symbol -#define _NP 4 // Numpad -#define _LY 5 // Layer switcher -#define _FN 6 // Function -#define _FN2 7 // Function 2 (identical as _FN; used to deal with minor key interaction issue) - -#define _______ KC_TRNS -#define XXXXXXX KC_NO - -//Tap Dance Declarations -enum { - LPN_LBC, - RPN_RBC -}; - -qk_tap_dance_action_t tap_dance_actions[] = { -[LPN_LBC] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_LBRC), -[RPN_RBC] = ACTION_TAP_DANCE_DOUBLE(KC_RPRN, KC_RBRC) -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* QWERTY -* (Keys separated by /: tap for first, hold for second) -* ,-----------------------------------------------------------------------------------------------------------. -* | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Layer| -* `-----------------------------------------------------------------------------------------------------------' -* ,-------------------------------------------. ,-------------------------------------------. -* | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | Esc | A | S | D | F | G | | H | J | K | L | ; | ' | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | Shift | Z | X | C | V | B | | N | M | , | . | / | Shift | -* `--------+------+------+------+------+------' `------+------+------+------+------+--------' -* | ` | | [ | ] | | Left | Down | Up | Right| -* `---------------------------' `---------------------------' -* ,--------------. ,--------------. -* | LCtl | LAlt | | RAlt | RCtl | -* ,------|-------|------| |------+-------+------. -* | Space| Enter | App | | RGUI | Delete| Bspc | -* | / | / |------| |------| / | / | -* | Fn | Number| Bspc | | Enter| Number| Fn2 | -* `---------------------' `---------------------' -*/ -[_QW] = KEYMAP( - // Left Hand - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, - KC_GRV, XXXXXXX, KC_LBRC, KC_RBRC, - //Left Thumb - KC_LCTL, KC_LALT, - KC_APP, - LT(_FN, KC_SPC), LT(_NS, KC_ENT), KC_BSPC, - //Right Hand - KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, TG(_NP), MO(_LY), - KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, - //Right Thumb - KC_RALT, KC_RCTL, - KC_RGUI, - KC_ENT, LT(_NS, KC_DEL), LT(_FN2, KC_BSPC) -), - -/* Colemak -* (Keys separated by /: tap for first, hold for second) -* ,-----------------------------------------------------------------------------------------------------------. -* | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Layer| -* `-----------------------------------------------------------------------------------------------------------' -* ,-------------------------------------------. ,-------------------------------------------. -* | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | Esc | A | R | S | T | D | | H | N | E | I | O | ' | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | Shift | Z | X | C | V | B | | K | M | , | . | / | Shift | -* `--------+------+------+------+------+------' `------+------+------+------+------+--------' -* | ` | | [ | ] | | Left | Down | Up | Right| -* `---------------------------' `---------------------------' -* ,--------------. ,--------------. -* | LCtl | LAlt | | RAlt | RCtl | -* ,------|-------|------| |------+-------+------. -* | Space| Enter | App | | RGUI | Delete| Bspc | -* | / | / |------| |------| / | / | -* | Fn | Number| Bspc | | Enter| Number| Fn2 | -* `---------------------' `---------------------' -*/ -[_CM] = KEYMAP( - // Left Hand - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, - KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, - KC_GRV, XXXXXXX, KC_LBRC, KC_RBRC, - //Left Thumb - KC_LCTL, KC_LALT, - KC_APP, - LT(_FN, KC_SPC), LT(_NS, KC_ENT), KC_BSPC, - //Right Hand - KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, TG(_NP), MO(_LY), - KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, - KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, - KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, - //Right Thumb - KC_RALT, KC_RCTL, - KC_RGUI, - KC_ENT, LT(_NS, KC_DEL), LT(_FN2, KC_BSPC) -), - -/* QWERTY Gaming -* (Keys separated by /: tap for first, hold for second; no access to Fn layer) -* ,-----------------------------------------------------------------------------------------------------------. -* | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Layer| -* `-----------------------------------------------------------------------------------------------------------' -* ,-------------------------------------------. ,-------------------------------------------. -* | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | Esc | A | S | D | F | G | | H | J | K | L | ; | ' | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | Shift | Z | X | C | V | B | | N | M | , | . | / | Shift | -* `--------+------+------+------+------+------' `------+------+------+------+------+--------' -* | ` | | [ | ] | | Left | Down | Up | Right| -* `---------------------------' `---------------------------' -* ,--------------. ,--------------. -* | LCtl | LAlt | | RAlt | RCtl | -* ,------|-------|------| |------+-------+------. -* | | Enter | | | RGUI | Delete| | -* | Space| / |------| |------| / | Bspc | -* | | Number| Bspc | | Enter| Number| | -* `---------------------' `---------------------' -*/ -[_QG] = KEYMAP( - // Left Hand - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, - KC_GRV, XXXXXXX, KC_LBRC, KC_RBRC, - //Left Thumb - KC_LCTL, KC_LALT, - XXXXXXX, - KC_SPC, LT(_NS, KC_ENT), KC_BSPC, - //Right Hand - KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, TG(_NP), MO(_LY), - KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, - //Right Thumb - KC_RALT, KC_RCTL, - KC_RGUI, - KC_ENT, LT(_NS, KC_DEL), KC_BSPC -), - -/* Number/symbol layer -* ,-----------------------------------------------------------------------------------------------------------. -* | | | | | | | | | | | | | | | | | | | -* `-----------------------------------------------------------------------------------------------------------' -* ,-------------------------------------------. ,-------------------------------------------. -* | F12 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | | ! | @ | # | $ | % | | ^ | & | * | ` | ~ | | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | | = | { | [ | ( | + | | _ | ) | ] | } | - | | -* `--------+------+------+------+------+------' `------+------+------+------+------+--------' -* | | | | | | | | | | -* `---------------------------' `---------------------------' -* ,-------------. ,-------------. -* | | | | | | -* ,------|------|------| |------+------+------. -* | | | | | | | | -* | | |------| |------| | | -* | | | | | | | | -* `--------------------' `--------------------' -*/ -[_NS] = KEYMAP( - // Left Hand - _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, - _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, - _______, KC_1, KC_2, KC_3, KC_4, KC_5, - _______, KC_EQL, KC_LCBR, KC_LBRC, KC_LPRN, KC_PLUS, - _______, _______, _______, _______, - // Left Thumb - _______, _______, - _______, - _______, _______, _______, - // Right Hand - _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_CIRC, KC_AMPR, KC_ASTR, KC_GRV, KC_TILD, _______, - KC_6, KC_7, KC_8, KC_9, KC_0, _______, - KC_UNDS, KC_RPRN, KC_RBRC, KC_RCBR, KC_MINS, _______, - _______, _______, _______, _______, - // Right Thumb - _______, _______, - _______, - _______, _______, _______ -), - -/* Numpad layer -* ,-----------------------------------------------------------------------------------------------------------. -* | | | | | | | | | | | | | | | | | | | -* `-----------------------------------------------------------------------------------------------------------' -* ,-------------------------------------------. ,-------------------------------------------. -* | | | | | | | | NumLk| Tab | KP / | kP *| KP - | | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | | | | Up | | | | | KP 7 | KP 8 | KP 9 | KP + | | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | | | Left | Down | Right| | | | KP 4 | KP 5 | KP 6 | KP = | | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | | | | | | | | | KP 1 | KP 2 | KP 3 |KP Ent| | -* `--------+------+------+------+------+------' `------+------+------+------+------+--------' -* | | INS | | | | | KP , | KP . |KP Ent| -* `---------------------------' `---------------------------' -* ,-------------. ,-------------. -* | | | | | | -* ,------|------|------| |------+------+------. -* | | | | | | | | -* | | |------| |------| | KP 0 | -* | | | | | | | | -* `--------------------' `--------------------' -*/ -[_NP] = KEYMAP( - // Left Hand - _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_UP, _______, _______, - _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, - _______, _______, _______, _______, _______, _______, - _______, KC_INS, _______, _______, - // Left Thumb - _______, _______, - _______, - _______, _______, _______, - // Right Hand - _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_NLCK, KC_TAB, KC_PSLS, KC_PAST, KC_PMNS, _______, - _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, - _______, KC_P4, KC_P5, KC_P6, KC_PEQL, _______, - _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, - _______, KC_PCMM, KC_PDOT, KC_PENT, - // Right Thumb - _______, _______, - _______, - _______, _______, KC_P0 -), - -/* Layer switch layer -* ,-----------------------------------------------------------------------------------------------------------. -* | | | | | | | | | | | | | | | | | | | -* `-----------------------------------------------------------------------------------------------------------' -* ,-------------------------------------------. ,-------------------------------------------. -* | |QWERTY|Colemk|QW GM | | | | | | | | | | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | | | | | | | | | | | | | | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | | | | | | | | | | | | | | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | | | | | | | | | | | | | | -* `--------+------+------+------+------+------' `------+------+------+------+------+--------' -* | | | | | | | | | | -* `---------------------------' `---------------------------' -* ,-------------. ,-------------. -* | | | | | | -* ,------|------|------| |------+------+------. -* | | | | | | | | -* | | |------| |------| | | -* | | | | | | | | -* `--------------------' `--------------------' -*/ -[_LY] = KEYMAP( - // Left Hand - _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, DF(_QW), DF(_CM), DF(_QG), _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, - // Left Thumb - _______, _______, - _______, - _______, _______, _______, - // Right Hand - _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, - // Right Thumb - _______, _______, - _______, - _______, _______, _______ -), - -/* Function layer -* ,-----------------------------------------------------------------------------------------------------------. -* | | | | | | | | | |RESET| | | | | | | | | -* `-----------------------------------------------------------------------------------------------------------' -* ,-------------------------------------------. ,-------------------------------------------. -* | F12 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | | | | Up | |Alt+Tb| | | Home | Up | End | | | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | | | Left | Down | Right| | | PgUp | Right| Down | Left | | | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | | | Prev | Play | Next | Stop | | PgDn | Mute | Vol- | Vol+ | | | -* `--------+------+------+------+------+------' `------+------+------+------+------+--------' -* | | INS | | | | | | | | -* `---------------------------' `---------------------------' -* ,-------------. ,-------------. -* | | | | | | -* ,------|------|------| |------+------+------. -* | | | | | | | | -* | | |------| |------| | | -* | | | | | | | | -* `--------------------' `--------------------' -*/ -[_FN] = KEYMAP( - // Left Hand - _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, - _______, _______, _______, KC_UP, _______, LALT(KC_TAB), - _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, - _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, - _______, KC_INS, _______, _______, - // Left Thumb - _______, _______, - _______, - _______, _______, _______, - // Right Hand - RESET, _______, _______, _______, _______, _______, _______, _______, _______, - KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - _______, KC_HOME, KC_UP, KC_END, _______, _______, - KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, - KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - _______, _______, _______, _______, - // Right Thumb - _______, _______, - _______, - _______, _______, _______ -), - -[_FN2] = KEYMAP( - // Left Hand - _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, - _______, _______, _______, KC_UP, _______, LALT(KC_TAB), - _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, - _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, - _______, KC_INS, _______, _______, - // Left Thumb - _______, _______, - _______, - _______, _______, _______, - // Right Hand - RESET, _______, _______, _______, _______, _______, _______, _______, _______, - KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - _______, KC_HOME, KC_UP, KC_END, _______, _______, - KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, - KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - _______, _______, _______, _______, - // Right Thumb - _______, _______, - _______, - _______, _______, _______ -) - -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; - - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - -} - - - diff --git a/keyboards/kinesis/keymaps/salty/readme.md b/keyboards/kinesis/keymaps/salty/readme.md deleted file mode 100644 index 4c7096423915..000000000000 --- a/keyboards/kinesis/keymaps/salty/readme.md +++ /dev/null @@ -1,14 +0,0 @@ -# Salty's Kinesis Keymap - -These layouts are derived from what I was using on my Kinesis Contoured keyboards through TMK converters. With the move to QMK through Stapelberg replacement controller, I've cleaned up the layouts a bit while adding number/symbol layer. - -There are only minor changes in the base keywell layout (e.g., CapsLock is ESC, arrow clusters on one side), while the thumb clusters deviate more from the default layout. - -Changes to the thumb clusters include: -* The navigations keys moved to Fn layers. -* The function of 2u keys have been reversed - I've always used space with my left thumb, and I find it more helpful to have access to Space and Enter while using my mouse/trackball. -* Enter and Backspace have been duplicated on both clusters. -* The 2u keys serve dual function as momentary layer switchers. - -I'm frequently fiddle around with the layouts as I find certain things I want to try out. - From 0ce2cc89154ce745bea04e10ad1ff4074ef564c9 Mon Sep 17 00:00:00 2001 From: Eric <22215921+ericywl@users.noreply.github.com> Date: Sat, 21 Apr 2018 00:12:15 +0800 Subject: [PATCH 244/578] Added dz60/eric and hhkb/eric (#2772) * added hhkb eric * dz60 and hhkb --- keyboards/dz60/keymaps/eric/keymap.c | 85 ++++++++++++++++++++++++++++ keyboards/hhkb/keymaps/eric/keymap.c | 78 +++++++++++++++++++++++++ 2 files changed, 163 insertions(+) create mode 100644 keyboards/dz60/keymaps/eric/keymap.c create mode 100644 keyboards/hhkb/keymaps/eric/keymap.c diff --git a/keyboards/dz60/keymaps/eric/keymap.c b/keyboards/dz60/keymaps/eric/keymap.c new file mode 100644 index 000000000000..730d750c4a07 --- /dev/null +++ b/keyboards/dz60/keymaps/eric/keymap.c @@ -0,0 +1,85 @@ +#include "dz60.h" + +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Layer 0 +* ,-----------------------------------------------------------------------------------------. +* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ~ | +* |-----------------------------------------------------------------------------------------+ +* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bkspc | +* |-----------------------------------------------------------------------------------------+ +* | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | +* |-----------------------------------------------------------------------------------------+ +* | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn | +* |-----------------------------------------------------------------------------------------+ +* | Ctrl | GUI | Alt | Space | Alt | GUI | Ctrl | +* `-----------------------------------------------------------------------------------------' +*/ + + KEYMAP_2_SHIFTS( + 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, KC_GRV, + 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, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, MO(2)), + + + + /* Layer 1 +* ,-----------------------------------------------------------------------------------------. +* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | INS | Del | +* |-----------------------------------------------------------------------------------------+ +* | | PGUP | UP | PGDN | HOME | & | | | | | Prnt | UP | Del | Bkspc | +* |-----------------------------------------------------------------------------------------+ +* | | LEFT | DWN | RGHT | END | * | | | PGUP | HOME | LEFT | RGHT | | +* |-----------------------------------------------------------------------------------------+ +* | | _ | + | ( | ) | | | ~ | | PGDN | END | DWN | | | +* |-----------------------------------------------------------------------------------------+ +* | | | | | | | | +* `-----------------------------------------------------------------------------------------' +*/ + + + KEYMAP_2_SHIFTS( + KC_TRNS, 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, + KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_HOME, KC_AMPR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_UP, KC_DEL, KC_BSPC, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_ASTR, KC_TRNS, KC_TRNS, KC_PGUP, KC_HOME, KC_LEFT, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LPRN, KC_RPRN, KC_PIPE, KC_TILD, KC_TRNS, KC_PGDN, KC_END, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; + +enum function_id { + SHIFT_ESC, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +} \ No newline at end of file diff --git a/keyboards/hhkb/keymaps/eric/keymap.c b/keyboards/hhkb/keymaps/eric/keymap.c new file mode 100644 index 000000000000..17351ba01add --- /dev/null +++ b/keyboards/hhkb/keymaps/eric/keymap.c @@ -0,0 +1,78 @@ +/* -*- eval: (turn-on-orgtbl); -*- + * default HHKB Layout + */ +#include "hhkb.h" + +#define BASE 0 +#define HHKB 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* BASE Level: Default Layer + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Cont | A | S | D | F | G | H | J | K | L | ; | ' | Ent | | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 | | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + + |------+------+-----------------------+------+------| + | LAlt | LGUI | ******* Space ******* | RGUI | RAlt | + |------+------+-----------------------+------+------| + */ + + [BASE] = KEYMAP( // default layer + 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, KC_GRV, \ + 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, \ + 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_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), \ + KC_LGUI, KC_LALT, /* */ KC_SPC, KC_RALT, KC_RGUI), + + + + /* Layer HHKB: HHKB mode (HHKB Fn) + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | Caps | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | PgU | Up | PgD | Hm | & | | | | | Psc | Up | Del | Backs | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | Lef | Dow | Rig | En | * | | | PgU | Hom | Lef | Rig | Enter | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | _ | + | ( | ) | | | ~ | | PgD | End | Dow | | | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + + |------+------+----------------------+------+------+ + | **** | **** | ******************** | **** | **** | + |------+------+----------------------+------+------+ + + */ + + [HHKB] = KEYMAP( + KC_CAPS, 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, \ + KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_HOME, KC_AMPR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_UP, KC_DEL, KC_BSPC, \ + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_ASTR, KC_TRNS, KC_TRNS, KC_PGUP, KC_HOME, KC_LEFT, KC_RGHT, KC_TRNS, \ + KC_TRNS, KC_UNDS, KC_PLUS, KC_LPRN, KC_RPRN, KC_PIPE, KC_TILD, KC_TRNS, KC_PGDN, KC_END, KC_DOWN, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)}; + + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; From 3ea8bcb8ae768f43218a5d1e0934867059259f92 Mon Sep 17 00:00:00 2001 From: Thanh Hai Mai Date: Fri, 20 Apr 2018 09:13:14 -0700 Subject: [PATCH 245/578] Add Carpalx keymap for Kinesis (#2771) --- keyboards/kinesis/keymaps/carpalx/config.h | 8 + keyboards/kinesis/keymaps/carpalx/keymap.c | 203 ++++++++++++++++++++ keyboards/kinesis/keymaps/carpalx/readme.md | 83 ++++++++ keyboards/kinesis/keymaps/carpalx/rules.mk | 21 ++ 4 files changed, 315 insertions(+) create mode 100644 keyboards/kinesis/keymaps/carpalx/config.h create mode 100644 keyboards/kinesis/keymaps/carpalx/keymap.c create mode 100644 keyboards/kinesis/keymaps/carpalx/readme.md create mode 100644 keyboards/kinesis/keymaps/carpalx/rules.mk diff --git a/keyboards/kinesis/keymaps/carpalx/config.h b/keyboards/kinesis/keymaps/carpalx/config.h new file mode 100644 index 000000000000..8893d122e04b --- /dev/null +++ b/keyboards/kinesis/keymaps/carpalx/config.h @@ -0,0 +1,8 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here + +#endif diff --git a/keyboards/kinesis/keymaps/carpalx/keymap.c b/keyboards/kinesis/keymaps/carpalx/keymap.c new file mode 100644 index 000000000000..0ef454bc2d22 --- /dev/null +++ b/keyboards/kinesis/keymaps/carpalx/keymap.c @@ -0,0 +1,203 @@ +#include "kinesis.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +#define _CX 0 // Carpalx layer +#define _QW 1 // Qwerty layer +#define _KP 2 // Keypad + Media Layer + +// Macro name shortcuts +#define DVORAK M(_DV) +#define QWERTY M(_QW) +#define COLEMAK M(_CM) + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +/* + + Function Keys on All Layers (Keypad toggles): + ,---------------------------------------------------------------. + | L0 | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | + `---------------------------------------------------------------' + ,---------------------------------------------------------------. + | F9 | F10 | F11 | F12 | PSCR | L1 | L2 | L2 | RESET | + `---------------------------------------------------------------' + + L0 Carpalx layer: + ,-------------------------------------------.,-------------------------------------------. + | Del | 1 | 3 | 5 | 7 | 9 || 0 | 8 | 6 | 4 | 2 | - | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | Tab | Q | G | M | L | W || B | Y | U | V | ; | = | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | ESC | D | S | T | N | R || I | A | E | O | H | ' | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | LShift | Z | X | C | F | J || K | P | , | . | / | RShift | + `--------+------+------+------+------+------'`------+------+------+------+------+--------' + | ` | [ | Left | Rght | | Dn | Up | ] | \ | + `---------------------------' `---------------------------' + ,----------------.,----------------. + | LCtl | LAlt || LAlt | RCtl | + ,------|-------|--------||--------+-------+-------. + | | | RGUI || RGUI | | | + | BkSp | ESC |--------||--------| Enter | Space | + | | | MO(L2) || MO(L2) | | | + `-----------------------'`------------------------' + + L1 QWERTY layer: + ,-------------------------------------------.,-------------------------------------------. + | Del | 1 | 3 | 5 | 7 | 9 || 0 | 8 | 6 | 4 | 2 | - | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | Tab | Q | W | E | R | T || Y | U | I | O | P | = | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | ESC | A | S | D | F | G || H | J | K | L | ; | ' | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | LShift | Z | X | C | V | B || N | M | , | . | / | RShift | + `--------+------+------+------+------+------'`------+------+------+------+------+--------' + | ` | [ | Left | Rght | | Dn | Up | ] | \ | + `---------------------------' `---------------------------' + ,----------------.,----------------. + | LCtl | LAlt || LAlt | RCtl | + ,------|-------|--------||--------+-------+-------. + | | | RGUI || RGUI | | | + | BkSp | ESC |--------||--------| Enter | Space | + | | | MO(L1) || MO(L2) | | | + `-----------------------'`------------------------' + + L2 Keypad + Media layer: + ,-------------------------------------------.,-------------------------------------------. + | | | | | | || | NmLk | KP = | KP / | KP * | | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | | | Mute | Vol- | Vol+ | || | KP 7 | KP 8 | KP 9 | KP - | | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | | Stop | Prev | Play | Next | Sel || | KP 4 | KP 5 | KP 6 | KP + | | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | | | | | | || | KP 1 | KP 2 | KP 3 |KP Ent| | + `--------+------+------+------+------+------'`------+------+------+------+------+--------' + | | | | | | ( | ) | KP . |KP Ent| | + `---------------------------' `----------------------------------' + ,----------------.,----------------. + | | || | | + ,------|-------|--------||--------+-------+-------. + | | | || | | | + | | |--------||--------|KP Entr| KP 0 | + | | | || | | | + `-----------------------'`------------------------' +*/ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_CX] = KEYMAP( + // Left Hand + TO(_CX), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, + KC_DEL, KC_1, KC_3, KC_5, KC_7, KC_9, + KC_TAB, KC_Q, KC_G, KC_M, KC_L, KC_W, + KC_ESC, KC_D, KC_S, KC_T, KC_N, KC_R, + KC_LSFT, KC_Z, KC_X, KC_C, KC_F, KC_J, + KC_GRV, KC_LBRC, KC_LEFT, KC_RGHT, + // Left Thumb + KC_LCTL, KC_LALT, + KC_RGUI, + KC_BSPC, KC_ESC, MO(_KP), + + // Right Hand + KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, TO(_QW), TO(_KP), TO(_KP), RESET, + KC_0, KC_8, KC_6, KC_4, KC_2, KC_MINS, + KC_B, KC_Y, KC_U, KC_V, KC_SCLN, KC_EQL, + KC_I, KC_A, KC_E, KC_O, KC_H, KC_QUOT, + KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_DOWN, KC_UP, KC_RBRC, KC_BSLS, + // Right Thumb + KC_RALT, KC_RCTL, + KC_RGUI, + MO(_KP), KC_ENT, KC_SPC + ), + +[_QW] = KEYMAP( + // Left Hand + _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, KC_Q, KC_W, KC_E, KC_R, KC_T, + _______, KC_A, KC_S, KC_D, KC_F, KC_G, + _______, KC_Z, KC_X, KC_C, KC_V, KC_B, + _______, _______, _______, _______, + // Left Thumb + _______, _______, + _______, + _______, _______, _______, + + // Right Hand + _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + KC_Y, KC_U, KC_I, KC_O, KC_P, _______, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, _______, + KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, + _______, _______, _______, _______, + // Right Thumb + _______, _______, + _______, + _______, _______, _______ + ), + +[_KP] = KEYMAP( + // Left Hand + _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, + _______, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSEL, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + // Left Thumb + _______, _______, + _______, + _______, _______, _______, + + // Right Hand */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_NLCK, KC_PEQL, KC_PSLS, KC_PAST, _______, + _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______, + _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, + _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, + KC_LPRN, KC_RPRN, KC_PDOT, KC_PENT, + // Right Thumb + _______, _______, + _______, + _______, KC_PENT, KC_P0 + ) + +}; + + +const uint16_t PROGMEM fn_actions[] = { + +}; + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case _CX: + if (record->event.pressed) { + persistent_default_layer_set(1UL<<_CX); + } + break; + case _QW: + if (record->event.pressed) { + persistent_default_layer_set(1UL<<_QW); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; diff --git a/keyboards/kinesis/keymaps/carpalx/readme.md b/keyboards/kinesis/keymaps/carpalx/readme.md new file mode 100644 index 000000000000..aa57b60a52a1 --- /dev/null +++ b/keyboards/kinesis/keymaps/carpalx/readme.md @@ -0,0 +1,83 @@ +# Carpalx Kinesis Keymap + +## About this keymap + +Carpalx layout (also known as QGMLWBY) is an optimized alternative keyboard layout. +Learn more about it at: +[http://mkweb.bcgsc.ca/carpalx/?popular_alternatives]() + +The layout also includes a QWERTY layer to help with the transition. + - Scroll Lock: QWERTY layer + - Esc (Fn row): Carpalx layer + - Keypad: Keypad and Media layer + +## Details mapping + + Function Keys on All Layers (Keypad toggles): + ,---------------------------------------------------------------. + | L0 | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | + `---------------------------------------------------------------' + ,---------------------------------------------------------------. + | F9 | F10 | F11 | F12 | PSCR | L1 | L2 | L2 | RESET | + `---------------------------------------------------------------' + + L0 Carpalx layer: + ,-------------------------------------------.,-------------------------------------------. + | Del | 1 | 3 | 5 | 7 | 9 || 0 | 8 | 6 | 4 | 2 | - | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | Tab | Q | G | M | L | W || B | Y | U | V | ; | = | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | ESC | D | S | T | N | R || I | A | E | O | H | ' | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | LShift | Z | X | C | F | J || K | P | , | . | / | RShift | + `--------+------+------+------+------+------'`------+------+------+------+------+--------' + | ` | [ | Left | Rght | | Dn | Up | ] | \ | + `---------------------------' `---------------------------' + ,----------------.,----------------. + | LCtl | LAlt || LAlt | RCtl | + ,------|-------|--------||--------+-------+-------. + | | | RGUI || RGUI | | | + | BkSp | ESC |--------||--------| Enter | Space | + | | | MO(L2) || MO(L2) | | | + `-----------------------'`------------------------' + + L1 QWERTY layer: + ,-------------------------------------------.,-------------------------------------------. + | Del | 1 | 3 | 5 | 7 | 9 || 0 | 8 | 6 | 4 | 2 | - | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | Tab | Q | W | E | R | T || Y | U | I | O | P | = | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | ESC | A | S | D | F | G || H | J | K | L | ; | ' | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | LShift | Z | X | C | V | B || N | M | , | . | / | RShift | + `--------+------+------+------+------+------'`------+------+------+------+------+--------' + | ` | [ | Left | Rght | | Dn | Up | ] | \ | + `---------------------------' `---------------------------' + ,----------------.,----------------. + | LCtl | LAlt || LAlt | RCtl | + ,------|-------|--------||--------+-------+-------. + | | | RGUI || RGUI | | | + | BkSp | ESC |--------||--------| Enter | Space | + | | | MO(L1) || MO(L2) | | | + `-----------------------'`------------------------' + + L2 Keypad + Media layer: + ,-------------------------------------------.,-------------------------------------------. + | | | | | | || | NmLk | KP = | KP / | KP * | | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | | | Mute | Vol- | Vol+ | || | KP 7 | KP 8 | KP 9 | KP - | | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | | Stop | Prev | Play | Next | Sel || | KP 4 | KP 5 | KP 6 | KP + | | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | | | | | | || | KP 1 | KP 2 | KP 3 |KP Ent| | + `--------+------+------+------+------+------'`------+------+------+------+------+--------' + | | | | | | ( | ) | KP . |KP Ent| | + `---------------------------' `----------------------------------' + ,----------------.,----------------. + | | || | | + ,------|-------|--------||--------+-------+-------. + | | | || | | | + | | |--------||--------|KP Entr| KP 0 | + | | | || | | | + `-----------------------'`------------------------' + diff --git a/keyboards/kinesis/keymaps/carpalx/rules.mk b/keyboards/kinesis/keymaps/carpalx/rules.mk new file mode 100644 index 000000000000..1854d35df24b --- /dev/null +++ b/keyboards/kinesis/keymaps/carpalx/rules.mk @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif From 0912c42f04e7c96c80cc9f48c258082e5ba31e2d Mon Sep 17 00:00:00 2001 From: Kenneth Aloysius Date: Sat, 21 Apr 2018 02:14:40 +1000 Subject: [PATCH 246/578] Add Staryu macropad support (#2768) * Add M6-A keymap * Update XD60 keymap * Update XD60 keymap readme * Update JJ40 and Let's Split keymaps * Add readme for M6-A * Fix typo, update JJ40 README * Update jj40 readme * Cleanup jj40 keymap * Revert Let's Split QWERTY layer to default before #2010 * Update numpad layers * Fix: Let's Split keymap getting stuck mods due to having keycodes assigned on the Raise layer * Keep ASCII art consistent with keymap * Staryu: initial port * Add personal keymap * Added and updated READMEs * Fix: default keymap for staryu * Rudimentary backlight support. * Enabled mousekeys for default keymap * use QMK_KEYBOARD_H and LAYOUT * Update readme.md for NIU mini: flash using avrdude * Fix missing linebreaks for Staryu README * Update readme.md --- keyboards/hhkb/keymaps/krusli/config.h | 1 + keyboards/hhkb/keymaps/krusli/keymap.c | 78 +++++++++++++++ keyboards/lets_split/keymaps/default/keymap.c | 15 ++- keyboards/niu_mini/readme.md | 2 +- keyboards/staryu/backlight_staryu.c | 52 ++++++++++ keyboards/staryu/backlight_staryu.h | 12 +++ keyboards/staryu/config.h | 74 ++++++++++++++ keyboards/staryu/keymaps/default/README.md | 3 + keyboards/staryu/keymaps/default/keymap.c | 82 ++++++++++++++++ keyboards/staryu/keymaps/default/rules.mk | 1 + keyboards/staryu/keymaps/krusli/README.md | 9 ++ keyboards/staryu/keymaps/krusli/keymap.c | 97 +++++++++++++++++++ keyboards/staryu/readme.md | 15 +++ keyboards/staryu/rules.mk | 60 ++++++++++++ keyboards/staryu/staryu.c | 26 +++++ keyboards/staryu/staryu.h | 28 ++++++ 16 files changed, 546 insertions(+), 9 deletions(-) create mode 100644 keyboards/hhkb/keymaps/krusli/config.h create mode 100644 keyboards/hhkb/keymaps/krusli/keymap.c create mode 100644 keyboards/staryu/backlight_staryu.c create mode 100644 keyboards/staryu/backlight_staryu.h create mode 100755 keyboards/staryu/config.h create mode 100644 keyboards/staryu/keymaps/default/README.md create mode 100755 keyboards/staryu/keymaps/default/keymap.c create mode 100644 keyboards/staryu/keymaps/default/rules.mk create mode 100644 keyboards/staryu/keymaps/krusli/README.md create mode 100644 keyboards/staryu/keymaps/krusli/keymap.c create mode 100644 keyboards/staryu/readme.md create mode 100755 keyboards/staryu/rules.mk create mode 100755 keyboards/staryu/staryu.c create mode 100755 keyboards/staryu/staryu.h diff --git a/keyboards/hhkb/keymaps/krusli/config.h b/keyboards/hhkb/keymaps/krusli/config.h new file mode 100644 index 000000000000..af2fb9d8a52e --- /dev/null +++ b/keyboards/hhkb/keymaps/krusli/config.h @@ -0,0 +1 @@ +#define USB_MAX_POWER_CONSUMPTION 100 diff --git a/keyboards/hhkb/keymaps/krusli/keymap.c b/keyboards/hhkb/keymaps/krusli/keymap.c new file mode 100644 index 000000000000..bd5dd8372d50 --- /dev/null +++ b/keyboards/hhkb/keymaps/krusli/keymap.c @@ -0,0 +1,78 @@ +/* -*- eval: (turn-on-orgtbl); -*- + * default HHKB Layout + */ +#include "hhkb.h" + +#define BASE 0 +#define HHKB 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* BASE Level: Default Layer + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Cont | A | S | D | F | G | H | J | K | L | ; | ' | Ent | | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 | | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + + |------+------+-----------------------+------+------| + | LAlt | LGUI | ******* Space ******* | RGUI | RAlt | + |------+------+-----------------------+------+------| + */ + + [BASE] = KEYMAP( // default layer + 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, KC_GRV, \ + 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, \ + 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_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), \ + KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT), + + + + /* Layer HHKB: HHKB mode (HHKB Fn) + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | Caps | | | | | | | | Psc | Slk | Pus | Up | | Backs | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | | | | | | + | - | End | PgD | Dow | | | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + + |------+------+----------------------+------+------+ + | **** | **** | ******************** | **** | **** | + |------+------+----------------------+------+------+ + + */ + + [HHKB] = KEYMAP( + 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, \ + 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_BSPC, \ + 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_PENT, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)}; + + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/lets_split/keymaps/default/keymap.c b/keyboards/lets_split/keymaps/default/keymap.c index 7cc9e53c023c..a2d9c27eb757 100644 --- a/keyboards/lets_split/keymaps/default/keymap.c +++ b/keyboards/lets_split/keymaps/default/keymap.c @@ -31,21 +31,20 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty * ,-----------------------------------------------------------------------------------. - * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Tab | A | S | D | F | G | H | J | K | L | ; | " | + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * |Adjust| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ - -[_QWERTY] = LAYOUT( \ - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ - KC_LCTRL,KC_LGUI, KC_LALT, ADJUST, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +[_QWERTY] = KEYMAP( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ + ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ ), /* Colemak diff --git a/keyboards/niu_mini/readme.md b/keyboards/niu_mini/readme.md index 6955343b9f00..91f0cd4b6c64 100644 --- a/keyboards/niu_mini/readme.md +++ b/keyboards/niu_mini/readme.md @@ -11,6 +11,6 @@ Hardware Availability: [KBDFans](https://kbdfans.myshopify.com/products/niu-mini Make example for this keyboard (after setting up your build environment): - make niu_mini:default + make niu_mini:default:avrdude See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/staryu/backlight_staryu.c b/keyboards/staryu/backlight_staryu.c new file mode 100644 index 000000000000..6fb9713f3a76 --- /dev/null +++ b/keyboards/staryu/backlight_staryu.c @@ -0,0 +1,52 @@ +#include "backlight.h" +#include + +/* backlighting */ +void init_backlight_led(void) +{ + DDRC |= (1< + +void init_backlight_led(void); + +void backlight_led_on(uint8_t index); + +void backlight_led_off(uint8_t index); + +#endif diff --git a/keyboards/staryu/config.h b/keyboards/staryu/config.h new file mode 100755 index 000000000000..268fe991acf1 --- /dev/null +++ b/keyboards/staryu/config.h @@ -0,0 +1,74 @@ +/* +Copyright 2018 Cole Markham + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x1209 +#define PRODUCT_ID 0x2328 +#define DEVICE_VER 0x0205 +#define MANUFACTURER K.T.E.C. +#define PRODUCT Staryu +#define DESCRIPTION 5-key macropad + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 5 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { } +#define MATRIX_COL_PINS { D0, D1, D2, D3, D4 } +#define UNUSED_PINS + +// from light_ws2812_config @ +// https://github.com/kairyu/tmk_keyboard_custom/tree/master/keyboard/staryu +#define RGB_DI_PIN C6 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 1 // Number of LEDs + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +// TODO backlighting +#define BACKLIGHT_LEVELS 10 +// #define BACKLIGHT_PIN B7 +/* +Backlight: C2, C7, D5, D6, B0 +switch (index) { + case 0: + PORTC &= ~(1<. +*/ +#include QMK_KEYBOARD_H +#include "action_layer.h" + +enum layers { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3 +}; + + +const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = { + /* Keymap 0 + * ,-----------. + * | |Up |Fn0| + * |---+---+---| + * |Lef|Dow|Rig| + * `-----------' + */ + LAYOUT( KC_UP, TO(_LAYER1), KC_LEFT,KC_DOWN,KC_RIGHT ), + /* Keymap 1 + * ,-----------. + * | |PgU|Fn1| + * |---+---+---| + * |Hom|PgD|End| + * `-----------' + */ + LAYOUT( KC_PGUP,TO(_LAYER2), KC_HOME,KC_PGDN,KC_END ), + /* Keymap 2 + * ,-----------. + * | |Sel|Fn2| + * |---+---+---| + * |Pre|Pla|Nex| + * `-----------' + */ + LAYOUT( KC_MSEL,TO(_LAYER3), KC_MPRV,KC_MPLY,KC_MNXT ), + /* Keymap 3 + * ,-----------. + * | |MsU|Fn3| + * |---+---+---| + * |MsL|MsD|MsR| + * `-----------' + */ + LAYOUT( KC_MS_U,TO(_LAYER0), KC_MS_L,KC_MS_D,KC_MS_R ), + // /* Keymap 4 + // * ,-----------. + // * | |Fn6|Fn4| + // * |---+---+---| + // * |Fn7|Fn5|Fn8| + // * `-----------' + // */ + // LAYOUT( FN6, FN4, FN7, FN5, FN8 ), +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + return MACRO_NONE ; +} + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { +} + +void led_set_user(uint8_t usb_led) { +} diff --git a/keyboards/staryu/keymaps/default/rules.mk b/keyboards/staryu/keymaps/default/rules.mk new file mode 100644 index 000000000000..6c605daecf53 --- /dev/null +++ b/keyboards/staryu/keymaps/default/rules.mk @@ -0,0 +1 @@ +MOUSEKEY_ENABLE = yes diff --git a/keyboards/staryu/keymaps/krusli/README.md b/keyboards/staryu/keymaps/krusli/README.md new file mode 100644 index 000000000000..66a0979070f4 --- /dev/null +++ b/keyboards/staryu/keymaps/krusli/README.md @@ -0,0 +1,9 @@ +# krusli's RAMA M6-A Layout + +Personal keymap for the RAMA M6-A. + +Top-right button acts as a "toggle between layers" button. Layer 0 -> Layer 1 -> Layer 2 -> Layer 0 -> ... + +- Layer 0: Osu! gamepad layer +- Layer 1: Git commands +- Layer 2 and 3: RGB controls diff --git a/keyboards/staryu/keymaps/krusli/keymap.c b/keyboards/staryu/keymaps/krusli/keymap.c new file mode 100644 index 000000000000..2879b68e580e --- /dev/null +++ b/keyboards/staryu/keymaps/krusli/keymap.c @@ -0,0 +1,97 @@ +/* +Copyright 2018 Kenneth Aloysius + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H +#include "action_layer.h" + +#include "../../backlight_staryu.h" + +enum layers { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3 +}; + +enum custom_keycodes { + GIT_ADD = SAFE_RANGE, + GIT_COMMIT, + GIT_PUSH, + MUTE, + DEAFEN +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch(keycode) { + case GIT_ADD: + SEND_STRING("git add ."SS_TAP(X_ENTER)); + break; + case GIT_COMMIT: + SEND_STRING("git commit -m "SS_DOWN(X_LSHIFT)SS_TAP(X_QUOTE)SS_UP(X_LSHIFT)); + break; + case GIT_PUSH: + SEND_STRING("git push"SS_TAP(X_ENTER)); + break; + case MUTE: + SEND_STRING(SS_LGUI(SS_LSFT("M"))); + break; + case DEAFEN: + SEND_STRING(SS_LGUI(SS_LSFT("D"))); + break; + return false; + } + } + return true; +}; + +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_LAYER0] = LAYOUT( \ + KC_ESC, TO(_LAYER1), \ + KC_Z, KC_X, KC_SPACE \ + ), + [_LAYER1] = LAYOUT( \ + MUTE, TO(_LAYER2), \ + GIT_ADD, GIT_COMMIT, GIT_PUSH \ + ), + [_LAYER2] = LAYOUT( \ + RGB_MOD, TO(_LAYER3), \ + RGB_TOG, RGB_HUD, RGB_HUI \ + ), + [_LAYER3] = LAYOUT( \ + RGB_VAI, TO(_LAYER0), \ + RGB_SAD, RGB_VAD, RGB_SAI \ + ) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + return MACRO_NONE ; +} + +void matrix_init_user(void) { + for (int i=0; i<5; i++) { + backlight_led_on(i); + } +} + +void matrix_scan_user(void) { +} + +void led_set_user(uint8_t usb_led) { +} diff --git a/keyboards/staryu/readme.md b/keyboards/staryu/readme.md new file mode 100644 index 000000000000..bca7482bc2d6 --- /dev/null +++ b/keyboards/staryu/readme.md @@ -0,0 +1,15 @@ +# Staryu + +![Staryu](https://i.imgur.com/obcCpZN.jpg) + +A 5 key macropad, designed by Kai and sold by KPRepublic. + +Keyboard Maintainer: QMK Community +Hardware Supported: Staryu (only the non-lite version has been tested) +Hardware Availability: [AliExpress](https://www.aliexpress.com/item/Staryu-Mini-Macro-Pad-custom-keyboard-by-tkg-kai-Mini-macro-pad-mechanical-keyboard-5-keys/32817560746.html) + +Make example for this keyboard (after setting up your build environment): + + make staryu:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/staryu/rules.mk b/keyboards/staryu/rules.mk new file mode 100755 index 000000000000..3e043bbcd5ba --- /dev/null +++ b/keyboards/staryu/rules.mk @@ -0,0 +1,60 @@ +# MCU name +MCU = atmega32u2 + +BOOTLOADER = lufa-dfu + +SRC = backlight_staryu.c + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # In-switch LEDs +AUDIO_ENABLE = no # There is no available timer or pin for audio on the NovelPad +RGBLIGHT_ENABLE = yes # RGB LEDs for underglow, installed and enabled by default for the NovelPad diff --git a/keyboards/staryu/staryu.c b/keyboards/staryu/staryu.c new file mode 100755 index 000000000000..6dcaaea0e859 --- /dev/null +++ b/keyboards/staryu/staryu.c @@ -0,0 +1,26 @@ +/* +Copyright 2018 Cole Markham + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include "staryu.h" +#include "backlight_staryu.h" + +// for keyboard subdirectory level init functions +// @Override +void matrix_init_kb(void) { + // call user level keymaps, if any + init_backlight_led(); + matrix_init_user(); +} diff --git a/keyboards/staryu/staryu.h b/keyboards/staryu/staryu.h new file mode 100755 index 000000000000..12b8be92e71f --- /dev/null +++ b/keyboards/staryu/staryu.h @@ -0,0 +1,28 @@ +/* +Copyright 2018 Cole Markham + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#ifndef KB_H +#define KB_H +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, \ + K10, K11, K12 \ +) { \ + { K00, K01, K12, K11, K10 }, \ +} + +#endif From 503335be258b3b05a3188f73ab7ee72a34485078 Mon Sep 17 00:00:00 2001 From: Christian Hartlage Date: Fri, 20 Apr 2018 18:43:51 +0200 Subject: [PATCH 247/578] Added GH60 Satan ISO layout with split right shift and split backspace (#2773) * added an iso layout that supports split backspace and split rshift * added a keymap which uses the iso layout with split backspace and split rshift * added a #define LAYOUT_ for the KEYMAP_ * fixed missing newline --- keyboards/satan/keymaps/dende_iso/keymap.c | 80 +++++++++++++++++++++ keyboards/satan/keymaps/dende_iso/readme.md | 61 ++++++++++++++++ keyboards/satan/keymaps/dende_iso/rules.mk | 21 ++++++ keyboards/satan/satan.h | 31 ++++++++ 4 files changed, 193 insertions(+) create mode 100644 keyboards/satan/keymaps/dende_iso/keymap.c create mode 100644 keyboards/satan/keymaps/dende_iso/readme.md create mode 100644 keyboards/satan/keymaps/dende_iso/rules.mk diff --git a/keyboards/satan/keymaps/dende_iso/keymap.c b/keyboards/satan/keymaps/dende_iso/keymap.c new file mode 100644 index 000000000000..9ac1cddbad14 --- /dev/null +++ b/keyboards/satan/keymaps/dende_iso/keymap.c @@ -0,0 +1,80 @@ +#include "satan.h" +#include "keymap_extras/keymap_german.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _DEF 0 +#define _FNK 1 +#define _MEDIA 2 + +// dual-role shortcuts +#define FN_CAPS LT(_MEDIA, KC_CAPSLOCK) + +// increase readability +#define _______ KC_TRNS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _DEF: Default Layer + * ,------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| ß| ´|bcksp|fn1| + * |------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Z| U| I| O| P| Ü| +| | + * |----------------------------------------------------- Return| + * |fn2 | A| S| D| F| G| H| J| K| L| Ö| Ä| # | | + * |------------------------------------------------------------| + * |Sft | < | Y| X| C| V| B| N| M| ,| .| -| RSft| del | + * |------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |RAlt |Win |App|RCtrl| + * `------------------------------------------------------------' + */ +[_DEF] = LAYOUT_60_iso_split_bs_rshift( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, DE_SS, DE_ACUT, KC_BSPC, MO(_FNK), \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UE, DE_PLUS, \ + FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_OE, DE_AE, DE_HASH, KC_ENT, \ + KC_LSFT, DE_LESS, DE_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, DE_MINS, KC_RSFT, KC_DELETE, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, DE_ALGR, KC_RGUI, KC_APP, KC_RCTL), + + + /* Keymap _FNK: Function Keys + * ,------------------------------------------------------------. + * | ^ | F1| F2| F3| F4| F5| F6| F7| F8| F9| F0|F11|F12| Ins | | + * |------------------------------------------------------------| + * | |PGU| Up|PGD| | | |Ins|Hom|PDU| | | | | + * |----------------------------------------------------- | + * | |Lft|Dwn|Rgt| | | |Del|End|PGD| | | | | + * |------------------------------------------------------------| + * | | | | | | | | | | | | | | | + * |------------------------------------------------------------| + * | | | | | | | | | + * `------------------------------------------------------------' + */ +[_FNK] = LAYOUT_60_iso_split_bs_rshift( + DE_CIRC, 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_PGUP, KC_UP, KC_PGDOWN, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, _______, \ + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDOWN, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______), + + /* Keymap _MEDIA: Media and Mouse Layer + * ,------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------------------------------------------------------------| + * | | | | | | | |MLC| MU|MRC| | | | | + * |----------------------------------------------------- | + * | |PRV|VLD|VLU|NXT| | | ML| MD| MR| | | | | + * |------------------------------------------------------------| + * | | | | | | | | | | | | | UP | | + * |------------------------------------------------------------| + * | | | | PLAY | |LEFT|DWN|RIGHT| + * `------------------------------------------------------------' + */ + +[_MEDIA] = LAYOUT_60_iso_split_bs_rshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, _______, _______, _______, \ + _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP , _______, \ + _______, _______, _______, KC_MPLY, _______, KC_LEFT, KC_DOWN, KC_RIGHT), + }; diff --git a/keyboards/satan/keymaps/dende_iso/readme.md b/keyboards/satan/keymaps/dende_iso/readme.md new file mode 100644 index 000000000000..238a2f725f06 --- /dev/null +++ b/keyboards/satan/keymaps/dende_iso/readme.md @@ -0,0 +1,61 @@ +# Satan GH60 ISO-DE Layout with split backspace and right shift + +![Layout Image](https://i.imgur.com/a7znS69.jpg) + +## Default Layer +This ISO-DE based layout has a split backspace. the left part is the actual backspace and the right parts serves as a FN key. +The right shift is also split, with the right part serving as the del key. +``` +/* Keymap _DEF: Default Layer + * ,------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| ß| ´|bcksp|fn1| + * |------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Z| U| I| O| P| Ü| +| | + * |----------------------------------------------------- Return| + * |fn2 | A| S| D| F| G| H| J| K| L| Ö| Ä| # | | + * |------------------------------------------------------------| + * |Sft | < | Y| X| C| V| B| N| M| ,| .| -| RSft| del | + * |------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |RAlt |Win |App|RCtrl| + * `------------------------------------------------------------' + */ +``` + + +## FN Key Layer +The Function keys can be accessed when holding fn1 (right part of backspace) + +``` +/* Keymap _FNK: Function Keys + * ,------------------------------------------------------------. + * | ^ | F1| F2| F3| F4| F5| F6| F7| F8| F9| F0|F11|F12| Ins | | + * |------------------------------------------------------------| + * | |PGU| Up|PGD| | | |Ins|Hom|PDU| | | | | + * |----------------------------------------------------- | + * | |Lft|Dwn|Rgt| | | |Del|End|PGD| | | | | + * |------------------------------------------------------------| + * | | | | | | | | | | | | | | | + * |------------------------------------------------------------| + * | | | | | | | | | + * `------------------------------------------------------------' + */ +``` + +## Media and Mouse Layer +The Media Keys and Mouse control can be accessed when holding capslock (fn2) + +``` +/* Keymap _MEDIA: Media and Mouse Layer + * ,------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------------------------------------------------------------| + * | | | | | | | |MLC| MU|MRC| | | | | + * |----------------------------------------------------- | + * | |PRV|VLD|VLU|NXT| | | ML| MD| MR| | | | | + * |------------------------------------------------------------| + * | | | | | | | | | | | | | UP | | + * |------------------------------------------------------------| + * | | | | PLAY | |LEFT|DWN|RIGHT| + * `------------------------------------------------------------' + */ +``` \ No newline at end of file diff --git a/keyboards/satan/keymaps/dende_iso/rules.mk b/keyboards/satan/keymaps/dende_iso/rules.mk new file mode 100644 index 000000000000..2a7ff27793f9 --- /dev/null +++ b/keyboards/satan/keymaps/dende_iso/rules.mk @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/satan/satan.h b/keyboards/satan/satan.h index 8a8874ced3b9..f7f7b44343a5 100644 --- a/keyboards/satan/satan.h +++ b/keyboards/satan/satan.h @@ -138,11 +138,42 @@ {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \ } +/* ISO w/ split right shift key matrix layout + * ,-----------------------------------------------------------. + * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d|49 | + * |-----------------------------------------------------------| + * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| | + * |-------------------------------------------------------- | + * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2c| 2d| + * |-----------------------------------------------------------| + * | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | 3c| + * |-----------------------------------------------------------| + * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d | + * `-----------------------------------------------------------' + + swap 3c and 3d. 3c is right of 3d in reality + */ +#define KEYMAP_ISO_SPLITRSHIFT_SPLITBACKSPACE( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \ + k40, k41, k42, k45, k4a, k4b, k4c, k4d \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \ + {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \ +} + void matrix_init_user(void); void matrix_scan_user(void); #define LAYOUT_60_ansi KEYMAP_ANSI #define LAYOUT_60_iso KEYMAP_ISO #define LAYOUT_60_ansi_split_bs_rshift KEYMAP_HHKB +#define LAYOUT_60_iso_split_bs_rshift KEYMAP_ISO_SPLITRSHIFT_SPLITBACKSPACE #endif From 2a63e212794627ee649e4649355ecce8d1a790b8 Mon Sep 17 00:00:00 2001 From: Luciano Malavasi Date: Fri, 20 Apr 2018 13:06:10 -0700 Subject: [PATCH 248/578] Firmware for Alpha (28-key keyboard) (#2755) * alpha with firmware added to list of keyboards, ready to push * revised according to drashna's fixes * keymap -> layout? * fixed macro and improved layout issuesOC * Update rules.mk * Update alpha.h * Update and rename keyboards/alpha/layouts/default/28_alpha/keymap.c to keyboards/alpha/keymaps/default/keymap.c * alpha/readme.md added according to qmk templateOC * resolved a careless merge conflict * bugfix --- keyboards/alpha/alpha.c | 1 + keyboards/alpha/alpha.h | 16 +++++ keyboards/alpha/config.h | 58 ++++++++++++++++++ keyboards/alpha/keymaps/default/keymap.c | 76 ++++++++++++++++++++++++ keyboards/alpha/readme.md | 14 +++++ keyboards/alpha/rules.mk | 56 +++++++++++++++++ 6 files changed, 221 insertions(+) create mode 100755 keyboards/alpha/alpha.c create mode 100755 keyboards/alpha/alpha.h create mode 100755 keyboards/alpha/config.h create mode 100755 keyboards/alpha/keymaps/default/keymap.c create mode 100644 keyboards/alpha/readme.md create mode 100755 keyboards/alpha/rules.mk diff --git a/keyboards/alpha/alpha.c b/keyboards/alpha/alpha.c new file mode 100755 index 000000000000..3029ba50a836 --- /dev/null +++ b/keyboards/alpha/alpha.c @@ -0,0 +1 @@ +#include "alpha.h" diff --git a/keyboards/alpha/alpha.h b/keyboards/alpha/alpha.h new file mode 100755 index 000000000000..025a3ac5fbbc --- /dev/null +++ b/keyboards/alpha/alpha.h @@ -0,0 +1,16 @@ +#ifndef KB_H +#define KB_H + +#include "quantum.h" + +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, \ + K200, K201, K202, K203, K205, K207, K208, K209 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109 }, \ + { K200, K201, K202, K203, KC_NO, K205, KC_NO, K207, K208, K209 } \ +} + +#endif diff --git a/keyboards/alpha/config.h b/keyboards/alpha/config.h new file mode 100755 index 000000000000..02952756358c --- /dev/null +++ b/keyboards/alpha/config.h @@ -0,0 +1,58 @@ +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER PyroL +#define PRODUCT alpha +#define DESCRIPTION 28-key keyboard by PyroL + +/* key matrix size */ +#define MATRIX_ROWS 3 +#define MATRIX_COLS 10 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { D4, B4, B5 } +#define MATRIX_COL_PINS { D7, E6, C6, B6, B2, B3, B1, F7, F6, F5 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* number of backlight levels */ + +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 3 +#endif + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* prevent stuck modifiers */ +#define PREVENT_STUCK_MODIFIERS + +#define RGB_DI_PIN F4 +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 5 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif + +#endif diff --git a/keyboards/alpha/keymaps/default/keymap.c b/keyboards/alpha/keymaps/default/keymap.c new file mode 100755 index 000000000000..03c47452d3f4 --- /dev/null +++ b/keyboards/alpha/keymaps/default/keymap.c @@ -0,0 +1,76 @@ +#include QMK_KEYBOARD_H +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TO(1), + KC_Z, KC_X, KC_C, KC_V, MT(MOD_LSFT, KC_SPC), KC_B, KC_N, KC_M), + + LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_BSPC, KC_ESC, KC_TAB, KC_SCLN, KC_QUOT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TO(2), + KC_LCTL, KC_LGUI, KC_LALT, TO(0), MT(MOD_LSFT, KC_ENT), KC_COMM, KC_DOT, KC_SLSH), + + LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_LSFT, KC_F11, KC_F12, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, TO(3), + RGB_VAI, RGB_VAD, RGB_HUI, TO(0), RGB_MOD, KC_MPLY, KC_VOLD, KC_VOLU), + + LAYOUT( + RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, M(0), KC_NO, KC_NO, KC_NO), + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch (keycode) { + case 0: + SEND_STRING("I'm so sorry... -PyroL"); + return false; + } + } + return true; +}; + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { +} + + +void led_set_user(uint8_t usb_led) { + + if (usb_led & (1 << USB_LED_NUM_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_COMPOSE)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_KANA)) { + + } else { + + } + +} diff --git a/keyboards/alpha/readme.md b/keyboards/alpha/readme.md new file mode 100644 index 000000000000..75a9d5902b30 --- /dev/null +++ b/keyboards/alpha/readme.md @@ -0,0 +1,14 @@ +# Alpha + +![Alpha](https://imgur.com/a/TouJ5rH) + +A 28-key, semi-ortho keyboard designed by PyroL! +Keyboard Maintainer: [PyroL](https://www.github.com/PyrooL) +Hardware Supported: Alpha PCB, Pro Micro +Hardware Availability: on a group-buy basis for now. Pro Micros can be found on Ali or from the official Sparkfun website. + +Make example for Alpha (after setting up your build environment): + + make alpha:default + + See [build environment setup](https://docs.qmk.fm/install-build-tools) then the [make instructions](https://docs.qmk.fm/faq/build-compile-qmk) for more information. diff --git a/keyboards/alpha/rules.mk b/keyboards/alpha/rules.mk new file mode 100755 index 000000000000..61ea958d7e4b --- /dev/null +++ b/keyboards/alpha/rules.mk @@ -0,0 +1,56 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +BOOTLOADER = caterina + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +AUDIO_ENABLE = no +RGBLIGHT_ENABLE = yes From c604cd6fd716a84432ecc66edb69d74b5d23bbad Mon Sep 17 00:00:00 2001 From: Danny Date: Fri, 20 Apr 2018 20:02:09 -0400 Subject: [PATCH 249/578] Add Nyquist Rev. 2 (#2414) --- keyboards/nyquist/nyquist.h | 3 ++ keyboards/nyquist/rev1/config.h | 4 +- keyboards/nyquist/rev2/config.h | 86 +++++++++++++++++++++++++++++++++ keyboards/nyquist/rev2/rev2.c | 21 ++++++++ keyboards/nyquist/rev2/rev2.h | 68 ++++++++++++++++++++++++++ keyboards/nyquist/rev2/rules.mk | 1 + keyboards/nyquist/rules.mk | 1 - 7 files changed, 181 insertions(+), 3 deletions(-) create mode 100644 keyboards/nyquist/rev2/config.h create mode 100644 keyboards/nyquist/rev2/rev2.c create mode 100644 keyboards/nyquist/rev2/rev2.h create mode 100644 keyboards/nyquist/rev2/rules.mk diff --git a/keyboards/nyquist/nyquist.h b/keyboards/nyquist/nyquist.h index a96d40d9fe06..d401a45f78fa 100644 --- a/keyboards/nyquist/nyquist.h +++ b/keyboards/nyquist/nyquist.h @@ -4,6 +4,9 @@ #ifdef KEYBOARD_nyquist_rev1 #include "rev1.h" #endif +#ifdef KEYBOARD_nyquist_rev2 + #include "rev2.h" +#endif #include "quantum.h" diff --git a/keyboards/nyquist/rev1/config.h b/keyboards/nyquist/rev1/config.h index 4430f254cb56..61bcb80e2cf5 100644 --- a/keyboards/nyquist/rev1/config.h +++ b/keyboards/nyquist/rev1/config.h @@ -1,5 +1,5 @@ /* -Copyright 2017 Danny Nguyen +Copyright 2017 Danny Nguyen This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ along with this program. If not, see . #include QMK_KEYBOARD_CONFIG_H /* USB Device descriptor parameter */ -#define VENDOR_ID 0xCEEB +#define VENDOR_ID 0xCB10 #define PRODUCT_ID 0x1156 #define DEVICE_VER 0x0100 #define MANUFACTURER Keebio diff --git a/keyboards/nyquist/rev2/config.h b/keyboards/nyquist/rev2/config.h new file mode 100644 index 000000000000..75d2e939352e --- /dev/null +++ b/keyboards/nyquist/rev2/config.h @@ -0,0 +1,86 @@ +/* +Copyright 2017 Danny Nguyen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef REV2_CONFIG_H +#define REV2_CONFIG_H + +#include QMK_KEYBOARD_CONFIG_H + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCB10 +#define PRODUCT_ID 0x1156 +#define DEVICE_VER 0x0200 +#define MANUFACTURER Keebio +#define PRODUCT The Nyquist Keyboard +#define DESCRIPTION Split 60 percent ortholinear keyboard + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 10 +#define MATRIX_COLS 6 + +// wiring of each half +#define MATRIX_ROW_PINS { D4, D7, E6, B4, B5 } +#define MATRIX_COL_PINS { D2, F5, F6, F7, B1, B3 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D3 +#define RGBLIGHT_TIMER +#define RGBLED_NUM 16 // Number of LEDs + +/* Backlight LEDs */ +#define BACKLIGHT_PIN B6 +#define BACKLIGHT_LEVELS 7 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/nyquist/rev2/rev2.c b/keyboards/nyquist/rev2/rev2.c new file mode 100644 index 000000000000..9922b8995abf --- /dev/null +++ b/keyboards/nyquist/rev2/rev2.c @@ -0,0 +1,21 @@ +#include "rev2.h" + +#ifdef SSD1306OLED +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + led_set_user(usb_led); +} +#endif + +void matrix_init_kb(void) { + + // // green led on + // DDRD |= (1<<5); + // PORTD &= ~(1<<5); + + // // orange led on + // DDRB |= (1<<0); + // PORTB &= ~(1<<0); + + matrix_init_user(); +}; diff --git a/keyboards/nyquist/rev2/rev2.h b/keyboards/nyquist/rev2/rev2.h new file mode 100644 index 000000000000..1eec5d2beb8c --- /dev/null +++ b/keyboards/nyquist/rev2/rev2.h @@ -0,0 +1,68 @@ +#ifndef REV2_H +#define REV2_H + +#include "nyquist.h" + +//void promicro_bootloader_jmp(bool program); +#include "quantum.h" + + +#ifdef USE_I2C +#include +#ifdef __AVR__ + #include + #include +#endif +#endif + +//void promicro_bootloader_jmp(bool program); + +#ifndef FLIP_HALF +// Standard Keymap +// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left) +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ + L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, \ + L40, L41, L42, L43, L44, L45, R40, R41, R42, R43, R44, R45 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { L30, L31, L32, L33, L34, L35 }, \ + { L40, L41, L42, L43, L44, L45 }, \ + { R05, R04, R03, R02, R01, R00 }, \ + { R15, R14, R13, R12, R11, R10 }, \ + { R25, R24, R23, R22, R21, R20 }, \ + { R35, R34, R33, R32, R31, R30 }, \ + { R45, R44, R43, R42, R41, R40 } \ + } +#else +// Keymap with right side flipped +// (TRRS jack on both halves are to the right) +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ + L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, \ + L40, L41, L42, L43, L44, L45, R40, R41, R42, R43, R44, R45 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { L30, L31, L32, L33, L34, L35 }, \ + { L40, L41, L42, L43, L44, L45 }, \ + { R00, R01, R02, R03, R04, R05 }, \ + { R10, R11, R12, R13, R14, R15 }, \ + { R20, R21, R22, R23, R24, R25 }, \ + { R30, R31, R32, R33, R34, R35 }, \ + { R40, R41, R42, R43, R44, R45 } \ + } +#endif + +#define LAYOUT_ortho_5x12 LAYOUT + +#endif diff --git a/keyboards/nyquist/rev2/rules.mk b/keyboards/nyquist/rev2/rules.mk new file mode 100644 index 000000000000..bd518d8f273f --- /dev/null +++ b/keyboards/nyquist/rev2/rules.mk @@ -0,0 +1 @@ +BACKLIGHT_ENABLE = yes diff --git a/keyboards/nyquist/rules.mk b/keyboards/nyquist/rules.mk index 971cd188a8e0..840628e1c5f4 100644 --- a/keyboards/nyquist/rules.mk +++ b/keyboards/nyquist/rules.mk @@ -64,7 +64,6 @@ AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. -SUBPROJECT_rev1 = yes USE_I2C = yes # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend From 46d12d90df02e91b7a21a01e008a12080bf13778 Mon Sep 17 00:00:00 2001 From: Fayek Helmi Date: Fri, 20 Apr 2018 20:20:52 -0400 Subject: [PATCH 250/578] changed the ALTFN layer key position and Readme file --- keyboards/dz60/keymaps/256k_HHKB/README.md | 29 ++++++++++++++++------ keyboards/dz60/keymaps/256k_HHKB/keymap.c | 18 +++++++------- 2 files changed, 31 insertions(+), 16 deletions(-) diff --git a/keyboards/dz60/keymaps/256k_HHKB/README.md b/keyboards/dz60/keymaps/256k_HHKB/README.md index cd045a40d64f..4241ca1ba7cf 100644 --- a/keyboards/dz60/keymaps/256k_HHKB/README.md +++ b/keyboards/dz60/keymaps/256k_HHKB/README.md @@ -3,6 +3,21 @@ this is my personal layer that i use on my Tina-C HHKB layout board with a DZ60 PCB. --- +UPDATE (4-20-2018): +=== +after a week of using this layout i reazlied that having the ALT button on the right side and the ALTFN layer trigger on the left isn't ideal...i still wanted to change the default HHKB style CROSS arrow cluster into a reversed T cluster since im more used to that so i swapped the ALTFN layer to the right side and the normal ALT layer is back on the left side. so now i can use the arrow cluster (which i shifted one key over to the right) with 1 hand. + +it feels more nataural to me this way. + +also i decided to change the mouse scroll keys on the mouse layer to mouse movement keys... the scrolling wasn't working out as well as i'd hoped. again, this is merely an experimental layer just to play around with mouse control. + + + + +--- + +Walkthrough: +--- there is 1 base layer and 4 modifyer layers: @@ -21,7 +36,7 @@ BASE: * |-----------------------------------------------------------------------------------------+ * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN | * |-----------------------------------------------------------------------------------------+ - * | Win | Alt | Space | Alt | LIGHTS | + * | Win | Alt | Space | ALTFN | LIGHTS | * `-----------------------------------------------------------------------------------------' */ ``` @@ -37,9 +52,9 @@ BASE: * ,--------------------------------------------------------------------------------------------------------------------- * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | INSERT | _ | * |---------------------------------------------------------------------------------------------------------------------+ - * | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | UP | MUTE | V_DEC | V_INC | DEL | + * | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | _ | UP | V_DEC | V_INC | DEL | * |---------------------------------------------------------------------------------------------------------------------+ - * | CTRL | _ | _ | _ | _ | _ | _ | HOME | LEFT | DOWN | RIGHT | END | _ | + * | CTRL | _ | _ | _ | _ | _ | _ | HOME | END | LEFT | DOWN | RIGHT | _ | * |---------------------------------------------------------------------------------------------------------------------+ * | Shift | _ | _ | _ | _ | _ | _ | _ | PREV | NEXT | PLAY | _ | _ | * |---------------------------------------------------------------------------------------------------------------------+ @@ -61,14 +76,14 @@ also another benefit is that a lot of mice do not have horizontal control button (This layer is still experimental so i might change it later or modify it but so far i enjoy it) ``` -/* MOUSEFN LAYER + /* MOUSEFN LAYER * * ,--------------------------------------------------------------------------------------------------------------------- * | | ACC_1 | ACC_2 | ACC_3 | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | * |---------------------------------------------------------------------------------------------------------------------+ - * | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | WHEEL_UP | _ | _ | _ | _ | + * | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | _ | WHEEL_UP | _ | _ | _ | * |---------------------------------------------------------------------------------------------------------------------+ - * | CTRL | _ | _ | _ | _ | _ | _ | _ | WH_LEFT | WH_DOWN | WH_RIGHT | _ | _ | + * | CTRL | _ | _ | _ | _ | _ | _ | _ | _ | WH_LEFT | WH_DOWN | WH_RIGHT | _ | * |---------------------------------------------------------------------------------------------------------------------+ * | Shift | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | * |---------------------------------------------------------------------------------------------------------------------+ @@ -110,4 +125,4 @@ also another benefit is that a lot of mice do not have horizontal control button */ ``` - \ No newline at end of file + diff --git a/keyboards/dz60/keymaps/256k_HHKB/keymap.c b/keyboards/dz60/keymaps/256k_HHKB/keymap.c index 42b9f88639d2..e870a688d4fd 100644 --- a/keyboards/dz60/keymaps/256k_HHKB/keymap.c +++ b/keyboards/dz60/keymaps/256k_HHKB/keymap.c @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, 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_ENT, KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), - KC_LGUI, MO(_ALTFN), KC_SPC, KC_RALT, MO(_LIGHTS)), + KC_LGUI, KC_LALT, KC_SPC, MO(_ALTFN), MO(_LIGHTS)), @@ -46,9 +46,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,--------------------------------------------------------------------------------------------------------------------- * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | INSERT | _ | * |---------------------------------------------------------------------------------------------------------------------+ - * | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | UP | MUTE | V_DEC | V_INC | DEL | + * | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | _ | UP | V_DEC | V_INC | DEL | * |---------------------------------------------------------------------------------------------------------------------+ - * | CTRL | _ | _ | _ | _ | _ | _ | HOME | LEFT | DOWN | RIGHT | END | _ | + * | CTRL | _ | _ | _ | _ | _ | _ | HOME | END | LEFT | DOWN | RIGHT | _ | * |---------------------------------------------------------------------------------------------------------------------+ * | Shift | _ | _ | _ | _ | _ | _ | _ | PREV | NEXT | PLAY | _ | _ | * |---------------------------------------------------------------------------------------------------------------------+ @@ -59,8 +59,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ALTFN] = LAYOUT_hhkb( MO(_MOUSEFN), 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_PSCR, - KC_CAPS, ______, ______, ______, ______, ______, ______, ______, ______, KC_UP, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, - ______, ______, ______, ______, ______, ______, ______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, ______, + KC_CAPS, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_UP, KC_VOLD, KC_VOLU, KC_DEL, + ______, ______, ______, ______, ______, ______, ______, KC_HOME, KC_END, KC_LEFT, KC_DOWN, KC_RIGHT, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MPRV, KC_MNXT, KC_MPLY, ______, ______, ______, ______, ______, ______, ______), @@ -75,9 +75,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,--------------------------------------------------------------------------------------------------------------------- * | | ACC_1 | ACC_2 | ACC_3 | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | * |---------------------------------------------------------------------------------------------------------------------+ - * | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | WHEEL_UP | _ | _ | _ | _ | + * | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | _ | WHEEL_UP | _ | _ | _ | * |---------------------------------------------------------------------------------------------------------------------+ - * | CTRL | _ | _ | _ | _ | _ | _ | _ | WH_LEFT | WH_DOWN | WH_RIGHT | _ | _ | + * | CTRL | _ | _ | _ | _ | _ | _ | _ | _ | WH_LEFT | WH_DOWN | WH_RIGHT | _ | * |---------------------------------------------------------------------------------------------------------------------+ * | Shift | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | * |---------------------------------------------------------------------------------------------------------------------+ @@ -89,8 +89,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MOUSEFN] = LAYOUT_hhkb( ______, KC_ACL0, KC_ACL1, KC_ACL2, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, - ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_WH_U, ______, ______, ______, ______, - ______, ______, ______, ______, ______, ______, ______, ______, KC_WH_L, KC_WH_D, KC_WH_R, ______, ______, + ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MS_UP, ______, ______, ______, + ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______), From 4e4101efdf1e1d954ccec4aa9be05234e2a699fa Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 20 Apr 2018 17:32:53 -0700 Subject: [PATCH 251/578] Fix Merge issue that reverted LS default keymap to KEYMAP (#2778) --- keyboards/lets_split/keymaps/default/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/lets_split/keymaps/default/keymap.c b/keyboards/lets_split/keymaps/default/keymap.c index a2d9c27eb757..fc0fe9c7c99f 100644 --- a/keyboards/lets_split/keymaps/default/keymap.c +++ b/keyboards/lets_split/keymaps/default/keymap.c @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Adjust| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = KEYMAP( +[_QWERTY] = LAYOUT( KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ From 1bb77c087502de19fe5e403f519be321ba2c85f5 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 20 Apr 2018 17:53:19 -0700 Subject: [PATCH 252/578] Update to drashna keymaps and userspace (#2756) * Re-add NO_SECRETS option * Add Thumb Clusters defines for default layout * Minor tweaks * More Minor tweaks * Revert Orthodox layers and move function keys around * Fix keymap so it will compile under the Infinity Since I haven't added 'pretty' layouts to it yet * Cleanup of userspace * Cleanup keymaps * OMG fix Workman * Move mods layer key around * Reduce debounce in Ergodox EZ * Fix Infinity layers * Add list of pins used by Ergdox EZ for easy reference * Revert "Reduce debounce in Ergodox EZ" This reverts commit 8a3db2673b419ef8032c40a6d29156cef632f9cd. * Add Clicky toggle to Orthodox * Fix Audio Clicky keycode * Enable Faux Clicky by default * Add Unicode stuff --- keyboards/orthodox/keymaps/drashna/keymap.c | 14 +-- layouts/community/ergodox/drashna/keymap.c | 50 ++++---- layouts/community/ergodox/drashna/notes.txt | 6 + layouts/community/ergodox/drashna/rules.mk | 4 +- quantum/process_keycode/process_audio.c | 2 +- users/drashna/config.h | 7 +- users/drashna/drashna.c | 68 ++++++++++- users/drashna/drashna.h | 125 ++++++++++++++++---- users/drashna/rules.mk | 4 +- 9 files changed, 213 insertions(+), 67 deletions(-) create mode 100644 layouts/community/ergodox/drashna/notes.txt diff --git a/keyboards/orthodox/keymaps/drashna/keymap.c b/keyboards/orthodox/keymaps/drashna/keymap.c index 480540144b40..ed5f32b98710 100644 --- a/keyboards/orthodox/keymaps/drashna/keymap.c +++ b/keyboards/orthodox/keymaps/drashna/keymap.c @@ -65,20 +65,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_LOWER] = LAYOUT(\ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, _______, _______, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_PGUP, KC_COMM, KC_DOT, KC_PGDN, _______ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_PGUP, KC_PGDN, KC_HOME, KC_END, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, KC_COMM, KC_DOT, _______, _______ ), [_RAISE] = LAYOUT(\ - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, _______, KC_RCTL, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_HOME, KC_COMM, KC_DOT, KC_END, _______ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_COMM, KC_DOT, _______, _______ ), [_ADJUST] = LAYOUT(\ KC_MAKE,KC_RESET, EPRM, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RGB_SMOD,RGB_HUI, KC_FXCL, AUD_ON, AUD_OFF, AG_NORM, _______, _______, _______, _______, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, TG(_MODS), + RGB_SMOD,RGB_HUI, CK_TOGG, AUD_ON, AUD_OFF, AG_NORM, _______, _______, _______, _______, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, TG(_MODS), KC_RGB_T,RGB_HUD, MU_ON, MU_OFF, MU_TOG, MU_MOD, _______, _______, _______, _______, _______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY ) diff --git a/layouts/community/ergodox/drashna/keymap.c b/layouts/community/ergodox/drashna/keymap.c index f29c57f2e07a..7ff103ed6ac9 100644 --- a/layouts/community/ergodox/drashna/keymap.c +++ b/layouts/community/ergodox/drashna/keymap.c @@ -28,7 +28,7 @@ along with this program. If not, see . bool skip_leds = false; - +#ifdef KEYBOARD_ergodox_ez const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: QWERTY Layer * @@ -56,14 +56,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand // right hand KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TAB, _________________QWERTY_L1_________________, TG(_DIABLO), TG(_DIABLO), _________________QWERTY_R1_________________, KC_BSLS, - TG(_MODS), _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, GUI_T(KC_QUOT), + SH_TT, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT, KC_MLSF, _________________QWERTY_L3_________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________QWERTY_R3_________________, KC_MRSF, LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), - ALT_T(KC_APP), KC_LGUI, KC_RGUI, CTL_T(KC_ESCAPE), - KC_HOME, KC_PGUP, - KC_SPACE,KC_BSPC, KC_END, KC_PGDN, KC_DEL, KC_ENTER - - + __________________ERGODOX_THUMB_CLUSTER_____________________ ), /* Keymap 0: COLEMAK layer * @@ -92,12 +88,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand // right hand KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TAB, _________________COLEMAK_L1________________, TG(_DIABLO), TG(_DIABLO), _________________COLEMAK_R1________________, KC_BSLS, - TG(_MODS), _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, GUI_T(KC_QUOT), + SH_TT, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT, KC_MLSF, _________________COLEMAK_L3________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________COLEMAK_R3________________, KC_MRSF, LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), - ALT_T(KC_APP), KC_LGUI, KC_RGUI, CTL_T(KC_ESCAPE), - KC_HOME, KC_PGUP, - KC_SPACE,KC_BSPC, KC_END, KC_PGDN, KC_DEL, KC_ENTER + __________________ERGODOX_THUMB_CLUSTER_____________________ ), /* Keymap 0: DVORAK Layout * @@ -126,12 +120,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand // right hand KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, KC_TAB, _________________DVORAK_L1_________________, TG(_DIABLO), TG(_DIABLO), _________________DVORAK_R1_________________, KC_SLSH, - TG(_MODS), _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, GUI_T(KC_MINS), + SH_TT, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_MINS, KC_MLSF, _________________DVORAK_L3_________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________DVORAK_R3_________________, KC_MRSF, LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), - ALT_T(KC_APP), KC_LGUI, KC_RGUI, CTL_T(KC_ESCAPE), - KC_HOME, KC_PGUP, - KC_SPACE,KC_BSPC, KC_END, KC_PGDN, KC_DEL, KC_ENTER + __________________ERGODOX_THUMB_CLUSTER_____________________ ), /* Keymap 0: WORKMAN layer * @@ -160,12 +152,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TAB, _________________WORKMAN_L1________________, TG(_DIABLO), TG(_DIABLO), _________________WORKMAN_R1________________, KC_BSLS, - TG(_MODS), _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, GUI_T(KC_QUOT), + SH_TT, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT, KC_MLSF, _________________WORKMAN_L3________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________WORKMAN_R3________________, KC_MRSF, LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), - ALT_T(KC_APP), KC_LGUI, KC_RGUI, CTL_T(KC_ESCAPE), - KC_HOME, KC_PGUP, - KC_SPACE,KC_BSPC, KC_END, KC_PGDN, KC_DEL, KC_ENTER + __________________ERGODOX_THUMB_CLUSTER_____________________ ), // Reverts OSM(Shift) to normal Shifts. However, may not need since we fixed the issue with RDP (LOCAL RESOURCES) @@ -203,9 +193,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_SYMB] = LAYOUT_ergodox_pretty( EPRM, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_QWERTY, KC_QWERTY, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_RST, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_WORKMAN, KC_DVORAK, KC_PPLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PAST, KC_F12, + KC_RST, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_COLEMAK, KC_WORKMAN, KC_PPLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PAST, KC_F12, KC_MAKE, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRAVE, KC_PMNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_PSLS, KC_PSCREEN, - VRSN, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_COLEMAK, KC_COLEMAK, KC_NLCK, KC_KP_1, KC_KP_2, KC_KP_3, KC_PEQL, KC_PAUSE, + VRSN, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_DVORAK, TG(_MODS), KC_NLCK, KC_KP_1, KC_KP_2, KC_KP_3, KC_PEQL, KC_PAUSE, KC_TRNS, KC_AMPR, KC_ASTR, KC_COLN, KC_SCLN, KC_KP_0, KC_KP_0, KC_PDOT, KC_PENT, KC_TRNS, RGB_SMOD, KC_RGB_T, KC_TRNS, KC_TRNS, RGB_HUI, KC_TRNS, @@ -238,7 +228,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, KC_I, KC_O, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_TRNS, TG(_GAMEPAD), KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO, - KC_G, KC_U, KC_I, KC_Y, KC_T, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, + KC_GRV, KC_U, KC_I, KC_Y, KC_T, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_O, KC_P, KC_HYPR, MAGIC_TOGGLE_NKRO, KC_LGUI, KC_NO, KC_V, KC_SPC, KC_H, KC_PGDN, KC_DEL, KC_ENTER @@ -309,7 +299,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; - +#else // KEYBOARD_ergodox_ez +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_ergodox_wrapper(KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), KC_TAB, _________________QWERTY_L1_________________, TG(_DIABLO), KC_BSPC, _________________QWERTY_L2_________________, KC_MLSF, _________________QWERTY_L3_________________, TG(_GAMEPAD), LT(_SYMB, KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ALT_T(KC_APP), KC_LGUI, KC_HOME, KC_SPACE, KC_BSPC, KC_END, OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TG(_DIABLO), _________________QWERTY_R1_________________, KC_BSLS, _________________QWERTY_R2_________________, GUI_T(KC_QUOT), TG(_GAMEPAD), _________________QWERTY_R3_________________, KC_MRSF, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), KC_RGUI, CTL_T(KC_ESCAPE), KC_PGUP, KC_PGDOWN, KC_DELETE, KC_ENTER), + [_COLEMAK] = LAYOUT_ergodox_wrapper(KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), KC_TAB, _________________COLEMAK_L1________________, TG(_DIABLO), KC_BSPC, _________________COLEMAK_L2________________, KC_MLSF, _________________COLEMAK_L3________________, TG(_GAMEPAD), LT(_SYMB, KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ALT_T(KC_APP), KC_LGUI, KC_HOME, KC_SPACE, KC_BSPC, KC_END, OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TG(_DIABLO), _________________COLEMAK_R1________________, KC_BSLS, _________________COLEMAK_R2________________, GUI_T(KC_QUOT), TG(_GAMEPAD), _________________COLEMAK_R3________________, KC_MRSF, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), KC_RGUI, CTL_T(KC_ESCAPE), KC_PGUP, KC_PGDOWN, KC_DELETE, KC_ENTER), + [_DVORAK] = LAYOUT_ergodox_wrapper(KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), KC_TAB, _________________DVORAK_L1_________________, TG(_DIABLO), KC_BSPC, _________________DVORAK_L2_________________, KC_MLSF, _________________DVORAK_L3_________________, TG(_GAMEPAD), LT(_SYMB, KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ALT_T(KC_APP), KC_LGUI, KC_HOME, KC_SPACE, KC_BSPC, KC_END, OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, TG(_DIABLO), _________________DVORAK_R1_________________, KC_SLSH, _________________DVORAK_R2_________________, GUI_T(KC_MINS), TG(_GAMEPAD), _________________DVORAK_R3_________________, KC_MRSF, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), KC_RGUI, CTL_T(KC_ESCAPE), KC_PGUP, KC_PGDOWN, KC_DELETE, KC_ENTER), + [_WORKMAN] = LAYOUT_ergodox_wrapper(KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), KC_TAB, _________________WORKMAN_L1________________, TG(_DIABLO), KC_BSPC, _________________WORKMAN_L2________________, KC_MLSF, _________________WORKMAN_L3________________, TG(_GAMEPAD), LT(_SYMB, KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ALT_T(KC_APP), KC_LGUI, KC_HOME, KC_SPACE, KC_BSPC, KC_END, OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TG(_DIABLO), _________________WORKMAN_R1________________, KC_BSLS, _________________WORKMAN_R2________________, GUI_T(KC_QUOT), TG(_GAMEPAD), _________________WORKMAN_R3________________, KC_MRSF, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), KC_RGUI, CTL_T(KC_ESCAPE), KC_PGUP, KC_PGDOWN, KC_DELETE, KC_ENTER), + [_MODS] = LAYOUT_ergodox(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_SYMB] = LAYOUT_ergodox(EPRM, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, TG(_MODS), KC_RESET, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_WORKMAN, KC_MAKE, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRAVE, VRSN, KC_PERC, KC_CIRC, KC_LBRACKET, KC_RBRACKET, KC_TILD, KC_COLEMAK, KC_TRNS, KC_AMPR, KC_ASTR, KC_COLN, KC_SCOLON, RGB_SMOD, KC_RGB_T, RGB_HUI, RGB_M_R, RGB_M_SW, RGB_HUD, KC_QWERTY, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_DVORAK, KC_KP_PLUS, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_ASTERISK, KC_F12, KC_KP_MINUS, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_SLASH, KC_PSCREEN, KC_COLEMAK, KC_NUMLOCK, KC_KP_1, KC_KP_2, KC_KP_3, KC_EQUAL, KC_PAUSE, KC_KP_0, KC_KP_0, KC_KP_DOT, KC_KP_ENTER, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_DOT, KC_KP_0, KC_KP_ENTER), + [_GAMEPAD] = LAYOUT_ergodox(KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, HYPR(KC_D), HYPR(KC_Q), HYPR(KC_GRV), KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, KC_I, KC_O, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_TRNS, TG(_GAMEPAD), KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO, KC_GRV, KC_U, KC_I, KC_Y, KC_T, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_O, KC_P, KC_HYPR, MAGIC_TOGGLE_NKRO, KC_LGUI, KC_NO, KC_V, KC_SPC, KC_H, KC_PGDN, KC_DEL, KC_ENTER), + [_DIABLO] = LAYOUT_ergodox(KC_ESC, KC_V, KC_D, KC_LALT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_TAB, KC_S, KC_I, KC_F, KC_M, KC_T, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL, KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, KC_Z, KC_NO, KC_NO, KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_L, KC_J, KC_NO, KC_NO, KC_F, KC_NO, SFT_T(KC_SPACE), ALT_T(KC_Q), KC_DIABLO_CLEAR, KC_PGDN, KC_DEL, KC_ENT), + [_MOUS] = LAYOUT_ergodox(KC_NO, KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_U, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO, KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_NO, KC_NO, KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_NO, KC_BTN1, KC_BTN2, KC_WH_D, KC_BTN3, KC_BTN4, KC_BTN5), +}; +#endif // KEYBOARD_ergodox_ez bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { @@ -327,8 +329,6 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } - - void matrix_init_keymap(void) { // Runs boot tasks for keyboard }; diff --git a/layouts/community/ergodox/drashna/notes.txt b/layouts/community/ergodox/drashna/notes.txt new file mode 100644 index 000000000000..0f3959ff6153 --- /dev/null +++ b/layouts/community/ergodox/drashna/notes.txt @@ -0,0 +1,6 @@ +Pins used by Ergodox EZ + +Column Pins: F0 F1 F4 F5 F6 F7 +Row Pins : B0 B1 B2 B3 D2 D3 C6 +LEDs : D6 B5 B6 B7 +: diff --git a/layouts/community/ergodox/drashna/rules.mk b/layouts/community/ergodox/drashna/rules.mk index 12f100d665ee..536d5308af0b 100644 --- a/layouts/community/ergodox/drashna/rules.mk +++ b/layouts/community/ergodox/drashna/rules.mk @@ -1,7 +1,9 @@ TAP_DANCE_ENABLE = yes SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend COMMAND_ENABLE = yes # Commands for debug and configuration -RGBLIGHT_ENABLE = yes +ifeq ($(strip $(KEYBOARD)), ergodox_ez) + RGBLIGHT_ENABLE = yes +endif CONSOLE_ENABLE = no BOOTMAGIC_ENABLE = yes diff --git a/quantum/process_keycode/process_audio.c b/quantum/process_keycode/process_audio.c index 2d92e4064d2c..fc0f23ee341c 100644 --- a/quantum/process_keycode/process_audio.c +++ b/quantum/process_keycode/process_audio.c @@ -108,7 +108,7 @@ bool process_audio(uint16_t keycode, keyrecord_t *record) { } - if ( (clicky_enable && keycode != CLICKY_TOGGLE) || (!clicky_enable && keycode == CLICKY_TOGGLE) ) { + if ( clicky_enable ) { if (record->event.pressed) { stop_all_notes(); clicky_play();; diff --git a/users/drashna/config.h b/users/drashna/config.h index f9b0d4d17a2a..e48f72355b26 100644 --- a/users/drashna/config.h +++ b/users/drashna/config.h @@ -4,6 +4,7 @@ #ifdef AUDIO_ENABLE #define AUDIO_CLICKY +#define AUDIO_CLICKY_ON #define STARTUP_SONG SONG(E1M1_DOOM) #define GOODBYE_SONG SONG(SONIC_RING) #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ @@ -16,7 +17,7 @@ #ifdef RGBLIGHT_ENABLE #ifndef KEYBOARD_ergodox_ez #define RGBLIGHT_SLEEP - #endif + #endif // !KEYBOARD_ergodox_ez #endif // RGBLIGHT_ENABLE @@ -51,8 +52,8 @@ #ifdef TAPPING_TERM #undef TAPPING_TERM -#endif -#define TAPPING_TERM 160 +#endif // TAPPING_TERM +#define TAPPING_TERM 176 // Disable action_get_macro and fn_actions, since we don't use these diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c index 73bd249e4ce9..d9d412b086d3 100644 --- a/users/drashna/drashna.c +++ b/users/drashna/drashna.c @@ -41,8 +41,13 @@ float fauxclicky_pressed[][2] = SONG(S__NOTE(_A6)); // change to you float fauxclicky_released[][2] = SONG(S__NOTE(_A6)); // change to your tastes #endif // FAUXCLICKY_ENABLE +float tone_copy[][2] = SONG(SCROLL_LOCK_ON_SOUND); +float tone_paste[][2] = SONG(SCROLL_LOCK_OFF_SOUND); + + bool faux_click_enabled = false; bool is_overwatch = false; +static uint16_t copy_paste_timer; #ifdef RGBLIGHT_ENABLE bool rgb_layer_change = true; #endif @@ -198,17 +203,21 @@ void matrix_scan_user(void) { matrix_scan_keymap(); } +void tap(uint16_t keycode){ + register_code(keycode); + unregister_code(keycode); +}; + // This block is for all of the gaming macros, as they were all doing // the same thing, but with differring text sent. bool send_game_macro(const char *str, keyrecord_t *record, bool override) { if (!record->event.pressed || override) { clear_keyboard(); - register_code(is_overwatch ? KC_BSPC : KC_ENTER); - unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); + tap(is_overwatch ? KC_BSPC : KC_ENTER); wait_ms(50); send_string(str); - register_code(KC_ENTER); - unregister_code(KC_ENTER); + wait_ms(50); + tap(KC_ENTER); } if (override) wait_ms(3000); return false; @@ -402,6 +411,56 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; break; #endif // RGBLIGHT_ENABLE + + + case KC_CCCV: // One key copy/paste + if(record->event.pressed){ + copy_paste_timer = timer_read(); + } else { + if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy + register_code(KC_LCTL); + tap(KC_C); + unregister_code(KC_LCTL); +#ifdef AUDIO_ENABLE + PLAY_SONG(tone_copy); +#endif + } else { // Tap, paste + register_code(KC_LCTL); + tap(KC_V); + unregister_code(KC_LCTL); +#ifdef AUDIO_ENABLE + PLAY_SONG(tone_paste); +#endif + } + } + return false; + break; + +#ifdef UNICODE_ENABLE + case UC_FLIP: // (╯°□°)╯ ︵ ┻━┻ + if (record->event.pressed) { + register_code(KC_RSFT); + tap(KC_9); + unregister_code(KC_RSFT); + process_unicode((0x256F | QK_UNICODE), record); // Arm + process_unicode((0x00B0 | QK_UNICODE), record); // Eye + process_unicode((0x25A1 | QK_UNICODE), record); // Mouth + process_unicode((0x00B0 | QK_UNICODE), record); // Eye + register_code(KC_RSFT); + tap(KC_0); + unregister_code(KC_RSFT); + process_unicode((0x256F | QK_UNICODE), record); // Arm + tap(KC_SPC); + process_unicode((0x0361 | QK_UNICODE), record); // Flippy + tap(KC_SPC); + process_unicode((0x253B | QK_UNICODE), record); // Table + process_unicode((0x2501 | QK_UNICODE), record); // Table + process_unicode((0x253B | QK_UNICODE), record); // Table + } + return false; + break; +#endif // UNICODE_ENABLE + } return process_record_keymap(keycode, record); } @@ -413,6 +472,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { uint32_t layer_state_set_user(uint32_t state) { #ifdef RGBLIGHT_ENABLE uint8_t default_layer = eeconfig_read_default_layer(); + if (rgb_layer_change) { switch (biton32(state)) { case _NAV: diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h index b7cbaa44afb0..746c7e20a0cd 100644 --- a/users/drashna/drashna.h +++ b/users/drashna/drashna.h @@ -20,25 +20,25 @@ along with this program. If not, see . #include "quantum.h" // Define layer names -#define _QWERTY 0 -#define _NUMLOCK 0 -#define _COLEMAK 1 -#define _DVORAK 2 -#define _WORKMAN 3 -#define _MODS 4 -//#define _MISC 5 -#define _NAV 6 -#define _COVECUBE 7 -#define _SYMB 8 -#define _GAMEPAD 9 -#define _DIABLO 10 -#define _MOUS 11 -#define _MACROS 12 -#define _MEDIA 13 -#define _LOWER 14 -#define _RAISE 15 -#define _ADJUST 16 - +enum userspace_layers { + _QWERTY = 0, + _NUMLOCK = 0, + _COLEMAK, + _DVORAK, + _WORKMAN, + _MODS, + _NAV, + _COVECUBE, + _SYMB, + _GAMEPAD, + _DIABLO, + _MOUS, + _MACROS, + _MEDIA, + _LOWER, + _RAISE, + _ADJUST, +}; //define modifiers #define MODS_SHIFT_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) @@ -83,6 +83,10 @@ enum userspace_custom_keycodes { KC_SECRET_3, KC_SECRET_4, KC_SECRET_5, + KC_CCCV, +#ifdef UNICODE_ENABLE + UC_FLIP, +#endif //UNICODE_ENABLE NEW_SAFE_RANGE //use "NEWPLACEHOLDER for keymap specific codes }; @@ -107,6 +111,72 @@ enum { }; #endif // TAP_DANCE_ENABLE +#ifdef UNICODEMAP_ENABLE + +/* use X(n) to call the */ + + +enum unicode_name { + THINK, // thinking face 🤔 + GRIN, // grinning face 😊 + SMRK, // smirk 😏 + WEARY, // good shit 😩 + UNAMU, // unamused 😒 + + SNEK, // snke 🐍 + PENGUIN, // 🐧 + DRAGON, // 🐉 + MONKEY, // 🐒 + CHICK, // 🐥 + + OKOK, // 👌 + EFFU, // 🖕 + INUP, // 👆 + THUP, // 👍 + THDN, // 👎 + + BBB, // dat B 🅱 + POO, // poop 💩 + HUNDR, // 100 💯 + EGGPL, // EGGPLANT 🍆 + WATER, // wet 💦 + TUMBLER, // 🥃 + + LIT, // fire 🔥 + IRONY, // ‽ + DEGREE, // ° +}; + + +const uint32_t PROGMEM unicode_map[] = { + [THINK] = 0x1F914, + [GRIN] = 0x1F600, + [BBB] = 0x1F171, + [POO] = 0x1F4A9, + [HUNDR] = 0x1F4AF, + [SMRK] = 0x1F60F, + [WEARY] = 0x1F629, + [EGGPL] = 0x1F346, + [WATER] = 0x1F4A6, + [LIT] = 0x1F525, + [UNAMU] = 0x1F612, + [SNEK] = 0x1F40D, + [PENGUIN] = 0x1F427, + [BOAR] = 0x1F417, + [MONKEY] = 0x1F412, + [CHICK] = 0x1F425, + [DRAGON] = 0x1F409, + [OKOK] = 0x1F44C, + [EFFU] = 0x1F595, + [INUP] = 0x1F446, + [THDN] = 0x1F44E, + [THUP] = 0x1F44D, + [TUMBLER] = 0x1F943, + [IRONY] = 0x0203D, + [DEGREE] = 0x000B0, + }; + +#endif //UNICODEMAP_ENABLE // Custom Keycodes for Diablo 3 layer // But since TD() doesn't work when tap dance is disabled @@ -199,13 +269,13 @@ enum { #define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z) -#define _________________WORKMAN_L1________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y -#define _________________WORKMAN_L2________________ KC_A, KC_O, KC_E, KC_U, KC_I -#define _________________WORKMAN_L3________________ CTL_T(KC_SCLN),KC_Q, KC_J, KC_K, KC_X +#define _________________WORKMAN_L1________________ KC_Q, KC_D, KC_R, KC_W, KC_B +#define _________________WORKMAN_L2________________ KC_A, KC_S, KC_H, KC_T, KC_G +#define _________________WORKMAN_L3________________ CTL_T(KC_Z), KC_X, KC_M, KC_C, KC_V -#define _________________WORKMAN_R1________________ KC_F, KC_G, KC_C, KC_R, KC_L -#define _________________WORKMAN_R2________________ KC_D, KC_H, KC_T, KC_N, KC_S -#define _________________WORKMAN_R3________________ KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z) +#define _________________WORKMAN_R1________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN +#define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, KC_I +#define _________________WORKMAN_R3________________ KC_K, KC_L, KC_COMM, KC_DOT, CTL_T(KC_SLASH) #define _________________NORMAN_L1_________________ KC_Q, KC_W, KC_D, KC_F, KC_K @@ -226,4 +296,9 @@ enum { #define ___________ERGODOX_BOTTOM_RIGHT____________ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +#define __________________ERGODOX_THUMB_CLUSTER_____________________ ALT_T(KC_APP), KC_LGUI, KC_RGUI, CTL_T(KC_ESCAPE), \ + KC_HOME, KC_PGUP, \ + KC_SPACE,KC_BSPC, KC_END, KC_PGDN, KC_DEL, KC_ENTER + + #endif diff --git a/users/drashna/rules.mk b/users/drashna/rules.mk index 062ecd3c4915..123c0cc70a3f 100644 --- a/users/drashna/rules.mk +++ b/users/drashna/rules.mk @@ -2,4 +2,6 @@ SRC += drashna.c EXTRAFLAGS += -flto - +ifeq ($(strip $(NO_SECRETS)), yes) + OPT_DEFS += -DNO_SECRETS +endif From 14b2a35571b078effce2cbfa4030c613b31f4d49 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Sat, 21 Apr 2018 00:22:30 -0700 Subject: [PATCH 253/578] Use QMK_KEYBOARD_H instead of the mykeyboard.h (#2780) --- quantum/template/keymaps/default/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quantum/template/keymaps/default/keymap.c b/quantum/template/keymaps/default/keymap.c index 508b4c79b526..d4bda895c716 100644 --- a/quantum/template/keymaps/default/keymap.c +++ b/quantum/template/keymaps/default/keymap.c @@ -13,7 +13,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "%KEYBOARD%.h" +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( /* Base */ From e36d6bbbe3392b8e1e36157c070ed028dc8f5992 Mon Sep 17 00:00:00 2001 From: bjacques Date: Sat, 21 Apr 2018 08:43:36 +0100 Subject: [PATCH 254/578] Update feature_tap_dance.md (#2643) --- docs/feature_tap_dance.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/feature_tap_dance.md b/docs/feature_tap_dance.md index e31e331679d7..0521826b25ff 100644 --- a/docs/feature_tap_dance.md +++ b/docs/feature_tap_dance.md @@ -22,7 +22,7 @@ This array specifies what actions shall be taken when a tap-dance key is in acti * `ACTION_TAP_DANCE_FN(fn)`: Calls the specified function - defined in the user keymap - with the final tap count of the tap dance action. * `ACTION_TAP_DANCE_FN_ADVANCED(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn)`: Calls the first specified function - defined in the user keymap - on every tap, the second function on when the dance action finishes (like the previous option), and the last function when the tap dance action resets. -The first option is enough for a lot of cases, that just want dual roles. For example, `ACTION_TAP_DANCE(KC_SPC, KC_ENT)` will result in `Space` being sent on single-tap, `Enter` otherwise. +The first option is enough for a lot of cases, that just want dual roles. For example, `ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT)` will result in `Space` being sent on single-tap, `Enter` otherwise. And that's the bulk of it! From 9a7347e35707585f081c439d571730169c2ec774 Mon Sep 17 00:00:00 2001 From: fixed Date: Sat, 21 Apr 2018 16:32:53 +0200 Subject: [PATCH 255/578] Adds config for ALF X2 60% keyboard (#2765) * Adds initial keyboard config and layouts for ALF X2 60% * Cleans up empty if/else blocks * Renames KEYMAP to LAYOUT across the alf_x2 config files. * Replaces include in alf_x2 keymaps with QMK_KEYBOARD_H macro --- keyboards/alf_x2/alf_x2.c | 1 + keyboards/alf_x2/alf_x2.h | 22 +++++++++ keyboards/alf_x2/config.h | 58 +++++++++++++++++++++++ keyboards/alf_x2/keymaps/default/keymap.c | 40 ++++++++++++++++ keyboards/alf_x2/keymaps/hhkb_60/keymap.c | 40 ++++++++++++++++ keyboards/alf_x2/readme.md | 15 ++++++ keyboards/alf_x2/rules.mk | 56 ++++++++++++++++++++++ 7 files changed, 232 insertions(+) create mode 100644 keyboards/alf_x2/alf_x2.c create mode 100644 keyboards/alf_x2/alf_x2.h create mode 100644 keyboards/alf_x2/config.h create mode 100644 keyboards/alf_x2/keymaps/default/keymap.c create mode 100644 keyboards/alf_x2/keymaps/hhkb_60/keymap.c create mode 100644 keyboards/alf_x2/readme.md create mode 100644 keyboards/alf_x2/rules.mk diff --git a/keyboards/alf_x2/alf_x2.c b/keyboards/alf_x2/alf_x2.c new file mode 100644 index 000000000000..cc22d872a5da --- /dev/null +++ b/keyboards/alf_x2/alf_x2.c @@ -0,0 +1 @@ +#include "alf_x2.h" diff --git a/keyboards/alf_x2/alf_x2.h b/keyboards/alf_x2/alf_x2.h new file mode 100644 index 000000000000..dee10bf1bfe7 --- /dev/null +++ b/keyboards/alf_x2/alf_x2.h @@ -0,0 +1,22 @@ +#ifndef ALF_X2_H +#define ALF_X2_H + +#include "quantum.h" + +// K404 and K408 are the microswitches at the top of the PCB + +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \ +} + +#endif \ No newline at end of file diff --git a/keyboards/alf_x2/config.h b/keyboards/alf_x2/config.h new file mode 100644 index 000000000000..31212ce3368c --- /dev/null +++ b/keyboards/alf_x2/config.h @@ -0,0 +1,58 @@ +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER ALF +#define PRODUCT X2 +#define DESCRIPTION ALF X2 60 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 } +#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3, F4 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* number of backlight levels */ +#define BACKLIGHT_PIN B6 +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 3 +#endif + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* prevent stuck modifiers */ +#define PREVENT_STUCK_MODIFIERS + +#define RGB_DI_PIN E2 +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 4 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif + +#endif \ No newline at end of file diff --git a/keyboards/alf_x2/keymaps/default/keymap.c b/keyboards/alf_x2/keymaps/default/keymap.c new file mode 100644 index 000000000000..9b32c94d74db --- /dev/null +++ b/keyboards/alf_x2/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + LAYOUT( + 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_NO, KC_BSPC, + 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_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO, + KC_LCTL, KC_LGUI, KC_LALT, KC_VOLU, KC_SPC, KC_VOLD, KC_RALT, MO(1), KC_NO, KC_APP, KC_RCTL), + + LAYOUT( + KC_GRV, 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_TRNS, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, RESET, + 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, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_TRNS, KC_MPRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + return MACRO_NONE; +} + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + DDRB |= (1 << 2); PORTB &= ~(1 << 2); + } else { + DDRB &= ~(1 << 2); PORTB &= ~(1 << 2); + } +} diff --git a/keyboards/alf_x2/keymaps/hhkb_60/keymap.c b/keyboards/alf_x2/keymaps/hhkb_60/keymap.c new file mode 100644 index 000000000000..17771a541dcb --- /dev/null +++ b/keyboards/alf_x2/keymaps/hhkb_60/keymap.c @@ -0,0 +1,40 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + LAYOUT( + 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, KC_GRV, + 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, + 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_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_VOLU, KC_SPC, KC_VOLD, KC_RALT, KC_RGUI, KC_NO, KC_APP, KC_RCTL), + + LAYOUT( + KC_NO, 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, + 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, RESET, + 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, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_TRNS, KC_MPRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + return MACRO_NONE; +} + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + DDRB |= (1 << 2); PORTB &= ~(1 << 2); + } else { + DDRB &= ~(1 << 2); PORTB &= ~(1 << 2); + } +} \ No newline at end of file diff --git a/keyboards/alf_x2/readme.md b/keyboards/alf_x2/readme.md new file mode 100644 index 000000000000..d51cd180a254 --- /dev/null +++ b/keyboards/alf_x2/readme.md @@ -0,0 +1,15 @@ +# ALF X2 + +![alf_x2](https://cdn.shopify.com/s/files/1/1674/0405/products/1_088c2862-1f68-4fdd-a346-965208c3a3de_1024x1024.png?v=1511296076) + +A customizable 60% keyboard. + +Keyboard Maintainer: QMK Community +Hardware Supported: ALF X2 60% +Hardware Availability: [zfrontier](https://en.zfrontier.com/products/group-buy-alf-x2-60) + +Make example for this keyboard (after setting up your build environment): + + make alf_x2:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/alf_x2/rules.mk b/keyboards/alf_x2/rules.mk new file mode 100644 index 000000000000..9c4082da29f4 --- /dev/null +++ b/keyboards/alf_x2/rules.mk @@ -0,0 +1,56 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +AUDIO_ENABLE = no +RGBLIGHT_ENABLE = yes \ No newline at end of file From d1c3419d2ade6341bb7eba130bf8c77005705519 Mon Sep 17 00:00:00 2001 From: Mike Kozlowski Date: Sat, 21 Apr 2018 12:21:46 -0400 Subject: [PATCH 256/578] Rework layer function docs (#2656) * Rework layer function docs * Update per PR feedback --- docs/feature_advanced_keycodes.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/docs/feature_advanced_keycodes.md b/docs/feature_advanced_keycodes.md index 2db313e75c19..89d0ae8fcf5e 100644 --- a/docs/feature_advanced_keycodes.md +++ b/docs/feature_advanced_keycodes.md @@ -19,14 +19,15 @@ Currently, the keycodes able to used with these functions are limited to the [Ba # Switching and Toggling Layers -These functions allow you to activate layers in various ways. +These functions allow you to activate layers in various ways. Note that layers are not generally independent layouts -- multiple layers can be activated at once, and it's typical for layers to use `KC_TRNS` to allow keypresses to pass through to lower layers. For a detailed explanation of layers, see [Keymap Overview](keymap.md#keymap-and-layers) -* `MO(layer)` - momentary switch to *layer*. As soon as you let go of the key, the layer is deactivated and you pop back out to the previous layer. -* `LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped. -* `TG(layer)` - toggles a layer on or off. -* `TO(layer)` - Goes to a layer. This code is special, because it lets you go either up or down the stack -- just goes directly to the layer you want. So while other codes only let you go _up_ the stack (from layer 0 to layer 3, for example), `TO(2)` is going to get you to layer 2, no matter where you activate it from -- even if you're currently on layer 5. This gets activated on keydown (as soon as the key is pressed). -* `TT(layer)` - Layer Tap-Toggle. If you hold the key down, the layer becomes active, and then deactivates when you let go. And if you repeatedly tap it, the layer simply becomes active (toggles on). It needs 5 taps by default, but you can set it by defining `TAPPING_TOGGLE`, for example, `#define TAPPING_TOGGLE 2` for just two taps. -* `LM(layer, mod)` - Momentary switch to *layer* (like MO), but with modifier(s) *mod* active. Only supports layers 0-15 and the left modifiers. +* `DF(layer)` - switches the default layer. The default layer is the always-active base layer that other layers stack on top of. See below for more about the default layer. This might be used to switch from QWERTY to Dvorak layout. (Note that this is a temporary switch that only persists until the keyboard loses power. To modify the default layer in a persistent way requires deeper customization, such as calling the `set_single_persistent_default_layer` function inside of [process_record_user](custom_quantum_functions.md#programming-the-behavior-of-any-keycode).) +* `MO(layer)` - momentarily activates *layer*. As soon as you let go of the key, the layer is deactivated. +* `LM(layer, mod)` - Momentarily activates *layer* (like `MO`), but with modifier(s) *mod* active. Only supports layers 0-15 and the left modifiers. +* `LT(layer, kc)` - momentarily activates *layer* when held, and sends *kc* when tapped. +* `TG(layer)` - toggles *layer*, activating it if it's inactive and vice versa +* `TO(layer)` - activates *layer* and de-activates all other layers (except your default layer). This function is special, because instead of just adding/removing one layer to your active layer stack, it will completely replace your current active layers, uniquely allowing you to replace higher layers with a lower one. This is activated on keydown (as soon as the key is pressed). +* `TT(layer)` - Layer Tap-Toggle. If you hold the key down, *layer* is activated, and then is de-activated when you let go (like `MO`). If you repeatedly tap it, the layer will be toggled on or off (like `TG`). It needs 5 taps by default, but you can change this by defining `TAPPING_TOGGLE` -- for example, `#define TAPPING_TOGGLE 2` to toggle on just two taps. # Working with Layers @@ -36,9 +37,9 @@ Care must be taken when switching layers, it's possible to lock yourself into a If you are just getting started with QMK you will want to keep everything simple. Follow these guidelines when setting up your layers: -* Setup layer 0 as your "base" layer. This is your normal typing layer, and could be whatever layout you want (qwerty, dvorak, colemak, etc.) +* Setup layer 0 as your default, "base" layer. This is your normal typing layer, and could be whatever layout you want (qwerty, dvorak, colemak, etc.). It's important to set this as the lowest layer since it will typically have most or all of the keyboard's keys defined, so would block other layers from having any effect if it were above them (i.e., had a higher layer number). * Arrange your layers in a "tree" layout, with layer 0 as the root. Do not try to enter the same layer from more than one other layer. -* Never try to stack a higher numbered layer on top of a lower numbered layer. Doing so is tricky and error prone. +* In a layer's keymap, only reference higher-numbered layers. Because layers are processed from the highest-numbered (topmost) active layer down, modifying the state of lower layers can be tricky and error-prone. ### Intermediate Users From 33fdd1d2551591a5c295c6dc68ccf52c4698b9c1 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sat, 21 Apr 2018 09:30:10 -0700 Subject: [PATCH 257/578] Fix Audio Clicky sub-feature (#2784) * Fix Audio Clicky feature * Add to features --- common_features.mk | 1 + quantum/process_keycode/process_audio.c | 65 --------------------- quantum/process_keycode/process_clicky.c | 72 ++++++++++++++++++++++++ quantum/process_keycode/process_clicky.h | 7 +++ quantum/quantum.c | 5 +- quantum/quantum.h | 3 + 6 files changed, 87 insertions(+), 66 deletions(-) create mode 100644 quantum/process_keycode/process_clicky.c create mode 100644 quantum/process_keycode/process_clicky.h diff --git a/common_features.mk b/common_features.mk index 9b99edd752f9..7bd43afdbaf8 100644 --- a/common_features.mk +++ b/common_features.mk @@ -34,6 +34,7 @@ ifeq ($(strip $(AUDIO_ENABLE)), yes) OPT_DEFS += -DAUDIO_ENABLE MUSIC_ENABLE := 1 SRC += $(QUANTUM_DIR)/process_keycode/process_audio.c + SRC += $(QUANTUM_DIR)/process_keycode/process_clicky.c ifeq ($(PLATFORM),AVR) SRC += $(QUANTUM_DIR)/audio/audio.c else diff --git a/quantum/process_keycode/process_audio.c b/quantum/process_keycode/process_audio.c index fc0f23ee341c..e9b20512e744 100644 --- a/quantum/process_keycode/process_audio.c +++ b/quantum/process_keycode/process_audio.c @@ -10,45 +10,7 @@ float voice_change_song[][2] = VOICE_CHANGE_SONG; #define PITCH_STANDARD_A 440.0f #endif -#ifdef AUDIO_CLICKY -#ifdef AUDIO_CLICKY_ON -bool clicky_enable = true; -#else -bool clicky_enable = false; -#endif -#ifndef AUDIO_CLICKY_FREQ_DEFAULT -#define AUDIO_CLICKY_FREQ_DEFAULT 440.0f -#endif -#ifndef AUDIO_CLICKY_FREQ_MIN -#define AUDIO_CLICKY_FREQ_MIN 65.0f -#endif -#ifndef AUDIO_CLICKY_FREQ_MAX -#define AUDIO_CLICKY_FREQ_MAX 1500.0f -#endif -#ifndef AUDIO_CLICKY_FREQ_FACTOR -#define AUDIO_CLICKY_FREQ_FACTOR 1.18921f -#endif -#ifndef AUDIO_CLICKY_FREQ_RANDOMNESS -#define AUDIO_CLICKY_FREQ_RANDOMNESS 0.05f -#endif - -float clicky_freq = AUDIO_CLICKY_FREQ_DEFAULT; -float clicky_song[][2] = {{AUDIO_CLICKY_FREQ_DEFAULT, 3}, {AUDIO_CLICKY_FREQ_DEFAULT, 1}}; // 3 and 1 --> durations -#ifndef NO_MUSIC_MODE -extern bool music_activated; -extern bool midi_activated; -#endif - -void clicky_play(void) { -#ifndef NO_MUSIC_MODE - if (music_activated || midi_activated) return; -#endif - clicky_song[0][0] = 2.0f * clicky_freq * (1.0f + AUDIO_CLICKY_FREQ_RANDOMNESS * ( ((float)rand()) / ((float)(RAND_MAX)) ) ); - clicky_song[1][0] = clicky_freq * (1.0f + AUDIO_CLICKY_FREQ_RANDOMNESS * ( ((float)rand()) / ((float)(RAND_MAX)) ) ); - PLAY_SONG(clicky_song); -} -#endif static float compute_freq_for_midi_note(uint8_t note) { @@ -89,33 +51,6 @@ bool process_audio(uint16_t keycode, keyrecord_t *record) { return false; } -#ifdef AUDIO_CLICKY - if (keycode == CLICKY_TOGGLE && record->event.pressed) { clicky_enable = !clicky_enable; } - - if (keycode == CLICKY_RESET && record->event.pressed) { clicky_freq = AUDIO_CLICKY_FREQ_DEFAULT; } - - if (keycode == CLICKY_UP && record->event.pressed) { - float new_freq = clicky_freq * AUDIO_CLICKY_FREQ_FACTOR; - if (new_freq < AUDIO_CLICKY_FREQ_MAX) { - clicky_freq = new_freq; - } - } - if (keycode == CLICKY_TOGGLE && record->event.pressed) { - float new_freq = clicky_freq / AUDIO_CLICKY_FREQ_FACTOR; - if (new_freq > AUDIO_CLICKY_FREQ_MIN) { - clicky_freq = new_freq; - } - } - - - if ( clicky_enable ) { - if (record->event.pressed) { - stop_all_notes(); - clicky_play();; - } - } -#endif // AUDIO_CLICKY - return true; } diff --git a/quantum/process_keycode/process_clicky.c b/quantum/process_keycode/process_clicky.c new file mode 100644 index 000000000000..2b9d8a0f76a6 --- /dev/null +++ b/quantum/process_keycode/process_clicky.c @@ -0,0 +1,72 @@ +#include "audio.h" +#include "process_clicky.h" + +#ifdef AUDIO_CLICKY + +#ifdef AUDIO_CLICKY_ON +bool clicky_enable = true; +#else // AUDIO_CLICKY_ON +bool clicky_enable = false; +#endif // AUDIO_CLICKY_ON +#ifndef AUDIO_CLICKY_FREQ_DEFAULT +#define AUDIO_CLICKY_FREQ_DEFAULT 440.0f +#endif // !AUDIO_CLICKY_FREQ_DEFAULT +#ifndef AUDIO_CLICKY_FREQ_MIN +#define AUDIO_CLICKY_FREQ_MIN 65.0f +#endif // !AUDIO_CLICKY_FREQ_MIN +#ifndef AUDIO_CLICKY_FREQ_MAX +#define AUDIO_CLICKY_FREQ_MAX 1500.0f +#endif // !AUDIO_CLICKY_FREQ_MAX +#ifndef AUDIO_CLICKY_FREQ_FACTOR +#define AUDIO_CLICKY_FREQ_FACTOR 1.18921f +#endif // !AUDIO_CLICKY_FREQ_FACTOR +#ifndef AUDIO_CLICKY_FREQ_RANDOMNESS +#define AUDIO_CLICKY_FREQ_RANDOMNESS 0.05f +#endif // !AUDIO_CLICKY_FREQ_RANDOMNESS + +float clicky_freq = AUDIO_CLICKY_FREQ_DEFAULT; +float clicky_song[][2] = {{AUDIO_CLICKY_FREQ_DEFAULT, 3}, {AUDIO_CLICKY_FREQ_DEFAULT, 1}}; // 3 and 1 --> durations + +#ifndef NO_MUSIC_MODE +extern bool music_activated; +extern bool midi_activated; +#endif // !NO_MUSIC_MODE + +void clicky_play(void) { +#ifndef NO_MUSIC_MODE + if (music_activated || midi_activated) return; +#endif // !NO_MUSIC_MODE + clicky_song[0][0] = 2.0f * clicky_freq * (1.0f + AUDIO_CLICKY_FREQ_RANDOMNESS * ( ((float)rand()) / ((float)(RAND_MAX)) ) ); + clicky_song[1][0] = clicky_freq * (1.0f + AUDIO_CLICKY_FREQ_RANDOMNESS * ( ((float)rand()) / ((float)(RAND_MAX)) ) ); + PLAY_SONG(clicky_song); +} + +bool process_clicky(uint16_t keycode, keyrecord_t *record) { + if (keycode == CLICKY_TOGGLE && record->event.pressed) { clicky_enable = !clicky_enable; } + + if (keycode == CLICKY_RESET && record->event.pressed) { clicky_freq = AUDIO_CLICKY_FREQ_DEFAULT; } + + if (keycode == CLICKY_UP && record->event.pressed) { + float new_freq = clicky_freq * AUDIO_CLICKY_FREQ_FACTOR; + if (new_freq < AUDIO_CLICKY_FREQ_MAX) { + clicky_freq = new_freq; + } + } + if (keycode == CLICKY_TOGGLE && record->event.pressed) { + float new_freq = clicky_freq / AUDIO_CLICKY_FREQ_FACTOR; + if (new_freq > AUDIO_CLICKY_FREQ_MIN) { + clicky_freq = new_freq; + } + } + + + if ( clicky_enable ) { + if (record->event.pressed) { + stop_all_notes(); + clicky_play();; + } + } + return true; +} + +#endif //AUDIO_CLICKY diff --git a/quantum/process_keycode/process_clicky.h b/quantum/process_keycode/process_clicky.h new file mode 100644 index 000000000000..e274af56f1f3 --- /dev/null +++ b/quantum/process_keycode/process_clicky.h @@ -0,0 +1,7 @@ +#ifndef PROCESS_CLICKY_H +#define PROCESS_CLICKY_H + +void clicky_play(void); +bool process_clicky(uint16_t keycode, keyrecord_t *record); + +#endif diff --git a/quantum/quantum.c b/quantum/quantum.c index 66feca2f2961..5a2a73d4a2bf 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -226,6 +226,9 @@ bool process_record_quantum(keyrecord_t *record) { // Must run first to be able to mask key_up events. process_key_lock(&keycode, record) && #endif + #if defined(AUDIO_ENABLE) && defined(AUDIO_CLICKY) + process_clicky(keycode, record) && + #endif //AUDIO_CLICKY process_record_kb(keycode, record) && #if defined(MIDI_ENABLE) && defined(MIDI_ADVANCED) process_midi(keycode, record) && @@ -236,7 +239,7 @@ bool process_record_quantum(keyrecord_t *record) { #ifdef STENO_ENABLE process_steno(keycode, record) && #endif - #if ( defined(AUDIO_ENABLE) || (defined(MIDI_ENABLE) && defined(MIDI_BASIC))) && !defined(NO_MUSIC_MODE) + #if ( defined(AUDIO_ENABLE) || (defined(MIDI_ENABLE) && defined(MIDI_BASIC))) && !defined(NO_MUSIC_MODE) process_music(keycode, record) && #endif #ifdef TAP_DANCE_ENABLE diff --git a/quantum/quantum.h b/quantum/quantum.h index b9424d5cdd36..80a606f0913c 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -57,6 +57,9 @@ extern uint32_t default_layer_state; #ifdef AUDIO_ENABLE #include "audio.h" #include "process_audio.h" + #ifdef AUDIO_CLICKY + #include "process_clicky.h" + #endif // AUDIO_CLICKY #endif #ifdef STENO_ENABLE From 5ca9aecfb4cb09cc002a5256939098132a40015f Mon Sep 17 00:00:00 2001 From: Joe Wasson Date: Sat, 21 Apr 2018 10:48:30 -0700 Subject: [PATCH 258/578] Talljoe's layout with common keymap. (#2764) * Add userspace to talljoe layout. * Move more authority to userspace and create Bananasplit layout. * Move more things into userspace. * Common Core example * More work on common layout. * Num layer. * talljoe-ansi layout * Updates for Zeal60 * Add Zeal60 to 60_ansi_split_bs_rshift * Swap Escape and Grave * Num-layer tweaks * More tweaks. * Add 1up60rgb to world of layouts. * Rename ansi_split_bs_rshift layout to hhkb. * Control RGB Backlight. * change capslock led * Remove obsolete line from rules.mk. * Add user-friendly userspace override. * Fix enter for 1uprgb60 * Revert "Rename ansi_split_bs_rshift layout to hhkb." This reverts commit 53133719db25c7cb6a199108bbf5d980481a45f4. --- build_keyboard.mk | 6 +- docs/feature_userspace.md | 20 +- keyboards/1up60rgb/1up60rgb.h | 48 ++++- keyboards/1up60rgb/rules.mk | 4 +- .../bananasplit/keymaps/talljoe/config.h | 22 +++ .../bananasplit/keymaps/talljoe/keymap.c | 1 + .../community/60_ansi/talljoe-ansi/config.h | 22 +++ .../community/60_ansi/talljoe-ansi/keymap.c | 1 + .../community/60_ansi/talljoe-ansi/rules.mk | 1 + .../60_ansi_split_bs_rshift/talljoe/config.h | 68 ++++++- .../60_ansi_split_bs_rshift/talljoe/keymap.c | 186 ++++++++---------- layouts/community/ortho_4x12/talljoe/config.h | 22 +++ layouts/community/ortho_4x12/talljoe/keymap.c | 1 + users/talljoe/config.h | 9 + users/talljoe/readme.md | 7 + users/talljoe/rules.mk | 3 + users/talljoe/talljoe.c | 124 ++++++++++++ users/talljoe/talljoe.h | 108 ++++++++++ 18 files changed, 536 insertions(+), 117 deletions(-) create mode 100644 keyboards/bananasplit/keymaps/talljoe/config.h create mode 100644 keyboards/bananasplit/keymaps/talljoe/keymap.c create mode 100644 layouts/community/60_ansi/talljoe-ansi/config.h create mode 100644 layouts/community/60_ansi/talljoe-ansi/keymap.c create mode 100644 layouts/community/60_ansi/talljoe-ansi/rules.mk create mode 100644 layouts/community/ortho_4x12/talljoe/config.h create mode 100644 layouts/community/ortho_4x12/talljoe/keymap.c create mode 100644 users/talljoe/config.h create mode 100644 users/talljoe/readme.md create mode 100644 users/talljoe/rules.mk create mode 100644 users/talljoe/talljoe.c create mode 100644 users/talljoe/talljoe.h diff --git a/build_keyboard.mk b/build_keyboard.mk index 90a3df7768c3..4781f4a5d194 100644 --- a/build_keyboard.mk +++ b/build_keyboard.mk @@ -204,7 +204,11 @@ else endif # User space stuff -USER_PATH := users/$(KEYMAP) +ifeq ("$(USER_NAME)","") + USER_NAME := $(KEYMAP) +endif +USER_PATH := users/$(USER_NAME) + -include $(USER_PATH)/rules.mk ifneq ("$(wildcard users/$(KEYMAP)/config.h)","") CONFIG_H += users/$(KEYMAP)/config.h diff --git a/docs/feature_userspace.md b/docs/feature_userspace.md index 454481cb2cc5..c8fa406cb006 100644 --- a/docs/feature_userspace.md +++ b/docs/feature_userspace.md @@ -25,19 +25,19 @@ For example, Will include the `/users/jack/` folder in the path, along with `/users/jack/rules.mk`. -Additionally, `config.h` here will be processed like the same file in your keymap folder. This is handled separately from the `.h` file. +Additionally, `config.h` here will be processed like the same file in your keymap folder. This is handled separately from the `.h` file. -The reason for this, is that `.h` won't be added in time to add settings (such as `#define TAPPING_TERM 100`), and including the `` file in any `config.h` files will result in compile issues. +The reason for this, is that `.h` won't be added in time to add settings (such as `#define TAPPING_TERM 100`), and including the `` file in any `config.h` files will result in compile issues. + +So you should use the `config.h` for QMK settings, and the `.h` file for user or keymap specific settings. -So you should use the `config.h` for QMK settings, and the `.h` file for user or keymap specific settings. - ## Readme Please include authorship (your name, github username, email), and optionally [a license that's GPL compatible](https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses). ## `Config.h` -If you do add a `config,h` file, you want to make sure that it only gets processed once. So you may want to start off with something like this: +If you do add a `config,h` file, you want to make sure that it only gets processed once. So you may want to start off with something like this: ```c #ifndef USERSPACE_CONFIG_H @@ -48,7 +48,7 @@ If you do add a `config,h` file, you want to make sure that it only gets process #endif // !USERSPACE_CONFIG_H ``` -You can use any option hre that you could use in your keymap's `config.h` file. You can find a list of vales [here](config_options.md). +You can use any option hre that you could use in your keymap's `config.h` file. You can find a list of vales [here](config_options.md). ## Example @@ -115,3 +115,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { This will add a new `KC_MAKE` keycode that can be used in any of your keymaps. And this keycode will output `make :`, making frequent compiling easier. And this will work with any keyboard and any keymap as it will output the current boards info, so that you don't have to type this out every time. Additionally, this should flash the newly compiled firmware automatically, using the correct utility, based on the bootloader settings (or default to just generating the HEX file). However, it should be noted that this may not work on all systems. AVRDUDE doesn't work on WSL, namely (and will dump the HEX in the ".build" folder instead). + +## Override default userspace + +By default the userspace used will be the same as the keymap name. In some situations this isn't desirable. For instance, if you use the [layout](feature_layouts.md) feature you can't use the same name for different keymaps (e.g. ANSI and ISO). You can name your layouts `mylayout-ansi` and `mylayout-iso` and add the following line to your layout's `rules.mk`: + +``` +USER_NAME := mylayout +``` \ No newline at end of file diff --git a/keyboards/1up60rgb/1up60rgb.h b/keyboards/1up60rgb/1up60rgb.h index a3d820f805f1..564a82caa6db 100644 --- a/keyboards/1up60rgb/1up60rgb.h +++ b/keyboards/1up60rgb/1up60rgb.h @@ -17,4 +17,50 @@ { K400, K401, KC_NO, K403, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, KC_NO, K413, K414 } \ } -#endif \ No newline at end of file + +/* ANSI variant. No extra keys for ISO */ +#define LAYOUT_60_ansi ( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \ + K400, K401, K403, K406, K410, K411, K413, K414 \ +) KEYMAP( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K013,\ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, K214, \ + K300, KC_NO,K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, KC_NO,\ + K400, K401, K403, K406, K410, K411, K413, K414 \ +) + +/* ISO variant. Remove useless ANSI keys */ +#define LAYOUT_60_iso ( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \ + K400, K401, K403, K406, K410, K411, K413, K414 \ +) KEYMAP( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K013,\ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K214, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, KC_NO,\ + K400, K401, K403, K406, K410, K411, K413, K414 \ +) + +/* HHKB Variant */ +#define LAYOUT_60_ansi_split_bs_rshift ( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ + K400, K401, K403, K406, K410, K411, K413, K414 \ +) KEYMAP( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014,\ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, K214, \ + K300, KC_NO,K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314,\ + K400, K401, K403, K406, K410, K411, K413, K414 \ +) + +#endif diff --git a/keyboards/1up60rgb/rules.mk b/keyboards/1up60rgb/rules.mk index c303af4bccdc..7363b3c3dfc8 100644 --- a/keyboards/1up60rgb/rules.mk +++ b/keyboards/1up60rgb/rules.mk @@ -53,4 +53,6 @@ SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality AUDIO_ENABLE ?= no -RGBLIGHT_ENABLE ?= yes \ No newline at end of file +RGBLIGHT_ENABLE ?= yes + +LAYOUTS = 60_ansi 60_iso 60_ansi_split_bs_rshift diff --git a/keyboards/bananasplit/keymaps/talljoe/config.h b/keyboards/bananasplit/keymaps/talljoe/config.h new file mode 100644 index 000000000000..ce342bd7aca2 --- /dev/null +++ b/keyboards/bananasplit/keymaps/talljoe/config.h @@ -0,0 +1,22 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include QMK_KEYBOARD_CONFIG_H + +#define SPACE_COUNT 3 + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K44, K45, K46, K48, K49, K4B, K4C \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, KC_NO, K44, K45, K46, KC_NO, K48, K49, KC_NO, K4B, K4C, KC_NO }\ +} + +#endif diff --git a/keyboards/bananasplit/keymaps/talljoe/keymap.c b/keyboards/bananasplit/keymaps/talljoe/keymap.c new file mode 100644 index 000000000000..7812add812b3 --- /dev/null +++ b/keyboards/bananasplit/keymaps/talljoe/keymap.c @@ -0,0 +1 @@ +// This space intentionally left blank diff --git a/layouts/community/60_ansi/talljoe-ansi/config.h b/layouts/community/60_ansi/talljoe-ansi/config.h new file mode 100644 index 000000000000..9e27b1b0a787 --- /dev/null +++ b/layouts/community/60_ansi/talljoe-ansi/config.h @@ -0,0 +1,22 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include QMK_KEYBOARD_CONFIG_H + +#define ENABLE_GAME_LAYER + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K44, K45, K46, K48, K49, K4B, K4C \ +) LAYOUT_60_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K45, K48, K49, K4B, K4C \ +) + +#endif //CONFIG_USER_H diff --git a/layouts/community/60_ansi/talljoe-ansi/keymap.c b/layouts/community/60_ansi/talljoe-ansi/keymap.c new file mode 100644 index 000000000000..7812add812b3 --- /dev/null +++ b/layouts/community/60_ansi/talljoe-ansi/keymap.c @@ -0,0 +1 @@ +// This space intentionally left blank diff --git a/layouts/community/60_ansi/talljoe-ansi/rules.mk b/layouts/community/60_ansi/talljoe-ansi/rules.mk new file mode 100644 index 000000000000..92007fe8ad71 --- /dev/null +++ b/layouts/community/60_ansi/talljoe-ansi/rules.mk @@ -0,0 +1 @@ +USER_NAME := talljoe diff --git a/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h b/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h index f5ab0c8dc676..0eacbde33695 100644 --- a/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h +++ b/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h @@ -3,8 +3,70 @@ #include QMK_KEYBOARD_CONFIG_H -#define PREVENT_STUCK_MODIFIERS +#define ENABLE_GAME_LAYER -#define KM LAYOUT_60_ansi_split_bs_rshift +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K44, K45, K46, K48, K49, K4B, K4C \ +) LAYOUT_60_ansi_split_bs_rshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K45, K48, K49, K4B, K4C \ +) -#endif //CONFIG_USER_H \ No newline at end of file +/* Color Map */ +#define CM( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K47, K4A, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, {}, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, {}, {}, {}, {}, K47, {}, {}, K4A, K4B, K4C, K4D } \ + } + +#ifdef KEYBOARD_zeal60 + + #define ZEAL_RGB + + /* enable/disable LEDs based on layout */ + #undef USE_SPLIT_BACKSPACE + #define USE_SPLIT_BACKSPACE 1 + + #undef USE_SPLIT_LEFT_SHIFT + #define USE_SPLIT_LEFT_SHIFT 0 + + #undef USE_SPLIT_RIGHT_SHIFT + #define USE_SPLIT_RIGHT_SHIFT 1 + + #undef USE_7U_SPACEBAR + #define USE_7U_SPACEBAR 0 + + #undef USE_ISO_ENTER + #define USE_ISO_ENTER 0 + + #undef TAPPING_TOGGLE + #define TAPPING_TOGGLE 2 + + #undef BACKLIGHT_MOD_LAYER_3 + #define BACKLIGHT_MOD_LAYER_3 RESET_LAYER + + #undef BACKLIGHT_ALPHAS_MODS_ROW_0 + #undef BACKLIGHT_ALPHAS_MODS_ROW_1 + #undef BACKLIGHT_ALPHAS_MODS_ROW_2 + #define BACKLIGHT_ALPHAS_MODS_ROW_0 0b0000000000000001 + #define BACKLIGHT_ALPHAS_MODS_ROW_1 0b0010000000000001 + #define BACKLIGHT_ALPHAS_MODS_ROW_2 0b0011000000000001 + +#endif //KEYBOARD_zeal60 + +#endif //CONFIG_USER_H diff --git a/layouts/community/60_ansi_split_bs_rshift/talljoe/keymap.c b/layouts/community/60_ansi_split_bs_rshift/talljoe/keymap.c index 7eff999305f0..b5dc54492761 100644 --- a/layouts/community/60_ansi_split_bs_rshift/talljoe/keymap.c +++ b/layouts/community/60_ansi_split_bs_rshift/talljoe/keymap.c @@ -1,113 +1,89 @@ -#include QMK_KEYBOARD_H +#ifdef KEYBOARD_zeal60 +#include "config.h" +#include "zeal60.h" +#include "zeal_backlight.h" +#include "action_layer.h" +#include "solarized.h" +#include "talljoe.h" -enum layers { - _BASE = 0, - _WORKMAN, - _NORMAN, - _DVORAK, - _COLMAK, - _GAME, - _NAV, - _ADJUST, - _RESET, -}; +// from zeal_backlight.c +// we want to be able to set indicators for the spacebar stabs +// but they are not represented by a row/index. +extern zeal_backlight_config g_config; +void map_row_column_to_led( uint8_t row, uint8_t column, uint8_t *led ); -#define _______ KC_TRNS -#define XXXXXXX KC_NO +void set_backlight_defaults(void) { + uint8_t space; + uint8_t caps_lock; + map_row_column_to_led(3, 12, &caps_lock); + map_row_column_to_led(4, 7, &space); + zeal_backlight_config default_values = { + .use_split_backspace = USE_SPLIT_BACKSPACE, + .use_split_left_shift = USE_SPLIT_LEFT_SHIFT, + .use_split_right_shift = USE_SPLIT_RIGHT_SHIFT, + .use_7u_spacebar = USE_7U_SPACEBAR, + .use_iso_enter = USE_ISO_ENTER, + .disable_when_usb_suspended = 1, + .disable_after_timeout = 0, + .brightness = 255, + .effect = 10, + .color_1 = solarized.base2, + .color_2 = solarized.base02, + .caps_lock_indicator = { .index = caps_lock, .color = solarized.red }, + .layer_1_indicator = { .index = space, .color = solarized.blue }, + .layer_2_indicator = { .index = space, .color = solarized.yellow }, + .layer_3_indicator = { .index = 254, .color = solarized.red }, + .alphas_mods = { + BACKLIGHT_ALPHAS_MODS_ROW_0, + BACKLIGHT_ALPHAS_MODS_ROW_1, + BACKLIGHT_ALPHAS_MODS_ROW_2, + BACKLIGHT_ALPHAS_MODS_ROW_3, + BACKLIGHT_ALPHAS_MODS_ROW_4 } + }; + memcpy(&g_config, &default_values, sizeof(zeal_backlight_config)); + backlight_config_save(); -#define NV_SPC LT(_NAV, KC_SPC) -#define AD_GRV LT(_ADJUST, KC_GRV) - -#define MO_NAV MO(_NAV) -#define MO_ADJ MO(_ADJUST) -#define MO_RST MO(_RESET) -#define TG_ADJ TG(_ADJUST) -#define TG_GAME TG(_GAME) -#define LY_QWER DF(_BASE) -#define LY_WORK DF(_WORKMAN) -#define LY_NRMN DF(_NORMAN) -#define LY_DVRK DF(_DVORAK) -#define LY_CLMK DF(_COLMAK) -#define TG_NKRO MAGIC_TOGGLE_NKRO -#define KC_PTT KC_F24 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = KM( - 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, KC_GRV, - 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, - 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_ENT , - KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, AD_GRV , - KC_LCTL, KC_LGUI, KC_LALT, NV_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_PTT ), - [_WORKMAN] = KM( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_Q , KC_D , KC_R , KC_W , KC_B , KC_J , KC_F , KC_U , KC_P , KC_SCLN, _______, _______, _______, - _______, KC_A , KC_S , KC_H , KC_T , KC_G , KC_Y , KC_N , KC_E , KC_O , KC_I , _______, _______, - _______, KC_Z , KC_X , KC_M , KC_C , KC_V , KC_K , KC_L , KC_COMM, KC_DOT , KC_SLSH, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______), - [_NORMAN] = KM( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_Q , KC_W , KC_D , KC_F , KC_K , KC_J , KC_U , KC_R , KC_L , KC_SCLN, _______, _______, _______, - _______, KC_A , KC_S , KC_E , KC_T , KC_G , KC_Y , KC_N , KC_I , KC_O , KC_H , _______, _______, - _______, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_P , KC_M , KC_COMM, KC_DOT , KC_SLSH, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______), - [_DVORAK] = KM( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, - _______, KC_QUOT, KC_COMM, KC_DOT , KC_P , KC_Y , KC_F , KC_G , KC_C , KC_R , KC_L , KC_SLSH, KC_EQL , _______, - _______, KC_A , KC_O , KC_E , KC_U , KC_I , KC_D , KC_H , KC_T , KC_N , KC_S , KC_MINS, _______, - _______, KC_SCLN, KC_Q , KC_J , KC_K , KC_X , KC_B , KC_M , KC_W , KC_V , KC_Z , _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______), - [_COLMAK] = KM( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , KC_SCLN, _______, _______, _______, - _______, KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E , KC_I , KC_O , _______, _______, - _______, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMM, KC_DOT , KC_SLSH, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______), - [_GAME] = KM( - 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, KC_GRV, - 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, - MO_NAV , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , - KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, MO_ADJ , - KC_LCTL, KC_PTT , KC_PGDN, KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_PTT ), - [_NAV] = KM( - KC_GRV , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_VOLU, KC_INS , KC_PGUP, KC_UP , KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL , - XXXXXXX, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_MUTE, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END , XXXXXXX, TG_ADJ , - KC_LSFT, KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_VOLD, KC_END , KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX, KC_RSFT, XXXXXXX, - KC_LCTL, KC_LGUI, KC_LALT, _______, KC_RALT, KC_RGUI, KC_RCTL, _______), - // Adjust layer is on the split-shift key; or NAV+Enter (for non-split keyboards) - [_ADJUST] = KM( - MO_RST , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG_ADJ , - TG_NKRO, LY_QWER, LY_WORK, LY_NRMN, LY_DVRK, LY_CLMK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG_GAME, XXXXXXX, XXXXXXX, - MO_RST , AG_NORM, AG_SWAP, BL_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS), - // To Reset hit FN + ` + Esc - [_RESET] = KM( - RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX), -}; - -void matrix_scan_user(void) { - #ifdef KEYBOARD_gh60 - if (IS_LAYER_ON(_GAME)) { - gh60_wasd_leds_on(); - } else { - gh60_wasd_leds_off(); + solarized_t* S = &solarized; + HSV alphas = S->base2; + HSV custom_color_map[MATRIX_ROWS][MATRIX_COLS] = CM( + S->red, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, S->red, + S->orange, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, S->orange, + S->green, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, S->green, + S->blue, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, S->blue, S->blue, + S->violet, S->magenta, S->yellow, alphas, S->yellow, S->magenta, S->violet, S->green + ); + for (uint8_t row = 0; row < MATRIX_ROWS; ++row) { + for (uint8_t col = 0; col < MATRIX_COLS; ++col) { + backlight_set_key_color(row, col, custom_color_map[row][col]); } - #endif + } } -void matrix_init_user(void) { - if (!eeconfig_is_enabled()) { - eeconfig_init(); +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + static uint8_t last_effect; + switch (keycode) { + case DFAULTS: + if (IS_PRESSED(record->event)) set_backlight_defaults(); + return false; + case BL_TOGG: + if (IS_PRESSED(record->event)) { + if (g_config.effect) { + last_effect = g_config.effect; + g_config.effect = 0; + } else { + g_config.effect = last_effect; + } + } + return false; + case EFFECT...EFFECT_END: + if (IS_PRESSED(record->event)) { + uint8_t effect = keycode - EFFECT; + g_config.effect = effect; + backlight_config_save(); + } + return false; } -} -uint32_t default_layer_state_set_kb(uint32_t state) { - // persist changes to default layers - eeconfig_update_default_layer(state); - return state; -} \ No newline at end of file + return true; +} +#endif diff --git a/layouts/community/ortho_4x12/talljoe/config.h b/layouts/community/ortho_4x12/talljoe/config.h new file mode 100644 index 000000000000..c2a9567bb39e --- /dev/null +++ b/layouts/community/ortho_4x12/talljoe/config.h @@ -0,0 +1,22 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include QMK_KEYBOARD_CONFIG_H +#define SPACE_COUNT 3 + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K44, K45, K46, K48, K49, K4B, K4C \ +) \ +LAYOUT_ortho_4x12( \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K0D, K42, K44, K45, K45, K46, K48, K49, K4B, K4C \ +) + + +#endif //CONFIG_USER_H diff --git a/layouts/community/ortho_4x12/talljoe/keymap.c b/layouts/community/ortho_4x12/talljoe/keymap.c new file mode 100644 index 000000000000..7812add812b3 --- /dev/null +++ b/layouts/community/ortho_4x12/talljoe/keymap.c @@ -0,0 +1 @@ +// This space intentionally left blank diff --git a/users/talljoe/config.h b/users/talljoe/config.h new file mode 100644 index 000000000000..15bbde6bcd19 --- /dev/null +++ b/users/talljoe/config.h @@ -0,0 +1,9 @@ +#ifndef USERSPACE_CONFIG_H +#define USERSPACE_CONFIG_H + +#define PREVENT_STUCK_MODIFIERS +#define IGNORE_MOD_TAP_INTERRUPT + +#define RESET_LAYER 15 + +#endif // !USERSPACE_CONFIG_H diff --git a/users/talljoe/readme.md b/users/talljoe/readme.md new file mode 100644 index 000000000000..e70c5c6dc05b --- /dev/null +++ b/users/talljoe/readme.md @@ -0,0 +1,7 @@ +Copyright 2018 Joe Wasson @talljoe + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/users/talljoe/rules.mk b/users/talljoe/rules.mk new file mode 100644 index 000000000000..fa23149606e3 --- /dev/null +++ b/users/talljoe/rules.mk @@ -0,0 +1,3 @@ +SRC += talljoe.c + +EXTRAFLAGS+=-flto diff --git a/users/talljoe/talljoe.c b/users/talljoe/talljoe.c new file mode 100644 index 000000000000..e49a3060d29f --- /dev/null +++ b/users/talljoe/talljoe.c @@ -0,0 +1,124 @@ +#include QMK_KEYBOARD_H + +#include "talljoe.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_GRV , 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, KC_ESC, + 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, + US_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G , KC_H, KC_J, KC_K, KC_L, KC_SCLN, US_QUOT, US_ENT , + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B , KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO_ADJ , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC2, KC_SPC1, KC_SPC3, KC_RALT, KC_APP , KC_RCTL, KC_PTT ), + [_WORKMAN] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_Q , KC_D , KC_R , KC_W , KC_B , KC_J , KC_F , KC_U , KC_P , KC_SCLN, _______, _______, _______, + _______, KC_A , KC_S , KC_H , KC_T , KC_G , KC_Y , KC_N , KC_E , KC_O , KC_I , _______, _______, + _______, KC_Z , KC_X , KC_M , KC_C , KC_V , KC_K , KC_L , KC_COMM, KC_DOT , KC_SLSH, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + [_NORMAN] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_Q , KC_W , KC_D , KC_F , KC_K , KC_J , KC_U , KC_R , KC_L , KC_SCLN, _______, _______, _______, + _______, KC_A , KC_S , KC_E , KC_T , KC_G , KC_Y , KC_N , KC_I , KC_O , KC_H , _______, _______, + _______, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_P , KC_M , KC_COMM, KC_DOT , KC_SLSH, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + [_DVORAK] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, + _______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y , KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL , _______, + _______, KC_A, KC_O, KC_E, KC_U, KC_I , KC_D, KC_H, KC_T, KC_N, KC_S, US_MINS, _______, + _______, KC_SCLN, KC_Q, KC_J, KC_K, KC_X , KC_B, KC_M, KC_W, KC_V, KC_Z, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + [_COLMAK] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_Q, KC_W, KC_F, KC_P, KC_G , KC_J, KC_L, KC_U, KC_Y, KC_SCLN, _______, _______, _______, + _______, KC_A, KC_R, KC_S, KC_T, KC_D , KC_H, KC_N, KC_E, KC_I, KC_O , _______, _______, + _______, KC_Z, KC_X, KC_C, KC_V, KC_B , KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + +#ifdef ENABLE_GAME_LAYER + [_GAME] = LAYOUT( + 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, KC_GRV, + 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, + MO_NAV , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, MO_ADJ , + KC_LCTL, KC_PTT , KC_PGDN, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_APP , KC_RCTL, KC_PTT ), +#endif + [_NAV] = LAYOUT( + KC_GRV , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_TAB , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_VOLU, KC_INS , KC_PGUP, KC_UP , KC_PGDN, KC_BTN1, KC_BTN2, KC_BTN3, KC_DEL , + US_CAPS, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_MUTE, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END , KC_RCTL, TG_ADJ , + KC_LSFT, KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_VOLD, KC_END , KC_PGDN, KC_WBAK, KC_WFWD, KC_WREF, KC_RSFT, XXXXXXX, + KC_LCTL, KC_LGUI, KC_LALT, NV_SPC2, NV_SPC1, NV_SPC3, KC_RALT, KC_RGUI, KC_RCTL, KC_PTT ), + [_NUM] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_GRV , KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, XXXXXXX, KC_DEL , + US_CAPS, KC_LCBR, KC_RCBR, KC_LPRN, KC_RPRN, KC_LBRC, KC_RBRC, KC_4, KC_5, KC_6, KC_PPLS, KC_PENT, XXXXXXX, + KC_LSFT, KC_EQL, KC_PLUS, KC_BSLS, KC_PIPE, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_PAST, KC_PSLS, XXXXXXX, + KC_LCTL, KC_LGUI, KC_LALT, NM_SPC2, NM_SPC1, NM_SPC3, KC_PDOT, KC_PCMM, KC_RCTL, KC_PTT ), + // Adjust layer is on the split-shift key; or NAV+Enter (for non-split keyboards) + [_ADJUST] = LAYOUT( + MO_RST , FX(1) , FX(2) , FX(3) , FX(4) , FX(5) , FX(6) , FX(7) , FX(8) , FX(9) , FX(10) , BR_DEC , BR_INC , XXXXXXX, MO_RST , + XXXXXXX, H1_INC , S1_INC , H2_INC , S2_INC , EF_INC , RGB_HUI, RGB_SAI, RGB_MOD, RGB_M_P, DFAULTS, RGB_VAD, RGB_VAI, KC_DEL , + XXXXXXX, H1_DEC , S1_DEC , H2_DEC , S2_DEC , EF_DEC , RGB_HUD, RGB_SAD, RGB_RMOD,RGB_M_K, RGB_M_B, RGB_M_G, TG_ADJ , + TG_NKRO, LY_QWER, LY_WORK, LY_NRMN, LY_DVRK, LY_CLMK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MAKE, KC_CAPS, XXXXXXX, + MO_RST , AG_NORM, AG_SWAP, XXXXXXX, BL_TOGG, XXXXXXX, RGB_TOG, XXXXXXX, XXXXXXX, TG_GAME), + // To Reset hit FN + ` + Esc + [_RESET] = LAYOUT( + RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET , + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RESET , XXXXXXX, XXXXXXX, XXXXXXX, KC_SLEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX), +}; + +void matrix_scan_user(void) { + #ifdef KEYBOARD_gh60 + if (IS_LAYER_ON(_GAME)) { + gh60_wasd_leds_on(); + } else { + gh60_wasd_leds_off(); + } + #endif +} + +void matrix_init_user(void) { + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } +} + +uint32_t default_layer_state_set_kb(uint32_t state) { + // persist changes to default layers + eeconfig_update_default_layer(state); + return state; +} + +__attribute__ ((weak)) +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + return true; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +// If console is enabled, it will print the matrix position and status of each key pressed +#ifdef CONSOLE_ENABLE + xprintf("KL: row: %u, column: %u, pressed: %u\n", record->event.key.row, record->event.key.col, record->event.pressed); +#endif //CONSOLE_ENABLE + + switch (keycode) { + case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader + if (!record->event.pressed) { + SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP + + #if defined(BOOTLOADER_HALFKAY) + ":teensy" + #elif defined(BOOTLOADER_CATERINA) + ":avrdude" + #else + ":dfu" + #endif + SS_TAP(X_ENTER)); + } + return false; + break; + } + return process_record_keymap(keycode, record); +} diff --git a/users/talljoe/talljoe.h b/users/talljoe/talljoe.h new file mode 100644 index 000000000000..17e54af6993c --- /dev/null +++ b/users/talljoe/talljoe.h @@ -0,0 +1,108 @@ +#ifndef USERSPACE +#define USERSPACE + +#include "quantum.h" + +enum userspace_custom_keycodes { + KC_MAKE = SAFE_RANGE, // can always be here + DFAULTS, + TOGGLE_BACKLIGHT, + EFFECT, + EFFECT_END = EFFECT + 10 +}; + +#ifndef RESET_LAYER +#define RESET_LAYER 15 +#endif + +enum layers { + _BASE = 0, + _WORKMAN, + _NORMAN, + _DVORAK, + _COLMAK, + _GAME, + _NAV, + _NUM, + _ADJUST, + _RESET = RESET_LAYER, +}; + +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +#define MO_NAV MO(_NAV) +#define MO_ADJ MO(_ADJUST) +#define MO_RST MO(_RESET) +#define TG_ADJ TG(_ADJUST) +#ifdef ENABLE_GAME_LAYER + #define TG_GAME TG(_GAME) +#else + #define TG_GAME KC_NO +#endif +#define LY_QWER DF(_BASE) +#define LY_WORK DF(_WORKMAN) +#define LY_NRMN DF(_NORMAN) +#define LY_DVRK DF(_DVORAK) +#define LY_CLMK DF(_COLMAK) +#define TG_NKRO MAGIC_TOGGLE_NKRO +#define KC_PTT KC_F24 +#define MS_MID KC_MS_BTN3 +#define FX(x) (EFFECT + x) + +#define US_CAPS CTL_T(KC_ESC) +#define US_QUOT RCTL_T(KC_QUOT) +#define US_MINS RCTL_T(KC_QUOT) +#define US_ENT LT(_NUM, KC_ENT) + +#ifndef SPACE_COUNT + #define SPACE_COUNT 1 +#endif +#if (SPACE_COUNT == 1) + #define KC_SPC1 LT(_NAV, KC_SPC) + #define KC_SPC2 XXXXXXX + #define KC_SPC3 XXXXXXX + + #define NV_SPC1 _______ + #define NV_SPC2 _______ + #define NV_SPC3 _______ + + #define NM_SPC1 _______ + #define NM_SPC2 _______ + #define NM_SPC3 _______ +#elif (SPACE_COUNT == 3) + #define KC_SPC1 KC_BSPC + #define KC_SPC2 LT(_NUM,KC_ENT) + #define KC_SPC3 LT(_NAV,KC_SPC) + + #define NV_SPC1 KC_SPC + #define NV_SPC2 C_S_T(KC_ENT) + #define NV_SPC3 KC_SPC + + #define NM_SPC2 XXXXXXX + #define NM_SPC1 KC_SPC + #define NM_SPC3 KC_0 +#else + #error "Unsupported space count:" SPACE_COUNT +#endif + +#ifndef ZEAL_RGB + #define BR_INC KC_NO + #define BR_DEC KC_NO + #define EF_INC KC_NO + #define EF_DEC KC_NO + #define ES_INC KC_NO + #define ES_DEC KC_NO + #define H1_INC KC_NO + #define H1_DEC KC_NO + #define S1_INC KC_NO + #define S1_DEC KC_NO + #define H2_INC KC_NO + #define H2_DEC KC_NO + #define S2_INC KC_NO + #define S2_DEC KC_NO + #define FN_MO13 KC_NO + #define FN_MO2 KC_NO +#endif + +#endif From 3c224bffc87b90b4c676a229c8beb902c7107ea8 Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 21 Apr 2018 13:37:26 -0700 Subject: [PATCH 259/578] Add personal Tada68 Keymap (#2633) * Add personal Tada68 keymaps * remove uneccessary tada68 folder * recommit with temp name * remove bad folder name * fix bullet list format * rename to fezzant * remove unnecessary config.h file --- keyboards/tada68/keymaps/fezzant/keymap.c | 124 +++++++++++++++++++++ keyboards/tada68/keymaps/fezzant/readme.md | 8 ++ keyboards/tada68/keymaps/fezzant/rules.mk | 21 ++++ 3 files changed, 153 insertions(+) create mode 100644 keyboards/tada68/keymaps/fezzant/keymap.c create mode 100644 keyboards/tada68/keymaps/fezzant/readme.md create mode 100644 keyboards/tada68/keymaps/fezzant/rules.mk diff --git a/keyboards/tada68/keymaps/fezzant/keymap.c b/keyboards/tada68/keymaps/fezzant/keymap.c new file mode 100644 index 000000000000..b151e0b67bdd --- /dev/null +++ b/keyboards/tada68/keymaps/fezzant/keymap.c @@ -0,0 +1,124 @@ +#include "tada68.h" + +// Layers + +#define _BL 0 +#define _FL 1 +#define _NUM 2 +#define _BSPC 3 + +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +// Macros +// name macros here for keymap reference +enum { + EMAIL_ADD = SAFE_RANGE, + OTHER_MACRO +}; + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if(record->event.pressed){ + switch(keycode) { + // copy these lines to define new macro + case EMAIL_ADD: + SEND_STRING("email@example.com"); + return false; break; + // copy to here + case OTHER_MACRO: + SEND_STRING("The Other Macro"); + return false; break; + } + } + return true; +}; + +// Keymaps + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * .----------------------------------------------------------------. + * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |~ ` | + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |Del | + * |----------------------------------------------------------------| + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |Home| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |End | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lft|Dwn|Rig | + * '----------------------------------------------------------------' + */ +[_BL] = KEYMAP_ANSI( + 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_BSPACE, KC_GRAVE, \ + 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_BSLS,KC_DELETE, \ + LT(_BSPC,KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT,KC_HOME, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,KC_UP,KC_END, \ + KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,MO(_FL),KC_RCTRL, KC_LEFT,KC_DOWN,KC_RGHT), + + + /* Keymap _FL: Function Layer + * .-----------------------------------------------------------------. + * | | F1|F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Del |Paus | + * |-----------------------------------------------------------------| + * | | | | | | | | | |BLB|BL-|BL |BL+|Foobr|ToNUM| + * |-----------------------------------------------------------------| + * |KC_NO | | | | | | | | | | |Mnu| |PgUp | + * |-----------------------------------------------------------------| + * | | | | | | | | | | | | | |PgDn | + * |-----------------------------------------------------------------| + * |WinUl|WinLk| | | | | |Nxt|Stp|Prev | + * '-----------------------------------------------------------------' + */ +[_FL] = KEYMAP_ANSI( + _______, 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_DEL, KC_PAUSE , \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,BL_BRTG,BL_DEC,BL_TOGG, BL_INC, KC_MAIL,TG(_NUM), \ + XXXXXXX,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_APPLICATION, _______,KC_PGUP, \ + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,KC_BTN1, KC_MS_U, KC_PGDOWN, \ + MAGIC_UNNO_GUI,MAGIC_NO_GUI,_______, _______, _______,_______,_______,KC_MPRV,KC_MSTP, KC_MNXT), + + + /* Keymap _NUM: Numpad Layer + * .----------------------------------------------------------------. + * |Esc| 1 | 2 | 3 | 4 | 5 | 6 |NP7|Np8|Np9| | - | + |Backspc|CALC| 15 + * |----------------------------------------------------------------| + * |Tab |NumL| up| | | |Np4|Np5|Np6| | | / | * | | | 15 + * |----------------------------------------------------------------| + * |To__BL|lft|dwn|rit| | |Np1|Np2|Np3| | | |Enter |Prsc| 14 + * |----------------------------------------------------------------| + * |Shift | Z | X | C | V | |Np.|Np.|Np.| | | |msU|Rclk| 14 + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Np0 |Emal| |Lclk|msL|msD|msR | 10 + * '----------------------------------------------------------------' + */ +[_NUM] = KEYMAP_ANSI( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_P7, KC_P8, KC_P9,XXXXXXX, KC_KP_MINUS, KC_KP_PLUS, KC_BSPC,KC_CALC, \ + KC_TAB,KC_NUMLOCK, KC_UP,XXXXXXX,XXXXXXX, XXXXXXX,KC_P4,KC_P5,KC_P6,XXXXXXX,XXXXXXX,KC_PSLS,KC_PAST, XXXXXXX,_______, \ + TG(_NUM), KC_LEFT, KC_DOWN, KC_RIGHT,XXXXXXX,XXXXXXX,KC_P1,KC_P2,KC_P3,XXXXXXX,XXXXXXX,XXXXXXX, KC_KP_ENTER,KC_PSCREEN, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V,XXXXXXX, KC_PDOT, KC_PDOT, KC_PDOT,XXXXXXX,XXXXXXX,XXXXXXX, KC_MS_U, KC_BTN2, \ + KC_LCTL, KC_LGUI, KC_LALT,KC_P0,EMAIL_ADD,_______,KC_BTN1,KC_MS_L,KC_MS_D, KC_MS_R), + + + /* Keymap _BSPC: back_SPACE Layer + * .----------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |----------------------------------------------------------------| + * | | | | | | | | |Up | | | | | | | + * |----------------------------------------------------------------| + * | | | | | | | |Lft|Dwn|Rig|End| | | | + * |----------------------------------------------------------------| + * | | | | | | | | | | | | | | | + * |----------------------------------------------------------------| + * | | | | Backspace | |NO | | | | | + * '----------------------------------------------------------------' + */ +[_BSPC] = KEYMAP_ANSI( + _______, _______ ,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______,_______,_______,_______,_______,_______,_______,_______,KC_UP,_______,_______,_______, _______, _______,_______, \ + _______,_______,_______,_______,_______,_______,_______,KC_LEFT,KC_DOWN,KC_RIGHT,KC_END,_______, _______,_______, \ + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, _______, _______, \ + _______,_______,_______, KC_BSPACE, _______,XXXXXXX,_______,_______,_______, _______) + + +}; diff --git a/keyboards/tada68/keymaps/fezzant/readme.md b/keyboards/tada68/keymaps/fezzant/readme.md new file mode 100644 index 000000000000..08a9433eebf1 --- /dev/null +++ b/keyboards/tada68/keymaps/fezzant/readme.md @@ -0,0 +1,8 @@ +## Fezzant's Tada68 keymap + +Includes easy copy-paste macro creation for strings or combo keypresses. + +* Layer 0: Mostly-standard base layer, with home/end replacing pgup/pgdn. +* Layer 1: Momentary function layer, with some added buttons. +* Layer 2: Toggle numpad layer, with a layout conducive to spreadsheets and calculations +* Layer 3: Momentary function layer to put backspace on spacebar, with arrow keys on right hand homerow area. diff --git a/keyboards/tada68/keymaps/fezzant/rules.mk b/keyboards/tada68/keymaps/fezzant/rules.mk new file mode 100644 index 000000000000..f2439cc7d14f --- /dev/null +++ b/keyboards/tada68/keymaps/fezzant/rules.mk @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = yes # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif From 7cb3c0e4668c7bb8858fab08f3b7df93baf5bd95 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sat, 21 Apr 2018 14:00:43 -0700 Subject: [PATCH 260/578] Add pretty layout to all ergodox clones (#2686) * Add pretty layout to all ergodox clones * Info.json cleanup for EZ * Add info.json for ergodone * info.json cleanup --- keyboards/ergodone/ergodone.h | 22 ++++++++++++ keyboards/ergodone/info.json | 15 ++++++++ keyboards/ergodox_ez/ergodox_ez.h | 2 ++ keyboards/ergodox_ez/info.json | 15 ++++---- keyboards/ergodox_infinity/ergodox_infinity.h | 34 +++++++++++++++++++ keyboards/ergodox_infinity/info.json | 7 ++-- 6 files changed, 86 insertions(+), 9 deletions(-) create mode 100644 keyboards/ergodone/info.json diff --git a/keyboards/ergodone/ergodone.h b/keyboards/ergodone/ergodone.h index 0826e95216a6..c63afe838b8a 100644 --- a/keyboards/ergodone/ergodone.h +++ b/keyboards/ergodone/ergodone.h @@ -99,6 +99,28 @@ inline void ergodox_led_all_set(uint8_t n) {} { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5A, k5B, k5C, KC_NO } \ } +#define KEYMAP_PRETTY( \ + /* left hand, spatial positions */ /* right hand, spatial positions */ \ + L00,L01,L02,L03,L04,L05,L06, R00,R01,R02,R03,R04,R05,R06, \ + L10,L11,L12,L13,L14,L15,L16, R10,R11,R12,R13,R14,R15,R16, \ + L20,L21,L22,L23,L24,L25, R21,R22,R23,R24,R25,R26, \ + L30,L31,L32,L33,L34,L35,L36, R30,R31,R32,R33,R34,R35,R36, \ + L40,L41,L42,L43,L44, R42,R43,R44,R45,R46, \ + L55,L56, R50,R51, \ + L54, R52, \ + L53,L52,L51, R55,R54,R53 ) \ + \ + /* matrix positions */ \ + { \ + { L00,L01,L02,L03,L04,L05,L06, R00,R01,R02,R03,R04,R05,R06 }, \ + { L10,L11,L12,L13,L14,L15,L16, R10,R11,R12,R13,R14,R15,R16 }, \ + { L20,L21,L22,L23,L24,L25,KC_NO, KC_NO,R21,R22,R23,R24,R25,R26 }, \ + { L30,L31,L32,L33,L34,L35,L36, R30,R31,R32,R33,R34,R35,R36 }, \ + { L40,L41,L42,L43,L44,KC_NO,KC_NO, KC_NO,KC_NO,R42,R43,R44,R45,R46 }, \ + { KC_NO,L51,L52,L53,L54,L55,L56, R50,R51,R52,R53,R54,R55,KC_NO } \ + } + #define LAYOUT_ergodox KEYMAP +#define LAYOUT_ergodox_pretty KEYMAP_PRETTY #endif diff --git a/keyboards/ergodone/info.json b/keyboards/ergodone/info.json new file mode 100644 index 000000000000..64ab0fe66ec5 --- /dev/null +++ b/keyboards/ergodone/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "Ergodone", + "maintainer": "Yu He", + "width": 19.5, + "height": 9.375, + + "layouts": { + "LAYOUT_ergodox": { + "layout": [{"x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0, "w":1.5}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1, "h":1.5}, {"x":9.5, "y":1, "h":1.5}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1}, {"x":15.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2}, {"x":14.5, "y":2}, {"x":15.5, "y":2, "w":1.5}, {"x":6.5, "y":2.5, "h":1.5}, {"x":9.5, "y":2.5, "h":1.5}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.5, "y":3, "w":1.5}, {"x":0.5, "y":4}, {"x":1.5, "y":4}, {"x":2.5, "y":4}, {"x":3.5, "y":4}, {"x":4.5, "y":4}, {"x":11.5, "y":4}, {"x":12.5, "y":4}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}, {"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, {"x":5, "y":6, "h":2}, {"x":6, "y":6, "h":2}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6, "h":2}, {"x":11, "y":6, "h":2}, {"x":7, "y":7}, {"x":9, "y":7}] + }, + "LAYOUT_ergodox_pretty": { + "layout": [{"x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0, "w":1.5}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1, "h":1.5}, {"x":9.5, "y":1, "h":1.5}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1}, {"x":15.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2}, {"x":14.5, "y":2}, {"x":15.5, "y":2, "w":1.5}, {"x":6.5, "y":2.5, "h":1.5}, {"x":9.5, "y":2.5, "h":1.5}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.5, "y":3, "w":1.5}, {"x":0.5, "y":4}, {"x":1.5, "y":4}, {"x":2.5, "y":4}, {"x":3.5, "y":4}, {"x":4.5, "y":4}, {"x":11.5, "y":4}, {"x":12.5, "y":4}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}, {"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, {"x":5, "y":6, "h":2}, {"x":6, "y":6, "h":2}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6, "h":2}, {"x":11, "y":6, "h":2}, {"x":7, "y":7}, {"x":9, "y":7}] + } + } +} diff --git a/keyboards/ergodox_ez/ergodox_ez.h b/keyboards/ergodox_ez/ergodox_ez.h index d6fa30bb20cb..eda6d767cf20 100644 --- a/keyboards/ergodox_ez/ergodox_ez.h +++ b/keyboards/ergodox_ez/ergodox_ez.h @@ -250,5 +250,7 @@ inline void ergodox_led_all_set(uint8_t n) #define LAYOUT_ergodox KEYMAP #define LAYOUT_ergodox_pretty KEYMAP_PRETTY +#define LAYOUT_ergodox_80 KEYMAP_80 +#define LAYOUT_ergodox_pretty_80 KEYMAP_PRETTY_80 #endif diff --git a/keyboards/ergodox_ez/info.json b/keyboards/ergodox_ez/info.json index 6fdbca236246..fc39c78485f4 100644 --- a/keyboards/ergodox_ez/info.json +++ b/keyboards/ergodox_ez/info.json @@ -1,9 +1,10 @@ { - "keyboard_name": "ErgoDox EZ", - "url": "ergodox-ez.com", - "maintainer": "erez", - "width": 19.5, - "height": 9.375, + "keyboard_name": "ErgoDox EZ", + "url": "ergodox-ez.com", + "maintainer": "erez", + "width": 19.5, + "height": 9.375, + "layouts": { "LAYOUT_ergodox": { "layout": [{"x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0, "w":1.5}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1, "h":1.5}, {"x":9.5, "y":1, "h":1.5}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1}, {"x":15.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2}, {"x":14.5, "y":2}, {"x":15.5, "y":2, "w":1.5}, {"x":6.5, "y":2.5, "h":1.5}, {"x":9.5, "y":2.5, "h":1.5}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.5, "y":3, "w":1.5}, {"x":0.5, "y":4}, {"x":1.5, "y":4}, {"x":2.5, "y":4}, {"x":3.5, "y":4}, {"x":4.5, "y":4}, {"x":11.5, "y":4}, {"x":12.5, "y":4}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}, {"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, {"x":5, "y":6, "h":2}, {"x":6, "y":6, "h":2}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6, "h":2}, {"x":11, "y":6, "h":2}, {"x":7, "y":7}, {"x":9, "y":7}] @@ -11,10 +12,10 @@ "LAYOUT_ergodox_pretty": { "layout": [{"x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0, "w":1.5}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1, "h":1.5}, {"x":9.5, "y":1, "h":1.5}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1}, {"x":15.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2}, {"x":14.5, "y":2}, {"x":15.5, "y":2, "w":1.5}, {"x":6.5, "y":2.5, "h":1.5}, {"x":9.5, "y":2.5, "h":1.5}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.5, "y":3, "w":1.5}, {"x":0.5, "y":4}, {"x":1.5, "y":4}, {"x":2.5, "y":4}, {"x":3.5, "y":4}, {"x":4.5, "y":4}, {"x":11.5, "y":4}, {"x":12.5, "y":4}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}, {"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, {"x":5, "y":6, "h":2}, {"x":6, "y":6, "h":2}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6, "h":2}, {"x":11, "y":6, "h":2}, {"x":7, "y":7}, {"x":9, "y":7}] }, - "KEYMAP_80": { + "LAYOUT_ergodox_80": { "layout": [{"x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0, "w":1.5}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1, "h":1.5}, {"x":9.5, "y":1, "h":1.5}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1}, {"x":15.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2}, {"x":14.5, "y":2}, {"x":15.5, "y":2, "w":1.5}, {"x":6.5, "y":2.5, "h":1.5}, {"x":9.5, "y":2.5, "h":1.5}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.5, "y":3, "w":1.5}, {"x":0.5, "y":4}, {"x":1.5, "y":4}, {"x":2.5, "y":4}, {"x":3.5, "y":4}, {"x":4.5, "y":4}, {"x":11.5, "y":4}, {"x":12.5, "y":4}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}, {"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, {"x":5, "y":6}, {"x":6, "y":6}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6}, {"x":11, "y":6}, {"x":5, "y":7}, {"x":6, "y":7}, {"x":7, "y":7}, {"x":9, "y":7}, {"x":10, "y":7}, {"x":11, "y":7}] }, - "KEYMAP_PRETTY_80": { + "LAYOUT_ergodox_pretty_80": { "layout": [{"x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0, "w":1.5}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1, "h":1.5}, {"x":9.5, "y":1, "h":1.5}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1}, {"x":15.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2}, {"x":14.5, "y":2}, {"x":15.5, "y":2, "w":1.5}, {"x":6.5, "y":2.5, "h":1.5}, {"x":9.5, "y":2.5, "h":1.5}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.5, "y":3, "w":1.5}, {"x":0.5, "y":4}, {"x":1.5, "y":4}, {"x":2.5, "y":4}, {"x":3.5, "y":4}, {"x":4.5, "y":4}, {"x":11.5, "y":4}, {"x":12.5, "y":4}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}, {"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, {"x":5, "y":6}, {"x":6, "y":6}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6}, {"x":11, "y":6}, {"x":5, "y":7}, {"x":6, "y":7}, {"x":7, "y":7}, {"x":9, "y":7}, {"x":10, "y":7}, {"x":11, "y":7}] } } diff --git a/keyboards/ergodox_infinity/ergodox_infinity.h b/keyboards/ergodox_infinity/ergodox_infinity.h index 25249c714a02..d551fde511ad 100644 --- a/keyboards/ergodox_infinity/ergodox_infinity.h +++ b/keyboards/ergodox_infinity/ergodox_infinity.h @@ -118,6 +118,40 @@ inline void ergodox_led_all_set(uint8_t n) { { B80, B81, B82, B83, B84 } \ } +#define KEYMAP_PRETTY( \ + /* left hand, spatial positions */ /* right hand, spatial positions */ \ + A80, A70, A60, A50, A40, A30, A20, B20, B30, B40, B50, B60, B70, B80, \ + A81, A71, A61, A51, A41, A31, A21, B21, B31, B41, B51, B61, B71, B81, \ + A82, A72, A62, A52, A42, A32, B32, B42, B52, B62, B72, B82, \ + A83, A73, A63, A53, A43, A33, A23, B23, B33, B43, B53, B63, B73, B83, \ + A84, A74, A64, A54, A44, B44, B54, B64, B74, B84, \ + A13, A03, B03, B13, \ + A04, B04, \ + A34, A24, A14, B14, B24, B34 ) \ + \ + /* matrix positions */ \ + { \ + { KC_NO, KC_NO, KC_NO, A03, A04 }, \ + { KC_NO, KC_NO, KC_NO, A13, A14 }, \ + { A20, A21, KC_NO, A23, A24 }, \ + { A30, A31, A32, A33, A34 }, \ + { A40, A41, A42, A43, A44 }, \ + { A50, A51, A52, A53, A54 }, \ + { A60, A61, A62, A63, A64 }, \ + { A70, A71, A72, A73, A74 }, \ + { A80, A81, A82, A83, A84 }, \ + { KC_NO, KC_NO, KC_NO, B03, B04 }, \ + { KC_NO, KC_NO, KC_NO, B13, B14 }, \ + { B20, B21, KC_NO, B23, B24 }, \ + { B30, B31, B32, B33, B34 }, \ + { B40, B41, B42, B43, B44 }, \ + { B50, B51, B52, B53, B54 }, \ + { B60, B61, B62, B63, B64 }, \ + { B70, B71, B72, B73, B74 }, \ + { B80, B81, B82, B83, B84 } \ +} + #define LAYOUT_ergodox KEYMAP +#define LAYOUT_ergodox_pretty KEYMAP_PRETTY #endif /* KEYBOARDS_ERGODOX_INFINITY_INFINITY_H_ */ diff --git a/keyboards/ergodox_infinity/info.json b/keyboards/ergodox_infinity/info.json index 5cd0fd7baa78..1022a740e2f1 100644 --- a/keyboards/ergodox_infinity/info.json +++ b/keyboards/ergodox_infinity/info.json @@ -3,8 +3,11 @@ "width": 19.5, "height": 9.375, "layouts": { - "KEYMAP": { + "LAYOUT_ergodox": { "layout": [{"label":"#", "x":3.5, "y":0}, {"label":"*", "x":15, "y":0}, {"label":"@", "x":2.5, "y":0.125}, {"label":"$", "x":4.5, "y":0.125}, {"label":"&", "x":14, "y":0.125}, {"label":"(", "x":16, "y":0.125}, {"label":"%", "x":5.5, "y":0.25}, {"x":6.5, "y":0.25}, {"x":12, "y":0.25}, {"label":"^", "x":13, "y":0.25}, {"x":0, "y":0.375, "w":1.5}, {"label":"!", "x":1.5, "y":0.375}, {"label":")", "x":17, "y":0.375}, {"x":18, "y":0.375, "w":1.5}, {"label":"E", "x":3.5, "y":1}, {"label":"I", "x":15, "y":1}, {"label":"W", "x":2.5, "y":1.125}, {"label":"R", "x":4.5, "y":1.125}, {"label":"U", "x":14, "y":1.125}, {"label":"O", "x":16, "y":1.125}, {"label":"T", "x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5}, {"x":12, "y":1.25, "h":1.5}, {"label":"Y", "x":13, "y":1.25}, {"x":0, "y":1.375, "w":1.5}, {"label":"Q", "x":1.5, "y":1.375}, {"label":"P", "x":17, "y":1.375}, {"x":18, "y":1.375, "w":1.5}, {"label":"D", "x":3.5, "y":2}, {"label":"K", "x":15, "y":2}, {"label":"S", "x":2.5, "y":2.125}, {"label":"F", "x":4.5, "y":2.125}, {"label":"J", "x":14, "y":2.125}, {"label":"L", "x":16, "y":2.125}, {"label":"G", "x":5.5, "y":2.25}, {"label":"H", "x":13, "y":2.25}, {"x":0, "y":2.375, "w":1.5}, {"label":"A", "x":1.5, "y":2.375}, {"label":":", "x":17, "y":2.375}, {"x":18, "y":2.375, "w":1.5}, {"x":6.5, "y":2.75, "h":1.5}, {"x":12, "y":2.75, "h":1.5}, {"label":"C", "x":3.5, "y":3}, {"label":"<", "x":15, "y":3}, {"label":"X", "x":2.5, "y":3.125}, {"label":"V", "x":4.5, "y":3.125}, {"label":"M", "x":14, "y":3.125}, {"label":">", "x":16, "y":3.125}, {"label":"B", "x":5.5, "y":3.25}, {"label":"N", "x":13, "y":3.25}, {"x":0, "y":3.375, "w":1.5}, {"label":"Z", "x":1.5, "y":3.375}, {"label":"?", "x":17, "y":3.375}, {"x":18, "y":3.375, "w":1.5}, {"x":3.5, "y":4}, {"x":15, "y":4}, {"x":2.5, "y":4.125}, {"x":4.5, "y":4.125}, {"x":14, "y":4.125}, {"x":16, "y":4.125}, {"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":17, "y":4.375}, {"x":18, "y":4.375}, {"x":1, "y":4.375}, {"x":2, "y":4.375}, {"x":0, "y":5.375, "h":2}, {"x":1, "y":5.375, "h":2}, {"x":2, "y":5.375}, {"x":2, "y":6.375}, {"x":-3.0, "y":6.375}, {"x":-2, "y":6.375}, {"x":-3.0, "y":7.375}, {"x":-2, "y":7.375, "h":2}, {"x":-1.0, "y":7.375, "h":2}, {"x":-3.0, "y":8.375}] + }, + "LAYOUT_ergodox_pretty": { + "layout": [{"label":"#", "x":3.5, "y":0}, {"label":"*", "x":15, "y":0}, {"label":"@", "x":2.5, "y":0.125}, {"label":"$", "x":4.5, "y":0.125}, {"label":"&", "x":14, "y":0.125}, {"label":"(", "x":16, "y":0.125}, {"label":"%", "x":5.5, "y":0.25}, {"x":6.5, "y":0.25}, {"x":12, "y":0.25}, {"label":"^", "x":13, "y":0.25}, {"x":0, "y":0.375, "w":1.5}, {"label":"!", "x":1.5, "y":0.375}, {"label":")", "x":17, "y":0.375}, {"x":18, "y":0.375, "w":1.5}, {"label":"E", "x":3.5, "y":1}, {"label":"I", "x":15, "y":1}, {"label":"W", "x":2.5, "y":1.125}, {"label":"R", "x":4.5, "y":1.125}, {"label":"U", "x":14, "y":1.125}, {"label":"O", "x":16, "y":1.125}, {"label":"T", "x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5}, {"x":12, "y":1.25, "h":1.5}, {"label":"Y", "x":13, "y":1.25}, {"x":0, "y":1.375, "w":1.5}, {"label":"Q", "x":1.5, "y":1.375}, {"label":"P", "x":17, "y":1.375}, {"x":18, "y":1.375, "w":1.5}, {"label":"D", "x":3.5, "y":2}, {"label":"K", "x":15, "y":2}, {"label":"S", "x":2.5, "y":2.125}, {"label":"F", "x":4.5, "y":2.125}, {"label":"J", "x":14, "y":2.125}, {"label":"L", "x":16, "y":2.125}, {"label":"G", "x":5.5, "y":2.25}, {"label":"H", "x":13, "y":2.25}, {"x":0, "y":2.375, "w":1.5}, {"label":"A", "x":1.5, "y":2.375}, {"label":":", "x":17, "y":2.375}, {"x":18, "y":2.375, "w":1.5}, {"x":6.5, "y":2.75, "h":1.5}, {"x":12, "y":2.75, "h":1.5}, {"label":"C", "x":3.5, "y":3}, {"label":"<", "x":15, "y":3}, {"label":"X", "x":2.5, "y":3.125}, {"label":"V", "x":4.5, "y":3.125}, {"label":"M", "x":14, "y":3.125}, {"label":">", "x":16, "y":3.125}, {"label":"B", "x":5.5, "y":3.25}, {"label":"N", "x":13, "y":3.25}, {"x":0, "y":3.375, "w":1.5}, {"label":"Z", "x":1.5, "y":3.375}, {"label":"?", "x":17, "y":3.375}, {"x":18, "y":3.375, "w":1.5}, {"x":3.5, "y":4}, {"x":15, "y":4}, {"x":2.5, "y":4.125}, {"x":4.5, "y":4.125}, {"x":14, "y":4.125}, {"x":16, "y":4.125}, {"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":17, "y":4.375}, {"x":18, "y":4.375}, {"x":1, "y":4.375}, {"x":2, "y":4.375}, {"x":0, "y":5.375, "h":2}, {"x":1, "y":5.375, "h":2}, {"x":2, "y":5.375}, {"x":2, "y":6.375}, {"x":-3.0, "y":6.375}, {"x":-2, "y":6.375}, {"x":-3.0, "y":7.375}, {"x":-2, "y":7.375, "h":2}, {"x":-1.0, "y":7.375, "h":2}, {"x":-3.0, "y":8.375}] } - } + } } From 5d5b161d808cd94b1230ef08d5f7b27b2f1ab1f9 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Sat, 21 Apr 2018 17:00:46 -0700 Subject: [PATCH 261/578] ALF X2 QMK Configurator Support (#2788) * Add microswitch information for visiblity in QMK Configurator * Add info.json with layouts for ALF X2 * Add new LAYOUTs * remove that extra comma --- keyboards/alf_x2/alf_x2.h | 70 ++++++++++++++++++++++++++++++++++++++ keyboards/alf_x2/info.json | 32 +++++++++++++++++ keyboards/alf_x2/readme.md | 4 +++ 3 files changed, 106 insertions(+) create mode 100644 keyboards/alf_x2/info.json diff --git a/keyboards/alf_x2/alf_x2.h b/keyboards/alf_x2/alf_x2.h index dee10bf1bfe7..a15114f01148 100644 --- a/keyboards/alf_x2/alf_x2.h +++ b/keyboards/alf_x2/alf_x2.h @@ -19,4 +19,74 @@ { K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \ } +#define LAYOUT_std_ansi( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \ + K400, K401, K403, K404, K406, K408, K410, K411, K413, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, K014 }, \ + { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \ + { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, KC_NO }, \ + { K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, KC_NO, K413, K414 } \ +} + +#define LAYOUT_std_splits( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314,\ + K400, K401, K403, K404, K406, K408, K410, K411, K413, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \ + { K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, KC_NO, K413, K414 } \ +} + +#define LAYOUT_hhkb( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314,\ + K401, K403, K404, K406, K408, K410, K411 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \ + { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \ + { KC_NO, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, KC_NO, KC_NO, KC_NO } \ +} + +#define LAYOUT_2u_split_arrows( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314,\ + K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \ +} + +#define LAYOUT_split_arrows( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314,\ + K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_N), K313, K314 }, \ + { K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \ +} + #endif \ No newline at end of file diff --git a/keyboards/alf_x2/info.json b/keyboards/alf_x2/info.json new file mode 100644 index 000000000000..cdec1cd965df --- /dev/null +++ b/keyboards/alf_x2/info.json @@ -0,0 +1,32 @@ +{ + "keyboard_name": "ALF X2", + "url": "", + "maintainer": "qmk", + "width": 15.0, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"x":12, "y":3}, {"label":"Shift", "x":13, "y":3}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":4.25, "y":4, "w":1.3}, {"x":6.0, "y":4, "w":2}, {"x":8.5, "y":4, "w":1.3}, {"label":"Alt", "x":10.0, "y":4}, {"label":"Alt", "x":11.0, "y":4}, {"label":"Win", "x":12.0, "y":4}, {"label":"Menu", "x":13.0, "y":4}, {"label":"Ctrl", "x":14.0, "y":4}] + }, + + "LAYOUT_std_ansi": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":4.25, "y":4}, {"x":5.5, "y":4, "w":2.75}, {"x":8.5, "y":4}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + }, + + "LAYOUT_hhkb": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Win", "x":1.75, "y":4, "w":1.25}, {"label":"Alt", "x":3, "y":4, "w":1.25}, {"x":4.75, "y":4}, {"x":6, "y":4, "w":2.75}, {"x":9, "y":4}, {"label":"Alt", "x":10.5, "y":4, "w":1.25}, {"label":"Win", "x":11.75, "y":4, "w":1.25}] + }, + + "LAYOUT_std_splits": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":4.25, "y":4}, {"x":5.5, "y":4, "w":2.75}, {"x":8.5, "y":4}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + }, + + "LAYOUT_2u_split_arrows": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":4.25, "y":4}, {"x":5.5, "y":4, "w":2.75}, {"x":8.5, "y":4}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] + }, + + "LAYOUT_split_arrows": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"Shift", "x":11.25, "y":3, "w":1.75}, {"x":13, "y":3}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":4.25, "y":4}, {"x":5.5, "y":4, "w":2.75}, {"x":8.5, "y":4}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] + } + } +} \ No newline at end of file diff --git a/keyboards/alf_x2/readme.md b/keyboards/alf_x2/readme.md index d51cd180a254..7d63a71bafb1 100644 --- a/keyboards/alf_x2/readme.md +++ b/keyboards/alf_x2/readme.md @@ -4,6 +4,10 @@ A customizable 60% keyboard. +In QMK Configurator, the two keys to the left and right of the spacebar are the microswitches at the top of the PCB. + +In the LAYOUT macros, K404 and K408 are the microswitches at the top of the PCB. + Keyboard Maintainer: QMK Community Hardware Supported: ALF X2 60% Hardware Availability: [zfrontier](https://en.zfrontier.com/products/group-buy-alf-x2-60) From 7801356bd4d098edab80543cb704e9a995e6ec4e Mon Sep 17 00:00:00 2001 From: Joe Wasson Date: Sat, 21 Apr 2018 23:16:25 -0700 Subject: [PATCH 262/578] Add layouts to 1up60rgb. (#2789) * Add layouts to 1up60rgb. * Fix build break in header file for 1up60rgb. --- keyboards/1up60rgb/1up60rgb.h | 6 +++--- keyboards/1up60rgb/info.json | 18 +++++++++++++++--- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/keyboards/1up60rgb/1up60rgb.h b/keyboards/1up60rgb/1up60rgb.h index 564a82caa6db..1f7b7aabea6f 100644 --- a/keyboards/1up60rgb/1up60rgb.h +++ b/keyboards/1up60rgb/1up60rgb.h @@ -19,7 +19,7 @@ /* ANSI variant. No extra keys for ISO */ -#define LAYOUT_60_ansi ( \ +#define LAYOUT_60_ansi( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, \ K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ @@ -34,7 +34,7 @@ ) /* ISO variant. Remove useless ANSI keys */ -#define LAYOUT_60_iso ( \ +#define LAYOUT_60_iso( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, \ K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ @@ -49,7 +49,7 @@ ) /* HHKB Variant */ -#define LAYOUT_60_ansi_split_bs_rshift ( \ +#define LAYOUT_60_ansi_split_bs_rshift( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ diff --git a/keyboards/1up60rgb/info.json b/keyboards/1up60rgb/info.json index d92164444d56..5af24c9b2abf 100644 --- a/keyboards/1up60rgb/info.json +++ b/keyboards/1up60rgb/info.json @@ -5,8 +5,20 @@ "width": 15, "height": 5, "layouts": { - "KEYMAP": { - "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] - } + "KEYMAP": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + }, + + "LAYOUT_60_ansi": { + "layout": [{"x":0, "y":0, "label":"~"}, {"x":1, "y":0, "label":"!"}, {"x":2, "y":0, "label":"@"}, {"x":3, "y":0, "label":"#"}, {"x":4, "y":0, "label":"$"}, {"x":5, "y":0, "label":"%"}, {"x":6, "y":0, "label":"^"}, {"x":7, "y":0, "label":"&"}, {"x":8, "y":0, "label":"*"}, {"x":9, "y":0, "label":"("}, {"x":10, "y":0, "label":")"}, {"x":11, "y":0, "label":"_"}, {"x":12, "y":0, "label":"+"}, {"x":13, "y":0, "label":"Backspace", "w":2}, {"x":0, "y":1, "label":"Tab", "w":1.5}, {"x":1.5, "y":1, "label":"Q"}, {"x":2.5, "y":1, "label":"W"}, {"x":3.5, "y":1, "label":"E"}, {"x":4.5, "y":1, "label":"R"}, {"x":5.5, "y":1, "label":"T"}, {"x":6.5, "y":1, "label":"Y"}, {"x":7.5, "y":1, "label":"U"}, {"x":8.5, "y":1, "label":"I"}, {"x":9.5, "y":1, "label":"O"}, {"x":10.5, "y":1, "label":"P"}, {"x":11.5, "y":1, "label":"{"}, {"x":12.5, "y":1, "label":"}"}, {"x":13.5, "y":1, "label":"|", "w":1.5}, {"x":0, "y":2, "label":"Caps Lock", "w":1.75}, {"x":1.75, "y":2, "label":"A"}, {"x":2.75, "y":2, "label":"S"}, {"x":3.75, "y":2, "label":"D"}, {"x":4.75, "y":2, "label":"F"}, {"x":5.75, "y":2, "label":"G"}, {"x":6.75, "y":2, "label":"H"}, {"x":7.75, "y":2, "label":"J"}, {"x":8.75, "y":2, "label":"K"}, {"x":9.75, "y":2, "label":"L"}, {"x":10.75, "y":2, "label":":"}, {"x":11.75, "y":2, "label":"\""}, {"x":12.75, "y":2, "label":"Enter", "w":2.25}, {"x":0, "y":3, "label":"Shift", "w":2.25}, {"x":2.25, "y":3, "label":"Z"}, {"x":3.25, "y":3, "label":"X"}, {"x":4.25, "y":3, "label":"C"}, {"x":5.25, "y":3, "label":"V"}, {"x":6.25, "y":3, "label":"B"}, {"x":7.25, "y":3, "label":"N"}, {"x":8.25, "y":3, "label":"M"}, {"x":9.25, "y":3, "label":"<"}, {"x":10.25, "y":3, "label":">"}, {"x":11.25, "y":3, "label":"?"}, {"x":12.25, "y":3, "label":"Shift", "w":2.75}, {"x":0, "y":4, "label":"Ctrl", "w":1.25}, {"x":1.25, "y":4, "label":"Win", "w":1.25}, {"x":2.5, "y":4, "label":"Alt", "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "label":"Alt", "w":1.25}, {"x":11.25, "y":4, "label":"Win", "w":1.25}, {"x":12.5, "y":4, "label":"Menu", "w":1.25}, {"x":13.75, "y":4, "label":"Ctrl", "w":1.25}] + }, + + "LAYOUT_60_iso": { + "layout": [{"label":"\u00ac", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + }, + + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":6}, {"label":"Alt", "x":10, "y":4, "w":1.5}, {"label":"Win", "x":11.5, "y":4}, {"label":"Menu", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] + } } } From fb5115f6cd8242788cc23a19a691c44d507ec53c Mon Sep 17 00:00:00 2001 From: Shinichi Ohki Date: Mon, 23 Apr 2018 06:19:45 +0900 Subject: [PATCH 263/578] Fix command line options prefix. (#2790) --- keyboards/chibios_test/teensy_lc_onekey/instructions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/chibios_test/teensy_lc_onekey/instructions.md b/keyboards/chibios_test/teensy_lc_onekey/instructions.md index 85698bd84181..66f73bf14b82 100644 --- a/keyboards/chibios_test/teensy_lc_onekey/instructions.md +++ b/keyboards/chibios_test/teensy_lc_onekey/instructions.md @@ -15,7 +15,7 @@ Next, you'll need ChibiOS. For Teensies, you'll need code from two repositories: ### If you’re using git -Run `git submodule sync —recursive && git submodule update --init —recursive`. This will install ChibiOS and ChibiOS-Contrib in the `/lib/` directory. +Run `git submodule sync --recursive && git submodule update --init --recursive`. This will install ChibiOS and ChibiOS-Contrib in the `/lib/` directory. ### If you’re not using Git From 70101cf6112d74d4dddcda6d2f0ae64991b7a4e6 Mon Sep 17 00:00:00 2001 From: Luciano Malavasi Date: Sun, 22 Apr 2018 20:09:52 -0700 Subject: [PATCH 264/578] Formatting changes to Alpha readme.md (#2781) * alpha with firmware added to list of keyboards, ready to push * revised according to drashna's fixes * keymap -> layout? * fixed macro and improved layout issuesOC * Update rules.mk * Update alpha.h * Update and rename keyboards/alpha/layouts/default/28_alpha/keymap.c to keyboards/alpha/keymaps/default/keymap.c * alpha/readme.md added according to qmk templateOC * resolved a careless merge conflict * bugfix * Fixed /keyboards/alpha/readme.md formatting issues --- keyboards/alpha/readme.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/keyboards/alpha/readme.md b/keyboards/alpha/readme.md index 75a9d5902b30..3a733d36581f 100644 --- a/keyboards/alpha/readme.md +++ b/keyboards/alpha/readme.md @@ -1,14 +1,17 @@ # Alpha -![Alpha](https://imgur.com/a/TouJ5rH) +![Alpha](https://i.imgur.com/J6EJ30N.jpg) A 28-key, semi-ortho keyboard designed by PyroL! -Keyboard Maintainer: [PyroL](https://www.github.com/PyrooL) -Hardware Supported: Alpha PCB, Pro Micro + +Keyboard Maintainer: [PyroL](https://www.github.com/PyrooL) + +Hardware Supported: Alpha PCB, Pro Micro + Hardware Availability: on a group-buy basis for now. Pro Micros can be found on Ali or from the official Sparkfun website. Make example for Alpha (after setting up your build environment): make alpha:default - See [build environment setup](https://docs.qmk.fm/install-build-tools) then the [make instructions](https://docs.qmk.fm/faq/build-compile-qmk) for more information. +See [build environment setup](https://docs.qmk.fm/install-build-tools) then the [make instructions](https://docs.qmk.fm/faq/build-compile-qmk) for more information. \ No newline at end of file From fda23af2810b6ec5dd0c7f32dafc555681e7979f Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Tue, 24 Apr 2018 09:00:22 -0700 Subject: [PATCH 265/578] Support for new keyboard: Meme (#2797) * initial commit for meme keyboard * Fix that row by column * Fix those dimensions * work in progress commit * got that switch matrix to work * add all supported layouts * add info.json for QMK configurator support * let my name be known --- keyboards/meme/config.h | 190 +++++++++++++++++++++++ keyboards/meme/info.json | 24 +++ keyboards/meme/keymaps/default/config.h | 24 +++ keyboards/meme/keymaps/default/keymap.c | 27 ++++ keyboards/meme/keymaps/default/readme.md | 1 + keyboards/meme/meme.c | 43 +++++ keyboards/meme/meme.h | 102 ++++++++++++ keyboards/meme/readme.md | 15 ++ keyboards/meme/rules.mk | 68 ++++++++ 9 files changed, 494 insertions(+) create mode 100644 keyboards/meme/config.h create mode 100644 keyboards/meme/info.json create mode 100644 keyboards/meme/keymaps/default/config.h create mode 100644 keyboards/meme/keymaps/default/keymap.c create mode 100644 keyboards/meme/keymaps/default/readme.md create mode 100644 keyboards/meme/meme.c create mode 100644 keyboards/meme/meme.h create mode 100644 keyboards/meme/readme.md create mode 100644 keyboards/meme/rules.mk diff --git a/keyboards/meme/config.h b/keyboards/meme/config.h new file mode 100644 index 000000000000..d1e3d27a185c --- /dev/null +++ b/keyboards/meme/config.h @@ -0,0 +1,190 @@ +/* +Copyright 2018 MechMerlin + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Switchmod Keyboards +#define PRODUCT Meme +#define DESCRIPTION A custom 65% gasket mount keyboard + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 8 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { C2, D0, D1, D4, D5, D6, B0, B1, B2, B3 } +#define MATRIX_COL_PINS { D3, D2, B5, B6, C7, C6, C5, C4 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN B7 +#define BACKLIGHT_BREATHING +#define BACKLIGHT_LEVELS 3 + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +//#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 1 + +#endif diff --git a/keyboards/meme/info.json b/keyboards/meme/info.json new file mode 100644 index 000000000000..4d72d79dcbc8 --- /dev/null +++ b/keyboards/meme/info.json @@ -0,0 +1,24 @@ +{ + "keyboard_name": "Meme", + "url": "", + "maintainer": "qmk", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] + }, + + "LAYOUT_vanilla": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] + }, + + "LAYOUT_aria": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.5}, {"x":11.5, "y":4, "w":1.5}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] + }, + + "LAYOUT_true": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.5}, {"x":11.5, "y":4, "w":1.5}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] + } + } +} diff --git a/keyboards/meme/keymaps/default/config.h b/keyboards/meme/keymaps/default/config.h new file mode 100644 index 000000000000..2c852d181991 --- /dev/null +++ b/keyboards/meme/keymaps/default/config.h @@ -0,0 +1,24 @@ +/* Copyright 2018 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +// place overrides here + +#endif diff --git a/keyboards/meme/keymaps/default/keymap.c b/keyboards/meme/keymaps/default/keymap.c new file mode 100644 index 000000000000..6c4cb6cf5f3f --- /dev/null +++ b/keyboards/meme/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2018 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT_all(\ + KC_GESC, 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, KC_BSPC, KC_INS, + 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_BSLS, KC_DEL, + KC_RCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ) +}; diff --git a/keyboards/meme/keymaps/default/readme.md b/keyboards/meme/keymaps/default/readme.md new file mode 100644 index 000000000000..59aa078d7153 --- /dev/null +++ b/keyboards/meme/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Meme diff --git a/keyboards/meme/meme.c b/keyboards/meme/meme.c new file mode 100644 index 000000000000..8ba421b15085 --- /dev/null +++ b/keyboards/meme/meme.c @@ -0,0 +1,43 @@ +/* Copyright 2018 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "meme.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} diff --git a/keyboards/meme/meme.h b/keyboards/meme/meme.h new file mode 100644 index 000000000000..4c55b4a8f4eb --- /dev/null +++ b/keyboards/meme/meme.h @@ -0,0 +1,102 @@ +/* Copyright 2018 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#ifndef MEME_H +#define MEME_H + +#include "quantum.h" + +#define LAYOUT_all( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K37, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K56, K57, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K76, K67, K77, \ + K80, K90, K81, K92, K85, K95, K86, K96, K87, K97 \ +)\ +{\ + {K00, K01, K02, K03, K04, K05, K06, K07}, \ + {K10, K11, K12, K13, K14, K15, K16, K17}, \ + {K20, K21, K22, K23, K24, K25, K26, KC_NO}, \ + {K30, K31, K32, K33, K34, K35, K36, K37}, \ + {K40, K41, K42, K43, K44, K45, KC_NO, KC_NO}, \ + {K50, K51, K52, K53, K54, K55, K56, K57}, \ + {K60, K61, K62, K63, K64, K65, KC_NO, K67}, \ + {K70, K71, K72, K73, K74, KC_NO, K76, K77}, \ + {K80, K81, KC_NO, KC_NO, KC_NO, K85, K86, K87}, \ + {K90, KC_NO, K92, KC_NO, KC_NO, K95, K96, K97}, \ +} + +#define LAYOUT_vanilla( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K07, K17, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K37, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K56, K57, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K76, K67, K77, \ + K80, K90, K81, K92, K85, K95, K86, K96, K87, K97 \ +)\ +{\ + {K00, K01, K02, K03, K04, K05, K06, K07}, \ + {K10, K11, K12, K13, K14, K15, KC_NO, K17}, \ + {K20, K21, K22, K23, K24, K25, K26, KC_NO}, \ + {K30, K31, K32, K33, K34, K35, K36, K37}, \ + {K40, K41, K42, K43, K44, K45, KC_NO, KC_NO}, \ + {K50, K51, K52, K53, K54, K55, K56, K57}, \ + {K60, K61, K62, K63, K64, K65, KC_NO, K67}, \ + {K70, K71, K72, K73, K74, KC_NO, K76, K77}, \ + {K80, K81, KC_NO, KC_NO, KC_NO, K85, K86, K87}, \ + {K90, KC_NO, K92, KC_NO, KC_NO, K95, K96, K97}, \ +} + +#define LAYOUT_aria( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K07, K17, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K37, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K56, K57, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K76, K67, K77, \ + K80, K90, K81, K92, K85, K86, K96, K87, K97 \ +)\ +{\ + {K00, K01, K02, K03, K04, K05, K06, K07}, \ + {K10, K11, K12, K13, K14, K15, KC_NO, K17}, \ + {K20, K21, K22, K23, K24, K25, K26, KC_NO}, \ + {K30, K31, K32, K33, K34, K35, K36, K37}, \ + {K40, K41, K42, K43, K44, K45, KC_NO, KC_NO}, \ + {K50, K51, K52, K53, K54, K55, K56, K57}, \ + {K60, K61, K62, K63, K64, K65, KC_NO, K67}, \ + {K70, K71, K72, K73, K74, KC_NO, K76, K77}, \ + {K80, K81, KC_NO, KC_NO, KC_NO, K85, K86, K87}, \ + {K90, KC_NO, K92, KC_NO, KC_NO, KC_NO, K96, K97}, \ +} + +#define LAYOUT_true( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K37, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K56, K57, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K76, K67, K77, \ + K80, K90, K81, K92, K85, K86, K96, K87, K97 \ +)\ +{\ + {K00, K01, K02, K03, K04, K05, K06, K07}, \ + {K10, K11, K12, K13, K14, K15, K16, K17}, \ + {K20, K21, K22, K23, K24, K25, K26, KC_NO}, \ + {K30, K31, K32, K33, K34, K35, K36, K37}, \ + {K40, K41, K42, K43, K44, K45, KC_NO, KC_NO}, \ + {K50, K51, K52, K53, K54, K55, K56, K57}, \ + {K60, K61, K62, K63, K64, K65, KC_NO, K67}, \ + {K70, K71, K72, K73, K74, KC_NO, K76, K77}, \ + {K80, K81, KC_NO, KC_NO, KC_NO, K85, K86, K87}, \ + {K90, KC_NO, K92, KC_NO, KC_NO, KC_NO, K96, K97}, \ +} + + +#endif diff --git a/keyboards/meme/readme.md b/keyboards/meme/readme.md new file mode 100644 index 000000000000..9d3bce948555 --- /dev/null +++ b/keyboards/meme/readme.md @@ -0,0 +1,15 @@ +# Meme + +![meme](imgur.com image replace me!) + +65% gasket mount keyboard. + +Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) +Hardware Supported: Meme +Hardware Availability: [Switchmod Keyboards](http://www.switchmod.net/) + +Make example for this keyboard (after setting up your build environment): + + make meme:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/meme/rules.mk b/keyboards/meme/rules.mk new file mode 100644 index 000000000000..45eb6ee3766f --- /dev/null +++ b/keyboards/meme/rules.mk @@ -0,0 +1,68 @@ +# MCU name +#MCU = at90usb1286 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches From a0a4c9102c51d9032af270920447d0d6d3bac7bc Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Tue, 24 Apr 2018 09:01:40 -0700 Subject: [PATCH 266/578] Add Generic Keymap for my boards (#2795) * add mechmerlin 60 ansi layout * put meaningful #defines * missed the backslash * add merlin split layout * rename to have a -ansi * Add appropriate readme files * rename KEYMAP to LAYOUT * support for default layout * support for the community keymaps * make sure I don't break the configurator * Don't break the configurator Merlin --- keyboards/1up60rgb/1up60rgb.h | 8 ++--- keyboards/1up60rgb/info.json | 2 +- keyboards/1up60rgb/keymaps/default/keymap.c | 4 +-- keyboards/1up60rgb/keymaps/iso/keymap.c | 4 +-- keyboards/1up60rgb/keymaps/tsangan/keymap.c | 4 +-- keyboards/eagle_viper/v2/v2.h | 2 ++ keyboards/v60_type_r/info.json | 2 +- keyboards/v60_type_r/keymaps/default/keymap.c | 4 +-- keyboards/v60_type_r/keymaps/vimouse/keymap.c | 8 ++--- keyboards/v60_type_r/v60_type_r.h | 7 ++--- .../60_ansi/mechmerlin-ansi/keymap.c | 29 +++++++++++++++++++ .../60_ansi/mechmerlin-ansi/readme.md | 18 ++++++++++++ .../mechmerlin-split/keymap.c | 29 +++++++++++++++++++ .../mechmerlin-split/readme.md | 17 +++++++++++ 14 files changed, 115 insertions(+), 23 deletions(-) create mode 100644 layouts/community/60_ansi/mechmerlin-ansi/keymap.c create mode 100644 layouts/community/60_ansi/mechmerlin-ansi/readme.md create mode 100644 layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/keymap.c create mode 100644 layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/readme.md diff --git a/keyboards/1up60rgb/1up60rgb.h b/keyboards/1up60rgb/1up60rgb.h index 1f7b7aabea6f..969fd5b4a96b 100644 --- a/keyboards/1up60rgb/1up60rgb.h +++ b/keyboards/1up60rgb/1up60rgb.h @@ -3,7 +3,7 @@ #include "quantum.h" -#define KEYMAP( \ +#define LAYOUT_all( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ @@ -25,7 +25,7 @@ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \ K400, K401, K403, K406, K410, K411, K413, K414 \ -) KEYMAP( \ +) LAYOUT_all( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K013,\ K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, K214, \ @@ -40,7 +40,7 @@ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \ K400, K401, K403, K406, K410, K411, K413, K414 \ -) KEYMAP( \ +) LAYOUT_all( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K013,\ K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K214, \ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ @@ -55,7 +55,7 @@ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ K400, K401, K403, K406, K410, K411, K413, K414 \ -) KEYMAP( \ +) LAYOUT_all( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014,\ K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, K214, \ diff --git a/keyboards/1up60rgb/info.json b/keyboards/1up60rgb/info.json index 5af24c9b2abf..d662dc60d487 100644 --- a/keyboards/1up60rgb/info.json +++ b/keyboards/1up60rgb/info.json @@ -5,7 +5,7 @@ "width": 15, "height": 5, "layouts": { - "KEYMAP": { + "LAYOUT_all": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] }, diff --git a/keyboards/1up60rgb/keymaps/default/keymap.c b/keyboards/1up60rgb/keymaps/default/keymap.c index 3f0f49b7245f..cb372e15d733 100644 --- a/keyboards/1up60rgb/keymaps/default/keymap.c +++ b/keyboards/1up60rgb/keymaps/default/keymap.c @@ -2,14 +2,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - KEYMAP( + LAYOUT_all( 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_BSPC, KC_BSPC, 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_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), - KEYMAP( + LAYOUT_all( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/1up60rgb/keymaps/iso/keymap.c b/keyboards/1up60rgb/keymaps/iso/keymap.c index 140ff63294ce..42fcb6cf9bba 100644 --- a/keyboards/1up60rgb/keymaps/iso/keymap.c +++ b/keyboards/1up60rgb/keymaps/iso/keymap.c @@ -2,14 +2,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - KEYMAP( + LAYOUT_all( 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_BSPC, KC_BSPC, 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_ENT, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), - KEYMAP( + LAYOUT_all( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/1up60rgb/keymaps/tsangan/keymap.c b/keyboards/1up60rgb/keymaps/tsangan/keymap.c index 6b47a1a35f22..485010eef103 100644 --- a/keyboards/1up60rgb/keymaps/tsangan/keymap.c +++ b/keyboards/1up60rgb/keymaps/tsangan/keymap.c @@ -2,14 +2,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - KEYMAP( + LAYOUT_all( 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, KC_GRV, 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, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_RALT, KC_RGUI, KC_RCTL), - KEYMAP( + LAYOUT_all( RESET, 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_TRNS, KC_DEL, KC_TRNS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS, diff --git a/keyboards/eagle_viper/v2/v2.h b/keyboards/eagle_viper/v2/v2.h index 63e52690fa6a..5beec5bc62ba 100644 --- a/keyboards/eagle_viper/v2/v2.h +++ b/keyboards/eagle_viper/v2/v2.h @@ -74,3 +74,5 @@ { KC_NO, K0B, K0C, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K0J, KC_NO, KC_NO, KC_NO, K0M, K0N, KC_NO } \ } #endif + +#define LAYOUT_60_ansi LAYOUT_eagle diff --git a/keyboards/v60_type_r/info.json b/keyboards/v60_type_r/info.json index 5aaf760e1e51..3bb4ff0a0717 100644 --- a/keyboards/v60_type_r/info.json +++ b/keyboards/v60_type_r/info.json @@ -9,7 +9,7 @@ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] }, - "LAYOUT_ansi": { + "LAYOUT_60_ansi": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] } } diff --git a/keyboards/v60_type_r/keymaps/default/keymap.c b/keyboards/v60_type_r/keymaps/default/keymap.c index 254b3aa29940..3ba77c658cbb 100644 --- a/keyboards/v60_type_r/keymaps/default/keymap.c +++ b/keyboards/v60_type_r/keymaps/default/keymap.c @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctrl|Gui |Alt | Space |Fn0 |Gui |App|Ctrl| * `-----------------------------------------------------------' */ - [0] = LAYOUT_ansi( + [0] = LAYOUT_60_ansi( 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_BSPC, \ 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_BSLS, \ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ @@ -54,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | * `-----------------------------------------------------------' */ - [1] = LAYOUT_ansi( + [1] = LAYOUT_60_ansi( KC_GRV, 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_DEL, \ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_INS, \ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_TRNS, \ diff --git a/keyboards/v60_type_r/keymaps/vimouse/keymap.c b/keyboards/v60_type_r/keymaps/vimouse/keymap.c index 3deaae98c56a..1e3775ab6f14 100644 --- a/keyboards/v60_type_r/keymaps/vimouse/keymap.c +++ b/keyboards/v60_type_r/keymaps/vimouse/keymap.c @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctrl|Alt |Gui | Space/L3 |Gui |Alt |Ctrl|Fn1| * `-----------------------------------------------------------' */ - [0] = KEYMAP_ALL( + [0] = LAYOUT_all( 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, XXXXX, KC_BSPC, \ 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_BSLS, \ LT(1, KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ @@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | * `-----------------------------------------------------------' */ - [1] = KEYMAP_ALL( + [1] = LAYOUT_all( KC_GRV, 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_DEL, \ _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_PSCR, KC_SLCK, KC_PAUS, KC_INS, \ _____, _____, _____, _____, _____, _____, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_HOME, KC_PGUP, _____, \ @@ -70,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | * `-----------------------------------------------------------' */ - [2] = KEYMAP_ALL( + [2] = LAYOUT_all( _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, \ _____, _____, _____, _____, _____, _____, _____, KC_MS_WH_UP, KC_MS_WH_DOWN, _____, _____, _____, _____, _____, \ _____, _____, _____, _____, _____, _____, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT, _____, _____, _____, \ @@ -89,7 +89,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | * `-----------------------------------------------------------' */ - [3] = KEYMAP_ALL( + [3] = LAYOUT_all( _____, BL_TOGG, BL_STEP, RGB_TOG, RGB_M_P, RGB_M_B, RGB_M_R, _____, _____, _____, _____, _____, _____, _____, _____, \ _____, RGB_RI, RGB_GI, RGB_BI, RGB_HUI, RGB_SAI, RGB_VAI, _____, _____, _____, _____, _____, _____, _____, \ _____, RGB_RD, RGB_GD, RGB_BD, RGB_HUD, RGB_SAD, RGB_VAD, _____, _____, _____, _____, _____, _____, \ diff --git a/keyboards/v60_type_r/v60_type_r.h b/keyboards/v60_type_r/v60_type_r.h index 37d0a573e21e..d65df2b3fd14 100644 --- a/keyboards/v60_type_r/v60_type_r.h +++ b/keyboards/v60_type_r/v60_type_r.h @@ -55,7 +55,7 @@ enum my_keycodes { // KBP V60 Type R with ALL possible layouts -#define KEYMAP_ALL( \ +#define LAYOUT_all( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ @@ -89,7 +89,7 @@ enum my_keycodes { // KBP V60 Type R with ANSI layout - #define KEYMAP_ANSI( \ + #define LAYOUT_60_ansi( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ @@ -106,7 +106,4 @@ enum my_keycodes { { k40, k41, k42, k43, k44, k45, k46, k47 } \ } -#define LAYOUT_all KEYMAP_ALL -#define LAYOUT_ansi KEYMAP_ANSI - #endif diff --git a/layouts/community/60_ansi/mechmerlin-ansi/keymap.c b/layouts/community/60_ansi/mechmerlin-ansi/keymap.c new file mode 100644 index 000000000000..64da6760c4b4 --- /dev/null +++ b/layouts/community/60_ansi/mechmerlin-ansi/keymap.c @@ -0,0 +1,29 @@ +#include QMK_KEYBOARD_H + +#define BASE 0 +#define FN 1 +#define ARROWS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[BASE] = LAYOUT_60_ansi( + KC_GESC, 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_BSPC, \ + 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_BSLASH, \ + 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_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPACE, MO(1), KC_RALT, KC_RGUI, KC_RCTL), + +[FN] = LAYOUT_60_ansi( + KC_TRNS, 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_DEL, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, TG(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +[ARROWS] = LAYOUT_60_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT) + + }; \ No newline at end of file diff --git a/layouts/community/60_ansi/mechmerlin-ansi/readme.md b/layouts/community/60_ansi/mechmerlin-ansi/readme.md new file mode 100644 index 000000000000..b845334f54fb --- /dev/null +++ b/layouts/community/60_ansi/mechmerlin-ansi/readme.md @@ -0,0 +1,18 @@ +MechMerlin's Standard ANSI 60% Layout +====================== + +This is the 60% layout used by u/merlin36, host of the [MechMerlin](www.youtube.com/mechmerlin) +YouTube channel. + +It is used on his +[Duck Eagle V2](https://github.com/qmk/qmk_firmware/tree/master/keyboards/eagle_viper/v2) +[KBP V60 Type R Polestar](https://github.com/qmk/qmk_firmware/tree/master/keyboards/v60_type_r) +[NPKC KC60](https://github.com/qmk/qmk_firmware/tree/master/keyboards/kc60) + +## Keymap Notes +- Highly influenced by the KBP V60 and WKL B.Face standard layouts +- Does not support any form of inswitch or underglow lighting as Merlin hates them. +- Arrow toggle switch is FN + Space + +### Build +To build this keymap, simply run `make your_keyboard:mechmerlin-ansi`. \ No newline at end of file diff --git a/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/keymap.c b/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/keymap.c new file mode 100644 index 000000000000..56488fb22c40 --- /dev/null +++ b/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/keymap.c @@ -0,0 +1,29 @@ +#include QMK_KEYBOARD_H + +#define BASE 0 +#define FN 1 +#define ARROWS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[BASE] = LAYOUT_60_ansi_split_bs_rshift( + KC_GESC, 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_NO, KC_BSPC, \ + 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_BSLASH, \ + 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_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TG(2), \ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPACE, MO(1), KC_RALT, KC_RGUI, KC_RCTL), + +[FN] = LAYOUT_60_ansi_split_bs_rshift( + KC_TRNS, 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_NO, KC_DEL, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +[ARROWS] = LAYOUT_60_ansi_split_bs_rshift( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT) + + }; \ No newline at end of file diff --git a/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/readme.md b/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/readme.md new file mode 100644 index 000000000000..06a2bc241a6f --- /dev/null +++ b/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/readme.md @@ -0,0 +1,17 @@ +MechMerlin's Split ANSI 60% Layout +====================== + +This is the 60% layout with split backspace and right shift used by u/merlin36, +host of the [MechMerlin](www.youtube.com/mechmerlin) YouTube channel. + +It is used on his +[Sentraq S60-X RGB](https://github.com/qmk/qmk_firmware/tree/master/keyboards/s60_x) +[MechanicalKeyboards.com FaceW](https://github.com/qmk/qmk_firmware/tree/master/keyboards/bfake) + +## Keymap Notes +- Highly influenced by the KBP V60 and WKL B.Face standard layouts +- Does not support any form of inswitch or underglow lighting as Merlin hates them. +- Arrow toggle switch is the 1u key by right shift + +### Build +To build this keymap, simply run `make your_keyboard:mechmerlin-split`. \ No newline at end of file From 2286cedb70e2899049d90bf9a26ce261bb74f2f5 Mon Sep 17 00:00:00 2001 From: David Rambo Date: Tue, 24 Apr 2018 12:03:02 -0400 Subject: [PATCH 267/578] Update personal colemak Iris layout and deleted redundant folders (#2794) * DRambo Planck keymap in Colemak * DRambo Planck keymap in Colemak * Satan GH60 keymap for Bri QWERTY layout with Navigation layer toggled with "Caps Lock" key. * xd75 keymap in Colemak for Mac and Win * DRambo Planck keymap in Colemak * Satan GH60 keymap for Bri QWERTY layout with Navigation layer toggled with "Caps Lock" key. * xd75 keymap in Colemak for Mac and Win * Added Iris Colemak layout for Mac, Windows, and Gaming. * changed comment text * DRambo Planck keymap in Colemak * Satan GH60 keymap for Bri QWERTY layout with Navigation layer toggled with "Caps Lock" key. * xd75 keymap in Colemak for Mac and Win * Added Iris Colemak layout for Mac, Windows, and Gaming. * changed comment text * Added Iris keymap from DavidRambo * Added planck keymap from DavidRambo * Added xd75 keymap from DavidRambo * Added readme * Deleted redundant repos in Iris, Planck, and XD75 keymaps. * Tweaked XD75 keymap * DRambo Planck keymap in Colemak * Tweaked XD75 keymap * Merge branch 'master' of https://github.com/DavidRambo/qmk_firmware Removed redundant repos with "Rambo" title. * changed iris nav layers * changed nav layers for xd75 * Updated Iris, tweaked nav on xd75 --- keyboards/iris/keymaps/davidrambo/keymap.c | 30 ++-- keyboards/iris/keymaps/dnrambo/config.h | 45 ------ keyboards/iris/keymaps/dnrambo/keymap.c | 158 --------------------- keyboards/iris/keymaps/dnrambo/readme.md | 3 - keyboards/iris/keymaps/dnrambo/rules.mk | 7 - keyboards/planck/keymaps/rambo/config.h | 9 -- keyboards/planck/keymaps/rambo/keymap.c | 98 ------------- keyboards/planck/keymaps/rambo/rules.mk | 6 - keyboards/xd75/keymaps/davidrambo/keymap.c | 14 +- keyboards/xd75/keymaps/rambo/config.h | 26 ---- keyboards/xd75/keymaps/rambo/keymap.c | 150 ------------------- keyboards/xd75/keymaps/rambo/readme.md | 4 - keyboards/xd75/keymaps/rambo/rules.mk | 2 - 13 files changed, 22 insertions(+), 530 deletions(-) delete mode 100644 keyboards/iris/keymaps/dnrambo/config.h delete mode 100644 keyboards/iris/keymaps/dnrambo/keymap.c delete mode 100644 keyboards/iris/keymaps/dnrambo/readme.md delete mode 100644 keyboards/iris/keymaps/dnrambo/rules.mk delete mode 100644 keyboards/planck/keymaps/rambo/config.h delete mode 100644 keyboards/planck/keymaps/rambo/keymap.c delete mode 100644 keyboards/planck/keymaps/rambo/rules.mk delete mode 100644 keyboards/xd75/keymaps/rambo/config.h delete mode 100644 keyboards/xd75/keymaps/rambo/keymap.c delete mode 100644 keyboards/xd75/keymaps/rambo/readme.md delete mode 100644 keyboards/xd75/keymaps/rambo/rules.mk diff --git a/keyboards/iris/keymaps/davidrambo/keymap.c b/keyboards/iris/keymaps/davidrambo/keymap.c index 31ec3eba15ae..40f0d0145402 100644 --- a/keyboards/iris/keymaps/davidrambo/keymap.c +++ b/keyboards/iris/keymaps/davidrambo/keymap.c @@ -5,12 +5,12 @@ extern keymap_config_t keymap_config; //keycode shorthands -#define KC____ KC_TRNS +#define KC____ KC_TRNS // three underscores "___" for transparent #define KC_SYM MO(3) #define KC_MAC TO(0) #define KC_PC TO(1) #define KC_GM TO(2) -#define KC_NAV LT(4, KC_TAB) +#define KC_NAVMAC LT(4, KC_TAB) #define KC_NAVPC LT(5, KC_TAB) //text editor shortcuts for NAV and NAVPC @@ -18,8 +18,8 @@ extern keymap_config_t keymap_config; #define KC_AR LALT(KC_RGHT) #define KC_CL LCTL(KC_LEFT) #define KC_CR LCTL(KC_RGHT) -#define KC_A_BS LALT(KC_BSPC) -#define KC_C_BS LALT(KC_BSPC) +#define KC_ABSPC LALT(KC_BSPC) +#define KC_CBSPC LCTL(KC_BSPC) //internet browser tab shortcuts and window swapping for Mac and Windows #define KC_GSL LGUI(S(KC_LEFT)) @@ -38,7 +38,7 @@ extern keymap_config_t keymap_config; #define _PC 1 #define _GAME 2 #define _SYMBOL 3 -#define _NAV 4 +#define _NAVMAC 4 #define _NAVPC 5 enum { @@ -56,13 +56,13 @@ enum { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_COLEMAK] = KC_KEYMAP( + [_COLEMAK] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS, //|----+----+----+----+----+----| |----+----+----+----+----+----| GRV , Q , W , F , P , G , J , L , U , Y ,SCLN,BSPC, //|----+----+----+----+----+----| |----+----+----+----+----+----| - NAV , A , R , S , T , D , H , N , E , I , O ,QUOT, + NAVMAC, A , R , S , T , D , H , N , E , I , O ,QUOT, //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| SFLK, Z , X , C , V , B , PC , ENT , K , M ,COMM, DOT,SLSH,RSFT, //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' @@ -70,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `----+----+----' `----+----+----' ), - [_PC] = KC_KEYMAP( + [_PC] = LAYOUT_kc( ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , @@ -82,7 +82,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LGUI , LCTL , CTBS , ___ , ___ , ___ ), - [_GAME] = KC_KEYMAP( + [_GAME] = LAYOUT_kc( ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , T , Q , W , E , R , ___ , ___ , ___ , ___ , ___ , ___ , @@ -94,7 +94,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LALT , LALT , SPC, BSPC, MAC, ___ ), - [_SYMBOL] = KC_KEYMAP( + [_SYMBOL] = LAYOUT_kc( ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , @@ -104,10 +104,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ___ , HOME, END , VOLD, VOLU, MPLY,___, ___,___, MINS, ___ , ___ , ___ , ___ , - ___ , ___ , A_BS, ___, ___ , ___ + ___ , ___ , ___, ___, ___ , ___ ), - [_NAV] = KC_KEYMAP( + [_NAVMAC] = LAYOUT_kc( ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , @@ -115,12 +115,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ___ , ___ , ___ , ___ , ___ , ___ , GSL , LEFT, DOWN, RGHT, GSR , ___ , - ___ , ___ , ___ , ___ , ___ , ___ ,___, ___,G_TAB, ___ , ___ , ___ , ___ , ___ , + ___ , ___ , ___ , ___ , ___ , ___ ,___, ___,G_TAB,ABSPC, ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ), - [_NAVPC] = KC_KEYMAP( + [_NAVPC] = LAYOUT_kc( ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , @@ -128,7 +128,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ___ , ___ , ___ , ___ , ___ , ___ , CPGU, LEFT, DOWN, RGHT, CPGD, ___ , - ___ , ___ , ___ , ___ , ___ , ___ ,___, ___,A_TAB, ___ , ___ , ___ , ___ , ___ , + ___ , ___ , ___ , ___ , ___ , ___ ,___, ___,A_TAB,CBSPC, ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ), diff --git a/keyboards/iris/keymaps/dnrambo/config.h b/keyboards/iris/keymaps/dnrambo/config.h deleted file mode 100644 index 01e078e32641..000000000000 --- a/keyboards/iris/keymaps/dnrambo/config.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -Copyright 2017 Danny Nguyen - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include "config_common.h" - -/* Use I2C or Serial, not both */ - -#define USE_SERIAL -// #define USE_I2C - -/* Select hand configuration */ -#define PERMISSIVE_HOLD -#define PREVENT_STUCK_MODIFIERS -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS -/* -#undef RGBLED_NUM -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 12 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -*/ -#define TAPPING_TERM 200 -#include "../../config.h" - -#endif diff --git a/keyboards/iris/keymaps/dnrambo/keymap.c b/keyboards/iris/keymaps/dnrambo/keymap.c deleted file mode 100644 index 31ec3eba15ae..000000000000 --- a/keyboards/iris/keymaps/dnrambo/keymap.c +++ /dev/null @@ -1,158 +0,0 @@ -#include "iris.h" -#include "action_layer.h" -#include "eeconfig.h" - -extern keymap_config_t keymap_config; - -//keycode shorthands -#define KC____ KC_TRNS -#define KC_SYM MO(3) -#define KC_MAC TO(0) -#define KC_PC TO(1) -#define KC_GM TO(2) -#define KC_NAV LT(4, KC_TAB) -#define KC_NAVPC LT(5, KC_TAB) - -//text editor shortcuts for NAV and NAVPC -#define KC_AL LALT(KC_LEFT) -#define KC_AR LALT(KC_RGHT) -#define KC_CL LCTL(KC_LEFT) -#define KC_CR LCTL(KC_RGHT) -#define KC_A_BS LALT(KC_BSPC) -#define KC_C_BS LALT(KC_BSPC) - -//internet browser tab shortcuts and window swapping for Mac and Windows -#define KC_GSL LGUI(S(KC_LEFT)) -#define KC_GSR LGUI(S(KC_RGHT)) -#define KC_CPGD LCTL(KC_PGDN) -#define KC_CPGU LCTL(KC_PGUP) - -#define KC_CMBS GUI_T(KC_BSPC) -#define KC_CTBS CTL_T(KC_BSPC) -#define KC_C_TAB LCTL(KC_TAB) -#define KC_G_TAB LGUI(KC_TAB) -#define KC_A_TAB LALT(KC_TAB) - -//layer shorthands -#define _COLEMAK 0 -#define _PC 1 -#define _GAME 2 -#define _SYMBOL 3 -#define _NAV 4 -#define _NAVPC 5 - -enum { -// SFT_LCK //tapdance declarations - COLEMAK = 0, - PC, - GAME, - SYMBOL, - NAV, //Navigation layer for Mac Colemak - NAVPC, //Navigation layer for PC Colemak - SFT_LCK //tapdance declaration -}; - -#define KC_SFLK TD(SFT_LCK) // alias for tapdance - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_COLEMAK] = KC_KEYMAP( - //,----+----+----+----+----+----. ,----+----+----+----+----+----. - ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS, - //|----+----+----+----+----+----| |----+----+----+----+----+----| - GRV , Q , W , F , P , G , J , L , U , Y ,SCLN,BSPC, - //|----+----+----+----+----+----| |----+----+----+----+----+----| - NAV , A , R , S , T , D , H , N , E , I , O ,QUOT, - //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| - SFLK, Z , X , C , V , B , PC , ENT , K , M ,COMM, DOT,SLSH,RSFT, - //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' - LCTL,LGUI,CMBS, SPC, SYM, LALT - // `----+----+----' `----+----+----' - ), - - [_PC] = KC_KEYMAP( - ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , - - ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , - - NAVPC,___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , - - ___ , ___ , ___ , ___ , ___ , ___ , GM, ___, ___ , ___ , ___ , ___ , ___ , ___ , - - LGUI , LCTL , CTBS , ___ , ___ , ___ - ), - - [_GAME] = KC_KEYMAP( - ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , - - ___ , T , Q , W , E , R , ___ , ___ , ___ , ___ , ___ , ___ , - - TAB , LSFT, A , S , D , F , ___ , ___ , ___ , ___ , ___ , ___ , - - I , LCTL, Z , X , C , V , M, P , ___, ___ , ___ , ___ , ___ , ___ , - - LALT , LALT , SPC, BSPC, MAC, ___ - ), - - [_SYMBOL] = KC_KEYMAP( - - ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , - - LBRC, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , RBRC, - - BSLS, EXLM, AT , HASH, DLR , PERC, CIRC, AMPR, ASTR, LPRN, RPRN, EQL , - - ___ , HOME, END , VOLD, VOLU, MPLY,___, ___,___, MINS, ___ , ___ , ___ , ___ , - - ___ , ___ , A_BS, ___, ___ , ___ - ), - - [_NAV] = KC_KEYMAP( - - ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , - - ___ , ___ , ___ , ___ , ___ , ___ , C_TAB, AL , UP , AR , DEL , ___ , - - ___ , ___ , ___ , ___ , ___ , ___ , GSL , LEFT, DOWN, RGHT, GSR , ___ , - - ___ , ___ , ___ , ___ , ___ , ___ ,___, ___,G_TAB, ___ , ___ , ___ , ___ , ___ , - - ___ , ___ , ___ , ___ , ___ , ___ - ), - - [_NAVPC] = KC_KEYMAP( - - ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , - - ___ , ___ , ___ , ___ , ___ , ___ , C_TAB, CL , UP , CR , DEL , ___ , - - ___ , ___ , ___ , ___ , ___ , ___ , CPGU, LEFT, DOWN, RGHT, CPGD, ___ , - - ___ , ___ , ___ , ___ , ___ , ___ ,___, ___,A_TAB, ___ , ___ , ___ , ___ , ___ , - - ___ , ___ , ___ , ___ , ___ , ___ - ), - -}; - -// Shift vs. capslock function. From bbaserdem's Planck keymap. -void caps_tap (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - register_code (KC_LSFT); - } else if (state->count == 2) { - unregister_code (KC_LSFT); - register_code (KC_CAPS); - } -} -void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - unregister_code (KC_LSFT); - } else { - unregister_code (KC_CAPS); - } -} - -qk_tap_dance_action_t tap_dance_actions[] = { - //Tap once for Shift, twice for Caps Lock - [SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end) -}; \ No newline at end of file diff --git a/keyboards/iris/keymaps/dnrambo/readme.md b/keyboards/iris/keymaps/dnrambo/readme.md deleted file mode 100644 index 4d21f37c0914..000000000000 --- a/keyboards/iris/keymaps/dnrambo/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# Colemak layout for Iris rev2.1 with Mac and Windows layers and a Gaming Layer. -# Symbol layer is based on my Planck layout, so it provides numbers, symbols, and volume controls. -# Two Navigation layers, for Mac and Windows Colemak layers respectively. \ No newline at end of file diff --git a/keyboards/iris/keymaps/dnrambo/rules.mk b/keyboards/iris/keymaps/dnrambo/rules.mk deleted file mode 100644 index 0b7e7b9057fd..000000000000 --- a/keyboards/iris/keymaps/dnrambo/rules.mk +++ /dev/null @@ -1,7 +0,0 @@ -RGBLIGHT_ENABLE = no -BACKLIGHT_ENABLE = no -TAP_DANCE_ENABLE = yes - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif diff --git a/keyboards/planck/keymaps/rambo/config.h b/keyboards/planck/keymaps/rambo/config.h deleted file mode 100644 index c3bebf579906..000000000000 --- a/keyboards/planck/keymaps/rambo/config.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef CONFIG_USER_H - -#define CONFIG_USER_H -#define TAPPING_TERM 200 -#include "../../config.h" -#define PERMISSIVE_HOLD -#define PREVENT_STUCK_MODIFIERS - -#endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/rambo/keymap.c b/keyboards/planck/keymaps/rambo/keymap.c deleted file mode 100644 index 37e22afb902a..000000000000 --- a/keyboards/planck/keymaps/rambo/keymap.c +++ /dev/null @@ -1,98 +0,0 @@ -#include "planck.h" - -//alias for clarity in layering -#define _______ KC_TRNS -#define A_BSPC LALT(KC_BSPC) -#define A_LEFT LALT(KC_LEFT) -#define A_RGHT LALT(KC_RGHT) -#define C_TAB LCTL(KC_TAB) -#define GSL LGUI(S(KC_LEFT)) -#define GSR LGUI(S(KC_RGHT)) -#define G_TAB LGUI(KC_TAB) -#define G_GRV LGUI(KC_GRV) // MAC: switch between windows within an application -#define SftEnt SFT_T(KC_ENT) -#define NAV LT(2, KC_TAB) - -#define _COLEMAK 0 -#define _SYMBOL 1 -#define _NAVIGATION 2 - -//tapdance declarations -enum { - SFT_LCK -}; - -//alias for tapdance -#define SftLck TD(SFT_LCK) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Colemak - * ,-----------------------------------------------------------------------------------. - * | ESC` | Q | W | F | P | G | J | L | U | Y | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Tab | A | R | S | T | D | H | N | E | I | O | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * |SftLck| Z | X | C | V | B | K | M | , | . | /? |SftEnt| - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Del | GUI | Ctrl | Alt | GUI | Space |Symbol| Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' -*/ - -[_COLEMAK] = { - {KC_GESC, KC_Q , KC_W , KC_F , KC_P , KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {NAV , KC_A , KC_R , KC_S , KC_T , KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {SftLck , KC_Z , KC_X , KC_C , KC_V , KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SftEnt }, - {KC_DEL , KC_LGUI, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - }, - -/* Symbol - * ,-----------------------------------------------------------------------------------. - * | [ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ] | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | \| | ! | @ | # | $ | % | ^ | & | * | ( | ) | =+ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | Home | End | ScUp | ScDn | F1 | F2 | -_ |Pg Up | | / | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | `~ | | | |Alt(Bk)| | |Pg Dn | Vol- | Vol+ | | - * `-----------------------------------------------------------------------------------' - */ -[_SYMBOL] = { - {KC_LBRC, KC_1, KC_2, KC_3, KC_4 , KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC}, - {KC_BSLS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL }, - {_______, KC_HOME, KC_END, KC_WH_U, KC_WH_D,KC_F1 , KC_F2 , KC_MINS, KC_PGUP, _______, _______, _______}, - {KC_GRV, _______, _______, _______, A_BSPC, _______, _______, _______, KC_PGDN, KC_VOLD, KC_VOLU, KC_MUTE} - }, - -/* Navigation*/ - -[_NAVIGATION] = { - {_______, _______, _______, _______, _______, _______, C_TAB , A_LEFT, KC_UP, A_RGHT , KC_DEL , _______}, - {_______, _______, _______, _______, _______, _______, GSL , KC_LEFT, KC_DOWN, KC_RGHT, GSR , _______}, - {_______, _______, _______, _______, _______, _______, G_TAB , KC_HOME, _______, KC_END, G_GRV , _______}, - {RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -} -}; - -// Shift vs capslock function. From bbaserdem's Planck keymap. -void caps_tap (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - register_code (KC_LSFT); - } else if (state->count == 2) { - unregister_code (KC_LSFT); - register_code (KC_CAPS); - } -} -void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - unregister_code (KC_LSFT); - } else { - unregister_code (KC_CAPS); - } -} - -//Tap Dance Definitions -qk_tap_dance_action_t tap_dance_actions[] = { - //Tap once for Shift, twice for Caps Lock - [SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end ) -}; \ No newline at end of file diff --git a/keyboards/planck/keymaps/rambo/rules.mk b/keyboards/planck/keymaps/rambo/rules.mk deleted file mode 100644 index ffa9b870afef..000000000000 --- a/keyboards/planck/keymaps/rambo/rules.mk +++ /dev/null @@ -1,6 +0,0 @@ -TAP_DANCE_ENABLE = yes -MOUSEKEY_ENABLE = yes - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif \ No newline at end of file diff --git a/keyboards/xd75/keymaps/davidrambo/keymap.c b/keyboards/xd75/keymaps/davidrambo/keymap.c index 6e95936c845c..5d09dfa27cc6 100644 --- a/keyboards/xd75/keymaps/davidrambo/keymap.c +++ b/keyboards/xd75/keymaps/davidrambo/keymap.c @@ -3,7 +3,7 @@ //aliases for clarity in layering #define _______ KC_TRNS #define A_BSPC LALT(KC_BSPC) // delete whole word in Mac -#define C_BSPS LCTL(KC_BSPC) // delete whole word in PC +// #define C_BSPS LCTL(KC_BSPC) // delete whole word in PC; currently not in use #define A_LEFT LALT(KC_LEFT) #define A_RGHT LALT(KC_RGHT) #define C_RGHT LCTL(KC_RGHT) @@ -72,7 +72,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, { NAVPC , _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, KC_LCTL, KC_LGUI, _______, KC_LCTL, CBSPC , _______, _______, _______, _______, _______, KC_RCTL, KC_RALT, KC_RGUI, _______ }, + { _______, KC_LCTL, KC_LGUI, _______, KC_LCTL, _______, _______, _______, _______, _______, _______, KC_RCTL, KC_RALT, KC_RGUI, _______ }, }, /* SYMBOL @@ -83,7 +83,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| * | | ! | @ | # | $ | % | | | | ^ | & | * | ( | ) | = | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | | | | | | | | | | -_ | | | | | + * | | HOME | END | BL_OFF | BL_ON | | | | | | -_ | | | | | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| * | | | | | | | | | | | | | | | | * '--------------------------------------------------------------------------------------------------------------------------------------' @@ -93,7 +93,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { { _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , _______, _______, _______, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , _______}, { KC_LBRC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_RBRC}, { _______, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL }, - { _______, BL_OFF , BL_ON , BL_DEC , BL_INC , KC_F11 , _______, _______, _______, KC_F12 , KC_MINS, _______, _______, _______, _______}, + { _______, KC_HOME, KC_END , BL_OFF , BL_ON , KC_F11 , _______, _______, _______, KC_F12 , KC_MINS, _______, _______, _______, _______}, { _______, _______, _______, _______, _______, A_BSPC , _______, _______, _______, _______, _______, _______, _______, _______, _______}, }, @@ -102,15 +102,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, { _______, _______, _______, _______, _______, _______, _______, _______, _______, C_TAB , A_LEFT, KC_UP, A_RGHT , KC_DEL , _______}, { _______, _______, _______, _______, _______, _______, _______, _______, _______, GSL , KC_LEFT, KC_DOWN, KC_RGHT, GSR , _______}, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, G_TAB , KC_HOME, _______, KC_END , G_GRV , _______}, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, G_TAB , ABSPC , KC_HOME, KC_END , G_GRV , _______}, { RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, }, [_NAVPC] = { /* NAVIGATION FOR WINDOWS: replaces Alt with Control, GUI with Alt, and browser tab shortcuts*/ { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, { _______, _______, _______, _______, _______, _______, _______, _______, _______, C_TAB , C_LEFT, KC_UP, C_RGHT , KC_DEL , _______}, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, CTLPGDN, KC_LEFT, KC_DOWN, KC_RGHT, CTLPGUP, _______}, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, A_TAB , KC_HOME, _______, KC_END , _______, _______}, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, CTLPGUP, KC_LEFT, KC_DOWN, KC_RGHT, CTLPGDN, _______}, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, A_TAB , CBSPC , KC_HOME, KC_END , _______, _______}, { RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, } }; diff --git a/keyboards/xd75/keymaps/rambo/config.h b/keyboards/xd75/keymaps/rambo/config.h deleted file mode 100644 index e87ccde7979a..000000000000 --- a/keyboards/xd75/keymaps/rambo/config.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright 2017 Benjamin Kesselring - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include "../../config.h" - -#define TAPPING_TERM 200 -#define PERMISSIVE_HOLD -#define PREVENT_STUCK_MODIFIERS - -#endif diff --git a/keyboards/xd75/keymaps/rambo/keymap.c b/keyboards/xd75/keymaps/rambo/keymap.c deleted file mode 100644 index 6e95936c845c..000000000000 --- a/keyboards/xd75/keymaps/rambo/keymap.c +++ /dev/null @@ -1,150 +0,0 @@ -#include "xd75.h" - -//aliases for clarity in layering -#define _______ KC_TRNS -#define A_BSPC LALT(KC_BSPC) // delete whole word in Mac -#define C_BSPS LCTL(KC_BSPC) // delete whole word in PC -#define A_LEFT LALT(KC_LEFT) -#define A_RGHT LALT(KC_RGHT) -#define C_RGHT LCTL(KC_RGHT) -#define C_LEFT LCTL(KC_LEFT) -#define SftEnt SFT_T(KC_ENT) -#define GBSPC LGUI_T(KC_BSPC) -#define CBSPC LCTL_T(KC_BSPC) - -//internet browser tab shortcuts and window swapping for Mac and Win -#define GSL LGUI(S(KC_LEFT)) // back one tab in Safari -#define GSR LGUI(S(KC_RGHT)) // forward one tab in Safari -#define CTLPGDN LCTL(KC_PGDN) // back one tab on Windows -#define CTLPGUP LCTL(KC_PGUP) // forward one tab on Windows -#define G_TAB LGUI(KC_TAB) // MAC: switch applications -#define G_GRV LGUI(KC_GRV) // MAC: switch between windows within an application -#define A_TAB LALT(KC_TAB) -#define C_TAB LCTL(KC_TAB) - -// -#define NAV LT(3, KC_TAB) -#define NAVPC LT(4, KC_TAB) - -// Layer shorthand -#define _COLEMAK 0 -#define _PC 1 -#define _SYMBOL 2 //Function keys, numbers, symbols, Backlighting -#define _NAV 3 //Navigation Layer on Mac -#define _NAVPC 4 //Navigation Layer on Win - -//tapdance declarations -enum { - SFT_LCK -}; - -//alias for tapdance -#define SftLck TD(SFT_LCK) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* COLEMAK - * .--------------------------------------------------------------------------------------------------------------------------------------. - * | `~ | 1 | 2 | 3 | 4 | 5 | - | SWITCH | = | 6 | 7 | 8 | 9 | 0 | BACKSP | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | ESC/`~ | Q | W | F | P | G | [ | \ | ] | J | L | U | Y | ; | BACKSP | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| - * | NAVTAB | A | S | D | F | G | PgUp |PlayPaus| ENTER | H | N | E | I | O | ' | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| - * |SFT/CAPS| Z | X | C | V | B | PgDn | UP | ENTER | K | M | , | . | / | SftEnt | - * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------| - * | DEL | LGUI | LCTRL | LALT | LGUI | BKSPC | LEFT | DOWN | RIGHT | SPACE | SYMBOL | RGUI | RALT | RCTRL | BL | - * '--------------------------------------------------------------------------------------------------------------------------------------' - */ - - [_COLEMAK] = { /* COLEMAK */ - { KC_GRV , KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, TG(1) , KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC }, - { KC_GESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_LBRC, KC_BSLS, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC }, - { NAV , KC_A, KC_R, KC_S, KC_T, KC_D, KC_PGUP, KC_ESC , KC_ENT , KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT }, - { SftLck , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGDN, KC_UP , KC_ENT , KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SftEnt }, - { KC_DEL , KC_LGUI, KC_LCTL, KC_LALT, KC_LGUI, GBSPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, MO(2) , KC_RGUI, KC_RALT, KC_RCTL, BL_STEP }, - }, - -// Windows Layer: essentially swaps Control and GUI - - [_PC] = { /* WINDOWS */ - { _______, _______, _______, _______, _______, _______, _______, TG(0) , _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { NAVPC , _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, KC_LCTL, KC_LGUI, _______, KC_LCTL, CBSPC , _______, _______, _______, _______, _______, KC_RCTL, KC_RALT, KC_RGUI, _______ }, - }, - -/* SYMBOL - * .--------------------------------------------------------------------------------------------------------------------------------------. - * | F12 | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | [{ | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | }] | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | ! | @ | # | $ | % | | | | ^ | & | * | ( | ) | = | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | | | | | | | | | | -_ | | | | | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | | | | | | | | | | | | | | | - * '--------------------------------------------------------------------------------------------------------------------------------------' - */ - - [_SYMBOL] = { /* SYMBOL */ - { _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , _______, _______, _______, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , _______}, - { KC_LBRC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_RBRC}, - { _______, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL }, - { _______, BL_OFF , BL_ON , BL_DEC , BL_INC , KC_F11 , _______, _______, _______, KC_F12 , KC_MINS, _______, _______, _______, _______}, - { _______, _______, _______, _______, _______, A_BSPC , _______, _______, _______, _______, _______, _______, _______, _______, _______}, - }, - - - [_NAV] = { /* NAVIGATION for Mac */ - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, C_TAB , A_LEFT, KC_UP, A_RGHT , KC_DEL , _______}, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, GSL , KC_LEFT, KC_DOWN, KC_RGHT, GSR , _______}, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, G_TAB , KC_HOME, _______, KC_END , G_GRV , _______}, - { RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - }, - - [_NAVPC] = { /* NAVIGATION FOR WINDOWS: replaces Alt with Control, GUI with Alt, and browser tab shortcuts*/ - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, C_TAB , C_LEFT, KC_UP, C_RGHT , KC_DEL , _______}, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, CTLPGDN, KC_LEFT, KC_DOWN, KC_RGHT, CTLPGUP, _______}, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, A_TAB , KC_HOME, _______, KC_END , _______, _______}, - { RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - } -}; - -// Shift vs capslock function. From bbaserdem's Planck keymap. -void caps_tap (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - register_code (KC_LSFT); - } else if (state->count == 2) { - unregister_code (KC_LSFT); - register_code (KC_CAPS); - } -} -void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - unregister_code (KC_LSFT); - } else { - unregister_code (KC_CAPS); - } -} - -//Tap Dance Definitions -qk_tap_dance_action_t tap_dance_actions[] = { - //Tap once for Shift, twice for Caps Lock - [SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end ) -}; - -/* Template for future layers - [_LAYER_NAME] = { - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - } -}; -*/ diff --git a/keyboards/xd75/keymaps/rambo/readme.md b/keyboards/xd75/keymaps/rambo/readme.md deleted file mode 100644 index 17b928c501f1..000000000000 --- a/keyboards/xd75/keymaps/rambo/readme.md +++ /dev/null @@ -1,4 +0,0 @@ -# A Colemak layout for XD75 with both Mac and Windows layers. -# These two layers share momentary toggle access to a "Symbol" layer, which is modeled after my Planck layout. -# Each of the base Colemak layers have their own Navigation layers for the right hand to use arrows and shortcuts for both text editing and web browsing. -# The rules.mk file overrides the XD75's "BACKLIGHT_ENABLE" with YES and also adds tap dance functionality. \ No newline at end of file diff --git a/keyboards/xd75/keymaps/rambo/rules.mk b/keyboards/xd75/keymaps/rambo/rules.mk deleted file mode 100644 index edc9cc6bc1f7..000000000000 --- a/keyboards/xd75/keymaps/rambo/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -TAP_DANCE_ENABLE = yes # Enable tap dance functionality \ No newline at end of file From 6beb9d3ac2dd7984c0a26ecb13df8e3628de1cc8 Mon Sep 17 00:00:00 2001 From: Daniel H Klein Date: Tue, 24 Apr 2018 09:25:20 -0700 Subject: [PATCH 268/578] Changes to danielhklein nyquist config (#2783) * nyquist * danielhklein nyquist setup * shift left controls * remove readme * cleanup before pr * ready for pr * updated bootmagic, arrows, and special chars * allow gui on arrows * replace arrows with right modifiers * documentation re-added * updated personal repo * fixes to layers --- .../nyquist/keymaps/danielhklein/config.h | 2 + .../nyquist/keymaps/danielhklein/keymap.c | 97 ++++++++---- .../nyquist/keymaps/danielhklein/rules.mk | 2 +- .../planck/keymaps/danielhklein/keymap.c | 142 ++++++++++++++++++ .../planck/keymaps/danielhklein/rules.mk | 14 ++ 5 files changed, 223 insertions(+), 34 deletions(-) create mode 100644 keyboards/planck/keymaps/danielhklein/keymap.c create mode 100644 keyboards/planck/keymaps/danielhklein/rules.mk diff --git a/keyboards/nyquist/keymaps/danielhklein/config.h b/keyboards/nyquist/keymaps/danielhklein/config.h index 7ed90b6cdf2a..09abbccb727d 100644 --- a/keyboards/nyquist/keymaps/danielhklein/config.h +++ b/keyboards/nyquist/keymaps/danielhklein/config.h @@ -19,6 +19,8 @@ along with this program. If not, see . #define TAPPING_TERM 150 #define USE_SERIAL #define EE_HANDS +#define BOOTMAGIC_KEY_SALT KC_ENT + #ifdef SUBPROJECT_rev1 #include "../../rev1/config.h" diff --git a/keyboards/nyquist/keymaps/danielhklein/keymap.c b/keyboards/nyquist/keymaps/danielhklein/keymap.c index d0801b4a16dd..c7dd52a12e56 100644 --- a/keyboards/nyquist/keymaps/danielhklein/keymap.c +++ b/keyboards/nyquist/keymaps/danielhklein/keymap.c @@ -7,32 +7,41 @@ Major changes made: - DVORAK, COLEMAK, FUNCTION, MOUSE, and ADJUST layers have been removed - right 2u key performs backspace, not enter - - no right ctrl key - - direction keys added to bottom row - LOWER layer controls function keys, media controls, and underglow + - ARROW layer uses JKLI for arrow keys + - Bootmagic enabled and bootmagic initialization key changed from space to enter */ + extern keymap_config_t keymap_config; +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. enum custom_layers { _QWERTY, _LOWER, - _RAISE + _RAISE, + _ARROW }; enum custom_keycodes { QWERTY = SAFE_RANGE, LOWER, - RAISE + RAISE, + ARROW }; // Enable these functions using FUNC(n) macro. const uint16_t PROGMEM fn_actions[] = { //ACTION_LAYER_TAP_TOGGLE requires that number of taps be defined in *config.h* - default set to 5 - [0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_SPC), //Hold for momentary Lower layer, Tap for Space, - [1] = ACTION_LAYER_TAP_KEY(_RAISE, KC_BSPC) //Hold for momentary Raise layer, Tap for Backspace, + [0] = LT(_LOWER, KC_SPC), //Hold for momentary Lower layer, Tap for Backspace, + [1] = LT(_RAISE, KC_BSPC), //Hold for momentary Raise layer, Tap for Space, + [2] = MO(_ARROW), //Hold for momentary Arrow }; #define SPC_LWR FUNC(0) #define BSP_RSE FUNC(1) +#define ARW FUNC(2) // Fillers to make layering more clear #define _______ KC_TRNS @@ -44,48 +53,48 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* QWERTY +/* QWERTY * .----------------------------------------. .-----------------------------------------. - * | Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | [ | + * | Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | * |-----+------+------+------+------+------| |------+------+------+------+------+------| - * | Tab | Q | W | E | R | T | | Y | U | I | O | P | ] | + * | Tab | Q | W | E | R | T | | Y | U | I | O | P |Enter | * |-----+------+------+------+------+------| |------+------+------+------+------+------| * | Caps| A | S | D | F | G | | H | J | K | L | ; | " | * |-----+------+------+------+------+------| |------+------+------+------+------+------| - * |Lshft| Z | X | C | V | B | | N | M | , | . | / |Enter | + * |Lshft| Z | X | C | V | B | | N | M | , | . | / |Rshft | * |-----+------+------+------+------+------| |------+------+------+------+------+------| - * | | Ctrl | LAlt | LGui | Bspc/Raise | | Spc/Lower | Left | Down | Up |Right | + * |Arrow| LCtrl| LAlt | LGui | Bspc/Raise | | Spc/Lower | RGui | RAlt | RCtrl| Del | * `----------------------------------------' '-----------------------------------------' */ [_QWERTY] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRACKET, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRACKET, \ - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \ - XXXXXXX, KC_LCTL, KC_LALT, KC_LGUI, BSP_RSE, BSP_RSE, SPC_LWR, SPC_LWR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ - ), + 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENT, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + ARW, KC_LCTL, KC_LALT, KC_LGUI, BSP_RSE, BSP_RSE, SPC_LWR, SPC_LWR, KC_RGUI, KC_RALT, KC_RCTL, KC_DEL + ), /* Raise * ,-----------------------------------------. .-----------------------------------------. - * | | | | | | | | = | / | * | - | \ | Del | + * | | | | | | | | = | / | * | - | \ | ` | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | | | | | | | 7 | 8 | 9 | + | ` | | + * | | | | | | | | 7 | 8 | 9 | + | [ | ] | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | | | | | | | | 4 | 5 | 6 | Enter| | | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | Lshft| | | | | | | 1 | 2 | 3 | Space| | | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | | | | Bspc/Raise | | 0 | . | Bspc | | | + * | | | | LGui | | | 0 | . | Bspc | | | * `-----------------------------------------' `-----------------------------------------' */ -[_RAISE] = LAYOUT( \ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PEQL, KC_PSLS, KC_PAST, KC_MINS, KC_BSLS, KC_DEL, \ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_7, KC_8, KC_9, KC_PPLS, KC_GRV, XXXXXXX,\ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_4, KC_5, KC_6, KC_PENT, XXXXXXX, XXXXXXX,\ - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_SPC, XXXXXXX, XXXXXXX,\ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, KC_0, KC_0, KC_DOT, KC_BSPC, XXXXXXX, XXXXXXX \ +[_RAISE] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PEQL, KC_PSLS, KC_PAST, KC_MINS, KC_BSLS, KC_GRV, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_7, KC_8, KC_9, KC_PPLS, KC_LBRC, KC_RBRC, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_4, KC_5, KC_6, KC_PENT, XXXXXXX, XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_SPC, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, KC_0, KC_0, KC_DOT, KC_BSPC, XXXXXXX, XXXXXXX ), /* Lower @@ -98,18 +107,40 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------| |------+------+------+------+------+------| * |RGB IO|RGB >>|RGB <<|Hue++ |Hue-- | | | | | | | | | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * |Sat++ |Sat-- |Val++ |Val-- | | | Spc/Lower | | | | | + * |Sat++ |Sat-- |Val++ |Val-- | | | | | | | | * `-----------------------------------------' `-----------------------------------------' */ -[_LOWER] = LAYOUT( \ - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ +[_LOWER] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ), +/* Arrow + * ,-----------------------------------------. ,----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |-----+------+------+------+------+------| + * | | | | | | | | | | Up | | | | + * |------+------+------+------+------+------| |-----+------+------+------+------+------| + * | | | | | | | | | Left | Down |Right | | | + * |------+------+------+------+------+------| |-----+------+------+------+------+------| + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |-----+------+------+------+------+------| + * | | | | Gui | | | | | | | | + * `-----------------------------------------' `----------------------------------------' + */ + +[_ARROW] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +), + }; void persistent_default_layer_set(uint16_t default_layer) { diff --git a/keyboards/nyquist/keymaps/danielhklein/rules.mk b/keyboards/nyquist/keymaps/danielhklein/rules.mk index ba799d47f46b..0b540a471290 100644 --- a/keyboards/nyquist/keymaps/danielhklein/rules.mk +++ b/keyboards/nyquist/keymaps/danielhklein/rules.mk @@ -18,7 +18,7 @@ # change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = no # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) CONSOLE_ENABLE = no # Console for debug(+400) diff --git a/keyboards/planck/keymaps/danielhklein/keymap.c b/keyboards/planck/keymaps/danielhklein/keymap.c new file mode 100644 index 000000000000..a0db05daafd5 --- /dev/null +++ b/keyboards/planck/keymaps/danielhklein/keymap.c @@ -0,0 +1,142 @@ +#include "planck.h" +#include "action_layer.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum custom_layers { + _QWERTY, + _LOWER, + _RAISE, + _ARROW +}; + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + ARROW +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* QWERTY + * .----------------------------------------------------------------------------------. + * | Esc | Q | W | E | R | T | Y | U | I | O | P |Enter | + * |-----+------+------+------+------+------|------+------+------+------+------+------| + * | Tab | A | S | D | F | G | H | J | K | L | ; | " | + * |-----+------+------+------+------+------|------+------+------+------+------+------| + * |Lshft| Z | X | C | V | B | N | M | , | . | / |Rshft | + * |-----+------+------+------+------+------|------+------+------+------+------+------| + * |Arrow| LCtrl| LAlt | LGui | Lower| Bspc | Space| Raise| RGui | RAlt |RCtrl | - | + * `----------------------------------------------------------------------------------' + */ + +[_QWERTY] = { + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENT}, + {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, + {ARROW, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_RGUI, KC_RALT, KC_RCTL, KC_MINS} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | | | | | | | 7 | 8 | 9 | / | \ | ` | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | 4 | 5 | 6 | * | ( | ) | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Lshft| | | | | | 1 | 2 | 3 | - | [ | ] | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | LGui | | | 0 | . | = | + | { | } | + * `-----------------------------------------------------------------------------------' + */ + +[_LOWER] = { + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_7, KC_8, KC_9, KC_PSLS, KC_BSLS, KC_GRV}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_4, KC_5, KC_6, KC_PAST, KC_LPRN, KC_RPRN}, + {_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_MINS, KC_LBRC, KC_RBRC}, + {XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, KC_0, KC_DOT, KC_PEQL, KC_PPLS, KC_LCBR, KC_RCBR} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | | | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | F7 | F8 | F9 | F10 | F11 | F12 | | | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | >/|| | Mute | Vol- | Vol+ | |<< | >>| | | | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' +*/ + +[_RAISE] = { + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} +}, + +/* Arrow + * ,----------------------------------------------------------------------------------. + * | | | | | | | | | Up | | | | + * |------+------+------+------+------+------|-----+------+------+------+------+------| + * | | | | | | | | Left | Down |Right | | | + * |------+------+------+------+------+------|-----+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------|-----+------+------+------+------+------| + * | | | | Gui | | | | | | | | | + * `----------------------------------------------------------------------------------' + */ + +[_ARROW] = { + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {_______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} +}, + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + } else { + layer_off(_LOWER); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + } else { + layer_off(_RAISE); + } + return false; + break; + case ARROW: + if (record->event.pressed) { + layer_on(_ARROW); + } else { + layer_off(_ARROW); + } + return false; + break; + } + return true; +} diff --git a/keyboards/planck/keymaps/danielhklein/rules.mk b/keyboards/planck/keymaps/danielhklein/rules.mk new file mode 100644 index 000000000000..a73d8518337a --- /dev/null +++ b/keyboards/planck/keymaps/danielhklein/rules.mk @@ -0,0 +1,14 @@ +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +TAP_DANCE_ENABLE = no # Enable Tap Dance \ No newline at end of file From eef75b82bdba9fa7e4f19b0f4cf1ffa7afe0c005 Mon Sep 17 00:00:00 2001 From: Eric <22215921+ericywl@users.noreply.github.com> Date: Wed, 25 Apr 2018 00:27:33 +0800 Subject: [PATCH 269/578] Edited keymaps for eric/dz60 (#2793) * added hhkb eric * dz60 and hhkb * editted eric hhkb and dz60 --- keyboards/dz60/keymaps/eric/keymap.c | 81 +++++++++++++++------------- keyboards/hhkb/keymaps/eric/keymap.c | 10 ++-- 2 files changed, 48 insertions(+), 43 deletions(-) diff --git a/keyboards/dz60/keymaps/eric/keymap.c b/keyboards/dz60/keymaps/eric/keymap.c index 730d750c4a07..56abcc25fe80 100644 --- a/keyboards/dz60/keymaps/eric/keymap.c +++ b/keyboards/dz60/keymaps/eric/keymap.c @@ -10,20 +10,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-----------------------------------------------------------------------------------------+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bkspc | * |-----------------------------------------------------------------------------------------+ -* | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | +* | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | Enter | * |-----------------------------------------------------------------------------------------+ * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn | * |-----------------------------------------------------------------------------------------+ -* | Ctrl | GUI | Alt | Space | Alt | GUI | Ctrl | +* | Caps | GUI | Alt | Space | Alt | GUI | Ctrl | * `-----------------------------------------------------------------------------------------' */ - KEYMAP_2_SHIFTS( - 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, KC_GRV, - 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, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, MO(2)), + LAYOUT( + 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, KC_GRV, + 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, + 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_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_CAPS, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RGUI, KC_RCTL), @@ -31,23 +31,30 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------------. * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | INS | Del | * |-----------------------------------------------------------------------------------------+ -* | | PGUP | UP | PGDN | HOME | & | | | | | Prnt | UP | Del | Bkspc | +* | | PGUP | UP | PGDN | HOME | & | ~ | | | | Prnt | UP | Del | Bkspc | * |-----------------------------------------------------------------------------------------+ * | | LEFT | DWN | RGHT | END | * | | | PGUP | HOME | LEFT | RGHT | | * |-----------------------------------------------------------------------------------------+ -* | | _ | + | ( | ) | | | ~ | | PGDN | END | DWN | | | +* | | _ | + | ( | ) | | | | | PGDN | END | DWN | | | * |-----------------------------------------------------------------------------------------+ * | | | | | | | | * `-----------------------------------------------------------------------------------------' */ - KEYMAP_2_SHIFTS( - KC_TRNS, 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, - KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_HOME, KC_AMPR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_UP, KC_DEL, KC_BSPC, - KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_ASTR, KC_TRNS, KC_TRNS, KC_PGUP, KC_HOME, KC_LEFT, KC_RGHT, KC_TRNS, - KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LPRN, KC_RPRN, KC_PIPE, KC_TILD, KC_TRNS, KC_PGDN, KC_END, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + LAYOUT( + KC_CAPS, 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, + KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_HOME, KC_AMPR, KC_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_UP, KC_DEL, KC_BSPC, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_ASTR, KC_TRNS, KC_TRNS, KC_PGUP, KC_HOME, KC_LEFT, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LPRN, KC_RPRN, KC_PIPE, KC_TRNS, KC_TRNS, KC_PGDN, KC_END, KC_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS, KC_TRNS), + + LAYOUT( + RESET, KC_A, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), }; enum function_id { @@ -55,31 +62,31 @@ enum function_id { }; const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_FUNCTION(SHIFT_ESC), + [0] = ACTION_FUNCTION(SHIFT_ESC) }; void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { static uint8_t shift_esc_shift_mask; switch (id) { case SHIFT_ESC: - shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; - if (record->event.pressed) { - if (shift_esc_shift_mask) { - add_key(KC_GRV); - send_keyboard_report(); - } else { - add_key(KC_ESC); - send_keyboard_report(); - } - } else { - if (shift_esc_shift_mask) { - del_key(KC_GRV); - send_keyboard_report(); - } else { - del_key(KC_ESC); - send_keyboard_report(); - } - } - break; + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; } -} \ No newline at end of file +} diff --git a/keyboards/hhkb/keymaps/eric/keymap.c b/keyboards/hhkb/keymaps/eric/keymap.c index 17351ba01add..496ead346ca1 100644 --- a/keyboards/hhkb/keymaps/eric/keymap.c +++ b/keyboards/hhkb/keymaps/eric/keymap.c @@ -18,7 +18,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 | | | |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| - |------+------+-----------------------+------+------| | LAlt | LGUI | ******* Space ******* | RGUI | RAlt | |------+------+-----------------------+------+------| @@ -37,13 +36,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| | Caps | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - | | PgU | Up | PgD | Hm | & | | | | | Psc | Up | Del | Backs | | + | | PgU | Up | PgD | Hm | & | ~ | | | | Psc | Up | Del | Backs | | |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| | | Lef | Dow | Rig | En | * | | | PgU | Hom | Lef | Rig | Enter | | | |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - | | _ | + | ( | ) | | | ~ | | PgD | End | Dow | | | | | + | | _ | + | ( | ) | | | | | PgD | End | Dow | | | | | |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - |------+------+----------------------+------+------+ | **** | **** | ******************** | **** | **** | |------+------+----------------------+------+------+ @@ -52,9 +50,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [HHKB] = KEYMAP( KC_CAPS, 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, \ - KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_HOME, KC_AMPR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_UP, KC_DEL, KC_BSPC, \ + KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_HOME, KC_AMPR, KC_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_UP, KC_DEL, KC_BSPC, \ KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_ASTR, KC_TRNS, KC_TRNS, KC_PGUP, KC_HOME, KC_LEFT, KC_RGHT, KC_TRNS, \ - KC_TRNS, KC_UNDS, KC_PLUS, KC_LPRN, KC_RPRN, KC_PIPE, KC_TILD, KC_TRNS, KC_PGDN, KC_END, KC_DOWN, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_UNDS, KC_PLUS, KC_LPRN, KC_RPRN, KC_PIPE, KC_TRNS, KC_TRNS, KC_PGDN, KC_END, KC_DOWN, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)}; From f440bbbc1124b18ad0cad31976558905d8c15fc0 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 24 Apr 2018 12:37:52 -0400 Subject: [PATCH 270/578] Update readme.md (#2687) --- readme.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/readme.md b/readme.md index 0817fdcc21d3..23773278e47a 100644 --- a/readme.md +++ b/readme.md @@ -7,11 +7,13 @@ [![GitHub contributors](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) [![GitHub forks](https://img.shields.io/github/forks/qmk/qmk_firmware.svg?style=social&label=Fork)](https://github.com/qmk/qmk_firmware/) -This is a keyboard firmware based on the [tmk\_keyboard firmware](http://github.com/tmk/tmk_keyboard) with some useful features for Atmel AVR and ARM controllers, and more specifically, the [OLKB product line](http://olkb.com), the [ErgoDox EZ](http://www.ergodox-ez.com) keyboard, and the [Clueboard product line](http://clueboard.co/). +This is a keyboard firmware based on the [tmk\_keyboard firmware](http://github.com/tmk/tmk_keyboard) with some useful features for Atmel AVR and ARM controllers, and more specifically, the [OLKB product line](https://olkb.com), the [ErgoDox EZ](http://www.ergodox-ez.com) keyboard, and the [Clueboard product line](http://clueboard.co/). -## Official website +## Documentation -[http://qmk.fm](http://qmk.fm) is the official website of QMK, where you can find links to this page, the documentation, and the keyboards supported by QMK. +* [See the official documentation on docs.qmk.fm](https://docs.qmk.fm) + +The docs are hosted on [Gitbook](https://www.gitbook.com/book/qmk/firmware/details) and [GitHub](/docs/) (they are synced). You can request changes by making a fork and [pull request](https://github.com/qmk/qmk_firmware/pulls), or by clicking the "suggest an edit" link on any page of the docs. ## Supported Keyboards @@ -27,6 +29,6 @@ The project also includes community support for [lots of other keyboards](/keybo QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, [Hasu](https://github.com/tmk). The OLKB product firmwares are maintained by [Jack Humbert](https://github.com/jackhumbert), the Ergodox EZ by [Erez Zukerman](https://github.com/ezuk), and the Clueboard by [Zach White](https://github.com/skullydazed). -## Documentation +## Official website -[https://docs.qmk.fm](https://docs.qmk.fm) is hosted on [Gitbook](https://www.gitbook.com/book/qmk/firmware/details) and [GitHub](/docs/) (they are synced). You can request changes by making a fork and [pull request](https://github.com/qmk/qmk_firmware/pulls), or by clicking the "suggest an edit" link on any page of the Docs. +[http://qmk.fm](http://qmk.fm) is the official website of QMK, where you can find links to this page, the documentation, and the keyboards supported by QMK. From d1481172bc865ae42b52bbd325ff31c9a5b7e470 Mon Sep 17 00:00:00 2001 From: MakotoKurauchi Date: Wed, 25 Apr 2018 01:43:57 +0900 Subject: [PATCH 271/578] Helix oled rgb compile sw (#2606) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Helix keyboard OLED, RGBLIGHT enable/disable control integrate into rules.mk rules.mk: add 4 Variables for compile control. # Helix keyboard customize # you can edit follows 4 Variables # jp: 以下の4つの変数を必要に応じて編集します。 OLED_ENABLE = no # OLED_ENABLE LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) LED_ANIMATIONS = yes # LED animations config.h: auto set RGBLED_NUM by HELIX_ROWS and rules.mk's define * HELIX_ROWS define move from config.h to rules.mk * add readme.md * rename readme.md to readme_jp.md * add readme.md and modify readme_jp.md --- keyboards/helix/rev2/config.h | 2 +- keyboards/helix/rev2/keymaps/default/config.h | 24 ++- .../helix/rev2/keymaps/default/readme.md | 144 ++++++++++++++++-- .../helix/rev2/keymaps/default/readme_jp.md | 98 ++++++++++++ keyboards/helix/rev2/keymaps/default/rules.mk | 60 +++++++- 5 files changed, 304 insertions(+), 24 deletions(-) create mode 100644 keyboards/helix/rev2/keymaps/default/readme_jp.md diff --git a/keyboards/helix/rev2/config.h b/keyboards/helix/rev2/config.h index 5905627760f2..e8ad1b9bed3a 100644 --- a/keyboards/helix/rev2/config.h +++ b/keyboards/helix/rev2/config.h @@ -56,7 +56,7 @@ along with this program. If not, see . /* ws2812 RGB LED */ #define RGB_DI_PIN D3 #define RGBLIGHT_TIMER -#define RGBLED_NUM 12 // Number of LEDs +//#define RGBLED_NUM 12 // Number of LEDs. see ./keymaps/default/config.h #define ws2812_PORTREG PORTD #define ws2812_DDRREG DDRD diff --git a/keyboards/helix/rev2/keymaps/default/config.h b/keyboards/helix/rev2/keymaps/default/config.h index 53ff0b3ca812..66c9b9e8bdc4 100644 --- a/keyboards/helix/rev2/keymaps/default/config.h +++ b/keyboards/helix/rev2/keymaps/default/config.h @@ -36,11 +36,14 @@ along with this program. If not, see . // #define EE_HANDS // Helix keyboard OLED support -//#define SSD1306OLED +// see ./rules.mk: OLED_ENABLE=yes or no +#ifdef OLED_ENABLE + #define SSD1306OLED +#endif /* Select rows configuration */ // Rows are 4 or 5 -#define HELIX_ROWS 5 +// #define HELIX_ROWS 5 see ./rules.mk /* key matrix size */ // Rows are doubled-up @@ -62,12 +65,19 @@ along with this program. If not, see . #define TAPPING_FORCE_HOLD #define TAPPING_TERM 100 +// Helix keyboard RGB LED support +//#define RGBLIGHT_ANIMATIONS : see ./rules.mk: LED_ANIMATIONS = yes or no +// see ./rules.mk: LED_BACK_ENABLE or LED_UNDERGLOW_ENABLE set yes +#ifdef RGBLED_BACK + #if HELIX_ROWS == 4 + #define RGBLED_NUM 25 + #elif HELIX_ROWS == 5 + #define RGBLED_NUM 32 + #endif +#else + #define RGBLED_NUM 6 +#endif -#undef RGBLED_NUM -#define RGBLIGHT_ANIMATIONS -// Helix keyboard : see ./rules.mk: RGBLIGHT_ENABLE = yes or no -// Helix keyboard : RGBLED_NUM 6 or 32 -#define RGBLED_NUM 6 #if RGBLED_NUM <= 6 #define RGBLIGHT_LIMIT_VAL 255 #else diff --git a/keyboards/helix/rev2/keymaps/default/readme.md b/keyboards/helix/rev2/keymaps/default/readme.md index 02888855b81d..307e5c30b933 100644 --- a/keyboards/helix/rev2/keymaps/default/readme.md +++ b/keyboards/helix/rev2/keymaps/default/readme.md @@ -1,25 +1,141 @@ -SSD1306 OLED Display via I2C -====== +# The Default Helix Layout +## Layout -Features --------- +### Qwerty -Some features supported by the firmware: +``` + ,-----------------------------------------. ,-----------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | Shift| Z | X | C | V | B | [ | ] | N | M | , | . | / |Enter | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + `-------------------------------------------------------------------------------------------------' +``` +### Colemak +``` + ,-----------------------------------------. ,-----------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Tab | Q | W | F | P | G | | J | L | U | Y | ; | Bksp | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Ctrl | A | R | S | T | D | | H | N | E | I | O | ' | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | Shift| Z | X | C | V | B | [ | ] | K | M | , | . | / |Enter | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + `-------------------------------------------------------------------------------------------------' +``` -* I2C connection between the two halves is required as the OLED display will use this connection as well. Note this - requires pull-up resistors on the data and clock lines. -* OLED display will connect from either side +### Dvorak +``` + ,-----------------------------------------. ,-----------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Bksp | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Tab | ' | , | . | P | Y | | F | G | C | R | L | Del | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Ctrl | A | O | E | U | I | | D | H | T | N | S | / | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | Shift| ; | Q | J | K | X | [ | ] | B | M | W | V | Z |Enter | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + `-------------------------------------------------------------------------------------------------' +``` +## Layers -Wiring ------- +|Priority|number|name|description| +| ---- | ---- | --- | --- | +|high|16|Adjust|Functions| +||4|Raise|Numeric charactors| +||3|Lower|Other charactors| +||2|Dvorak|Dvorak leyout| +||1|Colemak|Colemak leyout| +|low|0|Qwerty|QWERTY leyout(base)| +### Lower +``` + ,-----------------------------------------. ,-----------------------------------------. + | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | F1 | F2 | F3 | F4 | F5 | | F6 | _ | + | { | } | | | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | | F7 | F8 | F9 | F10 | F11 | ( | ) | F12 | | | Home | End | | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | | | | Next | Vol- | Vol+ | Play | + `-------------------------------------------------------------------------------------------------' +``` -Work in progress... +### Raise +``` + ,-----------------------------------------. ,-----------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Bksp | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | | F7 | F8 | F9 | F10 | F11 | | | F12 | | |PageDn|PageUp| | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | | | | Next | Vol- | Vol+ | Play | + `-------------------------------------------------------------------------------------------------' +``` +### Adjust (Lower + Raise) +``` + ,-----------------------------------------. ,-----------------------------------------. + | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | Reset|RGBRST| | | | | | | | | | Del | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | | | |Aud on|Audoff| Mac | | Win |Qwerty|Colemk|Dvorak| | | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | | | |RGB ON| HUE+ | SAT+ | VAL+ | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | | | | MODE | HUE- | SAT- | VAL- | + `-------------------------------------------------------------------------------------------------' +``` -OLED Configuration -------------------------------- +## Customize + +see `qmk_firmware/keyboards/helix/rev2/keymaps/default/rules.mk` + +``` +# Helix keyboard customize +# you can edit follows 5 Variables +# jp: 以下の5つの変数を必要に応じて編集します。 +HELIX_ROWS = 5 # Helix Rows is 4 or 5 +OLED_ENABLE = no # OLED_ENABLE +LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) +LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) +LED_ANIMATIONS = yes # LED animations + +``` +## Compile + +go to qmk top directory. +``` +$ cd qmk_firmware +``` + +build +``` +$ make helix:default +``` + +flash to keyboard +``` +$ make helix:default:avrdude +``` + +## Link +* more detail wrote in Japanese [helix/Doc/firmware_jp.md](https://github.com/MakotoKurauchi/helix/blob/master/Doc/firmware_jp.md) +* [Helix top](https://github.com/MakotoKurauchi/helix) -Work in progress... diff --git a/keyboards/helix/rev2/keymaps/default/readme_jp.md b/keyboards/helix/rev2/keymaps/default/readme_jp.md new file mode 100644 index 000000000000..88ffc02ff37f --- /dev/null +++ b/keyboards/helix/rev2/keymaps/default/readme_jp.md @@ -0,0 +1,98 @@ +# The Default Helix Layout +## 配列 + +### Qwerty配列 + +``` + ,-----------------------------------------. ,-----------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + |------+------+------+------+------+------| |------+------+------+------+------+------| + | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + | Shift| Z | X | C | V | B | [ | ] | N | M | , | . | / |Enter | + |------+------+------+------+------+------+------+------+------+------+------+------+------+------| + |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | + `-------------------------------------------------------------------------------------------------' +``` + +他の配列(Colemak,Dvorak)は、[readme.md](readme.md) を参照 + +## コンパイルの仕方 + +コンパイルは、qmk_firmware のトップディレクトリで行います。 + +``` +$ cd qmk_firmware +``` +qmk_firmwareでは各キーボードのコンパイルは、`<キーボード名>:<キーマップ名>`という指定で行います。 + +``` +$ make helix:default +``` + +キーボードへの書き込みまで同時に行うには下記のように`:avrdude`を付けます。 + +``` +$ make helix:default:avrdude +``` + +コンパイル結果と中間生成物を消去したい場合は以下のようにします。 + +``` +$ make helix:default:clean +``` + +## カスタマイズ + +Helix キーボードを4行版として製作したり、オプションの OLED をつけたり、 +RGB バックライトまたは、RGB Underglow をつけた場合は、 +`qmk_firmware/keyboards/helix/rev2/keymaps/default/rules.mk` の以下の部分を編集して機能を有効化してください。 + +``` +# Helix keyboard customize +# you can edit follows 5 Variables +# jp: 以下の5つの変数を必要に応じて編集します。 +HELIX_ROWS = 5 # Helix Rows is 4 or 5 +OLED_ENABLE = no # OLED_ENABLE +LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) +LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) +LED_ANIMATIONS = yes # LED animations + +``` + +## 4行版Helix に対応する + +rules.mk の下記の部分を編集して 5 を 4 に変更してください。 + +``` +HELIX_ROWS = 4 # Helix Rows is 4 or 5 +``` + +## RGB バックライトを有効にする + +rules.mk の下記の部分を編集して no を yes に変更してください。 + +``` +LED_BACK_ENABLE = yes # LED backlight (Enable WS2812 RGB underlight.) +``` + +## RGB Underglow を有効にする + +rules.mk の下記の部分を編集して no を yes に変更してください。 +``` +LED_UNDERGLOW_ENABLE = yes # LED underglow (Enable WS2812 RGB underlight.) +``` + +## OLEDを有効にする + +rules.mk の下記の部分を編集して no を yes に変更してください。 +``` +OLED_ENABLE = yes # OLED_ENABLE +``` + +## リンク + +* さらに詳細は、[こちら helix/Doc/firmware_jp.md](https://github.com/MakotoKurauchi/helix/blob/master/Doc/firmware_jp.md)をご覧ください。 +* [Helix top](https://github.com/MakotoKurauchi/helix) diff --git a/keyboards/helix/rev2/keymaps/default/rules.mk b/keyboards/helix/rev2/keymaps/default/rules.mk index dc4187c08382..976529ef911b 100644 --- a/keyboards/helix/rev2/keymaps/default/rules.mk +++ b/keyboards/helix/rev2/keymaps/default/rules.mk @@ -14,14 +14,70 @@ MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -# Helix keyboard : see ./config.h: RGBLED_NUM 6 or 32 -# Helix keyboard : RGBLIGHT_ENABLE = no or yes RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. SWAP_HANDS_ENABLE = no # Enable one-hand typing +define HELIX_CUSTOMISE_MSG + $(info Helix customize) + $(info - OLED_ENABLE=$(OLED_ENABLE)) + $(info - LED_BACK_ENABLE=$(LED_BACK_ENABLE)) + $(info - LED_UNDERGLOW_ENABLE=$(LED_UNDERGLOW_ENABLE)) + $(info - LED_ANIMATION=$(LED_ANIMATIONS)) +endef + +# Helix keyboard customize +# you can edit follows 5 Variables +# jp: 以下の5つの変数を必要に応じて編集します。 +HELIX_ROWS = 5 # Helix Rows is 4 or 5 +OLED_ENABLE = no # OLED_ENABLE +LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) +LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) +LED_ANIMATIONS = yes # LED animations + +#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE. +#### Do not enable these with audio at the same time. + +# Uncomment these for checking +# jp: コンパイル時にカスタマイズの状態を表示したい時はコメントをはずします。 +# $(eval $(call HELIX_CUSTOMISE_MSG)) +# $(info ) + +ifneq ($(strip $(HELIX_ROWS)), 4) + ifneq ($(strip $(HELIX_ROWS)), 5) + $(error HELIX_ROWS = $(strip $(HELIX_ROWS)) is unexpected value) + endif +endif +OPT_DEFS += -DHELIX_ROWS=$(strip $(HELIX_ROWS)) + +ifeq ($(strip $(LED_BACK_ENABLE)), yes) + RGBLIGHT_ENABLE = yes + OPT_DEFS += -DRGBLED_BACK + ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes) + $(eval $(call HELIX_CUSTOMISE_MSG)) + $(error LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE both 'yes') + endif +else ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes) + RGBLIGHT_ENABLE = yes +else + RGBLIGHT_ENABLE = no +endif + +ifeq ($(strip $(LED_ANIMATIONS)), yes) + OPT_DEFS += -DRGBLIGHT_ANIMATIONS +endif + +ifeq ($(strip $(OLED_ENABLE)), yes) + OPT_DEFS += -DOLED_ENABLE +endif + # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend ifndef QUANTUM_DIR include ../../../../Makefile endif + +# Uncomment these for debugging +# $(info -- RGBLIGHT_ENABLE=$(RGBLIGHT_ENABLE)) +# $(info -- OPT_DEFS=$(OPT_DEFS)) +# $(info ) From 7d08e48c50b286a6a95bb4da4bb17912951894e8 Mon Sep 17 00:00:00 2001 From: Kurth O'Connor Date: Tue, 24 Apr 2018 11:49:34 -0500 Subject: [PATCH 272/578] Syntax update (#2660) * initial commit * init qmk keymap * update docs * update documentation consolidate readme files; update `make` instructions revise ascii keymap representation * update documentation * edit and update `make` syntax - `make` syntax update - fix typo - add link to teensy video (already linked from online configurator) * permissions restored * remove superfluous files from branch * reset idiosyncratic execute permissions * reset idiosyncratic execute permission --- keyboards/ergodox_ez/readme.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/keyboards/ergodox_ez/readme.md b/keyboards/ergodox_ez/readme.md index ffde65c88b7b..bce8ff3c6ffe 100644 --- a/keyboards/ergodox_ez/readme.md +++ b/keyboards/ergodox_ez/readme.md @@ -10,7 +10,8 @@ Linux page]. Some distributions provide a binary, maybe called To flash the firmware: - - Build the firmware with `make keymapname`, for example `make default` + - Build the firmware with `make :`, for example `make ergodox_ez:default` + - This will result in a hex file called `ergodox_ez_keymapname.hex`, e.g. `ergodox_ez_default.hex` @@ -19,10 +20,12 @@ To flash the firmware: - Load the .hex file into it. - Press the Reset button by inserting a paperclip gently into the reset hole - in the top right corder. + in the top right corner. - Click the button in the Teensy app to download the firmware. +See also [video demonstration](https://www.youtube.com/watch?v=9PyiGUO9_KQ) using Teensy in auto mode. + To flash with ´teensy-loader-cli´: - Build the firmware with `make keymapname`, for example `make default` From 1feb42a1088e868cb963f35cc72d180733304db4 Mon Sep 17 00:00:00 2001 From: nariox Date: Tue, 24 Apr 2018 15:43:23 -0400 Subject: [PATCH 273/578] DZ60: Add Caps Lock LED for default keymap (#2800) Commit b546da0 added better init handling, but removed Caps Lock LED handling. This re-adds it (in the right place). --- keyboards/dz60/keymaps/default/keymap.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/keyboards/dz60/keymaps/default/keymap.c b/keyboards/dz60/keymaps/default/keymap.c index ed91cc37739e..8d5d1ecb397e 100644 --- a/keyboards/dz60/keymaps/default/keymap.c +++ b/keyboards/dz60/keymaps/default/keymap.c @@ -59,3 +59,11 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { break; } } + +void led_set_user(uint8_t usb_led) { + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + DDRB |= (1 << 2); PORTB &= ~(1 << 2); + } else { + DDRB &= ~(1 << 2); PORTB &= ~(1 << 2); + } +} From 32446eeeb6d846da4f3d742035eed7d49f91597d Mon Sep 17 00:00:00 2001 From: Carlos Date: Tue, 24 Apr 2018 14:19:04 -0600 Subject: [PATCH 274/578] UT47 layout (#2791) * Add new project files for UT47 * Copy over keymap and related files * Add LED_controls.ino * Add README instructions * Attempt sending press byte data * Disable mousekeys * Enable sending serial data to LED controller * Update LED mode names * Remove extra file * Add LED enable flag * Update READMEs with more info * Credit original author * Update copyrights * Update docs * Changed based on review * Move layout screenshot to Imgur * Append to src * Enable mousekeys to fix bad keycodes * Additional changes based on feedback * Fix fn layer keys --- keyboards/ut47/LED_controls.ino | 420 +++++++++++++++++++++++ keyboards/ut47/config.h | 87 +++++ keyboards/ut47/keymaps/default/config.h | 24 ++ keyboards/ut47/keymaps/default/keymap.c | 88 +++++ keyboards/ut47/keymaps/default/readme.md | 19 + keyboards/ut47/led.c | 38 ++ keyboards/ut47/matrix.c | 209 +++++++++++ keyboards/ut47/readme.md | 41 +++ keyboards/ut47/rules.mk | 70 ++++ keyboards/ut47/ut47.c | 50 +++ keyboards/ut47/ut47.h | 49 +++ 11 files changed, 1095 insertions(+) create mode 100644 keyboards/ut47/LED_controls.ino create mode 100644 keyboards/ut47/config.h create mode 100644 keyboards/ut47/keymaps/default/config.h create mode 100644 keyboards/ut47/keymaps/default/keymap.c create mode 100644 keyboards/ut47/keymaps/default/readme.md create mode 100644 keyboards/ut47/led.c create mode 100644 keyboards/ut47/matrix.c create mode 100644 keyboards/ut47/readme.md create mode 100644 keyboards/ut47/rules.mk create mode 100644 keyboards/ut47/ut47.c create mode 100644 keyboards/ut47/ut47.h diff --git a/keyboards/ut47/LED_controls.ino b/keyboards/ut47/LED_controls.ino new file mode 100644 index 000000000000..dd50300eb7e3 --- /dev/null +++ b/keyboards/ut47/LED_controls.ino @@ -0,0 +1,420 @@ +#include +#include + +int iByte; +byte col = 0; +byte leds[12][4]; +byte pass = 1; +int fadecount = 1; +const int fadelimit = 3000; +const int fadelimitshort = 1000; +byte mode = 4; +byte brightness = 2; +boolean changemode = 0; +int rain = 0; +const int rainlimit = 5000; +const int rainfade = 5000; +byte rx = 0; +byte ry = 0; + +// pin[xx] on led matrix connected to nn on Arduino (-1 is dummy to make array start at pos 1) +int pins[17] = { + -1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 16, 14, 15, 18, 19, 20, 21 +}; + +// col[xx] of leds = pin yy on led matrix +int cols[12] = { + pins[8], pins[7], pins[6], pins[5], pins[9], pins[10], pins[11], pins[12], pins[13], pins[14], pins[15], pins[16] +}; + +// row[xx] of leds = pin yy on led matrix +int rows[4] = { + pins[1], pins[2], pins[3], pins[4] +}; + + +#define DELAY 0 +extern byte leds[12][4]; + +void setup() { + Serial1.begin(9600); + setupLeds(); + for (int s = 0; s < 5; s++) { + for ( int r = 1; r < 9; r++) { + delayMicroseconds(65000); + delayMicroseconds(65000); + for (int j = 0; j < 4; j++) { + for (int i = 0; i < 12; i++) { + leds[i][j] = 1; + for (int p = 0; p < 25; p++) { + } + leds[i][j] = r; + } + } + } + for ( int r = 9; r > 0; r--) { + delayMicroseconds(65000); + delayMicroseconds(65000); + delayMicroseconds(65000); + for (int j = 0; j < 4; j++) { + for (int i = 0; i < 12; i++) { + leds[i][j] = 1; + for (int p = 0; p < 25; p++) { + } + leds[i][j] = r; + } + } + } + } +} + +void loop() { + + switch (mode) { + case 0: + //Blacklight + for (int i = 0; i < 12; i++) { + for (int j = 0; j < 4; j++) { + leds[i][j] = brightness; + } + } + checkserial(); + break; + case 1: + //Breathing + for ( int r = 1; r < 9; r++) { + checkserial(); + if (changemode == 0) { + delayMicroseconds(65000); + delayMicroseconds(65000); + delayMicroseconds(65000); + for (int j = 0; j < 4; j++) { + for (int i = 0; i < 12; i++) { + leds[i][j] = 1; + for (int p = 0; p < 25; p++) { + } + leds[i][j] = r; + } + } + } + else { + break; + } + } + for ( int r = 9; r > 0; r--) { + checkserial(); + if (changemode == 0) { + delayMicroseconds(65000); + delayMicroseconds(65000); + delayMicroseconds(65000); + delayMicroseconds(65000); + for (int j = 0; j < 4; j++) { + for (int i = 0; i < 12; i++) { + leds[i][j] = 1; + for (int p = 0; p < 25; p++) { + } + leds[i][j] = r; + } + } + } + else { + break; + } + } + for ( int r = 1; r < 30; r++) { + checkserial(); + if (changemode == 0) { + delayMicroseconds(65000); + delayMicroseconds(65000); + } + else { + break; + } + } + break; + case 2: + //Random + leds[random(12)][random(4)] = random(8); + delayMicroseconds(10000); + checkserial(); + break; + case 3: + //Rain + rain++; + if (rain > rainlimit) { + rain = 0; + rx = random(12); + ry = random(4); + if (leds[rx][ry] == 0) { + leds[rx][ry] = 18; + } + } + fadecount++; + if (fadecount > rainfade) { + fadecount = 1; + for (int i = 0; i < 12; i++) { + for (int j = 0; j < 4; j++) { + if (leds[i][j] > 0) { + leds[i][j] = leds[i][j] - 1; + } + } + } + } + checkserial(); + break; + case 4: + //Reactive + fadecount++; + if (fadecount > fadelimit) { + fadecount = 1; + for (int i = 0; i < 12; i++) { + for (int j = 0; j < 4; j++) { + if (leds[i][j] > 0) { + leds[i][j] = leds[i][j] - 1; + } + } + } + } + checkserial(); + break; + case 5: + //Reactive Target + fadecount++; + if (fadecount > fadelimitshort) { + fadecount = 1; + for (int i = 0; i < 12; i++) { + for (int j = 0; j < 4; j++) { + if (leds[i][j] > 0) { + leds[i][j] = leds[i][j] - 1; + } + } + } + } + checkserial(); + break; + default: + mode = 0; + break; + } + changemode = 0; +} + +void checkserial() { + if (Serial1.available() > 0) { + iByte = Serial1.read(); + if (iByte == 100) { + brightness++; + if (brightness > 9) { + brightness = 1; + } + } + if (iByte == 101) { + mode++; + } + if (iByte < 100) { + if (mode == 4) { + byte row = iByte / 16; + byte col = iByte % 16; + leds[col][row] = 18; + } + if (mode == 5) { + byte row = iByte / 16; + byte col = iByte % 16; + for (byte i = 0; i < 12; i++) { + leds[i][row] = 18; + } + for (byte p = 0; p < 4; p++) { + leds[col][p] = 18; + } + } + } + } +} + +void setupLeds() { + // sets the pins as output + FastGPIO::Pin<2>::setOutputLow(); + FastGPIO::Pin<3>::setOutputLow(); + FastGPIO::Pin<4>::setOutputLow(); + FastGPIO::Pin<5>::setOutputLow(); + FastGPIO::Pin<6>::setOutputLow(); + FastGPIO::Pin<7>::setOutputLow(); + FastGPIO::Pin<8>::setOutputLow(); + FastGPIO::Pin<9>::setOutputLow(); + FastGPIO::Pin<10>::setOutputLow(); + FastGPIO::Pin<16>::setOutputLow(); + FastGPIO::Pin<14>::setOutputLow(); + FastGPIO::Pin<15>::setOutputLow(); + FastGPIO::Pin<18>::setOutputLow(); + FastGPIO::Pin<19>::setOutputLow(); + FastGPIO::Pin<20>::setOutputLow(); + FastGPIO::Pin<21>::setOutputLow(); + + // set up Cols + FastGPIO::Pin<6>::setOutputValueLow(); + FastGPIO::Pin<7>::setOutputValueLow(); + FastGPIO::Pin<8>::setOutputValueLow(); + FastGPIO::Pin<9>::setOutputValueLow(); + FastGPIO::Pin<10>::setOutputValueLow(); + FastGPIO::Pin<16>::setOutputValueLow(); + FastGPIO::Pin<14>::setOutputValueLow(); + FastGPIO::Pin<15>::setOutputValueLow(); + FastGPIO::Pin<18>::setOutputValueLow(); + FastGPIO::Pin<19>::setOutputValueLow(); + FastGPIO::Pin<20>::setOutputValueLow(); + FastGPIO::Pin<21>::setOutputValueLow(); + + // set up Rows + FastGPIO::Pin<2>::setOutputValueLow(); + FastGPIO::Pin<3>::setOutputValueLow(); + FastGPIO::Pin<4>::setOutputValueLow(); + FastGPIO::Pin<5>::setOutputValueLow(); + + clearLeds(); + Timer1.initialize(25); + Timer1.attachInterrupt(display); + +} + +void clearLeds() { + // Clear display array + for (int i = 0; i < 12; i++) { + for (int j = 0; j < 4; j++) { + leds[i][j] = 0; + } + } +} + +void onLeds() { + // Clear display array + for (int i = 0; i < 12; i++) { + for (int j = 0; j < 4; j++) { + leds[i][j] = 7; + } + } +} + +// Interrupt routine +void display() { + + switch (col) { // Turn whole previous column off + case 0: + FastGPIO::Pin<6>::setOutputValueLow(); + break; + case 1: + FastGPIO::Pin<7>::setOutputValueLow(); + break; + case 2: + FastGPIO::Pin<8>::setOutputValueLow(); + break; + case 3: + FastGPIO::Pin<9>::setOutputValueLow(); + break; + case 4: + FastGPIO::Pin<10>::setOutputValueLow(); + break; + case 5: + FastGPIO::Pin<16>::setOutputValueLow(); + break; + case 6: + FastGPIO::Pin<14>::setOutputValueLow(); + break; + case 7: + FastGPIO::Pin<15>::setOutputValueLow(); + break; + case 8: + FastGPIO::Pin<18>::setOutputValueLow(); + break; + case 9: + FastGPIO::Pin<19>::setOutputValueLow(); + break; + case 10: + FastGPIO::Pin<20>::setOutputValueLow(); + break; + case 11: + FastGPIO::Pin<21>::setOutputValueLow(); + break; + } + + col++; + if (col == 12) { + col = 0; + pass++; + if (pass > 8) { + pass = 1; + } + } + for (int row = 0; row < 4; row++) { + if (leds[col][row] > pass) { + switch (row) { // Turn on this led + case 0: + FastGPIO::Pin<2>::setOutputValueLow(); + break; + case 1: + FastGPIO::Pin<3>::setOutputValueLow(); + break; + case 2: + FastGPIO::Pin<4>::setOutputValueLow(); + break; + case 3: + FastGPIO::Pin<5>::setOutputValueLow(); + break; + } + } + else { + switch (row) { // Turn off this led + case 0: + FastGPIO::Pin<2>::setOutputValueHigh(); + break; + case 1: + FastGPIO::Pin<3>::setOutputValueHigh(); + break; + case 2: + FastGPIO::Pin<4>::setOutputValueHigh(); + break; + case 3: + FastGPIO::Pin<5>::setOutputValueHigh(); + break; + } + } + } + switch (col) { // Turn column on + case 0: + FastGPIO::Pin<6>::setOutputValueHigh(); + break; + case 1: + FastGPIO::Pin<7>::setOutputValueHigh(); + break; + case 2: + FastGPIO::Pin<8>::setOutputValueHigh(); + break; + case 3: + FastGPIO::Pin<9>::setOutputValueHigh(); + break; + case 4: + FastGPIO::Pin<10>::setOutputValueHigh(); + break; + case 5: + FastGPIO::Pin<16>::setOutputValueHigh(); + break; + case 6: + FastGPIO::Pin<14>::setOutputValueHigh(); + break; + case 7: + FastGPIO::Pin<15>::setOutputValueHigh(); + break; + case 8: + FastGPIO::Pin<18>::setOutputValueHigh(); + break; + case 9: + FastGPIO::Pin<19>::setOutputValueHigh(); + break; + case 10: + FastGPIO::Pin<20>::setOutputValueHigh(); + break; + case 11: + FastGPIO::Pin<21>::setOutputValueHigh(); + break; + } + +} diff --git a/keyboards/ut47/config.h b/keyboards/ut47/config.h new file mode 100644 index 000000000000..4335e3edd503 --- /dev/null +++ b/keyboards/ut47/config.h @@ -0,0 +1,87 @@ +/* +Copyright 2018 Carlos Filoteo + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER 40percent.club +#define PRODUCT ut47 +#define DESCRIPTION An awesome 40% keyboard + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +#define MATRIX_ROW_PINS { D1, D0, D4, C6 } +#define MATRIX_COL_PINS { D7, E6, B4, B5, B6, B2, B3, B1, F7, F6, F5, F4 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* Enable GNAP matrix serial output */ +#define GNAP_ENABLE + +/* USART configuration */ +#ifdef __AVR_ATmega32U4__ +# define SERIAL_UART_BAUD 9600 +# define SERIAL_UART_DATA UDR1 +# define SERIAL_UART_UBRR (F_CPU / (16UL * SERIAL_UART_BAUD) - 1) +# define SERIAL_UART_RXD_VECT USART1_RX_vect +# define SERIAL_UART_TXD_READY (UCSR1A & _BV(UDRE1)) +# define SERIAL_UART_INIT() do { \ + /* baud rate */ \ + UBRR1L = SERIAL_UART_UBRR; \ + /* baud rate */ \ + UBRR1H = SERIAL_UART_UBRR >> 8; \ + /* enable TX */ \ + UCSR1B = _BV(TXEN1); \ + /* 8-bit data */ \ + UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); \ + sei(); \ + } while(0) +# else +# error "USART configuration is needed." +#endif + +#endif diff --git a/keyboards/ut47/keymaps/default/config.h b/keyboards/ut47/keymaps/default/config.h new file mode 100644 index 000000000000..46098a22fb2b --- /dev/null +++ b/keyboards/ut47/keymaps/default/config.h @@ -0,0 +1,24 @@ +/* Copyright 2018 Carlos Filoteo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +// place overrides here + +#endif diff --git a/keyboards/ut47/keymaps/default/keymap.c b/keyboards/ut47/keymaps/default/keymap.c new file mode 100644 index 000000000000..a02543dacb85 --- /dev/null +++ b/keyboards/ut47/keymaps/default/keymap.c @@ -0,0 +1,88 @@ +/* Copyright 2018 Carlos Filoteo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H +#ifdef LED_ENABLE + #include "protocol/serial.h" +#endif + +#define _______ KC_TRNS +#define LT3_TAB LT(3, KC_TAB) +#define MT_RSFT_ENT MT(MOD_RSFT, KC_ENT) + +enum custom_keycodes { + LED_TOG = SAFE_RANGE, + LED_CHG +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + LT3_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT_RSFT_ENT, + KC_LCTL, KC_LALT, KC_LGUI, KC_APP, MO(2), KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELETE, + _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, _______, + _______, _______, _______, KC_CAPS, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END +), + +LAYOUT( + KC_FN6, KC_FN7, KC_FN8, KC_FN9, KC_FN10, KC_FN11, KC_FN12, KC_FN13, KC_FN14, KC_FN15, KC_FN16, KC_DELETE, + _______, _______, _______, _______, _______, _______, _______, KC_FN17, KC_FN18, KC_FN19, KC_FN20, KC_FN21, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, + _______, _______, _______, KC_CAPS, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END +), + +LAYOUT( /* Tab */ + KC_ESC, KC_CALC, KC_WHOM, KC_MAIL, KC_MYCM, _______, _______, _______, _______, _______, KC_PSCR, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, LED_TOG, LED_CHG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R +), +}; + +//LED keymap functions + #ifdef LED_ENABLE +void led_chmode(void) { + serial_send(101); +} + +void led_toggle(void) { + serial_send(100); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch(keycode) { + case LED_TOG: + #ifdef LED_ENABLE + led_toggle(); + #endif + return false; + case LED_CHG: + #ifdef LED_ENABLE + led_chmode(); + #endif + return false; + } + } + return true; +}; +#endif diff --git a/keyboards/ut47/keymaps/default/readme.md b/keyboards/ut47/keymaps/default/readme.md new file mode 100644 index 000000000000..e09dc73fab86 --- /dev/null +++ b/keyboards/ut47/keymaps/default/readme.md @@ -0,0 +1,19 @@ +# UT47 default keymap + +![UT47 layout image](https://i.imgur.com/Tsz5qsF.png) + +[KLE](http://www.keyboard-layout-editor.com/##@@_y:0%3B&=Esc&=Q&=W&=E&=R&=T&=Y&=U&=I&=O&=P&_w:1.5%3B&=Back%20Space&_x:0.25&a:4&f:4&w:4&h:4&d:true%3B&=%3Cb%3EGNAP!%3C%2F%2Fb%3E%3Cp%3E%3Cp%3EMinimum%20stagger%3Cp%3E47%20key%20layout%3B&@_a:7&f:3&w:1.25%3B&=Tab&=A&=S&=D&=F&=G&=H&=J&=K&=L&=%2F%3B&_w:1.25%3B&=%27%3B&@_w:1.5%3B&=Shift&=Z&=X&=C&=V&=B&=N&=M&=,&=.&=%2F%2F&=Return%3B&@=Ctrl&=Alt&=Super&=Menu&_w:1.25%3B&=%2F&dArr%2F%3B&_w:2%3B&=&_w:1.25%3B&=%2F&uArr%2F%3B&=%2F&larr%2F%3B&=%2F&darr%2F%3B&=%2F&uarr%2F%3B&=%2F&rarr%2F%3B%3B&=undefined) + +### LED Controls + +Use TAB+Z to cycle through brightness (8 steps) + +Use TAB+X to cycle through the following LED modes: + +- solid +- breathing +- random +- rain +- reactive +- poptang +- off diff --git a/keyboards/ut47/led.c b/keyboards/ut47/led.c new file mode 100644 index 000000000000..9458c038fef6 --- /dev/null +++ b/keyboards/ut47/led.c @@ -0,0 +1,38 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include +#include "stdint.h" +#include "led.h" + + +void led_set(uint8_t usb_led) +{ + if (usb_led & (1<. +*/ + +/* + * scan matrix + */ +#include +#include +#include +#include +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "protocol/serial.h" + + +#ifndef DEBOUNCE +# define DEBOUNCE 5 +#endif +static uint8_t debouncing = DEBOUNCE; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +static matrix_row_t read_cols(void); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +void matrix_init(void) +{ + // initialize row and col + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } + + serial_init(); +} + +uint8_t matrix_scan(void) +{ + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + select_row(i); + _delay_us(30); // without this wait read unstable value. + matrix_row_t cols = read_cols(); + if (matrix_debouncing[i] != cols) { + matrix_debouncing[i] = cols; + if (debouncing) { + debug("bounce!: "); debug_hex(debouncing); debug("\n"); + } + debouncing = DEBOUNCE; + } + unselect_rows(); + } + + if (debouncing) { + if (--debouncing) { + _delay_ms(1); + } else { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = matrix_debouncing[i]; + } + } + } + + return 1; +} + +bool matrix_is_modified(void) +{ + if (debouncing) return false; + return true; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1<The reason this is an "opt-in" feature is to prevent sending serial communication over the pin, in case it ends up being used for something else (like RGB underglow). + +### Layout + +Go to the [default layout README](keymaps/default/readme.md) for more information. + +### Additional info + +Credit: Forked from [di0ib TMK version](https://github.com/di0ib/tmk_keyboard/tree/master/keyboard/gnap) + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. + +### Build Guide + +[u/network_operations' build guide thread](https://www.reddit.com/r/MechanicalKeyboards/comments/7wqktu/gnap_the_cheap_40/) diff --git a/keyboards/ut47/rules.mk b/keyboards/ut47/rules.mk new file mode 100644 index 000000000000..b04659866984 --- /dev/null +++ b/keyboards/ut47/rules.mk @@ -0,0 +1,70 @@ +# MCU name +#MCU = at90usb1286 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + +# Bootloader +BOOTLOADER = caterina + +# custom matrix setup +CUSTOM_MATRIX = yes +SRC += matrix.c protocol/serial_uart.c + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches + +ifeq ($(strip $(LED_ENABLE)), yes) + OPT_DEFS += -DLED_ENABLE + SRC += led.c +endif diff --git a/keyboards/ut47/ut47.c b/keyboards/ut47/ut47.c new file mode 100644 index 000000000000..f467fd130ab4 --- /dev/null +++ b/keyboards/ut47/ut47.c @@ -0,0 +1,50 @@ +/* Copyright 2018 Carlos Filoteo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "ut47.h" +#ifdef LED_ENABLE + #include "protocol/serial.h" +#endif + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + if (record->event.pressed) { + #ifdef LED_ENABLE + serial_send((record->event.key.row*16)+record->event.key.col); + #endif + } + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} diff --git a/keyboards/ut47/ut47.h b/keyboards/ut47/ut47.h new file mode 100644 index 000000000000..fa9493f11809 --- /dev/null +++ b/keyboards/ut47/ut47.h @@ -0,0 +1,49 @@ +/* Copyright 2018 Carlos Filoteo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#ifndef UT47_H +#define UT47_H + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, \ + K30, K31, K32, K33, K34, K35, K37, K38, K39, K3a, K3b \ +) \ + { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b }, \ + { K30, K31, K32, K33, K34, K35, K37, K38, K39, K3a, K3b } \ + } + +#define LAYOUT_kc( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, \ + K30, K31, K32, K33, K34, K35, K37, K38, K39, K3a, K3b \ +) \ + LAYOUT( \ + KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0a, KC_##K0b, \ + KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1a, KC_##K1b, \ + KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2a, KC_##K2b, \ + KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K37, KC_##K38, KC_##K39, KC_##K3a, KC_##K3b \ + ) + +#define LAYOUT_kc_ut47 LAYOUT_kc + +#endif From 4674664c4a85295f93d32260079135f8cef244b1 Mon Sep 17 00:00:00 2001 From: yiancar Date: Tue, 24 Apr 2018 21:19:34 +0100 Subject: [PATCH 275/578] Cu75 iso fix (#2801) * Added Modular keyboards L,R and NUM Created code modules for the 3 modules of the modular keyboard. Original idea by MechboardsUK. Uses i2c implementation similar to lets split * Remove modular from master This is to fix incorrect branching * CU75 keymap fix Incorrect keymap now fixed --- keyboards/cu75/cu75.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/cu75/cu75.h b/keyboards/cu75/cu75.h index 250217d9db02..eaa22a3866cf 100644 --- a/keyboards/cu75/cu75.h +++ b/keyboards/cu75/cu75.h @@ -110,8 +110,8 @@ void click(uint16_t freq, uint16_t duration); #define LAYOUT_iso( \ k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, \ k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1G, \ - k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k3D, k2F, \ - k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k2E, k3F, \ + k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3F, \ k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, \ k51, k52, k53, k54, k57, k59, k5A, k5B, k5C, k5D, k5E, k5F \ ) { \ From 4ad37331d31d7f4e734e51f2b38fde9732c47d98 Mon Sep 17 00:00:00 2001 From: Carlos Date: Tue, 24 Apr 2018 20:37:05 -0600 Subject: [PATCH 276/578] Fix missed key assignment (#2803) --- keyboards/ut47/ut47.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/ut47/ut47.h b/keyboards/ut47/ut47.h index fa9493f11809..b915e8dac0f6 100644 --- a/keyboards/ut47/ut47.h +++ b/keyboards/ut47/ut47.h @@ -28,7 +28,7 @@ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b }, \ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b }, \ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b }, \ - { K30, K31, K32, K33, K34, K35, K37, K38, K39, K3a, K3b } \ + { K30, K31, K32, K33, K34, KC_NO, K35, K37, K38, K39, K3a, K3b } \ } #define LAYOUT_kc( \ @@ -41,7 +41,7 @@ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0a, KC_##K0b, \ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1a, KC_##K1b, \ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2a, KC_##K2b, \ - KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K37, KC_##K38, KC_##K39, KC_##K3a, KC_##K3b \ + KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_NO,KC_##K35, KC_##K37, KC_##K38, KC_##K39, KC_##K3a, KC_##K3b \ ) #define LAYOUT_kc_ut47 LAYOUT_kc From 1c6b9323b25f8ec38f86addd4ba249faa5986cb3 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Wed, 25 Apr 2018 07:44:37 -0700 Subject: [PATCH 277/578] Fix QMK Configurator bug with rendering the Eagle layout (#2806) --- keyboards/eagle_viper/v2/v2.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/eagle_viper/v2/v2.h b/keyboards/eagle_viper/v2/v2.h index 5beec5bc62ba..ce8ca028f19b 100644 --- a/keyboards/eagle_viper/v2/v2.h +++ b/keyboards/eagle_viper/v2/v2.h @@ -32,7 +32,7 @@ { K0A, K0B, K0C, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K0J, KC_NO, K0K, K0L, K0M, K0N, K0O } \ } -#define LAYOUT_eagle( \ +#define LAYOUT_60_ansi( \ K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4O, \ K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3O, \ K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2O, \ @@ -75,4 +75,4 @@ } #endif -#define LAYOUT_60_ansi LAYOUT_eagle +#define LAYOUT_eagle LAYOUT_60_ansi From eb89a372ec8950a853aef9e2730339465dc3dc2a Mon Sep 17 00:00:00 2001 From: Danny Date: Wed, 25 Apr 2018 13:47:13 -0400 Subject: [PATCH 278/578] Add BFO-9000 keyboard (#2807) --- keyboards/bfo9000/bfo9000.c | 1 + keyboards/bfo9000/bfo9000.h | 37 +++ keyboards/bfo9000/config.h | 78 +++++ keyboards/bfo9000/i2c.c | 162 ++++++++++ keyboards/bfo9000/i2c.h | 49 +++ keyboards/bfo9000/keymaps/default/config.h | 37 +++ keyboards/bfo9000/keymaps/default/keymap.c | 19 ++ keyboards/bfo9000/matrix.c | 342 +++++++++++++++++++++ keyboards/bfo9000/readme.md | 18 ++ keyboards/bfo9000/rules.mk | 70 +++++ keyboards/bfo9000/serial.c | 230 ++++++++++++++ keyboards/bfo9000/serial.h | 27 ++ keyboards/bfo9000/split_util.c | 86 ++++++ keyboards/bfo9000/split_util.h | 20 ++ 14 files changed, 1176 insertions(+) create mode 100644 keyboards/bfo9000/bfo9000.c create mode 100644 keyboards/bfo9000/bfo9000.h create mode 100644 keyboards/bfo9000/config.h create mode 100644 keyboards/bfo9000/i2c.c create mode 100644 keyboards/bfo9000/i2c.h create mode 100644 keyboards/bfo9000/keymaps/default/config.h create mode 100644 keyboards/bfo9000/keymaps/default/keymap.c create mode 100644 keyboards/bfo9000/matrix.c create mode 100644 keyboards/bfo9000/readme.md create mode 100644 keyboards/bfo9000/rules.mk create mode 100644 keyboards/bfo9000/serial.c create mode 100644 keyboards/bfo9000/serial.h create mode 100644 keyboards/bfo9000/split_util.c create mode 100644 keyboards/bfo9000/split_util.h diff --git a/keyboards/bfo9000/bfo9000.c b/keyboards/bfo9000/bfo9000.c new file mode 100644 index 000000000000..2ae778e32b3b --- /dev/null +++ b/keyboards/bfo9000/bfo9000.c @@ -0,0 +1 @@ +#include "bfo9000.h" diff --git a/keyboards/bfo9000/bfo9000.h b/keyboards/bfo9000/bfo9000.h new file mode 100644 index 000000000000..c3bd2236cefd --- /dev/null +++ b/keyboards/bfo9000/bfo9000.h @@ -0,0 +1,37 @@ +#ifndef BFO9000_H +#define BFO9000_H + +#include "quantum.h" + +#ifdef USE_I2C +#include +#ifdef __AVR__ + #include + #include +#endif +#endif + +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, L06, L07, L08, R00, R01, R02, R03, R04, R05, R06, R07, R08, \ + L10, L11, L12, L13, L14, L15, L16, L17, L18, R10, R11, R12, R13, R14, R15, R16, R17, R18, \ + L20, L21, L22, L23, L24, L25, L26, L27, L28, R20, R21, R22, R23, R24, R25, R26, R27, R28, \ + L30, L31, L32, L33, L34, L35, L36, L37, L38, R30, R31, R32, R33, R34, R35, R36, R37, R38, \ + L40, L41, L42, L43, L44, L45, L46, L47, L48, R40, R41, R42, R43, R44, R45, R46, R47, R48, \ + L50, L51, L52, L53, L54, L55, L56, L57, L58, R50, R51, R52, R53, R54, R55, R56, R57, R58 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05, L06, L07, L08 }, \ + { L10, L11, L12, L13, L14, L15, L16, L17, L18 }, \ + { L20, L21, L22, L23, L24, L25, L26, L27, L28 }, \ + { L30, L31, L32, L33, L34, L35, L36, L37, L38 }, \ + { L40, L41, L42, L43, L44, L45, L46, L47, L48 }, \ + { L50, L51, L52, L53, L54, L55, L56, L57, L58 }, \ + { R00, R01, R02, R03, R04, R05, R06, R07, R08 }, \ + { R10, R11, R12, R13, R14, R15, R16, R17, R18 }, \ + { R20, R21, R22, R23, R24, R25, R26, R27, R28 }, \ + { R30, R31, R32, R33, R34, R35, R36, R37, R38 }, \ + { R40, R41, R42, R43, R44, R45, R46, R47, R48 }, \ + { R50, R51, R52, R53, R54, R55, R56, R57, R58 } \ + } + +#endif diff --git a/keyboards/bfo9000/config.h b/keyboards/bfo9000/config.h new file mode 100644 index 000000000000..561d2d11468f --- /dev/null +++ b/keyboards/bfo9000/config.h @@ -0,0 +1,78 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCEEB +#define PRODUCT_ID 0x1169 +#define DEVICE_VER 0x0100 +#define MANUFACTURER Keebio +#define PRODUCT BFO-9000 +#define DESCRIPTION Really big split ortholinear keyboard + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 12 +#define MATRIX_COLS 9 + +// wiring of each half +#define MATRIX_ROW_PINS { D3, D2, D4, C6, D7, E6 } +#define MATRIX_COL_PINS { B5, B6, B2, B3, B1, F7, F6, F5, F4 } + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* ws2812 RGB LED */ +#define RGB_DI_PIN B4 +#define RGBLIGHT_TIMER +#define RGBLED_NUM 20 // Number of LEDs + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + + +#endif diff --git a/keyboards/bfo9000/i2c.c b/keyboards/bfo9000/i2c.c new file mode 100644 index 000000000000..084c890c405f --- /dev/null +++ b/keyboards/bfo9000/i2c.c @@ -0,0 +1,162 @@ +#include +#include +#include +#include +#include +#include +#include "i2c.h" + +#ifdef USE_I2C + +// Limits the amount of we wait for any one i2c transaction. +// Since were running SCL line 100kHz (=> 10μs/bit), and each transactions is +// 9 bits, a single transaction will take around 90μs to complete. +// +// (F_CPU/SCL_CLOCK) => # of μC cycles to transfer a bit +// poll loop takes at least 8 clock cycles to execute +#define I2C_LOOP_TIMEOUT (9+1)*(F_CPU/SCL_CLOCK)/8 + +#define BUFFER_POS_INC() (slave_buffer_pos = (slave_buffer_pos+1)%SLAVE_BUFFER_SIZE) + +volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; + +static volatile uint8_t slave_buffer_pos; +static volatile bool slave_has_register_set = false; + +// Wait for an i2c operation to finish +inline static +void i2c_delay(void) { + uint16_t lim = 0; + while(!(TWCR & (1<10. + // Check datasheets for more info. + TWBR = ((F_CPU/SCL_CLOCK)-16)/2; +} + +// Start a transaction with the given i2c slave address. The direction of the +// transfer is set with I2C_READ and I2C_WRITE. +// returns: 0 => success +// 1 => error +uint8_t i2c_master_start(uint8_t address) { + TWCR = (1< slave ACK +// 1 => slave NACK +uint8_t i2c_master_write(uint8_t data) { + TWDR = data; + TWCR = (1<= SLAVE_BUFFER_SIZE ) { + ack = 0; + slave_buffer_pos = 0; + } + slave_has_register_set = true; + } else { + i2c_slave_buffer[slave_buffer_pos] = TWDR; + BUFFER_POS_INC(); + } + break; + + case TW_ST_SLA_ACK: + case TW_ST_DATA_ACK: + // master has addressed this device as a slave transmitter and is + // requesting data. + TWDR = i2c_slave_buffer[slave_buffer_pos]; + BUFFER_POS_INC(); + break; + + case TW_BUS_ERROR: // something went wrong, reset twi state + TWCR = 0; + default: + break; + } + // Reset everything, so we are ready for the next TWI interrupt + TWCR |= (1< + +#ifndef F_CPU +#define F_CPU 16000000UL +#endif + +#define I2C_READ 1 +#define I2C_WRITE 0 + +#define I2C_ACK 1 +#define I2C_NACK 0 + +#define SLAVE_BUFFER_SIZE 0x10 + +// i2c SCL clock frequency +#define SCL_CLOCK 400000L + +extern volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; + +void i2c_master_init(void); +uint8_t i2c_master_start(uint8_t address); +void i2c_master_stop(void); +uint8_t i2c_master_write(uint8_t data); +uint8_t i2c_master_read(int); +void i2c_reset_state(void); +void i2c_slave_init(uint8_t address); + + +static inline unsigned char i2c_start_read(unsigned char addr) { + return i2c_master_start((addr << 1) | I2C_READ); +} + +static inline unsigned char i2c_start_write(unsigned char addr) { + return i2c_master_start((addr << 1) | I2C_WRITE); +} + +// from SSD1306 scrips +extern unsigned char i2c_rep_start(unsigned char addr); +extern void i2c_start_wait(unsigned char addr); +extern unsigned char i2c_readAck(void); +extern unsigned char i2c_readNak(void); +extern unsigned char i2c_read(unsigned char ack); + +#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak(); + +#endif diff --git a/keyboards/bfo9000/keymaps/default/config.h b/keyboards/bfo9000/keymaps/default/config.h new file mode 100644 index 000000000000..6b31e8d14ee1 --- /dev/null +++ b/keyboards/bfo9000/keymaps/default/config.h @@ -0,0 +1,37 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#endif diff --git a/keyboards/bfo9000/keymaps/default/keymap.c b/keyboards/bfo9000/keymaps/default/keymap.c new file mode 100644 index 000000000000..5de5e123e509 --- /dev/null +++ b/keyboards/bfo9000/keymaps/default/keymap.c @@ -0,0 +1,19 @@ +#include QMK_KEYBOARD_H + +#define _BASE 0 + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_BASE] = LAYOUT( \ + KC_ESC, KC_VOLU, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \ + KC_HOME, KC_VOLD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ + KC_END, KC_TAB, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \ + KC_PGUP, KC_CAPS, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, \ + KC_PGDN, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, XXXXXXX, \ + KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_ENT, KC_BSPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ +) +}; diff --git a/keyboards/bfo9000/matrix.c b/keyboards/bfo9000/matrix.c new file mode 100644 index 000000000000..2ca5f4d87abc --- /dev/null +++ b/keyboards/bfo9000/matrix.c @@ -0,0 +1,342 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +/* + * scan matrix + */ +#include +#include +#ifdef USE_I2C +// provides memcpy for copying TWI slave buffer +// #include +#endif +#include +#include +#include +#include +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "split_util.h" +#include "pro_micro.h" +#include "config.h" + +#ifdef USE_I2C +# include "i2c.h" +#else // USE_SERIAL +# include "serial.h" +#endif + +#ifndef DEBOUNCE +# define DEBOUNCE 5 +#endif + +#define ERROR_DISCONNECT_COUNT 5 + +static uint8_t debouncing = DEBOUNCE; +static const int ROWS_PER_HAND = MATRIX_ROWS/2; +static uint8_t error_count = 0; + +static const uint8_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; +static const uint8_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +static matrix_row_t read_cols(void); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + + +__attribute__ ((weak)) +void matrix_init_kb(void) { + matrix_init_user(); +} + +__attribute__ ((weak)) +void matrix_scan_kb(void) { + matrix_scan_user(); +} + +__attribute__ ((weak)) +void matrix_init_user(void) { +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { +} + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +void matrix_init(void) +{ + debug_enable = true; + debug_matrix = true; + debug_mouse = true; + // initialize row and col + unselect_rows(); + init_cols(); + + TX_RX_LED_INIT; + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } + + matrix_init_quantum(); +} + +uint8_t _matrix_scan(void) +{ + // Right hand is stored after the left in the matrix so, we need to offset it + int offset = isLeftHand ? 0 : (ROWS_PER_HAND); + + for (uint8_t i = 0; i < ROWS_PER_HAND; i++) { + select_row(i); + _delay_us(30); // without this wait read unstable value. + matrix_row_t cols = read_cols(); + if (matrix_debouncing[i+offset] != cols) { + matrix_debouncing[i+offset] = cols; + debouncing = DEBOUNCE; + } + unselect_rows(); + } + + if (debouncing) { + if (--debouncing) { + _delay_ms(1); + } else { + for (uint8_t i = 0; i < ROWS_PER_HAND; i++) { + matrix[i+offset] = matrix_debouncing[i+offset]; + } + } + } + + return 1; +} + +#ifdef USE_I2C + +// Get rows from other half over i2c +int i2c_transaction(void) { + int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; + + int err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_WRITE); + if (err) goto i2c_error; + + // start of matrix stored at 0x00 + err = i2c_master_write(0x00); + if (err) goto i2c_error; + + // Start read + err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_READ); + if (err) goto i2c_error; + + if (!err) { + /* + // read from TWI byte-by-byte into matrix_row_t memory space + size_t i; + for (i = 0; i < SLAVE_BUFFER_SIZE-1; ++i) { + *((uint8_t*)&matrix[slaveOffset]+i) = i2c_master_read(I2C_ACK); + } + // last byte to be read / end of chunk + *((uint8_t*)&matrix[slaveOffset]+i) = i2c_master_read(I2C_NACK); + */ + + // kludge for column #9: unpack bits for keys (2,9) and (3,9) from (1,7) and (1,8) + // i2c_master_read(I2C_ACK); + matrix[slaveOffset+0] = i2c_master_read(I2C_ACK); + // i2c_master_read(I2C_ACK); + matrix[slaveOffset+1] = (matrix_row_t)i2c_master_read(I2C_ACK)\ + | (matrix[slaveOffset+0]&0x40U)<<2; + // i2c_master_read(I2C_ACK); + matrix[slaveOffset+2] = (matrix_row_t)i2c_master_read(I2C_NACK)\ + | (matrix[slaveOffset+0]&0x80U)<<1; + // clear highest two bits on row 1, where the col9 bits were transported + matrix[slaveOffset+0] &= 0x3F; + + i2c_master_stop(); + } else { +i2c_error: // the cable is disconnected, or something else went wrong + i2c_reset_state(); + return err; + } + + return 0; +} + +#else // USE_SERIAL + +int serial_transaction(void) { + int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; + + if (serial_update_buffers()) { + return 1; + } + + for (int i = 0; i < ROWS_PER_HAND; ++i) { + matrix[slaveOffset+i] = serial_slave_buffer[i]; + } + return 0; +} +#endif + +uint8_t matrix_scan(void) +{ + int ret = _matrix_scan(); + + + +#ifdef USE_I2C + if( i2c_transaction() ) { +#else // USE_SERIAL + if( serial_transaction() ) { +#endif + // turn on the indicator led when halves are disconnected + TXLED1; + + error_count++; + + if (error_count > ERROR_DISCONNECT_COUNT) { + // reset other half if disconnected + int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; + for (int i = 0; i < ROWS_PER_HAND; ++i) { + matrix[slaveOffset+i] = 0; + } + } + } else { + // turn off the indicator led on no error + TXLED0; + error_count = 0; + } + matrix_scan_quantum(); + return ret; +} + +void matrix_slave_scan(void) { + _matrix_scan(); + + int offset = (isLeftHand) ? 0 : ROWS_PER_HAND; + +#ifdef USE_I2C + // SLAVE_BUFFER_SIZE is from i2c.h + // (MATRIX_ROWS/2*sizeof(matrix_row_t)) + // memcpy((void*)i2c_slave_buffer, (const void*)&matrix[offset], (ROWS_PER_HAND*sizeof(matrix_row_t))); + + // kludge for column #9: put bits for keys (2,9) and (3,9) into (1,7) and (1,8) + i2c_slave_buffer[0] = (uint8_t)(matrix[offset+0])\ + | (matrix[offset+1]&0x100U)>>2\ + | (matrix[offset+2]&0x100U)>>1; + i2c_slave_buffer[1] = (uint8_t)(matrix[offset+1]); + i2c_slave_buffer[2] = (uint8_t)(matrix[offset+2]); + // note: looks like a possible operator-precedence bug here, in last version? + /* + i2c_slave_buffer[1] = (uint8_t)matrix[offset+0]; + i2c_slave_buffer[2] = (uint8_t)(matrix[offset+1]>>8); + i2c_slave_buffer[3] = (uint8_t)(matrix[offset+1]>>8); + i2c_slave_buffer[4] = (uint8_t)(matrix[offset+2]>>8); + i2c_slave_buffer[5] = (uint8_t)matrix[offset+2]; + */ +#else // USE_SERIAL + for (int i = 0; i < ROWS_PER_HAND; ++i) { + serial_slave_buffer[i] = matrix[offset+i]; + } +#endif +} + +bool matrix_is_modified(void) +{ + if (debouncing) return false; + return true; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1<> 4) + 1) &= ~_BV(col_pins[x] & 0xF); + _SFR_IO8((col_pins[x] >> 4) + 2) |= _BV(col_pins[x] & 0xF); + } +} + +static matrix_row_t read_cols(void) +{ + matrix_row_t result = 0; + for(int x = 0; x < MATRIX_COLS; x++) { + result |= (_SFR_IO8(col_pins[x] >> 4) & _BV(col_pins[x] & 0xF)) ? 0 : (1 << x); + } + return result; +} + +static void unselect_rows(void) +{ + for(int x = 0; x < ROWS_PER_HAND; x++) { + _SFR_IO8((row_pins[x] >> 4) + 1) &= ~_BV(row_pins[x] & 0xF); + _SFR_IO8((row_pins[x] >> 4) + 2) |= _BV(row_pins[x] & 0xF); + } +} + +static void select_row(uint8_t row) +{ + _SFR_IO8((row_pins[row] >> 4) + 1) |= _BV(row_pins[row] & 0xF); + _SFR_IO8((row_pins[row] >> 4) + 2) &= ~_BV(row_pins[row] & 0xF); +} diff --git a/keyboards/bfo9000/readme.md b/keyboards/bfo9000/readme.md new file mode 100644 index 000000000000..20c9b2ff7934 --- /dev/null +++ b/keyboards/bfo9000/readme.md @@ -0,0 +1,18 @@ +BFO-9000 +======== + +A split full-size ortholinear keyboard made and sold by Keebio. Each half is a 6x9 arrangement, with breakable pieces to allow the number of rows to be customized between 4 to 6, and the number of columns to be between 7 to 9. [More info at Keebio](https://keeb.io). + +Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +Hardware Supported: Pro Micro +Hardware Availability: [Keebio](https://keeb.io) + +Make example for this keyboard (after setting up your build environment): + + make bfo9000:default + +Example of flashing this keyboard: + + make bfo9000:default:avrdude + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/bfo9000/rules.mk b/keyboards/bfo9000/rules.mk new file mode 100644 index 000000000000..8a7e56f462d3 --- /dev/null +++ b/keyboards/bfo9000/rules.mk @@ -0,0 +1,70 @@ +SRC += matrix.c \ + i2c.c \ + split_util.c \ + serial.c + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Bootloader +# This definition is optional, and if your keyboard supports multiple bootloaders of +# different sizes, comment this out, and the correct address will be loaded +# automatically (+60). See bootloader.mk for all options. +BOOTLOADER = caterina + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +CUSTOM_MATRIX = yes diff --git a/keyboards/bfo9000/serial.c b/keyboards/bfo9000/serial.c new file mode 100644 index 000000000000..4936e4249f0f --- /dev/null +++ b/keyboards/bfo9000/serial.c @@ -0,0 +1,230 @@ +/* + * WARNING: be careful changing this code, it is very timing dependent + */ + +#ifndef F_CPU +#define F_CPU 16000000 +#endif + +#include +#include +#include +#include +#include "serial.h" + +#ifdef USE_SERIAL + +// Serial pulse period in microseconds. Its probably a bad idea to lower this +// value. +#define SERIAL_DELAY 24 + +matrix_row_t volatile serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH] = {0}; +matrix_row_t volatile serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH] = {0}; + +#define ROW_MASK (((matrix_row_t)0-1)>>(8*sizeof(matrix_row_t)-MATRIX_COLS)) + +#define SLAVE_DATA_CORRUPT (1<<0) +volatile uint8_t status = 0; + +inline static +void serial_delay(void) { + _delay_us(SERIAL_DELAY); +} + +inline static +void serial_output(void) { + SERIAL_PIN_DDR |= SERIAL_PIN_MASK; +} + +// make the serial pin an input with pull-up resistor +inline static +void serial_input(void) { + SERIAL_PIN_DDR &= ~SERIAL_PIN_MASK; + SERIAL_PIN_PORT |= SERIAL_PIN_MASK; +} + +inline static +matrix_row_t serial_read_pin(void) { + return !!(SERIAL_PIN_INPUT & SERIAL_PIN_MASK); +} + +inline static +void serial_low(void) { + SERIAL_PIN_PORT &= ~SERIAL_PIN_MASK; +} + +inline static +void serial_high(void) { + SERIAL_PIN_PORT |= SERIAL_PIN_MASK; +} + +void serial_master_init(void) { + serial_output(); + serial_high(); +} + +void serial_slave_init(void) { + serial_input(); + + // Enable INT0 + EIMSK |= _BV(INT0); + // Trigger on falling edge of INT0 + EICRA &= ~(_BV(ISC00) | _BV(ISC01)); +} + +// Used by the master to synchronize timing with the slave. +static +void sync_recv(void) { + serial_input(); + // This shouldn't hang if the slave disconnects because the + // serial line will float to high if the slave does disconnect. + while (!serial_read_pin()); + serial_delay(); +} + +// Used by the slave to send a synchronization signal to the master. +static +void sync_send(void) { + serial_output(); + + serial_low(); + serial_delay(); + + serial_high(); +} + +// Reads a byte from the serial line +static +matrix_row_t serial_read_byte(void) { + matrix_row_t byte = 0; + serial_input(); + for ( uint8_t i = 0; i < MATRIX_COLS; ++i) { + byte = (byte << 1) | serial_read_pin(); + serial_delay(); + _delay_us(1); + } + + return byte; +} + +// Sends a byte with MSB ordering +static +void serial_write_byte(matrix_row_t data) { + matrix_row_t b = MATRIX_COLS; + serial_output(); + while( b-- ) { + if(data & (1UL << b)) { + serial_high(); + } else { + serial_low(); + } + serial_delay(); + } +} + +// interrupt handle to be used by the slave device +ISR(SERIAL_PIN_INTERRUPT) { + sync_send(); + + matrix_row_t checksum = 0; + for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) { + serial_write_byte(serial_slave_buffer[i]); + sync_send(); + checksum += ROW_MASK & serial_slave_buffer[i]; + } + serial_write_byte(checksum); + sync_send(); + + // wait for the sync to finish sending + serial_delay(); + + // read the middle of pulses + _delay_us(SERIAL_DELAY/2); + + matrix_row_t checksum_computed = 0; + for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) { + serial_master_buffer[i] = serial_read_byte(); + sync_send(); + checksum_computed += ROW_MASK & serial_master_buffer[i]; + } + matrix_row_t checksum_received = serial_read_byte(); + sync_send(); + + serial_input(); // end transaction + + if ( checksum_computed != checksum_received ) { + status |= SLAVE_DATA_CORRUPT; + } else { + status &= ~SLAVE_DATA_CORRUPT; + } +} + +inline +bool serial_slave_DATA_CORRUPT(void) { + return status & SLAVE_DATA_CORRUPT; +} + +// Copies the serial_slave_buffer to the master and sends the +// serial_master_buffer to the slave. +// +// Returns: +// 0 => no error +// 1 => slave did not respond +int serial_update_buffers(void) { + // this code is very time dependent, so we need to disable interrupts + cli(); + + // signal to the slave that we want to start a transaction + serial_output(); + serial_low(); + _delay_us(1); + + // wait for the slaves response + serial_input(); + serial_high(); + _delay_us(SERIAL_DELAY); + + // check if the slave is present + if (serial_read_pin()) { + // slave failed to pull the line low, assume not present + sei(); + return 1; + } + + // if the slave is present syncronize with it + sync_recv(); + + matrix_row_t checksum_computed = 0; + // receive data from the slave + for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) { + serial_slave_buffer[i] = serial_read_byte(); + sync_recv(); + checksum_computed += ROW_MASK & serial_slave_buffer[i]; + } + matrix_row_t checksum_received = serial_read_byte(); + sync_recv(); + + if (checksum_computed != checksum_received) { + sei(); + return 1; + } + + matrix_row_t checksum = 0; + // send data to the slave + for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) { + serial_write_byte(serial_master_buffer[i]); + sync_recv(); + checksum += ROW_MASK & serial_master_buffer[i]; + } + serial_write_byte(checksum); + sync_recv(); + + // always, release the line when not in use + serial_output(); + serial_high(); + + sei(); + return 0; +} + +#endif diff --git a/keyboards/bfo9000/serial.h b/keyboards/bfo9000/serial.h new file mode 100644 index 000000000000..62761945721b --- /dev/null +++ b/keyboards/bfo9000/serial.h @@ -0,0 +1,27 @@ +#ifndef MY_SERIAL_H +#define MY_SERIAL_H + +#include "config.h" +#include "matrix.h" +#include + +/* TODO: some defines for interrupt setup */ +#define SERIAL_PIN_DDR DDRD +#define SERIAL_PIN_PORT PORTD +#define SERIAL_PIN_INPUT PIND +#define SERIAL_PIN_MASK _BV(PD0) +#define SERIAL_PIN_INTERRUPT INT0_vect + +#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2 +#define SERIAL_MASTER_BUFFER_LENGTH 1 + +// Buffers for master - slave communication +extern volatile matrix_row_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH]; +extern volatile matrix_row_t serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH]; + +void serial_master_init(void); +void serial_slave_init(void); +int serial_update_buffers(void); +bool serial_slave_data_corrupt(void); + +#endif diff --git a/keyboards/bfo9000/split_util.c b/keyboards/bfo9000/split_util.c new file mode 100644 index 000000000000..7f200e6c9420 --- /dev/null +++ b/keyboards/bfo9000/split_util.c @@ -0,0 +1,86 @@ +#include +#include +#include +#include +#include +#include +#include "split_util.h" +#include "matrix.h" +#include "keyboard.h" +#include "config.h" +#include "timer.h" + +#ifdef USE_I2C +# include "i2c.h" +#else +# include "serial.h" +#endif + +volatile bool isLeftHand = true; + +static void setup_handedness(void) { + #ifdef EE_HANDS + isLeftHand = eeprom_read_byte(EECONFIG_HANDEDNESS); + #else + // I2C_MASTER_RIGHT is deprecated, use MASTER_RIGHT instead, since this works for both serial and i2c + #if defined(I2C_MASTER_RIGHT) || defined(MASTER_RIGHT) + isLeftHand = !has_usb(); + #else + isLeftHand = has_usb(); + #endif + #endif +} + +static void keyboard_master_setup(void) { +#ifdef USE_I2C + i2c_master_init(); +#ifdef SSD1306OLED + matrix_master_OLED_init(); +#endif +#else + serial_master_init(); +#endif +} + +static void keyboard_slave_setup(void) { + timer_init(); +#ifdef USE_I2C + i2c_slave_init(SLAVE_I2C_ADDRESS); +#else + serial_slave_init(); +#endif +} + +bool has_usb(void) { + USBCON |= (1 << OTGPADE); //enables VBUS pad + _delay_us(5); + return (USBSTA & (1< +#include "eeconfig.h" + +#define SLAVE_I2C_ADDRESS 0x32 + +extern volatile bool isLeftHand; + +// slave version of matix scan, defined in matrix.c +void matrix_slave_scan(void); + +void split_keyboard_setup(void); +bool has_usb(void); +void keyboard_slave_loop(void); + +void matrix_master_OLED_init (void); + +#endif From 10d287d1aa0340db369bc676d78eaa948e5dd650 Mon Sep 17 00:00:00 2001 From: muffinlynx Date: Thu, 26 Apr 2018 10:30:05 -0400 Subject: [PATCH 279/578] ScrabblePad updates (#2809) * Update config.h Matrix pinout updated to current revision. * Add updated matrix, define RGB pin Matrix updated to current pinout, pin for WS2812 defined. --- keyboards/scrabblepad/config.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/keyboards/scrabblepad/config.h b/keyboards/scrabblepad/config.h index 01f847dd47e7..7039ea24f713 100644 --- a/keyboards/scrabblepad/config.h +++ b/keyboards/scrabblepad/config.h @@ -42,8 +42,8 @@ along with this program. If not, see . * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) * */ -#define MATRIX_ROW_PINS { D3, F1, C7, F2, C6, F3, C5, F4, C4, F5, C3, F6, C2, F7, C1 } -#define MATRIX_COL_PINS { D4, D5, D7, B7, D0, D1, D2, C0, F0, B4, B5, B6, E1, E7, E0 } +#define MATRIX_ROW_PINS { D5, F1, C7, F2, C6, F3, C5, F4, C4, F5, C3, F6, C2, F7, C1 } +#define MATRIX_COL_PINS { D6, D7, E0, B7, D2, D3, D4, E6, F0, B4, B5, B6, C0, E7, E1 } #define UNUSED_PINS /* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ @@ -53,6 +53,14 @@ along with this program. If not, see . // #define BACKLIGHT_BREATHING // #define BACKLIGHT_LEVELS 3 +// ws2812 options +//#define RGB_DI_PIN A0 // pin the DI on the ws2812 is hooked-up to +//#define RGBLIGHT_ANIMATIONS // run RGB animations +//#define RGBLED_NUM 6 // number of LEDs +//#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue +//#define RGBLIGHT_SAT_STEP 25 // units to step when in/decresing saturation +//#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) + /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCING_DELAY 5 From 644efe48bf893a61597114d6d1953a2905c4e6a4 Mon Sep 17 00:00:00 2001 From: David Wen Riccardi-Zhu Date: Thu, 26 Apr 2018 14:51:58 +0000 Subject: [PATCH 280/578] Update piemod keymap (#2786) Add RGB control, fix keymap to work with latest QMK. Squashed commit of the following: commit 3c5d95e4809d446fe5304aab9274d527182835e6 Author: dwrz Date: Sat Apr 21 18:26:58 2018 +0000 Make rules.mk for Let's Split piemod commit 0cc5fc135220f0eb48509d2b027e4cad033d74a5 Author: dwrz Date: Sat Apr 21 18:26:25 2018 +0000 Add RGB control keys to function layer commit d1b6bfa5f34123658534f99c97471b779b971ffb Author: dwrz Date: Sat Apr 21 18:26:03 2018 +0000 Refactor MACROS to COMBOS MACROS was conflicting with existing code. commit ce2f47b13fb3bfab9d63292ddba466879d300051 Author: dwrz Date: Sat Apr 21 18:25:26 2018 +0000 Add typing options to config.h commit cb0aa62b81a17aaaee1f9843138495b9ca14b6d4 Author: dwrz Date: Sat Apr 21 18:25:10 2018 +0000 Add RGB options to config.h --- keyboards/lets_split/keymaps/piemod/config.h | 12 +++++ keyboards/lets_split/keymaps/piemod/keymap.c | 47 ++++++-------------- keyboards/lets_split/keymaps/piemod/rules.mk | 13 ++++++ 3 files changed, 38 insertions(+), 34 deletions(-) create mode 100644 keyboards/lets_split/keymaps/piemod/rules.mk diff --git a/keyboards/lets_split/keymaps/piemod/config.h b/keyboards/lets_split/keymaps/piemod/config.h index 5a6261c4f7cf..001b62e41bbc 100644 --- a/keyboards/lets_split/keymaps/piemod/config.h +++ b/keyboards/lets_split/keymaps/piemod/config.h @@ -34,4 +34,16 @@ along with this program. If not, see . // #define MASTER_RIGHT // #define EE_HANDS +// RGB Options +#undef RGBLED_NUM +#define RGBLED_NUM 10 +#define RGBLIGHT_SLEEP +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_EFFECT_SNAKE_LENGTH 1 +#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 1 + +// Typing Options +#define PREVENT_STUCK_MODIFIERS +#define QMK_KEYS_PER_SCAN 4 + #endif diff --git a/keyboards/lets_split/keymaps/piemod/keymap.c b/keyboards/lets_split/keymaps/piemod/keymap.c index 762d8c2742a3..fca96bf39a61 100644 --- a/keyboards/lets_split/keymaps/piemod/keymap.c +++ b/keyboards/lets_split/keymaps/piemod/keymap.c @@ -10,7 +10,7 @@ extern keymap_config_t keymap_config; #define _NUMBER 3 // F(3) #define _FUNCTION 4 // F(4) #define _EMACS 5 // F(5) -#define _MACROS 6 // F(6) +#define _COMBOS 6 // F(6) #define _MOUSE 7 // F(7) enum custom_keycodes { @@ -20,17 +20,17 @@ enum custom_keycodes { NUMBER, FUNCTION, EMACS, - MACROS, + COMBOS, MOUSE, }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_DVORAK] = LAYOUT( \ - KC_ESC, KC_QUOTE, F(7), KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DELETE, \ - KC_TAB, F(1), F(2), F(3), F(4), KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENTER, \ - KC_LSHIFT, KC_SCOLON, F(5), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_MINUS, \ - F(10), F(6), KC_MENU, KC_LALT, KC_LGUI, KC_BSPACE, KC_SPACE, KC_RCTRL, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT \ + KC_ESC, KC_QUOTE, LT(7, KC_COMMA), KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DELETE, \ + KC_TAB, LT(1, KC_A), LT(2, KC_O), LT(3, KC_E), LT(4, KC_U), KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENTER, \ + KC_LSHIFT, KC_SCOLON, LT(5, KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_MINUS, \ + F(1), LT(6, KC_LCTRL), KC_MENU, KC_LALT, KC_LGUI, KC_BSPACE, KC_SPACE, KC_RCTRL, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT \ ), [_ARROW] = LAYOUT( \ @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_SYMBOL] = LAYOUT( \ KC_TILD, KC_GRAVE, KC_NO, KC_EQUAL, KC_PLUS, KC_NO, KC_LBRACKET, KC_RBRACKET, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, \ - KC_NO, KC_NO, KC_TRNS, KC_SCOLON, KC_COLN, KC_NO, KC_LCBR, KC_RCBR, KC_DLR, KC_PERC, KC_CIRC, F(21), \ + KC_NO, KC_NO, KC_TRNS, KC_SCOLON, KC_COLN, KC_NO, KC_LCBR, KC_RCBR, KC_DLR, KC_PERC, KC_CIRC, F(2), \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSLASH, KC_SLASH, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ASTR, KC_SLASH, KC_MINUS, KC_PLUS, KC_EQUAL \ ), @@ -56,9 +56,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FUNCTION] = LAYOUT( \ KC_PSCREEN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, \ - RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DELETE, KC_INSERT, KC_HOME, KC_PGDN, KC_PGUP, KC_END \ + KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ + KC_NO, RGB_HUD, RGB_SAD, RGB_VAD, KC_NO, KC_NO, KC_NO, KC_NO, KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, \ + RESET, RGB_TOG, RGB_MOD, KC_NO, KC_NO, KC_NO, KC_DELETE, KC_INSERT, KC_HOME, KC_PGDN, KC_PGUP, KC_END \ ), [_EMACS] = LAYOUT( \ @@ -68,7 +68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO \ ), -[_MACROS] = LAYOUT( \ +[_COMBOS] = LAYOUT( \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ @@ -93,29 +93,8 @@ enum function_id { int CAPSLOCKED = 0; const uint16_t PROGMEM fn_actions[] = { - - // DVORAK 0 - // ARROW 1, F(1) - // SYMBOL 2, F(2) - // NUMBER 3, F(3) - // FUNCTION 4, F(4) - // EMACS 5, F(5) - // MACROS 6, F(6) - // MOUSE 7, F(7) - - // Layers - [1] = ACTION_LAYER_TAP_KEY(1, KC_A), // FN1 = Momentary Arrow layer on A. - [2] = ACTION_LAYER_TAP_KEY(2, KC_O), // FN2 = Momentary symbOl layer on O. - [3] = ACTION_LAYER_TAP_KEY(3, KC_E), // FN3 = Momentary numbEr layer on E. - [4] = ACTION_LAYER_TAP_KEY(4, KC_U), // FN4 = Momentary fUnction layer on U. - [5] = ACTION_LAYER_TAP_KEY(5, KC_Q), // FN5 = Momentary emaQs layer on Q. - [6] = ACTION_LAYER_TAP_KEY(6, KC_LCTRL), // FN6 = Momentary MACROS on ??? key. - [7] = ACTION_LAYER_TAP_KEY(7, KC_COMMA), // FN7 = Momentary MOUSE on , key. - // Special Keys - [10] = ACTION_MODS_KEY(KC_LCTRL, KC_LALT), // FN10 = Ctrl + Alt. - + [1] = ACTION_MODS_KEY(KC_LCTRL, KC_LALT), // FN10 = Ctrl + Alt. // Symbols - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_SLASH), // FN21 = Question mark. - + [2] = ACTION_MODS_KEY(MOD_LSFT, KC_SLASH), // FN21 = Question mark. }; diff --git a/keyboards/lets_split/keymaps/piemod/rules.mk b/keyboards/lets_split/keymaps/piemod/rules.mk new file mode 100644 index 000000000000..027ea977e714 --- /dev/null +++ b/keyboards/lets_split/keymaps/piemod/rules.mk @@ -0,0 +1,13 @@ +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = yes # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SUBPROJECT_rev1 = no From 80ccbc7b547d07236f302af830be75e646b7848f Mon Sep 17 00:00:00 2001 From: James Date: Thu, 26 Apr 2018 11:06:59 -0700 Subject: [PATCH 281/578] QMK Configurator update for the Pearl 40% (#2810) * QMK Configurator updates for the Pearl 40% Attempt to get the physical layout as displayed in the Configurator more true-to-life. * Bugfixes per mechmerlin "By changing KEYMAP to LAYOUT in the .h file, all the keymaps who rely on KEYMAP are now broken. You need to go into the keymap directory and fix all the keymaps affected by this change. Should just be an issue of renaming KEYMAP to LAYOUT." * Merge pull request #2 from noroadsleft/noroadsleft-patch-20180425 Bugfixes per mechmerlin * keymap.c updates for Pearl -#include "pearl.h" +#QMK_KEYBOARD_H --- keyboards/pearl/info.json | 13 +++++++++++++ keyboards/pearl/keymaps/default/keymap.c | 6 +++--- keyboards/pearl/keymaps/jetpacktuxedo/keymap.c | 10 +++++----- keyboards/pearl/keymaps/phil/keymap.c | 14 +++++++------- keyboards/pearl/keymaps/rask/keymap.c | 12 ++++++------ keyboards/pearl/pearl.h | 2 +- 6 files changed, 35 insertions(+), 22 deletions(-) create mode 100644 keyboards/pearl/info.json diff --git a/keyboards/pearl/info.json b/keyboards/pearl/info.json new file mode 100644 index 000000000000..300af0ecdf55 --- /dev/null +++ b/keyboards/pearl/info.json @@ -0,0 +1,13 @@ +{ + "keyboard_name": "Pearl", + "url": "", + "maintainer": "qmk", + "bootloader": "", + "width": 13, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"{", "x":11, "y":0}, {"label":"Backspace", "x":12, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"A", "x":1.5, "y":1}, {"label":"S", "x":2.5, "y":1}, {"label":"D", "x":3.5, "y":1}, {"label":"F", "x":4.5, "y":1}, {"label":"G", "x":5.5, "y":1}, {"label":"H", "x":6.5, "y":1}, {"label":"J", "x":7.5, "y":1}, {"label":"K", "x":8.5, "y":1}, {"label":"L", "x":9.5, "y":1}, {"label":":", "x":10.5, "y":1}, {"label":"\\", "x":11.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"?", "x":10.75, "y":2}, {"label":"Shift", "x":11.75, "y":2, "w":1.25}, {"label":"Alt", "x":1.13, "y":3}, {"label":"Ctrl", "x":2.13, "y":3, "w":1.25}, {"label":"Win", "x":3.375, "y":3, "w":1.25}, {"label":"Shift", "x":4.625, "y":3, "w":2.25}, {"x":6.875, "y":3, "w":1.25}, {"x":8.125, "y":3, "w":1.5}, {"label":"Menu", "x":9.625, "y":3}, {"label":"Fn", "x":10.63, "y":3, "w":1.25}] + } + } +} \ No newline at end of file diff --git a/keyboards/pearl/keymaps/default/keymap.c b/keyboards/pearl/keymaps/default/keymap.c index 5efb6499b570..94b82c9a1a37 100644 --- a/keyboards/pearl/keymaps/default/keymap.c +++ b/keyboards/pearl/keymaps/default/keymap.c @@ -15,16 +15,16 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "pearl.h" +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP( + [0] = LAYOUT( KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_BSPC, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, MT(MOD_LSFT, KC_CAPS), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, KC_LALT, KC_LGUI, KC_LSFT, KC_SPC, KC_SPC, KC_APP, MO(1) ), - [1] = KEYMAP( + [1] = LAYOUT( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, KC_SLEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_QUOT, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, diff --git a/keyboards/pearl/keymaps/jetpacktuxedo/keymap.c b/keyboards/pearl/keymaps/jetpacktuxedo/keymap.c index d8e96f1a04ed..300663e507ed 100644 --- a/keyboards/pearl/keymaps/jetpacktuxedo/keymap.c +++ b/keyboards/pearl/keymaps/jetpacktuxedo/keymap.c @@ -1,25 +1,25 @@ -#include "pearl.h" +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP( + [0] = LAYOUT( KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, LT(2, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(2,KC_ENT), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, KC_LGUI, KC_LALT, KC_BSPC, KC_NO, LT(1, KC_SPC), MO(3), KC_RALT ), - [1] = KEYMAP( + [1] = LAYOUT( KC_GRV, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_QUOT, KC_TRNS, KC_TRNS, RGB_TOG, RGB_SMOD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [2] = KEYMAP( + [2] = LAYOUT( KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, KC_PLUS, KC_TRNS, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_DQUO, KC_TRNS, KC_TRNS, RGB_HUI, RGB_HUD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PIPE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [3] = KEYMAP( + [3] = LAYOUT( KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, KC_TRNS, BL_INC, BL_DEC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/pearl/keymaps/phil/keymap.c b/keyboards/pearl/keymaps/phil/keymap.c index a28fecd26217..80a39dd2ad64 100755 --- a/keyboards/pearl/keymaps/phil/keymap.c +++ b/keyboards/pearl/keymaps/phil/keymap.c @@ -23,40 +23,40 @@ along with this program. If not, see . #define _FN2 4 #define LIGHT 5 -#include "pearl.h" +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [COLEMAK] = KEYMAP( + [COLEMAK] = LAYOUT( KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_NO, KC_BSPC, LGUI_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, LSFT_T(KC_DEL), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT), KC_LCTL, KC_LGUI, KC_LALT, LT(_FN1, KC_SPC), KC_NO, LT(_FN2, KC_SPC), TG(QWERTY), TG(WIN) ), - [QWERTY] = KEYMAP( + [QWERTY] = LAYOUT( KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_NO, KC_TRNS, KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_TRNS, KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS ), - [WIN] = KEYMAP( + [WIN] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, LCTL_T(KC_ESC), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LGUI, KC_LALT, KC_LCTL, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS ), - [_FN1] = KEYMAP( + [_FN1] = LAYOUT( KC_GRV, KC_MNXT, KC_NO, KC_PIPE, KC_PLUS, KC_LBRC, KC_RBRC, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_TRNS, KC_TRNS, KC_MPLY, KC_SPC, KC_UNDS, KC_EQUAL, KC_LPRN, KC_RPRN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDOWN, KC_TRNS, KC_TRNS, KC_MPRV, KC_NO, KC_BSLS, KC_MINUS, KC_LCBR, KC_RCBR, KC_NO, KC_MUTE, KC_VOLU, KC_VOLD, KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS ), - [_FN2] = KEYMAP( + [_FN2] = LAYOUT( KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LBRC, KC_RBRC, KC_NO, KC_TRNS, KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F9, KC_F10, KC_F11, KC_F12, KC_CAPS, TG(LIGHT), KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS ), - [LIGHT] = KEYMAP( + [LIGHT] = LAYOUT( RESET, KC_NO, BL_ON, BL_INC, BL_BRTG, RGB_M_P, RGB_M_B, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_NO, KC_NO, KC_NO, BL_TOGG, BL_STEP, KC_NO, RGB_M_SN, RGB_M_K, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, KC_NO, KC_NO, KC_NO, BL_OFF, BL_DEC, KC_NO, KC_NO, KC_NO, RGB_RMOD, RGB_M_SW, RGB_M_R, RGB_M_G, KC_NO, diff --git a/keyboards/pearl/keymaps/rask/keymap.c b/keyboards/pearl/keymaps/rask/keymap.c index b9f1350939b8..ae633f45d8ab 100644 --- a/keyboards/pearl/keymaps/rask/keymap.c +++ b/keyboards/pearl/keymaps/rask/keymap.c @@ -1,38 +1,38 @@ -#include "pearl.h" +#include QMK_KEYBOARD_H #define ____ KC_TRNS const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // BASE LAYER - [0] = KEYMAP( + [0] = LAYOUT( 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, MO(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(3), KC_LCTL, KC_LALT, KC_BSPC, MO(1), MO(1), KC_SPC, KC_RALT, KC_LGUI ), // BASE LAYER TWO (Fn1) - [1] = KEYMAP( + [1] = LAYOUT( KC_GRV, 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_QUOT, KC_BSLS, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, KC_RSFT, ____, ____, ____, ____, ____, ____, ____, ____ ), // FROW LAYER AND ARROWS (Fn2) - [2] = KEYMAP( + [2] = LAYOUT( KC_ESC, 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_UP, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, KC_LEFT, KC_DOWN,KC_RGHT, MO(4), ____, ____, ____, ____, ____, ____, ____, ____ ), // MEDIA AND RGB (Fn3) - [3] = KEYMAP( + [3] = LAYOUT( ____, ____, ____, ____, ____, ____, ____, ____, ____, KC_MPRV,KC_MPLY, KC_MNXT, KC_DEL, ____, ____, ____, RGB_HUI, RGB_SAI,RGB_VAI,____, ____, ____, ____, ____, ____, ____, RGB_MOD, RGB_TOG, RGB_HUD, RGB_SAD,RGB_VAD,____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ ), // UTIL (Fn1+Fn3) - [4] = KEYMAP( + [4] = LAYOUT( ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, KC_PSCR, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, KC_PGUP,____, ____, ____, ____, ____, ____, ____, ____, ____, ____, KC_HOME, KC_PGDN,KC_END, ____, diff --git a/keyboards/pearl/pearl.h b/keyboards/pearl/pearl.h index 4ead4cedf91e..4c3f0cb6fe1c 100644 --- a/keyboards/pearl/pearl.h +++ b/keyboards/pearl/pearl.h @@ -21,7 +21,7 @@ along with this program. If not, see . #include "quantum.h" #include "pearl.h" -#define KEYMAP( \ +#define LAYOUT( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,\ From 66e40529aa9271c76d207fb8190ad76bb5cf8d6b Mon Sep 17 00:00:00 2001 From: Martin Sandiford Date: Fri, 27 Apr 2018 05:40:03 +0930 Subject: [PATCH 282/578] Change handling of adjust layer to make it more LT(...) friendly. (#1625) * Change handling of adjust layer to make it more LT(...) friendly. * Update based on feedback from drashna. * Change handling of adjust layer to make it more LT(...) friendly. This reworks handling to make it a little more friendly to include in keymaps. --- keyboards/planck/keymaps/default/keymap.c | 29 ++++++----------------- quantum/quantum.c | 12 ++++++---- quantum/quantum.h | 1 + 3 files changed, 15 insertions(+), 27 deletions(-) diff --git a/keyboards/planck/keymaps/default/keymap.c b/keyboards/planck/keymaps/default/keymap.c index 04fc33640d1b..b13557eee25e 100644 --- a/keyboards/planck/keymaps/default/keymap.c +++ b/keyboards/planck/keymaps/default/keymap.c @@ -34,12 +34,13 @@ enum planck_keycodes { COLEMAK, DVORAK, PLOVER, - LOWER, - RAISE, BACKLIT, EXT_PLV }; +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -177,6 +178,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); #endif +uint32_t layer_state_set_user(uint32_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QWERTY: @@ -198,26 +203,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; case BACKLIT: if (record->event.pressed) { register_code(KC_RSFT); diff --git a/quantum/quantum.c b/quantum/quantum.c index 5a2a73d4a2bf..2662e5ef1c53 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -780,12 +780,14 @@ void set_single_persistent_default_layer(uint8_t default_layer) { default_layer_set(1U< Date: Thu, 26 Apr 2018 13:51:19 -0700 Subject: [PATCH 283/578] Keymap Fixes for 7U layout, RGB and Audio support (#2779) - confused KC_COMM, KC_SLSH, KC_DOT order - KC_INS -> KC_DEL - Document audio on C4 and B7, set default RGB to pin C6 --- keyboards/clueboard/2x1800/config.h | 7 ++++++ .../2x1800/keymaps/default_7u/keymap.c | 25 +++++++++++++++++-- keyboards/clueboard/2x1800/rules.mk | 3 ++- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/keyboards/clueboard/2x1800/config.h b/keyboards/clueboard/2x1800/config.h index 0aff939701bc..ea3c7a6e975f 100644 --- a/keyboards/clueboard/2x1800/config.h +++ b/keyboards/clueboard/2x1800/config.h @@ -69,6 +69,13 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE +#define RGB_DI_PIN C6 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 16 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + /* If defined, GRAVE_ESC will always act as ESC when CTRL is held. * This is userful for the Windows task manager shortcut (ctrl+shift+esc). */ diff --git a/keyboards/clueboard/2x1800/keymaps/default_7u/keymap.c b/keyboards/clueboard/2x1800/keymaps/default_7u/keymap.c index 5df6fe0fbf6e..74a35c27b5ba 100644 --- a/keyboards/clueboard/2x1800/keymaps/default_7u/keymap.c +++ b/keyboards/clueboard/2x1800/keymaps/default_7u/keymap.c @@ -17,12 +17,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_7U_SPACE( - KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS, KC_INS, \ + KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \ \ KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, 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_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ KC_PPLS, KC_P7, KC_P8, KC_P9, 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_BSLS, KC_P7, KC_P8, KC_P9, KC_PSLS, \ KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ - KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_SLSH, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ + KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT \ ) }; + + +#ifdef AUDIO_ENABLE + float song_one_up[][2] = SONG(ONE_UP_SOUND); +#endif + +volatile uint8_t runonce = true; +static uint16_t my_timer; + +void matrix_init_user(void) { + my_timer = timer_read(); +} + +void matrix_scan_user(void) { + if (runonce && timer_elapsed(my_timer) > 500) { + runonce = false; +#ifdef AUDIO_ENABLE + PLAY_SONG(song_one_up); +#endif + } +} diff --git a/keyboards/clueboard/2x1800/rules.mk b/keyboards/clueboard/2x1800/rules.mk index 2f09f9b9ca69..516a536f6b1d 100644 --- a/keyboards/clueboard/2x1800/rules.mk +++ b/keyboards/clueboard/2x1800/rules.mk @@ -59,5 +59,6 @@ COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # USB Nkey Rollover MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) UNICODE_ENABLE = no # Unicode -AUDIO_ENABLE = no # Audio output on port C6 +RGBLIGHT_ENABLE = no # RGB on port C6 +AUDIO_ENABLE = no # Audio output on port C4 and B7 FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches From 8d65d69b8d1ab4e45d0b42dd4e9e6d9a0bedc9a0 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Thu, 26 Apr 2018 17:19:42 -0700 Subject: [PATCH 284/578] More QMK Configurator Support for Pearl (#2814) * Rename LAYOUT to LAYOUT_all Add additional layouts for the pearl with all splits and the pearl with splits but a 6.25u spacebar. * add new layouts to info.json --- keyboards/pearl/info.json | 25 +++++++++++------ keyboards/pearl/keymaps/default/keymap.c | 4 +-- .../pearl/keymaps/jetpacktuxedo/keymap.c | 8 +++--- keyboards/pearl/keymaps/phil/keymap.c | 14 +++++----- keyboards/pearl/keymaps/rask/keymap.c | 10 +++---- keyboards/pearl/pearl.h | 27 ++++++++++++++++++- 6 files changed, 61 insertions(+), 27 deletions(-) diff --git a/keyboards/pearl/info.json b/keyboards/pearl/info.json index 300af0ecdf55..5bc4e0494020 100644 --- a/keyboards/pearl/info.json +++ b/keyboards/pearl/info.json @@ -1,13 +1,22 @@ { - "keyboard_name": "Pearl", - "url": "", - "maintainer": "qmk", - "bootloader": "", - "width": 13, - "height": 4, + "keyboard_name": "Pearl", + "url": "", + "maintainer": "qmk", + "bootloader": "", + "width": 13, + "height": 4, "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"{", "x":11, "y":0}, {"label":"Backspace", "x":12, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"A", "x":1.5, "y":1}, {"label":"S", "x":2.5, "y":1}, {"label":"D", "x":3.5, "y":1}, {"label":"F", "x":4.5, "y":1}, {"label":"G", "x":5.5, "y":1}, {"label":"H", "x":6.5, "y":1}, {"label":"J", "x":7.5, "y":1}, {"label":"K", "x":8.5, "y":1}, {"label":"L", "x":9.5, "y":1}, {"label":":", "x":10.5, "y":1}, {"label":"\\", "x":11.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"?", "x":10.75, "y":2}, {"label":"Shift", "x":11.75, "y":2, "w":1.25}, {"label":"Alt", "x":1.13, "y":3}, {"label":"Ctrl", "x":2.13, "y":3, "w":1.25}, {"label":"Win", "x":3.375, "y":3, "w":1.25}, {"label":"Shift", "x":4.625, "y":3, "w":2.25}, {"x":6.875, "y":3, "w":1.25}, {"x":8.125, "y":3, "w":1.5}, {"label":"Menu", "x":9.625, "y":3}, {"label":"Fn", "x":10.63, "y":3, "w":1.25}] + }, + + "LAYOUT_splits": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"{", "x":11, "y":0}, {"label":"}", "x":12, "y":0}, {"label":"Caps Lock", "x":0, "y":1, "w":1.5}, {"label":"A", "x":1.5, "y":1}, {"label":"S", "x":2.5, "y":1}, {"label":"D", "x":3.5, "y":1}, {"label":"F", "x":4.5, "y":1}, {"label":"G", "x":5.5, "y":1}, {"label":"H", "x":6.5, "y":1}, {"label":"J", "x":7.5, "y":1}, {"label":"K", "x":8.5, "y":1}, {"label":"L", "x":9.5, "y":1}, {"label":":", "x":10.5, "y":1}, {"label":"Enter", "x":11.5, "y":1, "w":1.5}, {"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"?", "x":10.75, "y":2}, {"label":"Shift", "x":11.75, "y":2, "w":1.25}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Win", "x":2, "y":3, "w":1.25}, {"label":"Alt", "x":3.25, "y":3, "w":1.25}, {"x":4.5, "y":3, "w":2.25}, {"label":"Alt", "x":6.75, "y":3, "w":2.75}, {"label":"Win", "x":9.5, "y":3, "w":1.25}, {"label":"Menu", "x":10.75, "y":3}] + }, + + "LAYOUT_spacebar": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"{", "x":11, "y":0}, {"label":"}", "x":12, "y":0}, {"label":"Caps Lock", "x":0, "y":1, "w":1.5}, {"label":"A", "x":1.5, "y":1}, {"label":"S", "x":2.5, "y":1}, {"label":"D", "x":3.5, "y":1}, {"label":"F", "x":4.5, "y":1}, {"label":"G", "x":5.5, "y":1}, {"label":"H", "x":6.5, "y":1}, {"label":"J", "x":7.5, "y":1}, {"label":"K", "x":8.5, "y":1}, {"label":"L", "x":9.5, "y":1}, {"label":":", "x":10.5, "y":1}, {"label":"Enter", "x":11.5, "y":1, "w":1.5}, {"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"?", "x":10.75, "y":2}, {"label":"Shift", "x":11.75, "y":2, "w":1.25}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Win", "x":2, "y":3, "w":1.25}, {"x":3.25, "y":3, "w":6.25}, {"label":"Win", "x":9.5, "y":3, "w":1.25}, {"label":"Menu", "x":10.75, "y":3}] } + } -} \ No newline at end of file +} diff --git a/keyboards/pearl/keymaps/default/keymap.c b/keyboards/pearl/keymaps/default/keymap.c index 94b82c9a1a37..bffa9b14f157 100644 --- a/keyboards/pearl/keymaps/default/keymap.c +++ b/keyboards/pearl/keymaps/default/keymap.c @@ -18,13 +18,13 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_all( KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_BSPC, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, MT(MOD_LSFT, KC_CAPS), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, KC_LALT, KC_LGUI, KC_LSFT, KC_SPC, KC_SPC, KC_APP, MO(1) ), - [1] = LAYOUT( + [1] = LAYOUT_all( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, KC_SLEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_QUOT, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, diff --git a/keyboards/pearl/keymaps/jetpacktuxedo/keymap.c b/keyboards/pearl/keymaps/jetpacktuxedo/keymap.c index 300663e507ed..b94fb673ff83 100644 --- a/keyboards/pearl/keymaps/jetpacktuxedo/keymap.c +++ b/keyboards/pearl/keymaps/jetpacktuxedo/keymap.c @@ -1,25 +1,25 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_all( KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, LT(2, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(2,KC_ENT), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, KC_LGUI, KC_LALT, KC_BSPC, KC_NO, LT(1, KC_SPC), MO(3), KC_RALT ), - [1] = LAYOUT( + [1] = LAYOUT_all( KC_GRV, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_QUOT, KC_TRNS, KC_TRNS, RGB_TOG, RGB_SMOD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [2] = LAYOUT( + [2] = LAYOUT_all( KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, KC_PLUS, KC_TRNS, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_DQUO, KC_TRNS, KC_TRNS, RGB_HUI, RGB_HUD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PIPE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [3] = LAYOUT( + [3] = LAYOUT_all( KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, KC_TRNS, BL_INC, BL_DEC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/pearl/keymaps/phil/keymap.c b/keyboards/pearl/keymaps/phil/keymap.c index 80a39dd2ad64..56326d423fb7 100755 --- a/keyboards/pearl/keymaps/phil/keymap.c +++ b/keyboards/pearl/keymaps/phil/keymap.c @@ -26,37 +26,37 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [COLEMAK] = LAYOUT( + [COLEMAK] = LAYOUT_all( KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_NO, KC_BSPC, LGUI_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, LSFT_T(KC_DEL), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT), KC_LCTL, KC_LGUI, KC_LALT, LT(_FN1, KC_SPC), KC_NO, LT(_FN2, KC_SPC), TG(QWERTY), TG(WIN) ), - [QWERTY] = LAYOUT( + [QWERTY] = LAYOUT_all( KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_NO, KC_TRNS, KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_TRNS, KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS ), - [WIN] = LAYOUT( + [WIN] = LAYOUT_all( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, LCTL_T(KC_ESC), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LGUI, KC_LALT, KC_LCTL, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS ), - [_FN1] = LAYOUT( + [_FN1] = LAYOUT_all( KC_GRV, KC_MNXT, KC_NO, KC_PIPE, KC_PLUS, KC_LBRC, KC_RBRC, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_TRNS, KC_TRNS, KC_MPLY, KC_SPC, KC_UNDS, KC_EQUAL, KC_LPRN, KC_RPRN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDOWN, KC_TRNS, KC_TRNS, KC_MPRV, KC_NO, KC_BSLS, KC_MINUS, KC_LCBR, KC_RCBR, KC_NO, KC_MUTE, KC_VOLU, KC_VOLD, KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS ), - [_FN2] = LAYOUT( + [_FN2] = LAYOUT_all( KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LBRC, KC_RBRC, KC_NO, KC_TRNS, KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F9, KC_F10, KC_F11, KC_F12, KC_CAPS, TG(LIGHT), KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS ), - [LIGHT] = LAYOUT( + [LIGHT] = LAYOUT_all( RESET, KC_NO, BL_ON, BL_INC, BL_BRTG, RGB_M_P, RGB_M_B, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_NO, KC_NO, KC_NO, BL_TOGG, BL_STEP, KC_NO, RGB_M_SN, RGB_M_K, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, KC_NO, KC_NO, KC_NO, BL_OFF, BL_DEC, KC_NO, KC_NO, KC_NO, RGB_RMOD, RGB_M_SW, RGB_M_R, RGB_M_G, KC_NO, @@ -85,4 +85,4 @@ uint32_t layer_state_set_kb(uint32_t state) { PORTD |= (1 << PD6); } return state; -} \ No newline at end of file +} diff --git a/keyboards/pearl/keymaps/rask/keymap.c b/keyboards/pearl/keymaps/rask/keymap.c index ae633f45d8ab..bafb2b973878 100644 --- a/keyboards/pearl/keymaps/rask/keymap.c +++ b/keyboards/pearl/keymaps/rask/keymap.c @@ -4,35 +4,35 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // BASE LAYER - [0] = LAYOUT( + [0] = LAYOUT_all( 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, MO(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(3), KC_LCTL, KC_LALT, KC_BSPC, MO(1), MO(1), KC_SPC, KC_RALT, KC_LGUI ), // BASE LAYER TWO (Fn1) - [1] = LAYOUT( + [1] = LAYOUT_all( KC_GRV, 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_QUOT, KC_BSLS, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, KC_RSFT, ____, ____, ____, ____, ____, ____, ____, ____ ), // FROW LAYER AND ARROWS (Fn2) - [2] = LAYOUT( + [2] = LAYOUT_all( KC_ESC, 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_UP, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, KC_LEFT, KC_DOWN,KC_RGHT, MO(4), ____, ____, ____, ____, ____, ____, ____, ____ ), // MEDIA AND RGB (Fn3) - [3] = LAYOUT( + [3] = LAYOUT_all( ____, ____, ____, ____, ____, ____, ____, ____, ____, KC_MPRV,KC_MPLY, KC_MNXT, KC_DEL, ____, ____, ____, RGB_HUI, RGB_SAI,RGB_VAI,____, ____, ____, ____, ____, ____, ____, RGB_MOD, RGB_TOG, RGB_HUD, RGB_SAD,RGB_VAD,____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ ), // UTIL (Fn1+Fn3) - [4] = LAYOUT( + [4] = LAYOUT_all( ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, KC_PSCR, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, KC_PGUP,____, ____, ____, ____, ____, ____, ____, ____, ____, ____, KC_HOME, KC_PGDN,KC_END, ____, diff --git a/keyboards/pearl/pearl.h b/keyboards/pearl/pearl.h index 4c3f0cb6fe1c..900d4817a2f6 100644 --- a/keyboards/pearl/pearl.h +++ b/keyboards/pearl/pearl.h @@ -21,7 +21,7 @@ along with this program. If not, see . #include "quantum.h" #include "pearl.h" -#define LAYOUT( \ +#define LAYOUT_all( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,\ @@ -33,4 +33,29 @@ along with this program. If not, see . { K30, K31, K32, KC_NO, K34, K35, KC_NO, K37, KC_NO, K39, K3A, KC_NO, KC_NO}, \ } +#define LAYOUT_splits( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C,\ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,\ + K30, K31, K32, K34, K37, K39, K3A\ +){ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C}, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, KC_NO}, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO}, \ + { K30, K31, K32, KC_NO, K34, KC_NO, KC_NO, K37, KC_NO, K39, K3A, KC_NO, KC_NO}, \ +} + +#define LAYOUT_spacebar( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C,\ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,\ + K30, K31, K35, K39, K3A\ +){ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C}, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, KC_NO}, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO}, \ + { K30, K31, KC_NO, KC_NO, K34, K35, KC_NO, KC_NO, KC_NO, K39, K3A, KC_NO, KC_NO}, \ +} + + #endif From 6b45e8aec19de8224e3a8cf8afd084f87c471076 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Thu, 26 Apr 2018 20:28:22 -0700 Subject: [PATCH 285/578] QMK Configurator Support MF68 (#2815) * Add QMK Configurator support for MF68 * Add QMK Configurator support for MF68 BLE * change to QMK_KEYBOARD_H in keymaps --- keyboards/mf68/info.json | 12 ++++++++++++ keyboards/mf68/keymaps/default/keymap.c | 8 ++++---- keyboards/mf68/keymaps/factory/keymap.c | 10 +++++----- keyboards/mf68/mf68.h | 6 +++--- keyboards/mf68_ble/info.json | 12 ++++++++++++ keyboards/mf68_ble/keymaps/default/keymap.c | 2 +- 6 files changed, 37 insertions(+), 13 deletions(-) create mode 100644 keyboards/mf68/info.json create mode 100644 keyboards/mf68_ble/info.json diff --git a/keyboards/mf68/info.json b/keyboards/mf68/info.json new file mode 100644 index 000000000000..d41c2176a9b4 --- /dev/null +++ b/keyboards/mf68/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "MF68", + "url": "", + "maintainer": "qmk", + "width": 17.25, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15.25, "y":1}, {"x":16.25, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"x":15.25, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"x":14.25, "y":4}, {"x":15.25, "y":4}, {"x":16.25, "y":4}] + } + } +} diff --git a/keyboards/mf68/keymaps/default/keymap.c b/keyboards/mf68/keymaps/default/keymap.c index fd8810d5281e..73045f3107a5 100644 --- a/keyboards/mf68/keymaps/default/keymap.c +++ b/keyboards/mf68/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -#include "mf68.h" +#include QMK_KEYBOARD_H #define _QWERTY 0 #define _FN1 1 @@ -9,7 +9,7 @@ #define KC_X2 BL_STEP const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = KC_KEYMAP( + [_QWERTY] = LAYOUT_kc( /*,----+----+----+----+----+----+----+----+----+----+----+----+----+--------. ,----+----. */ ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL , BSPC , INS ,PGUP, /*|----`----`----`----`----`----`----`----`----`----`----`----`----`--------| |----`----| */ @@ -23,7 +23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /*`-----+-----+-----+------------------------------+------+-----+-----' `----+----+----' */ ), - [_FN1] = KC_KEYMAP( + [_FN1] = LAYOUT_kc( /*,----+----+----+----+----+----+----+----+----+----+----+----+----+--------. ,----+----. */ GRV , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,F12 , BSPC , VOLU,HOME, /*|esc-`-1--`-2--`-3--`-4--`-5--`-6--`-7--`-8--`-9--`-0--`mnus`plus`--bksp--| |ins-`pgup| */ @@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /*`ctrl-+-gui-+-alt-+----------space---------------+-fn---+-alt-+ctrl-' `left+down+rght' */ ), - [_FN2] = KC_KEYMAP( + [_FN2] = LAYOUT_kc( /*,----+----+----+----+----+----+----+----+----+----+----+----+----+--------. ,----+----. */ GRV , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,F12 , BSPC , VOLU,HOME, /*|esc-`-1--`-2--`-3--`-4--`-5--`-6--`-7--`-8--`-9--`-0--`mnus`plus`--bksp--| |ins-`pgup| */ diff --git a/keyboards/mf68/keymaps/factory/keymap.c b/keyboards/mf68/keymaps/factory/keymap.c index ffd857a89fcc..0c5305e51916 100644 --- a/keyboards/mf68/keymaps/factory/keymap.c +++ b/keyboards/mf68/keymaps/factory/keymap.c @@ -1,4 +1,4 @@ -#include "mf68.h" +#include QMK_KEYBOARD_H #define _QWERTY 0 #define _FN1 1 @@ -15,7 +15,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = KC_KEYMAP( + [_QWERTY] = LAYOUT_kc( /*,----+----+----+----+----+----+----+----+----+----+----+----+----+--------. ,----+----. */ ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL , BSPC , INS ,PGUP, /*|----`----`----`----`----`----`----`----`----`----`----`----`----`--------| |----`----| */ @@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /*`-----+-----+-----+------------------------------+------+-----+-----' `----+----+----' */ ), - [_FN1] = KC_KEYMAP( + [_FN1] = LAYOUT_kc( /*,----+----+----+----+----+----+----+----+----+----+----+----+----+--------. ,----+----. */ GRV , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,F12 , BSPC , ,HOME, /*|esc-`-1--`-2--`-3--`-4--`-5--`-6--`-7--`-8--`-9--`-0--`mnus`plus`--bksp--| |ins-`pgup| */ @@ -39,11 +39,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /*|caps---`-a--`-s--`-d--`-f--`-g--`-h--`-j--`-k--`-l--`-;--`-'--`----enter-| ,----. */ , ,MPLY,MSTP,MPRV,MNXT,VOLD,VOLU,MUTE, ,END , , X5 , /*|shift----`-z--`-x--`-c--`-v--`-b--`-n--`-m--`-,--`-.--`-/--`-------shift-.--|-up-|----. */ - , , , , , , , X3 , X6 , X4 + , , , , , , , X3 , X6 , X4 /*`ctrl-+-gui-+-alt-+----------space---------------+-fn---+-alt-+ctrl-' `left+down+rght' */ ), - [_FN2] = KC_KEYMAP( + [_FN2] = LAYOUT_kc( /*,----+----+----+----+----+----+----+----+----+----+----+----+----+--------. ,----+----. */ GRV , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,F12 , BSPC , VOLU,HOME, /*|esc-`-1--`-2--`-3--`-4--`-5--`-6--`-7--`-8--`-9--`-0--`mnus`plus`--bksp--| |ins-`pgup| */ diff --git a/keyboards/mf68/mf68.h b/keyboards/mf68/mf68.h index 316e3b87fcfd..a7aefc64792f 100644 --- a/keyboards/mf68/mf68.h +++ b/keyboards/mf68/mf68.h @@ -3,7 +3,7 @@ #include "quantum.h" -#define KEYMAP( \ +#define LAYOUT( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K10, K11, K12, K13, K14, K15, K16, \ K17, K18, K20, K21, K22, K23, K24, K25, K26, K27, K28, K30, K31, K32, K33, K34, \ K35, K36, K37, K38, K40, K41, K42, K43, K44, K45, K46, K47, K48, \ @@ -20,13 +20,13 @@ { K70, K71, K72, K73, K74 } \ } -#define KC_KEYMAP( \ +#define LAYOUT_kc( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K10, K11, K12, K13, K14, K15, K16, \ K17, K18, K20, K21, K22, K23, K24, K25, K26, K27, K28, K30, K31, K32, K33, K34, \ K35, K36, K37, K38, K40, K41, K42, K43, K44, K45, K46, K47, K48, \ K50, K51, K52, K53, K54, K55, K56, K57, K58, K60, K61, K62, K63, \ K64, K65, K66, K67, K68, K70, K71, K72, K73, K74 \ -) KEYMAP( \ +) LAYOUT( \ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, \ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, \ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, \ diff --git a/keyboards/mf68_ble/info.json b/keyboards/mf68_ble/info.json new file mode 100644 index 000000000000..1f8aaed9246d --- /dev/null +++ b/keyboards/mf68_ble/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "MF68 BLE", + "url": "", + "maintainer": "qmk", + "width": 17.25, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15.25, "y":1}, {"x":16.25, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"x":15.25, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"x":14.25, "y":4}, {"x":15.25, "y":4}, {"x":16.25, "y":4}] + } + } +} diff --git a/keyboards/mf68_ble/keymaps/default/keymap.c b/keyboards/mf68_ble/keymaps/default/keymap.c index 9c7cecc2da1f..73045f3107a5 100644 --- a/keyboards/mf68_ble/keymaps/default/keymap.c +++ b/keyboards/mf68_ble/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -#include "mf68_ble.h" +#include QMK_KEYBOARD_H #define _QWERTY 0 #define _FN1 1 From 510510e9db23a1bdfdc97920c0e442a5ec516349 Mon Sep 17 00:00:00 2001 From: Nick Choi Date: Thu, 26 Apr 2018 23:28:54 -0400 Subject: [PATCH 286/578] avocado toast change (#2816) --- keyboards/frosty_flake/keymaps/nikchi/keymap.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/keyboards/frosty_flake/keymaps/nikchi/keymap.c b/keyboards/frosty_flake/keymaps/nikchi/keymap.c index fbabb482a5cd..f9cff0b84a07 100644 --- a/keyboards/frosty_flake/keymaps/nikchi/keymap.c +++ b/keyboards/frosty_flake/keymaps/nikchi/keymap.c @@ -27,7 +27,8 @@ enum taps{ EMOJIS, ANIMAL, HAND, - MEMES + MEMES, + COPA }; enum unicode_name { // split every five emojis @@ -50,8 +51,8 @@ enum unicode_name { // split every five emojis THDN, // 👎 BBB, // dat B 🅱 - POO, // poop 💩 - HUNDR, // 100 💯 + AVO, // avocado 🥑 + BRED, // unicode consortium pls make toast 🍞 EGGPL, // EGGPLANT 🍆 WATER, // wet 💦 @@ -71,6 +72,7 @@ enum my_macros { qk_tap_dance_action_t tap_dance_actions[] = { // Tap once for CTRL, twice for Caps Lock [TD_CTCPS] = ACTION_TAP_DANCE_DOUBLE(KC_LCTL, KC_CAPS), + [COPA] = ACTION_TAP_DANCE_DOUBLE(LCTL(KC_C), LCTL(KC_V)), [EMOJIS] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleEmojis, NULL, NULL, 800), [ANIMAL] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleAnimals, NULL, NULL, 800), [HAND] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleHands, NULL, NULL, 800), @@ -110,8 +112,8 @@ const uint32_t PROGMEM unicode_map[] = { [THINK] = 0x1F914, [GRIN] = 0x1F600, [BBB] = 0x1F171, - [POO] = 0x1F4A9, - [HUNDR] = 0x1F4AF, + [AVO] = 0x1F951, + [BRED] = 0x1F35E, [SMRK] = 0x1F60F, [WEARY] = 0x1F629, [EGGPL] = 0x1F346, @@ -143,7 +145,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TD(EMOJIS),TD(ANIMAL),TD(HAND),TD(MEMES),X(WEARY),X(UNAMU), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,KC_BSPC, KC_MPRV,KC_MPLY,KC_MNXT, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \ KC_TAB, KC_Q, M(0), KC_E, KC_R,X(EGGPL),X(WATER), KC_U, KC_I, KC_O, KC_P, KC_UP ,KC_RBRC,KC_BSLS, KC_MUTE,KC_VOLD,KC_VOLU, KC_P7, KC_P8, KC_P9,KC_PPLS, \ KC_LCTL, M(1), M(3), M(2), KC_F, X(LIT), X(SNEK), KC_J, KC_K, KC_L,KC_LEFT,KC_RGHT, KC_ENT, KC_P4, KC_P5, KC_P6, \ - KC_LSFT,KC_NUBS, KC_Z, KC_X, KC_C, X(HUNDR), X(BBB), X(POO), KC_M,KC_COMM, KC_DOT,KC_DOWN, KC_RSFT, KC_MS_U, KC_P1, KC_P2, KC_P3,KC_PENT, \ + KC_LSFT,KC_NUBS, KC_Z, KC_X, KC_C, TD(COPA), X(BBB), X(AVO), KC_M,KC_COMM, KC_DOT,KC_DOWN, KC_RSFT, KC_MS_U, KC_P1, KC_P2, KC_P3,KC_PENT, \ KC_BTN1,KC_BTN3,KC_BTN2, KC_SPC, KC_RALT,KC_RGUI, TG(2),_______ , KC_MS_L,KC_MS_D,KC_MS_R, KC_P0,KC_PDOT), [2] = KEYMAP(\ KC_ESC, 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_PSCR,KC_SLCK,KC_PAUS, \ From 642bf00bafefdda243e98c1f04202fcfc5aba88e Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Thu, 26 Apr 2018 20:31:05 -0700 Subject: [PATCH 287/578] FC660C Configurator Support (#2817) * Change KEYMAP to LAYOUT * Add info.json for configurator support --- keyboards/fc660c/fc660c.h | 2 +- keyboards/fc660c/info.json | 12 ++++++++++++ keyboards/fc660c/keymaps/default/keymap.c | 6 +++--- 3 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 keyboards/fc660c/info.json diff --git a/keyboards/fc660c/fc660c.h b/keyboards/fc660c/fc660c.h index 6139dee015d4..63c4029c0ddd 100644 --- a/keyboards/fc660c/fc660c.h +++ b/keyboards/fc660c/fc660c.h @@ -20,7 +20,7 @@ along with this program. If not, see . #include "quantum.h" -#define KEYMAP( \ +#define LAYOUT( \ K13, K10, K11, K12, K14, K16, K17, K15, K1B, K18, K19, K1A, K1C, K1E, K1F, \ K03, K00, K01, K02, K04, K06, K07, K05, K0B, K08, K09, K0A, K0C, K0E, K0F, \ K43, K40, K41, K42, K44, K46, K47, K45, K4B, K48, K49, K4A, K4E, \ diff --git a/keyboards/fc660c/info.json b/keyboards/fc660c/info.json new file mode 100644 index 000000000000..9ed48aad153a --- /dev/null +++ b/keyboards/fc660c/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "fc660c", + "url": "", + "maintainer": "qmk", + "width": 16.5, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.25}, {"x":14.5, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6}, {"label":"Alt", "x":9.75, "y":4, "w":1.25}, {"label":"Win", "x":11, "y":4, "w":1.25}, {"label":"Menu", "x":12.25, "y":4, "w":1.25}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}] + } + } +} \ No newline at end of file diff --git a/keyboards/fc660c/keymaps/default/keymap.c b/keyboards/fc660c/keymaps/default/keymap.c index 02f57532ba85..eae07c08b177 100644 --- a/keyboards/fc660c/keymaps/default/keymap.c +++ b/keyboards/fc660c/keymaps/default/keymap.c @@ -14,17 +14,17 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "fc660c.h" +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP( + [0] = LAYOUT( 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_BSPC, KC_INS, 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_BSLS, KC_DEL, KC_CAPS,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_UP, KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RCTL,MO(1), KC_LEFT,KC_DOWN,KC_RGHT ), - [1] = KEYMAP( + [1] = LAYOUT( KC_GRV, 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_PSCR,KC_SLCK,KC_PAUS,_______,_______,_______, _______, _______,_______,_______,_______,_______,_______,_______,_______,KC_HOME,KC_PGUP,_______,_______, _______, From 050c21d35f01d4d59d2e1e89eaded2616257f148 Mon Sep 17 00:00:00 2001 From: Erin Call Date: Fri, 27 Apr 2018 11:47:41 -0700 Subject: [PATCH 288/578] Bring dactyl/matrix.c in line with quantum/matrix.c (#2613) * Use the new debounce algorithm in dactyl/matrix.c [#2065] This incorporates the fixed/optimized debounce code added to quantum/matrix.c in: * 508eddf8ba8548d3f71e1c09a404839beb49f45c * 4c6960835c0a6e29670dabdc27117d7d3c7f99f5 * 32f88c07173b795c6981c779057dceba00aeb1cb * f4030289744fc6dc82dd85c955070c0845813cc5 * a06115df19a74d39b08758472b221e630c3680d3 * Fix the row/column swap in dactyl [#2065] With a column-driven keyboard, reading from the mcp23081 returns a column-state, which takes some extra work to translate into the row-state used in the actual matrix. The ergodox_ez code sidestepped that problem by calling rows "columns" and columns "rows." With this change, the dactyl now calls rows "rows" and columns "columns." * Cleanup: variable names, documentation [#2065] * Support MATRIX_MASKED in dactyl/matrix.c [#2065] * Only unselect one col in unselect_col [#2065] Bonus: saves one i2c transaction per matrix_scan! * Implement COL2ROW in dactyl/matrix.c [#2065] * Fix a typo in dactyl/matrix.c This entirely doesn't matter. The PORT values are set during init_keyboard and never change. They're repeatedly set to the same thing. These PORT lines shouldn't even exist, but since they do, they should at least look right. * Implement COL_PINS/ROW_PINS for dactyl [#2065] * Rename "mcp23018" to "expander" [#2065] I honestly don't know whether/how well this code works with other I/O expanders, but at least in theory, it should be generic enough to work with others. Given that, the variable names shouldn't refer to a specific model of expander. * Remove matrix_power_up from dactyl/matrix.c [#2065] It's commented out in quantum/matrix.c, and the dactyl has no power up/down behavior beyond being unplugged (which goes to matrix_init), so there's no sense keeping it around. * Only initialize expander_input_mask once [#2065] ...and rename input_mask to expander_input_mask, since now that it isn't scoped to init_expander it isn't clear that it's only for the expander. --- keyboards/handwired/dactyl/config.h | 15 +- keyboards/handwired/dactyl/dactyl.c | 77 +--- keyboards/handwired/dactyl/dactyl.h | 75 ++-- keyboards/handwired/dactyl/matrix.c | 555 ++++++++++++++++++---------- 4 files changed, 401 insertions(+), 321 deletions(-) diff --git a/keyboards/handwired/dactyl/config.h b/keyboards/handwired/dactyl/config.h index 8129b0a6703a..a990cc72080d 100644 --- a/keyboards/handwired/dactyl/config.h +++ b/keyboards/handwired/dactyl/config.h @@ -30,12 +30,15 @@ along with this program. If not, see . #define PRODUCT Dactyl #define DESCRIPTION An ortholinear, split, 3D-curved keyboard with thumb clusters. -/* key matrix size - * At this time, "row" in the dactyl's code actually means "column" on the - * physical keyboard. It's confusing. I'm sorry. Blame Jack Humbert :P - */ -#define MATRIX_ROWS 12 -#define MATRIX_COLS 6 +#define DIODE_DIRECTION ROW2COL +#define MATRIX_ROWS 6 +#define MATRIX_COLS 12 +#define COL_EXPANDED { true, true, true, true, true, true, false, false, false, false, false, false} +#define MATRIX_ONBOARD_ROW_PINS { F0, F1, F4, F5, F6, F7 } +#define MATRIX_ONBOARD_COL_PINS { 0, 0, 0, 0, 0, 0, B1, B2, B3, D2, D3, C6 } +#define EXPANDER_COL_REGISTER 0 +#define MATRIX_EXPANDER_COL_PINS {0, 1, 2, 3, 4, 5} +#define MATRIX_EXPANDER_ROW_PINS {0, 1, 2, 3, 4, 5} #define MOUSEKEY_INTERVAL 20 #define MOUSEKEY_DELAY 0 diff --git a/keyboards/handwired/dactyl/dactyl.c b/keyboards/handwired/dactyl/dactyl.c index abe3d9d603b1..81b9dce0f931 100644 --- a/keyboards/handwired/dactyl/dactyl.c +++ b/keyboards/handwired/dactyl/dactyl.c @@ -1,80 +1,15 @@ #include "dactyl.h" #include "i2cmaster.h" - -bool i2c_initialized = 0; -uint8_t mcp23018_status = 0x20; - -void matrix_init_kb(void) { - DDRB &= ~(1<<4); // set B(4) as input - PORTB &= ~(1<<4); // set B(4) internal pull-up disabled - - // unused pins - C7, D4, D5, D7, E6 - // set as input with internal pull-up enabled - DDRC &= ~(1<<7); - DDRD &= ~(1<<5 | 1<<4); - DDRE &= ~(1<<6); - PORTC |= (1<<7); - PORTD |= (1<<5 | 1<<4); - PORTE |= (1<<6); - - matrix_init_user(); -} - -uint8_t init_mcp23018(void) { - mcp23018_status = 0x20; - - // I2C subsystem - - if (i2c_initialized == 0) { - i2c_init(); // on pins D(1,0) - i2c_initialized = true; - _delay_ms(1000); - } - - // set pin direction - // - unused : input : 1 - // - input : input : 1 - // - driving : output : 0 - mcp23018_status = i2c_start(I2C_ADDR_WRITE); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(IODIRA); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(0b00000000); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(0b00111111); if (mcp23018_status) goto out; - i2c_stop(); - - // set pull-up - // - unused : on : 1 - // - input : on : 1 - // - driving : off : 0 - mcp23018_status = i2c_start(I2C_ADDR_WRITE); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(GPPUA); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(0b00000000); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(0b00111111); if (mcp23018_status) goto out; - -out: - i2c_stop(); - - return mcp23018_status; -} - #ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) // swap-hands action needs a matrix to define the swap const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { - /* Left hand, matrix positions */ - {{0,11}, {1,11}, {2,11}, {3,11}, {4,11}, {5,11}}, - {{0,10}, {1,10}, {2,10}, {3,10}, {4,10}, {5,10}}, - {{0,9}, {1,9}, {2,9}, {3,9}, {4,9}, {5,9}}, - {{0,8}, {1,8}, {2,8}, {3,8}, {4,8}, {5,8}}, - {{0,7}, {1,7}, {2,7}, {3,7}, {4,7}, {5,7}}, - {{0,6}, {1,6}, {2,6}, {3,6}, {4,6}, {5,6}}, - - /* Right hand, matrix positions */ - {{0,5}, {1,5}, {2,5}, {3,5}, {4,5}, {5,5}}, - {{0,4}, {1,4}, {2,4}, {3,4}, {4,4}, {5,4}}, - {{0,3}, {1,3}, {2,3}, {3,3}, {4,3}, {5,3}}, - {{0,2}, {1,2}, {2,2}, {3,2}, {4,2}, {5,2}}, - {{0,1}, {1,1}, {2,1}, {3,1}, {4,1}, {5,1}}, - {{0,0}, {1,0}, {2,0}, {3,0}, {4,0}, {5,0}}, + {{0,11}, {0,10}, {0,9}, {0,8}, {0,7}, {0,6}, {0,5}, {0,4}, {0,3}, {0,2}, {0,1}, {0,0}}, + {{1,11}, {1,11}, {1,9}, {1,8}, {1,7}, {1,6}, {1,5}, {1,4}, {1,3}, {1,2}, {1,1}, {1,0}}, + {{2,11}, {2,12}, {2,9}, {2,8}, {2,7}, {2,6}, {2,5}, {2,4}, {2,3}, {2,2}, {2,1}, {2,0}}, + {{3,11}, {3,13}, {3,9}, {3,8}, {3,7}, {3,6}, {3,5}, {3,4}, {3,3}, {3,2}, {3,1}, {3,0}}, + {{4,11}, {4,14}, {4,9}, {4,8}, {4,7}, {4,6}, {4,5}, {4,4}, {4,3}, {4,2}, {4,1}, {4,0}}, + {{5,11}, {5,15}, {5,9}, {5,8}, {5,7}, {5,6}, {5,5}, {5,4}, {5,3}, {5,2}, {5,1}, {5,0}}, }; #endif diff --git a/keyboards/handwired/dactyl/dactyl.h b/keyboards/handwired/dactyl/dactyl.h index aa573ebd2ab0..3e33930e32a9 100644 --- a/keyboards/handwired/dactyl/dactyl.h +++ b/keyboards/handwired/dactyl/dactyl.h @@ -10,7 +10,6 @@ #define CPU_PRESCALE(n) (CLKPR = 0x80, CLKPR = (n)) #define CPU_16MHz 0x00 -// I2C aliases and register addresses (see "mcp23018.md") #define I2C_ADDR 0b0100000 #define I2C_ADDR_WRITE ( (I2C_ADDR<<1) | I2C_WRITE ) #define I2C_ADDR_READ ( (I2C_ADDR<<1) | I2C_READ ) @@ -23,52 +22,46 @@ #define OLATA 0x14 // output latch register #define OLATB 0x15 -extern uint8_t mcp23018_status; +extern uint8_t expander_status; +extern uint8_t expander_input_pin_mask; +extern bool i2c_initialized; void init_dactyl(void); -uint8_t init_mcp23018(void); +void init_expander(void); -#define KEYMAP( \ - \ - /* left hand, spatial positions */ \ - k00,k01,k02,k03,k04,k05, \ - k10,k11,k12,k13,k14,k15, \ - k20,k21,k22,k23,k24,k25, \ - k30,k31,k32,k33,k34,k35, \ - k40,k41,k42,k43,k44, \ - k55,k50, \ - k54, \ - k53,k52,k51, \ - \ - /* right hand, spatial positions */ \ - k06,k07,k08,k09,k0A,k0B, \ - k16,k17,k18,k19,k1A,k1B, \ - k26,k27,k28,k29,k2A,k2B, \ - k36,k37,k38,k39,k3A,k3B, \ - k47,k48,k49,k4A,k4B, \ - k5B,k56, \ - k57, \ - k5A,k59,k58 ) \ - \ - /* matrix positions */ \ - { \ - { k00, k10, k20, k30, k40, k50 }, \ - { k01, k11, k21, k31, k41, k51 }, \ - { k02, k12, k22, k32, k42, k52 }, \ - { k03, k13, k23, k33, k43, k53 }, \ - { k04, k14, k24, k34, k44, k54 }, \ - { k05, k15, k25, k35, KC_NO, k55 }, \ - \ - { k06, k16, k26, k36, KC_NO, k56 }, \ - { k07, k17, k27, k37, k47, k57 }, \ - { k08, k18, k28, k38, k48, k58 }, \ - { k09, k19, k29, k39, k49, k59 }, \ - { k0A, k1A, k2A, k3A, k4A, k5A }, \ - { k0B, k1B, k2B, k3B, k4B, k5B } \ +#define KEYMAP( \ + \ + /* left hand, spatial positions */ \ + k00,k01,k02,k03,k04,k05, \ + k10,k11,k12,k13,k14,k15, \ + k20,k21,k22,k23,k24,k25, \ + k30,k31,k32,k33,k34,k35, \ + k40,k41,k42,k43,k44, \ + k55,k50, \ + k54, \ + k53,k52,k51, \ + \ + /* right hand, spatial positions */ \ + k06,k07,k08,k09,k0A,k0B, \ + k16,k17,k18,k19,k1A,k1B, \ + k26,k27,k28,k29,k2A,k2B, \ + k36,k37,k38,k39,k3A,k3B, \ + k47,k48,k49,k4A,k4B, \ + k5B,k56, \ + k57, \ + k5A,k59,k58 ) \ + \ + /* matrix positions */ \ + { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B }, \ + { k40, k41, k42, k43, k44, KC_NO, KC_NO, k47, k48, k49, k4A, k4B }, \ + { k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5A, k5B }, \ } - #define LAYOUT_dactyl KEYMAP #endif diff --git a/keyboards/handwired/dactyl/matrix.c b/keyboards/handwired/dactyl/matrix.c index 0626f93d7f65..52c76fadd495 100644 --- a/keyboards/handwired/dactyl/matrix.c +++ b/keyboards/handwired/dactyl/matrix.c @@ -1,5 +1,4 @@ /* - Copyright 2013 Oleg Kostyuk Copyright 2017 Erin Call @@ -16,10 +15,6 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ - -/* - * scan matrix - */ #include #include #include @@ -31,47 +26,66 @@ along with this program. If not, see . #include "matrix.h" #include "dactyl.h" #include "i2cmaster.h" -#ifdef DEBUG_MATRIX_SCAN_RATE -#include "timer.h" +#include "timer.h" + + +/* Set 0 if debouncing isn't needed */ + +#ifndef DEBOUNCING_DELAY +# define DEBOUNCING_DELAY 5 #endif -/* - * This constant define not debouncing time in msecs, but amount of matrix - * scan loops which should be made to get stable debounced results. - * - * On the Dactyl, the matrix scan rate is relatively low, because - * communicating with the left hand's I/O expander is slower than simply - * selecting local pins. - * Now it's only 317 scans/second, or about 3.15 msec/scan. - * According to Cherry specs, debouncing time is 5 msec. - * - * And so, there is no sense to have DEBOUNCE higher than 2. - */ - -#ifndef DEBOUNCE -# define DEBOUNCE 5 +#if (DEBOUNCING_DELAY > 0) + static uint16_t debouncing_time; + static bool debouncing = false; +#endif + +#ifdef MATRIX_MASKED + extern const matrix_row_t matrix_mask[]; +#endif + +#if (DIODE_DIRECTION == ROW2COL) || (DIODE_DIRECTION == COL2ROW) +static const uint8_t onboard_row_pins[MATRIX_ROWS] = MATRIX_ONBOARD_ROW_PINS; +static const uint8_t onboard_col_pins[MATRIX_COLS] = MATRIX_ONBOARD_COL_PINS; +static const bool col_expanded[MATRIX_COLS] = COL_EXPANDED; +static const uint8_t expander_row_pins[MATRIX_ROWS] = MATRIX_EXPANDER_ROW_PINS; +static const uint8_t expander_col_pins[MATRIX_COLS] = MATRIX_EXPANDER_COL_PINS; #endif /* matrix state(1:on, 0:off) */ static matrix_row_t matrix[MATRIX_ROWS]; -// Debouncing: store for each key the number of scans until it's eligible to -// change. When scanning the matrix, ignore any changes in keys that have -// already changed in the last DEBOUNCE scans. -static uint8_t debounce_matrix[MATRIX_ROWS * MATRIX_COLS]; - -static matrix_row_t read_cols(uint8_t row); -static void init_cols(void); -static void unselect_rows(void); -static void select_row(uint8_t row); +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +#if (DIODE_DIRECTION == COL2ROW) + static void init_cols(void); + static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row); + static void unselect_rows(void); + static void select_row(uint8_t row); + static void unselect_row(uint8_t row); +#elif (DIODE_DIRECTION == ROW2COL) + static void init_rows(void); + static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col); + static void unselect_cols(void); + static void select_col(uint8_t col); + static void unselect_col(uint8_t col); +#endif -static uint8_t mcp23018_reset_loop; +static uint8_t expander_reset_loop; +uint8_t expander_status; +uint8_t expander_input_pin_mask; +bool i2c_initialized = false; #ifdef DEBUG_MATRIX_SCAN_RATE uint32_t matrix_timer; uint32_t matrix_scan_count; #endif +#define ROW_SHIFTER ((matrix_row_t)1) +#if (DIODE_DIRECTION == COL2ROW) +// bitmask to ensure the row state from the expander only applies to its columns +#define EXPANDER_MASK ((matrix_row_t)0b00111111) +#endif __attribute__ ((weak)) void matrix_init_user(void) {} @@ -103,20 +117,20 @@ uint8_t matrix_cols(void) void matrix_init(void) { - // initialize row and col - - mcp23018_status = init_mcp23018(); - + init_expander(); +#if (DIODE_DIRECTION == COL2ROW) unselect_rows(); init_cols(); +#elif (DIODE_DIRECTION == ROW2COL) + unselect_cols(); + init_rows(); +#endif // initialize matrix state: all keys off for (uint8_t i=0; i < MATRIX_ROWS; i++) { matrix[i] = 0; - for (uint8_t j=0; j < MATRIX_COLS; ++j) { - debounce_matrix[i * MATRIX_COLS + j] = 0; - } + matrix_debouncing[i] = 0; } #ifdef DEBUG_MATRIX_SCAN_RATE @@ -125,59 +139,100 @@ void matrix_init(void) #endif matrix_init_quantum(); - } -void matrix_power_up(void) { - mcp23018_status = init_mcp23018(); - - unselect_rows(); - init_cols(); +void init_expander(void) { + if (! i2c_initialized) { + i2c_init(); + wait_us(1000000); + } - // initialize matrix state: all keys off - for (uint8_t i=0; i < MATRIX_ROWS; i++) { - matrix[i] = 0; + if (! expander_input_pin_mask) { +#if (DIODE_DIRECTION == COL2ROW) + for (int col = 0; col < MATRIX_COLS; col++) { + if (col_expanded[col]) { + expander_input_pin_mask |= (1 << expander_col_pins[col]); + } + } +#elif (DIODE_DIRECTION == ROW2COL) + for (int row = 0; row < MATRIX_ROWS; row++) { + expander_input_pin_mask |= (1 << expander_row_pins[row]); + } +#endif } -#ifdef DEBUG_MATRIX_SCAN_RATE - matrix_timer = timer_read32(); - matrix_scan_count = 0; + expander_status = i2c_start(I2C_ADDR_WRITE); if (expander_status) goto out; + expander_status = i2c_write(IODIRA); if (expander_status) goto out; + + /* + Pin direction and pull-up depends on both the diode direction + and on whether the column register is 0 ("A") or 1 ("B"): + +-------+---------------+---------------+ + | | ROW2COL | COL2ROW | + +-------+---------------+---------------+ + | Reg 0 | input, output | output, input | + +-------+---------------+---------------+ + | Reg 1 | output, input | input, output | + +-------+---------------+---------------+ + */ + +#if (EXPANDER_COLUMN_REGISTER == 0) +# if (DIODE_DIRECTION == COL2ROW) + expander_status = i2c_write(expander_input_pin_mask); if (expander_status) goto out; + expander_status = i2c_write(0); if (expander_status) goto out; +# elif (DIODE_DIRECTION == ROW2COL) + expander_status = i2c_write(0); if (expander_status) goto out; + expander_status = i2c_write(expander_input_pin_mask); if (expander_status) goto out; +# endif +#elif (EXPANDER_COLUMN_REGISTER == 1) +# if (DIODE_DIRECTION == COL2ROW) + expander_status = i2c_write(0); if (expander_status) goto out; + expander_status = i2c_write(expander_input_pin_mask); if (expander_status) goto out; +# elif (DIODE_DIRECTION == ROW2COL) + expander_status = i2c_write(expander_input_pin_mask); if (expander_status) goto out; + expander_status = i2c_write(0); if (expander_status) goto out; +# endif #endif -} -// Returns a matrix_row_t whose bits are set if the corresponding key should be -// eligible to change in this scan. -matrix_row_t debounce_mask(uint8_t row) { - matrix_row_t result = 0; - for (uint8_t j=0; j < MATRIX_COLS; ++j) { - if (debounce_matrix[row * MATRIX_COLS + j]) { - --debounce_matrix[row * MATRIX_COLS + j]; - } else { - result |= (1 << j); - } - } - return result; -} + i2c_stop(); + + // set pull-up + // - unused : off : 0 + // - input : on : 1 + // - driving : off : 0 + expander_status = i2c_start(I2C_ADDR_WRITE); if (expander_status) goto out; + expander_status = i2c_write(GPPUA); if (expander_status) goto out; +#if (EXPANDER_COLUMN_REGISTER == 0) +# if (DIODE_DIRECTION == COL2ROW) + expander_status = i2c_write(expander_input_pin_mask); if (expander_status) goto out; + expander_status = i2c_write(0); if (expander_status) goto out; +# elif (DIODE_DIRECTION == ROW2COL) + expander_status = i2c_write(0); if (expander_status) goto out; + expander_status = i2c_write(expander_input_pin_mask); if (expander_status) goto out; +# endif +#elif (EXPANDER_COLUMN_REGISTER == 1) +# if (DIODE_DIRECTION == COL2ROW) + expander_status = i2c_write(0); if (expander_status) goto out; + expander_status = i2c_write(expander_input_pin_mask); if (expander_status) goto out; +# elif (DIODE_DIRECTION == ROW2COL) + expander_status = i2c_write(expander_input_pin_mask); if (expander_status) goto out; + expander_status = i2c_write(0); if (expander_status) goto out; +# endif +#endif -// Report changed keys in the given row. Resets the debounce countdowns -// corresponding to each set bit in 'change' to DEBOUNCE. -void debounce_report(matrix_row_t change, uint8_t row) { - for (uint8_t i = 0; i < MATRIX_COLS; ++i) { - if (change & (1 << i)) { - debounce_matrix[row * MATRIX_COLS + i] = DEBOUNCE; - } - } +out: + i2c_stop(); } uint8_t matrix_scan(void) { - if (mcp23018_status) { // if there was an error - if (++mcp23018_reset_loop == 0) { - // since mcp23018_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans + if (expander_status) { // if there was an error + if (++expander_reset_loop == 0) { + // since expander_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans // this will be approx bit more frequent than once per second - print("trying to reset mcp23018\n"); - mcp23018_status = init_mcp23018(); - if (mcp23018_status) { + print("trying to reset expander\n"); + init_expander(); + if (expander_status) { print("left side not responding\n"); } else { print("left side attached\n"); @@ -199,37 +254,71 @@ uint8_t matrix_scan(void) } #endif - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - select_row(i); - wait_us(30); // without this wait read unstable value. - matrix_row_t mask = debounce_mask(i); - matrix_row_t cols = (read_cols(i) & mask) | (matrix[i] & ~mask); - debounce_report(cols ^ matrix[i], i); - matrix[i] = cols; - - unselect_rows(); +#if (DIODE_DIRECTION == COL2ROW) + for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { +# if (DEBOUNCING_DELAY > 0) + bool matrix_changed = read_cols_on_row(matrix_debouncing, current_row); + + if (matrix_changed) { + debouncing = true; + debouncing_time = timer_read(); + } +# else + read_cols_on_row(matrix, current_row); +# endif } - matrix_scan_quantum(); +#elif (DIODE_DIRECTION == ROW2COL) + for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) { +# if (DEBOUNCING_DELAY > 0) + bool matrix_changed = read_rows_on_col(matrix_debouncing, current_col); + + if (matrix_changed) { + debouncing = true; + debouncing_time = timer_read(); + } +# else + read_rows_on_col(matrix, current_col); +# endif + + } +#endif +# if (DEBOUNCING_DELAY > 0) + if (debouncing && (timer_elapsed(debouncing_time) > DEBOUNCING_DELAY)) { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = matrix_debouncing[i]; + } + debouncing = false; + } +# endif + + matrix_scan_quantum(); return 1; } bool matrix_is_modified(void) // deprecated and evidently not called. { +#if (DEBOUNCING_DELAY > 0) + if (debouncing) return false; +#endif return true; } inline bool matrix_is_on(uint8_t row, uint8_t col) { - return (matrix[row] & ((matrix_row_t)1<> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI + } + } } -static matrix_row_t read_cols(uint8_t row) -{ - if (row < 6) { - if (mcp23018_status) { // if there was an error - return 0; - } else { - uint8_t data = 0; - mcp23018_status = i2c_start(I2C_ADDR_WRITE); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(GPIOB); if (mcp23018_status) goto out; - mcp23018_status = i2c_start(I2C_ADDR_READ); if (mcp23018_status) goto out; - data = i2c_readNak(); - data = ~data; +static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) { + // Store last value of row prior to reading + matrix_row_t last_row_value = current_matrix[current_row]; + + // Clear data in matrix row + current_matrix[current_row] = 0; + + // Select row and wait for row selection to stabilize + select_row(current_row); + wait_us(30); + + // Read columns from expander, unless it's in an error state + if (! expander_status) { + expander_status = i2c_start(I2C_ADDR_WRITE); if (expander_status) goto out; + expander_status = i2c_write(GPIOA); if (expander_status) goto out; + expander_status = i2c_start(I2C_ADDR_READ); if (expander_status) goto out; + + current_matrix[current_row] |= (~i2c_readNak()) & EXPANDER_MASK; + out: i2c_stop(); - return data; + } + + // Read columns from onboard pins + for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) { + if (! col_expanded[col_index]) { + uint8_t pin = onboard_col_pins[col_index]; + uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); + current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); } - } else { - // read from teensy - return - (PINF&(1<<0) ? 0 : (1<<0)) | - (PINF&(1<<1) ? 0 : (1<<1)) | - (PINF&(1<<4) ? 0 : (1<<2)) | - (PINF&(1<<5) ? 0 : (1<<3)) | - (PINF&(1<<6) ? 0 : (1<<4)) | - (PINF&(1<<7) ? 0 : (1<<5)) ; } + + unselect_row(current_row); + + return (last_row_value != current_matrix[current_row]); } -/* Row pin configuration - * - * Teensy - * row: 6 7 8 9 10 11 - * pin: B1 B2 B3 D2 D3 C6 - * - * MCP23018 - * row: 0 1 2 3 4 5 - * pin: A0 A1 A2 A3 A4 A5 - */ -static void unselect_rows(void) -{ - // unselect on mcp23018 - if (mcp23018_status) { // if there was an error - // do nothing - } else { - // set all rows hi-Z : 1 - mcp23018_status = i2c_start(I2C_ADDR_WRITE); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(GPIOA); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(0xFF); if (mcp23018_status) goto out; +static void select_row(uint8_t row) { + // select on expander, unless it's in an error state + if (! expander_status) { + // set active row low : 0 + // set other rows hi-Z : 1 + expander_status = i2c_start(I2C_ADDR_WRITE); if (expander_status) goto out; + expander_status = i2c_write(GPIOB); if (expander_status) goto out; + expander_status = i2c_write(0xFF & ~(1<> 4) + 1) |= _BV(pin & 0xF); // OUT + _SFR_IO8((pin >> 4) + 2) &= ~_BV(pin & 0xF); // LOW +} + +static void unselect_row(uint8_t row) +{ + // No need to explicitly unselect expander pins--their I/O state is + // set simultaneously, with a single bitmask sent to i2c_write. When + // select_row selects a single pin, it implicitly unselects all the + // other ones. + // unselect on teensy - // Hi-Z(DDR:0, PORT:0) to unselect - DDRB &= ~(1<<1 | 1<<2 | 1<<3); - PORTB &= ~(1<<1 | 1<<2 | 1<<3); - DDRD &= ~(1<<2 | 1<<3); - PORTD &= ~(1<<2 | 1<<3); - DDRC &= ~(1<<6); - PORTC &= ~(1<<6); + uint8_t pin = onboard_row_pins[row]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // OUT + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // LOW +} + +static void unselect_rows(void) { + for (uint8_t x = 0; x < MATRIX_ROWS; x++) { + unselect_row(x); + } } -/* Row pin configuration - * - * Teensy - * row: 6 7 8 9 10 11 - * pin: B1 B2 B3 D2 D3 C6 - * - * MCP23018 - * row: 0 1 2 3 4 5 - * pin: A0 A1 A2 A3 A4 A5 - */ -static void select_row(uint8_t row) +#elif (DIODE_DIRECTION == ROW2COL) + +static void init_rows(void) { - if (row < 6) { - // select on mcp23018 - if (mcp23018_status) { // if there was an error + for (uint8_t x = 0; x < MATRIX_ROWS; x++) { + uint8_t pin = onboard_row_pins[x]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI + } +} + +static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) +{ + bool matrix_changed = false; + + uint8_t column_state = 0; + + //select col and wait for selection to stabilize + select_col(current_col); + wait_us(30); + + if (current_col < 6) { + // read rows from expander + if (expander_status) { + // it's already in an error state; nothing we can do + return false; + } + + expander_status = i2c_start(I2C_ADDR_WRITE); if (expander_status) goto out; + expander_status = i2c_write(GPIOB); if (expander_status) goto out; + expander_status = i2c_start(I2C_ADDR_READ); if (expander_status) goto out; + column_state = i2c_readNak(); + + out: + i2c_stop(); + + column_state = ~column_state; + } else { + for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { + if ((_SFR_IO8(onboard_row_pins[current_row] >> 4) & _BV(onboard_row_pins[current_row] & 0xF)) == 0) { + column_state |= (1 << current_row); + } + } + } + + for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { + // Store last value of row prior to reading + matrix_row_t last_row_value = current_matrix[current_row]; + + if (column_state & (1 << current_row)) { + // key closed; set state bit in matrix + current_matrix[current_row] |= (ROW_SHIFTER << current_col); + } else { + // key open; clear state bit in matrix + current_matrix[current_row] &= ~(ROW_SHIFTER << current_col); + } + + // Determine whether the matrix changed state + if ((last_row_value != current_matrix[current_row]) && !(matrix_changed)) + { + matrix_changed = true; + } + } + + unselect_col(current_col); + + return matrix_changed; +} + +static void select_col(uint8_t col) +{ + if (col_expanded[col]) { + // select on expander + if (expander_status) { // if there was an error // do nothing } else { - // set active row low : 0 - // set other rows hi-Z : 1 - mcp23018_status = i2c_start(I2C_ADDR_WRITE); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(GPIOA); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(0xFF & ~(1<> 4) + 1) |= _BV(pin & 0xF); // OUT + _SFR_IO8((pin >> 4) + 2) &= ~_BV(pin & 0xF); // LOW + } +} + +static void unselect_col(uint8_t col) +{ + if (col_expanded[col]) { + // No need to explicitly unselect expander pins--their I/O state is + // set simultaneously, with a single bitmask sent to i2c_write. When + // select_col selects a single pin, it implicitly unselects all the + // other ones. + } else { + // unselect on teensy + uint8_t pin = onboard_col_pins[col]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI } } +static void unselect_cols(void) +{ + for(uint8_t x = 0; x < MATRIX_COLS; x++) { + unselect_col(x); + } +} +#endif From 33671e5cd17db5387d17009a50c3fe86d76e5671 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Fri, 27 Apr 2018 15:13:03 -0700 Subject: [PATCH 289/578] New Numpad Support: naKey from ckeys.org (#2828) * Add naKey on behalf of ckeys * Update James's code to more modern QMK standards * Add info.json for QMK Configurator support * Fix that build breakage * Rename naKey.c to nakey.c * Rename naKey.h to nakey.h --- keyboards/nakey/config.h | 190 ++++++++++++++++++++++ keyboards/nakey/info.json | 12 ++ keyboards/nakey/keymaps/default/keymap.c | 62 +++++++ keyboards/nakey/keymaps/default/readme.md | 1 + keyboards/nakey/nakey.c | 42 +++++ keyboards/nakey/nakey.h | 40 +++++ keyboards/nakey/readme.md | 47 ++++++ keyboards/nakey/rules.mk | 68 ++++++++ 8 files changed, 462 insertions(+) create mode 100644 keyboards/nakey/config.h create mode 100644 keyboards/nakey/info.json create mode 100644 keyboards/nakey/keymaps/default/keymap.c create mode 100644 keyboards/nakey/keymaps/default/readme.md create mode 100644 keyboards/nakey/nakey.c create mode 100644 keyboards/nakey/nakey.h create mode 100644 keyboards/nakey/readme.md create mode 100644 keyboards/nakey/rules.mk diff --git a/keyboards/nakey/config.h b/keyboards/nakey/config.h new file mode 100644 index 000000000000..38fed297efb5 --- /dev/null +++ b/keyboards/nakey/config.h @@ -0,0 +1,190 @@ +/* +Copyright 2018 James Underwood + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER cKeys +#define PRODUCT naKey +#define DESCRIPTION The cKeys through hole ten key pad + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 4 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { F1, F4, F5, F6, F7 } +#define MATRIX_COL_PINS { B0, B1, B2, B3 } +#define UNUSED_PINS { D0, D1, D2, D3, D4, D5, D6, D7, C6, C7, B4, B5, B6, B7 } + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +//#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 1 + +#endif diff --git a/keyboards/nakey/info.json b/keyboards/nakey/info.json new file mode 100644 index 000000000000..b44d0daf741b --- /dev/null +++ b/keyboards/nakey/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "naKey", + "url": "", + "maintainer": "qmk", + "width": 4, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [{"label":"Num Lock", "x":0, "y":0}, {"label":"/", "x":1, "y":0}, {"label":"*", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"+", "x":3, "y":1, "h":2}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"Enter", "x":3, "y":3, "h":2}, {"label":"0", "x":0, "y":4, "w":2}, {"label":".", "x":2, "y":4}] + } + } +} diff --git a/keyboards/nakey/keymaps/default/keymap.c b/keyboards/nakey/keymaps/default/keymap.c new file mode 100644 index 000000000000..ebbb128bd271 --- /dev/null +++ b/keyboards/nakey/keymaps/default/keymap.c @@ -0,0 +1,62 @@ +/* Copyright 2018 James Underwood + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT( /* Base */ + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ + KC_P7, KC_P8, KC_P9, KC_PPLS, \ + KC_P4, KC_P5, KC_P6, \ + KC_P1, KC_P2, KC_P3, KC_PENT, \ + KC_P0, KC_PDOT \ +), +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/nakey/keymaps/default/readme.md b/keyboards/nakey/keymaps/default/readme.md new file mode 100644 index 000000000000..c842dc99a76d --- /dev/null +++ b/keyboards/nakey/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for naKey diff --git a/keyboards/nakey/nakey.c b/keyboards/nakey/nakey.c new file mode 100644 index 000000000000..ba2fb90ebe40 --- /dev/null +++ b/keyboards/nakey/nakey.c @@ -0,0 +1,42 @@ +/* Copyright 2018 James Underwood + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "nakey.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} diff --git a/keyboards/nakey/nakey.h b/keyboards/nakey/nakey.h new file mode 100644 index 000000000000..3cbfda844deb --- /dev/null +++ b/keyboards/nakey/nakey.h @@ -0,0 +1,40 @@ +/* Copyright 2018 James Underwood + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#ifndef NAKEY_H +#define NAKEY_H + +#include "quantum.h" + +// This a shortcut to help you visually see your layout. +// The following is an example using the Planck MIT layout +// The first section contains all of the arguments +// The second converts the arguments into a two-dimensional array +#define LAYOUT( \ + k00, k01, k02, k03, \ + k10, k11, k12, k13, \ + k20, k21, k22, \ + k30, k31, k32, k33, \ + k40, k41 \ +) \ +{ \ + { k00, k01, k02, k03 }, \ + { k10, k11, k12, k13 }, \ + { k20, k21, k22, KC_NO }, \ + { k30, k31, k32, k33 }, \ + { k40, KC_NO, k41, KC_NO }, \ +} + +#endif diff --git a/keyboards/nakey/readme.md b/keyboards/nakey/readme.md new file mode 100644 index 000000000000..62688c1aeb91 --- /dev/null +++ b/keyboards/nakey/readme.md @@ -0,0 +1,47 @@ +# naKey + +Firmware for custom keyboard + +Keyboard Maintainer: [James Underwood](https://github.com/ju0) +Hardware Supported: naKey +Hardware Availability: [ckeys.org](https://ckeys.org) + +Make example for this keyboard (after setting up your build environment): + + make nakey:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent readme](/). + +## Building + +Download or clone the whole firmware and navigate to the root folder. Once your dev env is setup, you'll be able to type `make naKey-default` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +(Note: replace naKey with the name of your keyboard.) + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default + +To build with the default keymap, simply run `make naKey-default`. + +### Other Keymaps + +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder. Create a `readme.md` and a `keymap.c` file to complete your new keymap. When you are done your file tree should look like this: + +* `qmk_firmware/` + * `keyboard/` + * `keymaps/` + * `config.h` (optional) + * `keymap.c` + * `readme.md` + * `rules.mk` (optional) + +To build the firmware binary hex file with a keymap just do `make` with a keymap like this: + +``` +$ make naKey-[default|jack|] +``` diff --git a/keyboards/nakey/rules.mk b/keyboards/nakey/rules.mk new file mode 100644 index 000000000000..a3571e8deb0e --- /dev/null +++ b/keyboards/nakey/rules.mk @@ -0,0 +1,68 @@ +# MCU name +#MCU = at90usb1286 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=512 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= no # USB Nkey Rollover +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE ?= no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 +FAUXCLICKY_ENABLE ?= no # Use buzzer to emulate clicky switches From 17223166ce11cc3f5492735679dda2846c27ded6 Mon Sep 17 00:00:00 2001 From: Yan-Fa Li Date: Fri, 27 Apr 2018 15:14:58 -0700 Subject: [PATCH 290/578] Add missing 7U and 4U layouts to 2x1800 (#2829) This prevents the layouts from loading in configurator --- keyboards/clueboard/2x1800/info.json | 1932 +++++++++++++++++++++++++- 1 file changed, 1924 insertions(+), 8 deletions(-) diff --git a/keyboards/clueboard/2x1800/info.json b/keyboards/clueboard/2x1800/info.json index 74afec8232e5..81ff138d9307 100644 --- a/keyboards/clueboard/2x1800/info.json +++ b/keyboards/clueboard/2x1800/info.json @@ -1,12 +1,1928 @@ { - "keyboard_name": "CB 2x1800", - "url": "", - "maintainer": "skullydazed", - "width": 24, - "height": 6.5, - "layouts": { - "LAYOUT": { - "layout": [{"label":"Home", "x":0, "y":0}, {"label":"End", "x":1, "y":0}, {"label":"PgUp", "x":2, "y":0}, {"label":"PgDn", "x":3, "y":0}, {"label":"Esc", "x":4.75, "y":0}, {"label":"F1", "x":6.25, "y":0}, {"label":"F2", "x":7.25, "y":0}, {"label":"F3", "x":8.25, "y":0}, {"label":"F4", "x":9.25, "y":0}, {"label":"F5", "x":10.75, "y":0}, {"label":"F6", "x":11.75, "y":0}, {"label":"F7", "x":12.75, "y":0}, {"label":"F8", "x":13.75, "y":0}, {"label":"F9", "x":15.25, "y":0}, {"label":"F10", "x":16.25, "y":0}, {"label":"F11", "x":17.25, "y":0}, {"label":"F12", "x":18.25, "y":0}, {"label":"PrtSc", "x":20, "y":0}, {"label":"Scroll Lock", "x":21, "y":0}, {"label":"Pause", "x":22, "y":0}, {"label":"Insert", "x":23, "y":0}, {"label":"-", "x":0, "y":1.25}, {"label":"Num Lock", "x":1, "y":1.25}, {"label":"/", "x":2, "y":1.25}, {"label":"*", "x":3, "y":1.25}, {"label":"~", "x":4.5, "y":1.25}, {"label":"!", "x":5.5, "y":1.25}, {"label":"@", "x":6.5, "y":1.25}, {"label":"#", "x":7.5, "y":1.25}, {"label":"$", "x":8.5, "y":1.25}, {"label":"%", "x":9.5, "y":1.25}, {"label":"^", "x":10.5, "y":1.25}, {"label":"&", "x":11.5, "y":1.25}, {"label":"*", "x":12.5, "y":1.25}, {"label":"(", "x":13.5, "y":1.25}, {"label":")", "x":14.5, "y":1.25}, {"label":"_", "x":15.5, "y":1.25}, {"label":"+", "x":16.5, "y":1.25}, {"label":"Backspace", "x":17.5, "y":1.25, "w":2}, {"label":"Num Lock", "x":20, "y":1.25}, {"label":"/", "x":21, "y":1.25}, {"label":"*", "x":22, "y":1.25}, {"label":"-", "x":23, "y":1.25}, {"label":"+", "x":0, "y":2.25, "h":2}, {"label":"7", "x":1, "y":2.25}, {"label":"8", "x":2, "y":2.25}, {"label":"9", "x":3, "y":2.25}, {"label":"Tab", "x":4.5, "y":2.25, "w":1.5}, {"label":"Q", "x":6, "y":2.25}, {"label":"W", "x":7, "y":2.25}, {"label":"E", "x":8, "y":2.25}, {"label":"R", "x":9, "y":2.25}, {"label":"T", "x":10, "y":2.25}, {"label":"Y", "x":11, "y":2.25}, {"label":"U", "x":12, "y":2.25}, {"label":"I", "x":13, "y":2.25}, {"label":"O", "x":14, "y":2.25}, {"label":"P", "x":15, "y":2.25}, {"label":"{", "x":16, "y":2.25}, {"label":"}", "x":17, "y":2.25}, {"label":"|", "x":18, "y":2.25, "w":1.5}, {"label":"7", "x":20, "y":2.25}, {"label":"8", "x":21, "y":2.25}, {"label":"9", "x":22, "y":2.25}, {"label":"+", "x":23, "y":2.25, "h":2}, {"label":"4", "x":1, "y":3.25}, {"label":"5", "x":2, "y":3.25}, {"label":"6", "x":3, "y":3.25}, {"label":"Caps Lock", "x":4.5, "y":3.25, "w":1.75}, {"label":"A", "x":6.25, "y":3.25}, {"label":"S", "x":7.25, "y":3.25}, {"label":"D", "x":8.25, "y":3.25}, {"label":"F", "x":9.25, "y":3.25}, {"label":"G", "x":10.25, "y":3.25}, {"label":"H", "x":11.25, "y":3.25}, {"label":"J", "x":12.25, "y":3.25}, {"label":"K", "x":13.25, "y":3.25}, {"label":"L", "x":14.25, "y":3.25}, {"label":":", "x":15.25, "y":3.25}, {"label":"\"", "x":16.25, "y":3.25}, {"label":"Enter", "x":17.25, "y":3.25, "w":2.25}, {"label":"4", "x":20, "y":3.25}, {"label":"5", "x":21, "y":3.25}, {"label":"6", "x":22, "y":3.25}, {"label":"Enter", "x":0, "y":4.25, "h":2}, {"label":"1", "x":1, "y":4.25}, {"label":"2", "x":2, "y":4.25}, {"label":"3", "x":3, "y":4.25}, {"label":"\u2191", "x":4.25, "y":4.5}, {"label":"Shift", "x":5.5, "y":4.25, "w":1.25}, {"label":"Z", "x":6.75, "y":4.25}, {"label":"X", "x":7.75, "y":4.25}, {"label":"C", "x":8.75, "y":4.25}, {"label":"V", "x":9.75, "y":4.25}, {"label":"B", "x":10.75, "y":4.25}, {"label":"N", "x":11.75, "y":4.25}, {"label":"M", "x":12.75, "y":4.25}, {"label":"<", "x":13.75, "y":4.25}, {"label":">", "x":14.75, "y":4.25}, {"label":"?", "x":15.75, "y":4.25}, {"label":"Shift", "x":16.75, "y":4.25, "w":1.75}, {"label":"\u2191", "x":18.75, "y":4.5}, {"label":"1", "x":20, "y":4.25}, {"label":"2", "x":21, "y":4.25}, {"label":"3", "x":22, "y":4.25}, {"label":"Enter", "x":23, "y":4.25, "h":2}, {"label":"0", "x":1, "y":5.25}, {"label":".", "x":2, "y":5.25}, {"label":"\u2190", "x":3.25, "y":5.5}, {"label":"\u2193", "x":4.25, "y":5.5}, {"label":"\u2192", "x":5.25, "y":5.5}, {"label":"Ctrl", "x":6.5, "y":5.25}, {"label":"Win", "x":7.5, "y":5.25}, {"label":"Alt", "x":8.5, "y":5.25}, {"label":"7u", "x":8.5, "y":5.25, "w":7}, {"label":"1u", "x":9.5, "y":5.25}, {"label":"4u", "x":9.5, "y":5.25, "w":4}, {"label":"1u", "x":10.5, "y":5.25}, {"label":"1u", "x":11.5, "y":5.25}, {"label":"1u", "x":12.5, "y":5.25}, {"label":"Alt", "x":13.5, "y":5.25}, {"label":"Win", "x":14.5, "y":5.25}, {"label":"Menu", "x":15.5, "y":5.25}, {"label":"Ctrl", "x":16.5, "y":5.25}, {"label":"\u2190", "x":17.75, "y":5.5}, {"label":"\u2193", "x":18.75, "y":5.5}, {"label":"\u2192", "x":19.75, "y":5.5}, {"label":"0", "x":21, "y":5.25}, {"label":".", "x":22, "y":5.25}] + "keyboard_name": "CB 2x1800", + "url": "", + "maintainer": "skullydazed", + "width": 24, + "height": 6.5, + "layouts": { + "LAYOUT": { + "layout": [ + { + "label": "Home", + "x": 0, + "y": 0 + }, + { + "label": "End", + "x": 1, + "y": 0 + }, + { + "label": "PgUp", + "x": 2, + "y": 0 + }, + { + "label": "PgDn", + "x": 3, + "y": 0 + }, + { + "label": "Esc", + "x": 4.75, + "y": 0 + }, + { + "label": "F1", + "x": 6.25, + "y": 0 + }, + { + "label": "F2", + "x": 7.25, + "y": 0 + }, + { + "label": "F3", + "x": 8.25, + "y": 0 + }, + { + "label": "F4", + "x": 9.25, + "y": 0 + }, + { + "label": "F5", + "x": 10.75, + "y": 0 + }, + { + "label": "F6", + "x": 11.75, + "y": 0 + }, + { + "label": "F7", + "x": 12.75, + "y": 0 + }, + { + "label": "F8", + "x": 13.75, + "y": 0 + }, + { + "label": "F9", + "x": 15.25, + "y": 0 + }, + { + "label": "F10", + "x": 16.25, + "y": 0 + }, + { + "label": "F11", + "x": 17.25, + "y": 0 + }, + { + "label": "F12", + "x": 18.25, + "y": 0 + }, + { + "label": "PrtSc", + "x": 20, + "y": 0 + }, + { + "label": "Scroll Lock", + "x": 21, + "y": 0 + }, + { + "label": "Pause", + "x": 22, + "y": 0 + }, + { + "label": "Insert", + "x": 23, + "y": 0 + }, + { + "label": "-", + "x": 0, + "y": 1.25 + }, + { + "label": "Num Lock", + "x": 1, + "y": 1.25 + }, + { + "label": "/", + "x": 2, + "y": 1.25 + }, + { + "label": "*", + "x": 3, + "y": 1.25 + }, + { + "label": "~", + "x": 4.5, + "y": 1.25 + }, + { + "label": "!", + "x": 5.5, + "y": 1.25 + }, + { + "label": "@", + "x": 6.5, + "y": 1.25 + }, + { + "label": "#", + "x": 7.5, + "y": 1.25 + }, + { + "label": "$", + "x": 8.5, + "y": 1.25 + }, + { + "label": "%", + "x": 9.5, + "y": 1.25 + }, + { + "label": "^", + "x": 10.5, + "y": 1.25 + }, + { + "label": "&", + "x": 11.5, + "y": 1.25 + }, + { + "label": "*", + "x": 12.5, + "y": 1.25 + }, + { + "label": "(", + "x": 13.5, + "y": 1.25 + }, + { + "label": ")", + "x": 14.5, + "y": 1.25 + }, + { + "label": "_", + "x": 15.5, + "y": 1.25 + }, + { + "label": "+", + "x": 16.5, + "y": 1.25 + }, + { + "label": "Backspace", + "x": 17.5, + "y": 1.25, + "w": 2 + }, + { + "label": "Num Lock", + "x": 20, + "y": 1.25 + }, + { + "label": "/", + "x": 21, + "y": 1.25 + }, + { + "label": "*", + "x": 22, + "y": 1.25 + }, + { + "label": "-", + "x": 23, + "y": 1.25 + }, + { + "label": "+", + "x": 0, + "y": 2.25, + "h": 2 + }, + { + "label": "7", + "x": 1, + "y": 2.25 + }, + { + "label": "8", + "x": 2, + "y": 2.25 + }, + { + "label": "9", + "x": 3, + "y": 2.25 + }, + { + "label": "Tab", + "x": 4.5, + "y": 2.25, + "w": 1.5 + }, + { + "label": "Q", + "x": 6, + "y": 2.25 + }, + { + "label": "W", + "x": 7, + "y": 2.25 + }, + { + "label": "E", + "x": 8, + "y": 2.25 + }, + { + "label": "R", + "x": 9, + "y": 2.25 + }, + { + "label": "T", + "x": 10, + "y": 2.25 + }, + { + "label": "Y", + "x": 11, + "y": 2.25 + }, + { + "label": "U", + "x": 12, + "y": 2.25 + }, + { + "label": "I", + "x": 13, + "y": 2.25 + }, + { + "label": "O", + "x": 14, + "y": 2.25 + }, + { + "label": "P", + "x": 15, + "y": 2.25 + }, + { + "label": "{", + "x": 16, + "y": 2.25 + }, + { + "label": "}", + "x": 17, + "y": 2.25 + }, + { + "label": "|", + "x": 18, + "y": 2.25, + "w": 1.5 + }, + { + "label": "7", + "x": 20, + "y": 2.25 + }, + { + "label": "8", + "x": 21, + "y": 2.25 + }, + { + "label": "9", + "x": 22, + "y": 2.25 + }, + { + "label": "+", + "x": 23, + "y": 2.25, + "h": 2 + }, + { + "label": "4", + "x": 1, + "y": 3.25 + }, + { + "label": "5", + "x": 2, + "y": 3.25 + }, + { + "label": "6", + "x": 3, + "y": 3.25 + }, + { + "label": "Caps Lock", + "x": 4.5, + "y": 3.25, + "w": 1.75 + }, + { + "label": "A", + "x": 6.25, + "y": 3.25 + }, + { + "label": "S", + "x": 7.25, + "y": 3.25 + }, + { + "label": "D", + "x": 8.25, + "y": 3.25 + }, + { + "label": "F", + "x": 9.25, + "y": 3.25 + }, + { + "label": "G", + "x": 10.25, + "y": 3.25 + }, + { + "label": "H", + "x": 11.25, + "y": 3.25 + }, + { + "label": "J", + "x": 12.25, + "y": 3.25 + }, + { + "label": "K", + "x": 13.25, + "y": 3.25 + }, + { + "label": "L", + "x": 14.25, + "y": 3.25 + }, + { + "label": ":", + "x": 15.25, + "y": 3.25 + }, + { + "label": "\"", + "x": 16.25, + "y": 3.25 + }, + { + "label": "Enter", + "x": 17.25, + "y": 3.25, + "w": 2.25 + }, + { + "label": "4", + "x": 20, + "y": 3.25 + }, + { + "label": "5", + "x": 21, + "y": 3.25 + }, + { + "label": "6", + "x": 22, + "y": 3.25 + }, + { + "label": "Enter", + "x": 0, + "y": 4.25, + "h": 2 + }, + { + "label": "1", + "x": 1, + "y": 4.25 + }, + { + "label": "2", + "x": 2, + "y": 4.25 + }, + { + "label": "3", + "x": 3, + "y": 4.25 + }, + { + "label": "\\u2191", + "x": 4.25, + "y": 4.5 + }, + { + "label": "Shift", + "x": 5.5, + "y": 4.25, + "w": 1.25 + }, + { + "label": "Z", + "x": 6.75, + "y": 4.25 + }, + { + "label": "X", + "x": 7.75, + "y": 4.25 + }, + { + "label": "C", + "x": 8.75, + "y": 4.25 + }, + { + "label": "V", + "x": 9.75, + "y": 4.25 + }, + { + "label": "B", + "x": 10.75, + "y": 4.25 + }, + { + "label": "N", + "x": 11.75, + "y": 4.25 + }, + { + "label": "M", + "x": 12.75, + "y": 4.25 + }, + { + "label": "<", + "x": 13.75, + "y": 4.25 + }, + { + "label": ">", + "x": 14.75, + "y": 4.25 + }, + { + "label": "?", + "x": 15.75, + "y": 4.25 + }, + { + "label": "Shift", + "x": 16.75, + "y": 4.25, + "w": 1.75 + }, + { + "label": "\\u2191", + "x": 18.75, + "y": 4.5 + }, + { + "label": "1", + "x": 20, + "y": 4.25 + }, + { + "label": "2", + "x": 21, + "y": 4.25 + }, + { + "label": "3", + "x": 22, + "y": 4.25 + }, + { + "label": "Enter", + "x": 23, + "y": 4.25, + "h": 2 + }, + { + "label": "0", + "x": 1, + "y": 5.25 + }, + { + "label": ".", + "x": 2, + "y": 5.25 + }, + { + "label": "\\u2190", + "x": 3.25, + "y": 5.5 + }, + { + "label": "\\u2193", + "x": 4.25, + "y": 5.5 + }, + { + "label": "\\u2192", + "x": 5.25, + "y": 5.5 + }, + { + "label": "Ctrl", + "x": 6.5, + "y": 5.25 + }, + { + "label": "Win", + "x": 7.5, + "y": 5.25 + }, + { + "label": "Alt", + "x": 8.5, + "y": 5.25 + }, + { + "label": "7u", + "x": 8.5, + "y": 5.25, + "w": 7 + }, + { + "label": "1u", + "x": 9.5, + "y": 5.25 + }, + { + "label": "4u", + "x": 9.5, + "y": 5.25, + "w": 4 + }, + { + "label": "1u", + "x": 10.5, + "y": 5.25 + }, + { + "label": "1u", + "x": 11.5, + "y": 5.25 + }, + { + "label": "1u", + "x": 12.5, + "y": 5.25 + }, + { + "label": "Alt", + "x": 13.5, + "y": 5.25 + }, + { + "label": "Win", + "x": 14.5, + "y": 5.25 + }, + { + "label": "Menu", + "x": 15.5, + "y": 5.25 + }, + { + "label": "Ctrl", + "x": 16.5, + "y": 5.25 + }, + { + "label": "\\u2190", + "x": 17.75, + "y": 5.5 + }, + { + "label": "\\u2193", + "x": 18.75, + "y": 5.5 + }, + { + "label": "\\u2192", + "x": 19.75, + "y": 5.5 + }, + { + "label": "0", + "x": 21, + "y": 5.25 + }, + { + "label": ".", + "x": 22, + "y": 5.25 } + ] + }, + "LAYOUT_7U_SPACE": { + "layout": [ + { + "label": "k00", + "x": 0, + "y": 0 + }, + { + "label": "k01", + "x": 1, + "y": 0 + }, + { + "label": "k02", + "x": 2, + "y": 0 + }, + { + "label": "k03", + "x": 3, + "y": 0 + }, + { + "label": "k04", + "x": 4.75, + "y": 0 + }, + { + "label": "k06", + "x": 6.25, + "y": 0 + }, + { + "label": "k07", + "x": 7.25, + "y": 0 + }, + { + "label": "k08", + "x": 8.25, + "y": 0 + }, + { + "label": "k09", + "x": 9.25, + "y": 0 + }, + { + "label": "k0a", + "x": 10.75, + "y": 0 + }, + { + "label": "k60", + "x": 11.75, + "y": 0 + }, + { + "label": "k61", + "x": 12.75, + "y": 0 + }, + { + "label": "k62", + "x": 13.75, + "y": 0 + }, + { + "label": "k63", + "x": 15.25, + "y": 0 + }, + { + "label": "k64", + "x": 16.25, + "y": 0 + }, + { + "label": "k65", + "x": 17.25, + "y": 0 + }, + { + "label": "k66", + "x": 18.25, + "y": 0 + }, + { + "label": "k67", + "x": 20, + "y": 0 + }, + { + "label": "k68", + "x": 21, + "y": 0 + }, + { + "label": "k69", + "x": 22, + "y": 0 + }, + { + "label": "k6a", + "x": 23, + "y": 0 + }, + { + "label": "k10", + "x": 0, + "y": 1.25 + }, + { + "label": "k11", + "x": 1, + "y": 1.25 + }, + { + "label": "k12", + "x": 2, + "y": 1.25 + }, + { + "label": "k13", + "x": 3, + "y": 1.25 + }, + { + "label": "k14", + "x": 4.5, + "y": 1.25 + }, + { + "label": "k15", + "x": 5.5, + "y": 1.25 + }, + { + "label": "k16", + "x": 6.5, + "y": 1.25 + }, + { + "label": "k17", + "x": 7.5, + "y": 1.25 + }, + { + "label": "k18", + "x": 8.5, + "y": 1.25 + }, + { + "label": "k19", + "x": 9.5, + "y": 1.25 + }, + { + "label": "k0a", + "x": 10.5, + "y": 1.25 + }, + { + "label": "k70", + "x": 11.5, + "y": 1.25 + }, + { + "label": "k71", + "x": 12.5, + "y": 1.25 + }, + { + "label": "k72", + "x": 13.5, + "y": 1.25 + }, + { + "label": "k73", + "x": 14.5, + "y": 1.25 + }, + { + "label": "k74", + "x": 15.5, + "y": 1.25 + }, + { + "label": "k75", + "x": 16.5, + "y": 1.25 + }, + { + "label": "k76", + "x": 17.5, + "y": 1.25, + "w": 2 + }, + { + "label": "k77", + "x": 20, + "y": 1.25 + }, + { + "label": "k78", + "x": 21, + "y": 1.25 + }, + { + "label": "k79", + "x": 22, + "y": 1.25 + }, + { + "label": "k7a", + "x": 23, + "y": 1.25 + }, + { + "label": "k20", + "x": 0, + "y": 2.25, + "h": 2 + }, + { + "label": "k21", + "x": 1, + "y": 2.25 + }, + { + "label": "k22", + "x": 2, + "y": 2.25 + }, + { + "label": "k23", + "x": 3, + "y": 2.25 + }, + { + "label": "k24", + "x": 4.5, + "y": 2.25, + "w": 1.5 + }, + { + "label": "k25", + "x": 6, + "y": 2.25 + }, + { + "label": "k26", + "x": 7, + "y": 2.25 + }, + { + "label": "k27", + "x": 8, + "y": 2.25 + }, + { + "label": "k28", + "x": 9, + "y": 2.25 + }, + { + "label": "k29", + "x": 10, + "y": 2.25 + }, + { + "label": "k2a", + "x": 11, + "y": 2.25 + }, + { + "label": "k80", + "x": 12, + "y": 2.25 + }, + { + "label": "k81", + "x": 13, + "y": 2.25 + }, + { + "label": "k82", + "x": 14, + "y": 2.25 + }, + { + "label": "k83", + "x": 15, + "y": 2.25 + }, + { + "label": "k84", + "x": 16, + "y": 2.25 + }, + { + "label": "k85", + "x": 17, + "y": 2.25 + }, + { + "label": "k86", + "x": 18, + "y": 2.25, + "w": 1.5 + }, + { + "label": "k87", + "x": 20, + "y": 2.25 + }, + { + "label": "k88", + "x": 21, + "y": 2.25 + }, + { + "label": "k89", + "x": 22, + "y": 2.25 + }, + { + "label": "k8a", + "x": 23, + "y": 2.25, + "h": 2 + }, + { + "label": "k31", + "x": 1, + "y": 3.25 + }, + { + "label": "k32", + "x": 2, + "y": 3.25 + }, + { + "label": "k33", + "x": 3, + "y": 3.25 + }, + { + "label": "k34", + "x": 4.5, + "y": 3.25, + "w": 1.75 + }, + { + "label": "k35", + "x": 6.25, + "y": 3.25 + }, + { + "label": "k36", + "x": 7.25, + "y": 3.25 + }, + { + "label": "k37", + "x": 8.25, + "y": 3.25 + }, + { + "label": "k38", + "x": 9.25, + "y": 3.25 + }, + { + "label": "k39", + "x": 10.25, + "y": 3.25 + }, + { + "label": "k3a", + "x": 11.25, + "y": 3.25 + }, + { + "label": "k90", + "x": 12.25, + "y": 3.25 + }, + { + "label": "k91", + "x": 13.25, + "y": 3.25 + }, + { + "label": "k92", + "x": 14.25, + "y": 3.25 + }, + { + "label": "k93", + "x": 15.25, + "y": 3.25 + }, + { + "label": "k94", + "x": 16.25, + "y": 3.25 + }, + { + "label": "k95", + "x": 17.25, + "y": 3.25, + "w": 2.25 + }, + { + "label": "k97", + "x": 20, + "y": 3.25 + }, + { + "label": "k98", + "x": 21, + "y": 3.25 + }, + { + "label": "k99", + "x": 22, + "y": 3.25 + }, + { + "label": "k40", + "x": 0, + "y": 4.25, + "h": 2 + }, + { + "label": "k41", + "x": 1, + "y": 4.25 + }, + { + "label": "k42", + "x": 2, + "y": 4.25 + }, + { + "label": "k43", + "x": 3, + "y": 4.25 + }, + { + "label": "k45", + "x": 5.5, + "y": 4.25, + "w": 1.25 + }, + { + "label": "k46", + "x": 6.75, + "y": 4.25 + }, + { + "label": "k47", + "x": 7.75, + "y": 4.25 + }, + { + "label": "k48", + "x": 8.75, + "y": 4.25 + }, + { + "label": "k49", + "x": 9.75, + "y": 4.25 + }, + { + "label": "k4a", + "x": 10.75, + "y": 4.25 + }, + { + "label": "ka0", + "x": 11.75, + "y": 4.25 + }, + { + "label": "ka1", + "x": 12.75, + "y": 4.25 + }, + { + "label": "ka2", + "x": 13.75, + "y": 4.25 + }, + { + "label": "ka3", + "x": 14.75, + "y": 4.25 + }, + { + "label": "ka4", + "x": 15.75, + "y": 4.25 + }, + { + "label": "ka5", + "x": 16.75, + "y": 4.25, + "w": 1.75 + }, + { + "label": "ka7", + "x": 20, + "y": 4.25 + }, + { + "label": "ka8", + "x": 21, + "y": 4.25 + }, + { + "label": "ka9", + "x": 22, + "y": 4.25 + }, + { + "label": "kaa", + "x": 23, + "y": 4.25, + "h": 2 + }, + { + "label": "k44", + "x": 4.25, + "y": 4.5 + }, + { + "label": "k96", + "x": 18.75, + "y": 4.5 + }, + { + "label": "k51", + "x": 1, + "y": 5.25 + }, + { + "label": "k52", + "x": 2, + "y": 5.25 + }, + { + "label": "k56", + "x": 6.5, + "y": 5.25 + }, + { + "label": "k57", + "x": 7.5, + "y": 5.25 + }, + { + "label": "kb0", + "x": 8.5, + "y": 5.25, + "w": 7 + }, + { + "label": "kb4", + "x": 15.5, + "y": 5.25 + }, + { + "label": "kb5", + "x": 16.5, + "y": 5.25 + }, + { + "label": "kb8", + "x": 21, + "y": 5.25 + }, + { + "label": "kb9", + "x": 22, + "y": 5.25 + }, + { + "label": "k53", + "x": 3.25, + "y": 5.5 + }, + { + "label": "k54", + "x": 4.25, + "y": 5.5 + }, + { + "label": "k55", + "x": 5.25, + "y": 5.5 + }, + { + "label": "ka6", + "x": 17.75, + "y": 5.5 + }, + { + "label": "kb6", + "x": 18.75, + "y": 5.5 + }, + { + "label": "kb7", + "x": 19.75, + "y": 5.5 + } + ] + }, + "LAYOUT_4U_SPACE": { + "layout": [ + { + "label": "k00", + "x": 0, + "y": 0 + }, + { + "label": "k01", + "x": 1, + "y": 0 + }, + { + "label": "k02", + "x": 2, + "y": 0 + }, + { + "label": "k03", + "x": 3, + "y": 0 + }, + { + "label": "k04", + "x": 4.75, + "y": 0 + }, + { + "label": "k06", + "x": 6.25, + "y": 0 + }, + { + "label": "k07", + "x": 7.25, + "y": 0 + }, + { + "label": "k08", + "x": 8.25, + "y": 0 + }, + { + "label": "k09", + "x": 9.25, + "y": 0 + }, + { + "label": "k0a", + "x": 10.75, + "y": 0 + }, + { + "label": "k60", + "x": 11.75, + "y": 0 + }, + { + "label": "k61", + "x": 12.75, + "y": 0 + }, + { + "label": "k62", + "x": 13.75, + "y": 0 + }, + { + "label": "k63", + "x": 15.25, + "y": 0 + }, + { + "label": "k64", + "x": 16.25, + "y": 0 + }, + { + "label": "k65", + "x": 17.25, + "y": 0 + }, + { + "label": "k66", + "x": 18.25, + "y": 0 + }, + { + "label": "k67", + "x": 20, + "y": 0 + }, + { + "label": "k68", + "x": 21, + "y": 0 + }, + { + "label": "k69", + "x": 22, + "y": 0 + }, + { + "label": "k6a", + "x": 23, + "y": 0 + }, + { + "label": "k10", + "x": 0, + "y": 1.25 + }, + { + "label": "k11", + "x": 1, + "y": 1.25 + }, + { + "label": "k12", + "x": 2, + "y": 1.25 + }, + { + "label": "k13", + "x": 3, + "y": 1.25 + }, + { + "label": "k14", + "x": 4.5, + "y": 1.25 + }, + { + "label": "k15", + "x": 5.5, + "y": 1.25 + }, + { + "label": "k16", + "x": 6.5, + "y": 1.25 + }, + { + "label": "k17", + "x": 7.5, + "y": 1.25 + }, + { + "label": "k18", + "x": 8.5, + "y": 1.25 + }, + { + "label": "k19", + "x": 9.5, + "y": 1.25 + }, + { + "label": "k0a", + "x": 10.5, + "y": 1.25 + }, + { + "label": "k70", + "x": 11.5, + "y": 1.25 + }, + { + "label": "k71", + "x": 12.5, + "y": 1.25 + }, + { + "label": "k72", + "x": 13.5, + "y": 1.25 + }, + { + "label": "k73", + "x": 14.5, + "y": 1.25 + }, + { + "label": "k74", + "x": 15.5, + "y": 1.25 + }, + { + "label": "k75", + "x": 16.5, + "y": 1.25 + }, + { + "label": "k76", + "x": 17.5, + "y": 1.25, + "w": 2 + }, + { + "label": "k77", + "x": 20, + "y": 1.25 + }, + { + "label": "k78", + "x": 21, + "y": 1.25 + }, + { + "label": "k79", + "x": 22, + "y": 1.25 + }, + { + "label": "k7a", + "x": 23, + "y": 1.25 + }, + { + "label": "k20", + "x": 0, + "y": 2.25, + "h": 2 + }, + { + "label": "k21", + "x": 1, + "y": 2.25 + }, + { + "label": "k22", + "x": 2, + "y": 2.25 + }, + { + "label": "k23", + "x": 3, + "y": 2.25 + }, + { + "label": "k24", + "x": 4.5, + "y": 2.25, + "w": 1.5 + }, + { + "label": "k25", + "x": 6, + "y": 2.25 + }, + { + "label": "k26", + "x": 7, + "y": 2.25 + }, + { + "label": "k27", + "x": 8, + "y": 2.25 + }, + { + "label": "k28", + "x": 9, + "y": 2.25 + }, + { + "label": "k29", + "x": 10, + "y": 2.25 + }, + { + "label": "k2a", + "x": 11, + "y": 2.25 + }, + { + "label": "k80", + "x": 12, + "y": 2.25 + }, + { + "label": "k81", + "x": 13, + "y": 2.25 + }, + { + "label": "k82", + "x": 14, + "y": 2.25 + }, + { + "label": "k83", + "x": 15, + "y": 2.25 + }, + { + "label": "k84", + "x": 16, + "y": 2.25 + }, + { + "label": "k85", + "x": 17, + "y": 2.25 + }, + { + "label": "k86", + "x": 18, + "y": 2.25, + "w": 1.5 + }, + { + "label": "k87", + "x": 20, + "y": 2.25 + }, + { + "label": "k88", + "x": 21, + "y": 2.25 + }, + { + "label": "k89", + "x": 22, + "y": 2.25 + }, + { + "label": "k8a", + "x": 23, + "y": 2.25, + "h": 2 + }, + { + "label": "k31", + "x": 1, + "y": 3.25 + }, + { + "label": "k32", + "x": 2, + "y": 3.25 + }, + { + "label": "k33", + "x": 3, + "y": 3.25 + }, + { + "label": "k34", + "x": 4.5, + "y": 3.25, + "w": 1.75 + }, + { + "label": "k35", + "x": 6.25, + "y": 3.25 + }, + { + "label": "k36", + "x": 7.25, + "y": 3.25 + }, + { + "label": "k37", + "x": 8.25, + "y": 3.25 + }, + { + "label": "k38", + "x": 9.25, + "y": 3.25 + }, + { + "label": "k39", + "x": 10.25, + "y": 3.25 + }, + { + "label": "k3a", + "x": 11.25, + "y": 3.25 + }, + { + "label": "k90", + "x": 12.25, + "y": 3.25 + }, + { + "label": "k91", + "x": 13.25, + "y": 3.25 + }, + { + "label": "k92", + "x": 14.25, + "y": 3.25 + }, + { + "label": "k93", + "x": 15.25, + "y": 3.25 + }, + { + "label": "k94", + "x": 16.25, + "y": 3.25 + }, + { + "label": "k95", + "x": 17.25, + "y": 3.25, + "w": 2.25 + }, + { + "label": "k97", + "x": 20, + "y": 3.25 + }, + { + "label": "k98", + "x": 21, + "y": 3.25 + }, + { + "label": "k99", + "x": 22, + "y": 3.25 + }, + { + "label": "k40", + "x": 0, + "y": 4.25, + "h": 2 + }, + { + "label": "k41", + "x": 1, + "y": 4.25 + }, + { + "label": "k42", + "x": 2, + "y": 4.25 + }, + { + "label": "k43", + "x": 3, + "y": 4.25 + }, + { + "label": "k45", + "x": 5.5, + "y": 4.25, + "w": 1.25 + }, + { + "label": "k46", + "x": 6.75, + "y": 4.25 + }, + { + "label": "k47", + "x": 7.75, + "y": 4.25 + }, + { + "label": "k48", + "x": 8.75, + "y": 4.25 + }, + { + "label": "k49", + "x": 9.75, + "y": 4.25 + }, + { + "label": "k4a", + "x": 10.75, + "y": 4.25 + }, + { + "label": "ka0", + "x": 11.75, + "y": 4.25 + }, + { + "label": "ka1", + "x": 12.75, + "y": 4.25 + }, + { + "label": "ka2", + "x": 13.75, + "y": 4.25 + }, + { + "label": "ka3", + "x": 14.75, + "y": 4.25 + }, + { + "label": "ka4", + "x": 15.75, + "y": 4.25 + }, + { + "label": "ka5", + "x": 16.75, + "y": 4.25, + "w": 1.75 + }, + { + "label": "ka7", + "x": 20, + "y": 4.25 + }, + { + "label": "ka8", + "x": 21, + "y": 4.25 + }, + { + "label": "ka9", + "x": 22, + "y": 4.25 + }, + { + "label": "kaa", + "x": 23, + "y": 4.25, + "h": 2 + }, + { + "label": "k44", + "x": 4.25, + "y": 4.5 + }, + { + "label": "k96", + "x": 18.75, + "y": 4.5 + }, + { + "label": "k51", + "x": 1, + "y": 5.25 + }, + { + "label": "k52", + "x": 2, + "y": 5.25 + }, + { + "label": "k56", + "x": 6.5, + "y": 5.25 + }, + { + "label": "k57", + "x": 7.5, + "y": 5.25 + }, + { + "label": "k58", + "x": 8.5, + "y": 5.25 + }, + { + "label": "kb0", + "x": 9.5, + "y": 5.25, + "w": 4 + }, + { + "label": "kb2", + "x": 13.5, + "y": 5.25 + }, + { + "label": "kb3", + "x": 14.5, + "y": 5.25 + }, + { + "label": "kb4", + "x": 15.5, + "y": 5.25 + }, + { + "label": "kb5", + "x": 16.5, + "y": 5.25 + }, + { + "label": "kb8", + "x": 21, + "y": 5.25 + }, + { + "label": "kb9", + "x": 22, + "y": 5.25 + }, + { + "label": "k53", + "x": 3.25, + "y": 5.5 + }, + { + "label": "k54", + "x": 4.25, + "y": 5.5 + }, + { + "label": "k55", + "x": 5.25, + "y": 5.5 + }, + { + "label": "ka6", + "x": 17.75, + "y": 5.5 + }, + { + "label": "kb6", + "x": 18.75, + "y": 5.5 + }, + { + "label": "kb7", + "x": 19.75, + "y": 5.5 + } + ] } + } } From 34ce1ed016eeac130a05765a6753d62692055bae Mon Sep 17 00:00:00 2001 From: Salt-Peanuts Date: Fri, 27 Apr 2018 18:16:13 -0400 Subject: [PATCH 291/578] Updated tri-layer block in keymap file. (#2827) * Updated info and fixed minor errors * Updated folder name; overdue updates to keymap and readme files Updated folder name; overdue updates to keymap and readme files * Updated tri-layer feature * Revert "Updated tri-layer feature" This reverts commit 59b8b85761740e24f671e10fceea869f06a33ade. * Updated tri-layer on keymap * Fixed typos --- .../keymaps/insertsnideremarks/keymap.c | 22 ++++--------------- .../keymaps/insertsnideremarks/readme.md | 4 ++-- 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/keyboards/kinesis/keymaps/insertsnideremarks/keymap.c b/keyboards/kinesis/keymaps/insertsnideremarks/keymap.c index 8885867ee879..999e76ca3f96 100644 --- a/keyboards/kinesis/keymaps/insertsnideremarks/keymap.c +++ b/keyboards/kinesis/keymaps/insertsnideremarks/keymap.c @@ -571,6 +571,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; +uint32_t layer_state_set_user(uint32_t state) { + return update_tri_layer_state(state, _NUMBERS, _NUMBERS2, _ADJUST); +} + void persistent_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); @@ -658,24 +662,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; - case ENTNS: - if (record->event.pressed) { - layer_on(_NUMBERS); - update_tri_layer(_NUMBERS, _NUMBERS2, _ADJUST); - } else { - layer_off(_NUMBERS); - update_tri_layer(_NUMBERS, _NUMBERS2, _ADJUST); - } - break; - case DELNS: - if (record->event.pressed) { - layer_on(_NUMBERS2); - update_tri_layer(_NUMBERS, _NUMBERS2, _ADJUST); - } else { - layer_off(_NUMBERS2); - update_tri_layer(_NUMBERS, _NUMBERS2, _ADJUST); - } - break; } return true; } \ No newline at end of file diff --git a/keyboards/kinesis/keymaps/insertsnideremarks/readme.md b/keyboards/kinesis/keymaps/insertsnideremarks/readme.md index 1920d4f9b810..b3c573b62592 100644 --- a/keyboards/kinesis/keymaps/insertsnideremarks/readme.md +++ b/keyboards/kinesis/keymaps/insertsnideremarks/readme.md @@ -10,9 +10,9 @@ Changes to the thumb clusters include: * Backspace have been duplicated on both clusters. * The 2u keys serve dual function as momentary layer switchers. -I've largely left the function keys untouched, with the intension of not using them. They are neither easy to use nor reach due to their locations and size, and, prior to Advantage2, particularly terrible rubber domes were used for them. They have since updated the keys with Cherry ML switches on Advantage2, but did not resolve the issues of size or location. Additionally, leaving the function keys unused here makes it easier for me to adapt the keymaps to my other keyboards, most of which do not have physical function keys. +I've largely left the function keys untouched, with the intension of not using them. They are neither easy to use nor reach due to their locations and size, and, prior to Advantage2, particularly terrible rubber domes were used. They have since updated the keys with Cherry ML switches on Advantage2, but did not resolve the issues of size or location. Additionally, leaving the function keys unused here makes it easier for me to adapt the keymaps to my other keyboards, most of which do not have physical function keys. -I use Colemak Mod-DH Matrix as my default layout. There QWERTY and Colemak layouts as well. +I use Colemak Mod-DH Matrix as my default layout. There are QWERTY and regular Colemak layouts as well. Additionally, I've added gaming/vanilla version of Colemak Mod-DH Matrix and QWERTY layouts. These layouts have no access to the Function or Numbers layers, thus no dual-role keys with layer access, and are mainly used for gaming. From 376a384b232022853898e4582e504640a0e78237 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 27 Apr 2018 15:16:42 -0700 Subject: [PATCH 292/578] Fix UT47 matrix (#2824) * Fix UT47 matrix * Use both spots in the matrix for the space bar --- keyboards/ut47/ut47.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/ut47/ut47.h b/keyboards/ut47/ut47.h index b915e8dac0f6..a4507dd34d76 100644 --- a/keyboards/ut47/ut47.h +++ b/keyboards/ut47/ut47.h @@ -24,12 +24,12 @@ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, \ K30, K31, K32, K33, K34, K35, K37, K38, K39, K3a, K3b \ ) \ - { \ + { \ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b }, \ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b }, \ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b }, \ - { K30, K31, K32, K33, K34, KC_NO, K35, K37, K38, K39, K3a, K3b } \ - } + { K30, K31, K32, K33, K34, K35, K35, K37, K38, K39, K3a, K3b } \ + } #define LAYOUT_kc( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \ @@ -41,7 +41,7 @@ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0a, KC_##K0b, \ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1a, KC_##K1b, \ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2a, KC_##K2b, \ - KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_NO,KC_##K35, KC_##K37, KC_##K38, KC_##K39, KC_##K3a, KC_##K3b \ + KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K37, KC_##K38, KC_##K39, KC_##K3a, KC_##K3b \ ) #define LAYOUT_kc_ut47 LAYOUT_kc From 102433d8bc40143060f82ff46b9a5777d41fa245 Mon Sep 17 00:00:00 2001 From: Eric <22215921+ericywl@users.noreply.github.com> Date: Sat, 28 Apr 2018 06:17:10 +0800 Subject: [PATCH 293/578] QMK Configurator Support for HHKB and Staryu (#2823) * added hhkb eric * dz60 and hhkb * editted eric hhkb and dz60 * Added HHKB Config * Removed HHKB Config * Added HHKB Config * Changed the legends on HHKB info.json * Added Tada68 ISO Config and Staryu * Removed Tada68 ISO Config --- keyboards/hhkb/info.json | 16 ++++++++++++++++ keyboards/staryu/info.json | 12 ++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 keyboards/hhkb/info.json create mode 100644 keyboards/staryu/info.json diff --git a/keyboards/hhkb/info.json b/keyboards/hhkb/info.json new file mode 100644 index 000000000000..bce1bfce18b2 --- /dev/null +++ b/keyboards/hhkb/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "hhkb", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "layouts": { + "KEYMAP": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Delete", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Return", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"", "x":1.5, "y":4}, {"label":"", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":6}, {"label":"", "x":10, "y":4, "w":1.5}, {"label":"", "x":11.5, "y":4}] + }, + + "KEYMAP_JP": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"&", "x":6, "y":0}, {"label":"'", "x":7, "y":0}, {"label":"(", "x":8, "y":0}, {"label":")", "x":9, "y":0}, {"label":"", "x":10, "y":0}, {"label":"=", "x":11, "y":0}, {"label":"~", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"BS", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"`", "x":11.5, "y":1}, {"label":"{", "x":12.5, "y":1}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":"+", "x":10.75, "y":2}, {"label":"*", "x":11.75, "y":2}, {"label":"}", "x":12.75, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"_", "x":12, "y":3}, {"label":"\u2191", "x":13, "y":3}, {"label":"Shift", "x":14, "y":3}, {"label":"Fn", "x":0, "y":4}, {"label":"HH", "x":1.25, "y":4}, {"label":"\u2662", "x":2.25, "y":4}, {"label":"", "x":3.25, "y":4}, {"label":"NN", "x":4.25, "y":4}, {"x":5.25, "y":4, "w":2.5}, {"label":"\u25cc", "x":7.75, "y":4}, {"label":"Kana", "x":8.75, "y":4}, {"label":"", "x":9.75, "y":4}, {"label":"Fn", "x":10.75, "y":4}, {"label":"\u2190", "x":12, "y":4}, {"label":"\u2193", "x":13, "y":4}, {"label":"\u2192", "x":14, "y":4}] + } + } +} diff --git a/keyboards/staryu/info.json b/keyboards/staryu/info.json new file mode 100644 index 000000000000..baac7dfc296b --- /dev/null +++ b/keyboards/staryu/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "staryu", + "url": "", + "maintainer": "qmk", + "width": 3, + "height": 2, + "layouts": { + "LAYOUT": { + "layout": [{"x":1, "y":0}, {"x":2, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}] + } + } +} From 0d98822144975c96f93eb5557924282ad981fa24 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Fri, 27 Apr 2018 15:17:39 -0700 Subject: [PATCH 294/578] QMK Configurator Support (#2821) - Change all KEYMAP to LAYOUT - Add info.json - Add QMK_KEYBOARD_H --- keyboards/bfake/bfake.h | 2 +- keyboards/bfake/info.json | 12 ++++++++++++ keyboards/bfake/keymaps/default/keymap.c | 8 ++++---- keyboards/bfake/keymaps/mechmerlin/keymap.c | 10 +++++----- 4 files changed, 22 insertions(+), 10 deletions(-) create mode 100644 keyboards/bfake/info.json diff --git a/keyboards/bfake/bfake.h b/keyboards/bfake/bfake.h index fa5c8ee29845..a5b2d8078a6e 100644 --- a/keyboards/bfake/bfake.h +++ b/keyboards/bfake/bfake.h @@ -20,7 +20,7 @@ along with this program. If not, see . #include "quantum.h" -#define KEYMAP( \ +#define LAYOUT_all( \ K61, K71, K72, K73, K74, K64, K65, K75, K76, K77, K78, K68, K66, K10, K60,\ K11, K01, K02, K03, K04, K14, K15, K05, K06, K07, K08, K18, K16, K20, \ K12, K21, K22, K23, K24, K34, K35, K25, K26, K27, K28, K38, K40, \ diff --git a/keyboards/bfake/info.json b/keyboards/bfake/info.json new file mode 100644 index 000000000000..541d1edaf196 --- /dev/null +++ b/keyboards/bfake/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "b.fake", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + } + } +} diff --git a/keyboards/bfake/keymaps/default/keymap.c b/keyboards/bfake/keymaps/default/keymap.c index 239fdf427f9f..a237f8489e76 100644 --- a/keyboards/bfake/keymaps/default/keymap.c +++ b/keyboards/bfake/keymaps/default/keymap.c @@ -15,24 +15,24 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "bfake.h" +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP( + [0] = LAYOUT_all( KC_GESC, 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, KC_GRV, 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, MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL ), - [1] = KEYMAP( + [1] = LAYOUT_all( KC_GRV, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_DEL, MO(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [2] = KEYMAP( + [2] = LAYOUT_all( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/bfake/keymaps/mechmerlin/keymap.c b/keyboards/bfake/keymaps/mechmerlin/keymap.c index 705339b9939b..35b59e6a42f3 100644 --- a/keyboards/bfake/keymaps/mechmerlin/keymap.c +++ b/keyboards/bfake/keymaps/mechmerlin/keymap.c @@ -15,24 +15,24 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "bfake.h" +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP( + [0] = LAYOUT_all( KC_GESC, 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_NO, KC_BSPC, 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_BSLS, 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_ENT, KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TG(2), KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(1), KC_RALT, KC_RGUI, KC_RCTL ), - [1] = KEYMAP( + [1] = LAYOUT_all( KC_GRV, 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_NO, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [2] = KEYMAP( + [2] = LAYOUT_all( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT ), - [3] = KEYMAP( + [3] = LAYOUT_all( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, From 625a243be86c0fa2bbb8d708e5f6c84bca1863d3 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 27 Apr 2018 15:19:15 -0700 Subject: [PATCH 295/578] QMK Configurator updates for Mechmini v2 (#2820) * Mechmini 2 updates for QMK Configurator * Update info.json --- keyboards/mechmini/v2/info.json | 22 +++++++++++++++++++ .../v2/keymaps/2u_space_ortho/keymap.c | 8 +++---- .../mechmini/v2/keymaps/625_space/keymap.c | 8 +++---- .../mechmini/v2/keymaps/default/keymap.c | 8 +++---- keyboards/mechmini/v2/keymaps/ortho/keymap.c | 8 +++---- .../mechmini/v2/keymaps/split_space/keymap.c | 8 +++---- keyboards/mechmini/v2/v2.h | 8 +++---- 7 files changed, 46 insertions(+), 24 deletions(-) create mode 100644 keyboards/mechmini/v2/info.json diff --git a/keyboards/mechmini/v2/info.json b/keyboards/mechmini/v2/info.json new file mode 100644 index 000000000000..c69771c1f85e --- /dev/null +++ b/keyboards/mechmini/v2/info.json @@ -0,0 +1,22 @@ +{ + "keyboard_name": "MechMini 2", + "url": "https://mechkeys.ca/pages/mechmini-2-guide", + "maintainer": "qmk", + "bootloader": "", + "width": 12, + "height": 4, + "layouts": { + "LAYOUT_ortho": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"Caps", "x":0, "y":3}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"GUI", "x":3, "y":3}, {"label":"MO(1)", "x":4, "y":3}, {"label":"Space", "x":5, "y":3}, {"label":"Space", "x":6, "y":3}, {"label":"MO(2)", "x":7, "y":3}, {"label":"←", "x":8, "y":3}, {"label":"↓", "x":9, "y":3}, {"label":"↑", "x":10, "y":3}, {"label":"→", "x":11, "y":3}] + }, + "LAYOUT_2u_space_ortho": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"Caps", "x":0, "y":3}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"GUI", "x":3, "y":3}, {"label":"MO(1)", "x":4, "y":3}, {"label":"Space", "x":5, "y":3, "w":2}, {"label":"MO(2)", "x":7, "y":3}, {"label":"←", "x":8, "y":3}, {"label":"↓", "x":9, "y":3}, {"label":"↑", "x":10, "y":3}, {"label":"→", "x":11, "y":3}] + }, + "LAYOUT_625_space": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back
Space", "x":11, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":"Enter", "x":10.25, "y":1, "w":1.75}, {"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":"Shift", "x":9.75, "y":2, "w":1.25}, {"label":">", "x":11, "y":2}, {"label":"Control", "x":0, "y":3, "w":1.25}, {"label":"Alt", "x":1.25, "y":3}, {"label":"GUI", "x":2.25, "y":3}, {"x":3.25, "y":3, "w":6.25}, {"label":"MO(1)", "x":9.5, "y":3, "w":1.25}, {"label":"MO(2)", "x":10.75, "y":3, "w":1.25}] + }, + "LAYOUT_split_space": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back
Space", "x":11, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":"Enter", "x":10.25, "y":1, "w":1.75}, {"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":"Shift", "x":9.75, "y":2, "w":1.25}, {"label":">", "x":11, "y":2}, {"label":"Control", "x":0, "y":3, "w":1.25}, {"label":"Alt", "x":1.25, "y":3}, {"label":"GUI", "x":2.25, "y":3, "w":1.25}, {"label":"Space", "x":3.5, "y":3, "w":2.75}, {"label":"Space", "x":6.25, "y":3, "w":2.25}, {"label":"Control", "x":8.5, "y":3, "w":1.25}, {"label":"MO(1)", "x":9.75, "y":3}, {"label":"MO(2)", "x":10.75, "y":3, "w":1.25}] + } + } +} diff --git a/keyboards/mechmini/v2/keymaps/2u_space_ortho/keymap.c b/keyboards/mechmini/v2/keymaps/2u_space_ortho/keymap.c index 1b098333143e..1b21750035e6 100644 --- a/keyboards/mechmini/v2/keymaps/2u_space_ortho/keymap.c +++ b/keyboards/mechmini/v2/keymaps/2u_space_ortho/keymap.c @@ -1,4 +1,4 @@ -#include "mechmini.h" +#include QMK_KEYBOARD_H #define _BL 0 #define _FN1 1 @@ -7,19 +7,19 @@ #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BL] = KEYMAP_2U_SPACE_ORTHO( + [_BL] = LAYOUT_2u_space_ortho( F(0), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), - [_FN1] = KEYMAP_2U_SPACE_ORTHO( + [_FN1] = LAYOUT_2u_space_ortho( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_BSLS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, M(1), M(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), - [_FN2] = KEYMAP_2U_SPACE_ORTHO( + [_FN2] = LAYOUT_2u_space_ortho( KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, KC_TRNS, BL_TOGG, BL_STEP, BL_INC, BL_DEC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_HOME, KC_END, KC_TRNS, diff --git a/keyboards/mechmini/v2/keymaps/625_space/keymap.c b/keyboards/mechmini/v2/keymaps/625_space/keymap.c index 4c9f6011ebcd..60d4d32d12ba 100755 --- a/keyboards/mechmini/v2/keymaps/625_space/keymap.c +++ b/keyboards/mechmini/v2/keymaps/625_space/keymap.c @@ -1,4 +1,4 @@ -#include "mechmini.h" +#include QMK_KEYBOARD_H #define _BL 0 #define _FN1 1 @@ -7,19 +7,19 @@ #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BL] = KEYMAP_625_SPACE( + [_BL] = LAYOUT_625_space( F(0), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_LSFT, KC_DOT, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, MO(1), MO(2)), - [_FN1] = KEYMAP_625_SPACE( + [_FN1] = LAYOUT_625_space( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_TRNS, KC_PGUP, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_TRNS, KC_LSFT, KC_PGDN, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_SLSH, KC_TRNS, KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - [_FN2] = KEYMAP_625_SPACE( + [_FN2] = LAYOUT_625_space( KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RESET, KC_TRNS, BL_TOGG, BL_STEP, BL_INC, BL_DEC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CAPS, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_END, diff --git a/keyboards/mechmini/v2/keymaps/default/keymap.c b/keyboards/mechmini/v2/keymaps/default/keymap.c index f9c792e55638..e35f25ee401e 100755 --- a/keyboards/mechmini/v2/keymaps/default/keymap.c +++ b/keyboards/mechmini/v2/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -#include "mechmini.h" +#include QMK_KEYBOARD_H #define _BL 0 #define _FN1 1 @@ -7,19 +7,19 @@ #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BL] = KEYMAP_SPLIT_SPACE( + [_BL] = LAYOUT_split_space( F(0), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_RSFT, KC_DOT, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_RCTL, MO(1), MO(2)), - [_FN1] = KEYMAP_SPLIT_SPACE( + [_FN1] = LAYOUT_split_space( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_TRNS, KC_PGUP, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_TRNS, KC_LSFT, KC_PGDN, KC_VOLD, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_SLSH, KC_COMM, KC_TRNS, KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - [_FN2] = KEYMAP_SPLIT_SPACE( + [_FN2] = LAYOUT_split_space( KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RESET, KC_TRNS, BL_TOGG, BL_STEP, BL_INC, BL_DEC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CAPS, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_END, diff --git a/keyboards/mechmini/v2/keymaps/ortho/keymap.c b/keyboards/mechmini/v2/keymaps/ortho/keymap.c index fb33e17759ce..3b8fbb168f51 100755 --- a/keyboards/mechmini/v2/keymaps/ortho/keymap.c +++ b/keyboards/mechmini/v2/keymaps/ortho/keymap.c @@ -1,4 +1,4 @@ -#include "mechmini.h" +#include QMK_KEYBOARD_H #define _BL 0 #define _FN1 1 @@ -7,19 +7,19 @@ #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BL] = KEYMAP_ORTHO( + [_BL] = LAYOUT_ortho( F(0), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), - [_FN1] = KEYMAP_ORTHO( + [_FN1] = LAYOUT_ortho( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_BSLS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, M(1), M(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), - [_FN2] = KEYMAP_ORTHO( + [_FN2] = LAYOUT_ortho( KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, KC_TRNS, BL_TOGG, BL_STEP, BL_INC, BL_DEC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_HOME, KC_END, KC_TRNS, diff --git a/keyboards/mechmini/v2/keymaps/split_space/keymap.c b/keyboards/mechmini/v2/keymaps/split_space/keymap.c index f9c792e55638..e35f25ee401e 100755 --- a/keyboards/mechmini/v2/keymaps/split_space/keymap.c +++ b/keyboards/mechmini/v2/keymaps/split_space/keymap.c @@ -1,4 +1,4 @@ -#include "mechmini.h" +#include QMK_KEYBOARD_H #define _BL 0 #define _FN1 1 @@ -7,19 +7,19 @@ #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BL] = KEYMAP_SPLIT_SPACE( + [_BL] = LAYOUT_split_space( F(0), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_RSFT, KC_DOT, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_RCTL, MO(1), MO(2)), - [_FN1] = KEYMAP_SPLIT_SPACE( + [_FN1] = LAYOUT_split_space( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_TRNS, KC_PGUP, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_TRNS, KC_LSFT, KC_PGDN, KC_VOLD, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_SLSH, KC_COMM, KC_TRNS, KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - [_FN2] = KEYMAP_SPLIT_SPACE( + [_FN2] = LAYOUT_split_space( KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RESET, KC_TRNS, BL_TOGG, BL_STEP, BL_INC, BL_DEC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CAPS, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_END, diff --git a/keyboards/mechmini/v2/v2.h b/keyboards/mechmini/v2/v2.h index 5ed9a9c28b7b..67a13abbb5dc 100755 --- a/keyboards/mechmini/v2/v2.h +++ b/keyboards/mechmini/v2/v2.h @@ -18,7 +18,7 @@ #include "../mechmini.h" -#define KEYMAP_ORTHO( \ +#define LAYOUT_ortho( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ @@ -30,7 +30,7 @@ { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 } \ } -#define KEYMAP_625_SPACE( \ +#define LAYOUT_625_space( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K111, \ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ @@ -42,7 +42,7 @@ { K300, K301, K302, KC_NO, KC_NO, KC_NO, K306, KC_NO, KC_NO, KC_NO, K310, K311 } \ } -#define KEYMAP_SPLIT_SPACE( \ +#define LAYOUT_split_space( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K111, \ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ @@ -54,7 +54,7 @@ { K300, K301, K302, KC_NO, K304, KC_NO, KC_NO, K307, KC_NO, K309, K310, K311 } \ } -#define KEYMAP_2U_SPACE_ORTHO( \ +#define LAYOUT_2u_space_ortho( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ From c17d15a305ba68a72593a8e93335d3f0074fb7b7 Mon Sep 17 00:00:00 2001 From: Evan Date: Fri, 27 Apr 2018 15:20:03 -0700 Subject: [PATCH 296/578] Add keymap diagram (#2819) * Add personal Tada68 keymaps * remove uneccessary tada68 folder * recommit with temp name * remove bad folder name * fix bullet list format * rename to fezzant * remove unnecessary config.h file * Add info.json add QMK Configurator .json file * Delete helix_rev_2.json * add diagram to UT47 keymap file * add remaining keymap diagrams for ut47 keymap --- keyboards/ut47/keymaps/default/keymap.c | 52 ++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/keyboards/ut47/keymaps/default/keymap.c b/keyboards/ut47/keymaps/default/keymap.c index a02543dacb85..3f065b615f7c 100644 --- a/keyboards/ut47/keymaps/default/keymap.c +++ b/keyboards/ut47/keymaps/default/keymap.c @@ -29,6 +29,18 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base Layer + * ,-------------------------------------------------------------------------. + * | Esc | Q | W | E | R | T | Y | U | I | O | P |Bspace | + * |-------------------------------------------------------------------------+ + * |Tab/L3| A | S | D | F | G | H | J | K | L | ; | ' | + * |-------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / |Sh/En| + * |-------------------------------------------------------------------------+ + * | Ctrl| Alt | Gui | App | L2 | Space | L1 | Left| Down| Up |Right| + * `-------------------------------------------------------------------------' + */ + LAYOUT( KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, LT3_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, @@ -36,20 +48,56 @@ LAYOUT( KC_LCTL, KC_LALT, KC_LGUI, KC_APP, MO(2), KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), -LAYOUT( + /* FN Layer 1 + * ,-------------------------------------------------------------------------. + * | ` ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Delete| + * |-------------------------------------------------------------------------+ + * | | | | | | | | - | = | [ | ] | \ | + * |-------------------------------------------------------------------------+ + * | | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | | + * |-------------------------------------------------------------------------+ + * | | | |Capsl| | | | Home| PgDn| PgUp| End | + * `-------------------------------------------------------------------------' + */ + +LAYOUT( /* Right */ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELETE, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, _______, _______, _______, _______, KC_CAPS, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END ), -LAYOUT( + /* FN Layer 2 + * ,-------------------------------------------------------------------------. + * | FN6 | FN7 | FN8 | FN9 | FN9 | FN10| FN11| FN12| FN13| FN14| FN15| Delete| + * |-------------------------------------------------------------------------+ + * | | | | | | | | FN17| FN18| FN19| FN20| FN21| + * |-------------------------------------------------------------------------+ + * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | | + * |-------------------------------------------------------------------------+ + * | | | |Capsl| | | | Home| PgDn| PgUp| End | + * `-------------------------------------------------------------------------' + */ + +LAYOUT( /* Left */ KC_FN6, KC_FN7, KC_FN8, KC_FN9, KC_FN10, KC_FN11, KC_FN12, KC_FN13, KC_FN14, KC_FN15, KC_FN16, KC_DELETE, _______, _______, _______, _______, _______, _______, _______, KC_FN17, KC_FN18, KC_FN19, KC_FN20, KC_FN21, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, KC_CAPS, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END ), + /* FN Layer 2 + * ,-------------------------------------------------------------------------. + * | Esc | Calc|Webhm| Mail| Comp| | | | | |PrtSc| | + * |-------------------------------------------------------------------------+ + * | | | | | | | | | | | | | + * |-------------------------------------------------------------------------+ + * | |LEDtg|LEDch| | | | | | | | | | + * |-------------------------------------------------------------------------+ + * | | | | | | | |MousL|MousD|MousU|MousR| + * `-------------------------------------------------------------------------' + */ + LAYOUT( /* Tab */ KC_ESC, KC_CALC, KC_WHOM, KC_MAIL, KC_MYCM, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, From 4afd970dc4345bdae95211d541cca5f203218578 Mon Sep 17 00:00:00 2001 From: Eric <22215921+ericywl@users.noreply.github.com> Date: Sat, 28 Apr 2018 06:44:33 +0800 Subject: [PATCH 297/578] QMK Configurator updates to Tada68 (#2825) * Added Tada68 ISO Config * Fixed missing up-arrow on Tada68 info.json --- keyboards/tada68/info.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/keyboards/tada68/info.json b/keyboards/tada68/info.json index 7d0c77c442af..5fb60b1fb0e7 100644 --- a/keyboards/tada68/info.json +++ b/keyboards/tada68/info.json @@ -7,6 +7,10 @@ "layouts": { "KEYMAP_ANSI": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] + }, + + "KEYMAP_ISO": { + "layout": [{"label":"\u00ac", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"label":"Menu", "x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] } } } From 01a85b780c3cea3ca2f585e547f376a82859712f Mon Sep 17 00:00:00 2001 From: bspsbee <38793669+bspsbee@users.noreply.github.com> Date: Sat, 28 Apr 2018 04:52:15 -1000 Subject: [PATCH 298/578] Add RGB keymap to UT47 (#2826) * Create readme.md * RGB keymap * Update matrix.c Remove serial when not used. --- keyboards/ut47/keymaps/rgb/config.h | 27 +++++++++ keyboards/ut47/keymaps/rgb/keymap.c | 88 ++++++++++++++++++++++++++++ keyboards/ut47/keymaps/rgb/readme.md | 1 + keyboards/ut47/keymaps/rgb/rules.mk | 1 + keyboards/ut47/matrix.c | 8 ++- 5 files changed, 123 insertions(+), 2 deletions(-) create mode 100644 keyboards/ut47/keymaps/rgb/config.h create mode 100644 keyboards/ut47/keymaps/rgb/keymap.c create mode 100644 keyboards/ut47/keymaps/rgb/readme.md create mode 100644 keyboards/ut47/keymaps/rgb/rules.mk diff --git a/keyboards/ut47/keymaps/rgb/config.h b/keyboards/ut47/keymaps/rgb/config.h new file mode 100644 index 000000000000..0eb010a3ae29 --- /dev/null +++ b/keyboards/ut47/keymaps/rgb/config.h @@ -0,0 +1,27 @@ +/* Copyright 2018 Carlos Filoteo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +// place overrides here +#define RGBLIGHT_ANIMATIONS +#define RGB_DI_PIN D3 // The pin the LED strip is connected to +#define RGBLED_NUM 7 // Number of LEDs in your strip + +#endif diff --git a/keyboards/ut47/keymaps/rgb/keymap.c b/keyboards/ut47/keymaps/rgb/keymap.c new file mode 100644 index 000000000000..58d11031ad11 --- /dev/null +++ b/keyboards/ut47/keymaps/rgb/keymap.c @@ -0,0 +1,88 @@ +/* Copyright 2018 Carlos Filoteo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H +#ifdef LED_ENABLE + #include "protocol/serial.h" +#endif + +#define _______ KC_TRNS +#define LT3_TAB LT(3, KC_TAB) +#define MT_RSFT_ENT MT(MOD_RSFT, KC_ENT) + +enum custom_keycodes { + LED_TOG = SAFE_RANGE, + LED_CHG +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + LT3_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT_RSFT_ENT, + KC_LCTL, KC_LALT, KC_LGUI, KC_APP, MO(2), KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELETE, + _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, _______, + _______, _______, _______, KC_CAPS, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END +), + +LAYOUT( + KC_FN6, KC_FN7, KC_FN8, KC_FN9, KC_FN10, KC_FN11, KC_FN12, KC_FN13, KC_FN14, KC_FN15, KC_FN16, KC_DELETE, + _______, _______, _______, _______, _______, _______, _______, KC_FN17, KC_FN18, KC_FN19, KC_FN20, KC_FN21, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, + _______, _______, _______, KC_CAPS, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END +), + +LAYOUT( /* Tab */ + KC_ESC, KC_CALC, KC_WHOM, KC_MAIL, KC_MYCM, _______, _______, _______, _______, _______, KC_PSCR, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R +), +}; + +//LED keymap functions + #ifdef LED_ENABLE +void led_chmode(void) { + serial_send(101); +} + +void led_toggle(void) { + serial_send(100); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch(keycode) { + case LED_TOG: + #ifdef LED_ENABLE + led_toggle(); + #endif + return false; + case LED_CHG: + #ifdef LED_ENABLE + led_chmode(); + #endif + return false; + } + } + return true; +}; +#endif diff --git a/keyboards/ut47/keymaps/rgb/readme.md b/keyboards/ut47/keymaps/rgb/readme.md new file mode 100644 index 000000000000..00076bfc497b --- /dev/null +++ b/keyboards/ut47/keymaps/rgb/readme.md @@ -0,0 +1 @@ +WS2812B LED added and connected to pin D3 as described here: https://www.40percent.club/2018/04/gnap-underglow.html diff --git a/keyboards/ut47/keymaps/rgb/rules.mk b/keyboards/ut47/keymaps/rgb/rules.mk new file mode 100644 index 000000000000..1e3cebb14515 --- /dev/null +++ b/keyboards/ut47/keymaps/rgb/rules.mk @@ -0,0 +1 @@ +RGBLIGHT_ENABLE = yes diff --git a/keyboards/ut47/matrix.c b/keyboards/ut47/matrix.c index 18d420dbbb18..921bc9ed5e7c 100644 --- a/keyboards/ut47/matrix.c +++ b/keyboards/ut47/matrix.c @@ -26,7 +26,9 @@ along with this program. If not, see . #include "debug.h" #include "util.h" #include "matrix.h" -#include "protocol/serial.h" +#ifdef LED_ENABLE + #include "protocol/serial.h" +#endif #ifndef DEBOUNCE @@ -67,8 +69,10 @@ void matrix_init(void) matrix[i] = 0; matrix_debouncing[i] = 0; } - + +#ifdef LED_ENABLE serial_init(); +#endif } uint8_t matrix_scan(void) From 5dc60c06a9f513b177e3f432648265953fa14cd4 Mon Sep 17 00:00:00 2001 From: Pawnerd Date: Sat, 28 Apr 2018 17:06:07 +0200 Subject: [PATCH 299/578] Add knops mini info json and implemented latest QMK standards (#2832) * added info.json to knops mini keypad. * updated the keyboard to follow the latest qmk standards. --- keyboards/knops/mini/info.json | 13 +++++++ keyboards/knops/mini/keymaps/default/keymap.c | 34 +++++++++---------- keyboards/knops/mini/mini.h | 2 +- 3 files changed, 31 insertions(+), 18 deletions(-) create mode 100644 keyboards/knops/mini/info.json diff --git a/keyboards/knops/mini/info.json b/keyboards/knops/mini/info.json new file mode 100644 index 000000000000..88fb88c29aba --- /dev/null +++ b/keyboards/knops/mini/info.json @@ -0,0 +1,13 @@ +{ + "keyboard_name": "Knops Mini", + "url": "http://www.knops.io/knopsmini.html", + "maintainer": "Pawnerd", + "bootloader": "lufa-dfu", + "width": 3, + "height": 2, + "layouts": { + "KEYMAP": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}] + } + } +} \ No newline at end of file diff --git a/keyboards/knops/mini/keymaps/default/keymap.c b/keyboards/knops/mini/keymaps/default/keymap.c index 40714c8a5118..a5a701c88d71 100644 --- a/keyboards/knops/mini/keymaps/default/keymap.c +++ b/keyboards/knops/mini/keymaps/default/keymap.c @@ -1,53 +1,53 @@ -#include "mini.h" +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - KEYMAP( + LAYOUT( LT(3, KC_MSTP), KC_VOLU, KC_MPLY, KC_MPRV, KC_VOLD, KC_MNXT), - KEYMAP( + LAYOUT( LT(3, KC_ESC), M(3), M(4), M(5), M(6), M(7)), - KEYMAP( + LAYOUT( LT(3, KC_1), KC_2, KC_3, KC_4, M(0), M(1)), - KEYMAP( + LAYOUT( KC_TRNS, KC_TRNS, RESET, TO(0), TO(1), TO(2)), - KEYMAP( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/knops/mini/mini.h b/keyboards/knops/mini/mini.h index c9f74711b864..e2d6c546b07d 100644 --- a/keyboards/knops/mini/mini.h +++ b/keyboards/knops/mini/mini.h @@ -22,7 +22,7 @@ // The following is an example using the Planck MIT layout // The first section contains all of the arguments // The second converts the arguments into a two-dimensional array -#define KEYMAP( \ +#define LAYOUT( \ K00, K01, K02, K03, K04, K05 \ ) { \ { K00, K01, K02, K03, K04, K05 }, \ From 3d6119856acf6cdcaca575d285970f336d208794 Mon Sep 17 00:00:00 2001 From: krasmaralde Date: Sat, 28 Apr 2018 17:10:30 +0200 Subject: [PATCH 300/578] Addkeymap/tada fakb (#2830) * edited keymap and fitted for tada68 * edited rules to make mouse work * filled config.h to make mouse cursor move more smooth * added descriptive readme --- keyboards/tada68/keymaps/fakb/config.h | 6 +++ keyboards/tada68/keymaps/fakb/keymap.c | 38 ++++++++++++++++ keyboards/tada68/keymaps/fakb/readme.md | 58 +++++++++++++++++++++++++ keyboards/tada68/keymaps/fakb/rules.mk | 21 +++++++++ 4 files changed, 123 insertions(+) create mode 100644 keyboards/tada68/keymaps/fakb/config.h create mode 100755 keyboards/tada68/keymaps/fakb/keymap.c create mode 100755 keyboards/tada68/keymaps/fakb/readme.md create mode 100644 keyboards/tada68/keymaps/fakb/rules.mk diff --git a/keyboards/tada68/keymaps/fakb/config.h b/keyboards/tada68/keymaps/fakb/config.h new file mode 100644 index 000000000000..b0b5394644b6 --- /dev/null +++ b/keyboards/tada68/keymaps/fakb/config.h @@ -0,0 +1,6 @@ +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_INTERVAL 4 +#define MOUSEKEY_MAX_SPEED 5 +#define MOUSEKEY_TIME_TO_MAX 77 +#define MOUSEKEY_WHEEL_MAX_SPEED 8 +#define MOUSEKEY_WHEEL_TIME_TO_MAX 40 diff --git a/keyboards/tada68/keymaps/fakb/keymap.c b/keyboards/tada68/keymaps/fakb/keymap.c new file mode 100755 index 000000000000..0cdd6a9b6d9c --- /dev/null +++ b/keyboards/tada68/keymaps/fakb/keymap.c @@ -0,0 +1,38 @@ +#include "tada68.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. + +#define _______ KC_TRNS +#define XXXXXXX KC_NO +#define LCTL_MA LCTL_T(KC_UP) +#define LSFT_MA LSFT_T(KC_DOWN) +#define RSFT_MA SFT_T(KC_UP) +#define TABS_MA LT(1,KC_TAB) +#define SPCE_MA LT(2,KC_SPC) +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP_ANSI( + KC_GESC,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,KC_NUBS,\ + TABS_MA,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,_______,\ + LCTL_MA,KC_A ,KC_S ,KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT ,_______,\ + LSFT_MA,KC_Z ,KC_X ,KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, RSFT_MA,MO(1) ,_______,\ + KC_LCTL,KC_LALT,KC_LGUI, SPCE_MA, KC_RGUI,KC_RALT,_______,_______,_______,_______), + +[1] = KEYMAP_ANSI( + KC_PSCR,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_PGUP,KC_PGDN,KC_HOME,KC_END ,KC_PGDN,KC_PGUP,_______,_______,_______,_______,KC_DEL ,_______,\ + KC_CAPS,KC_NUBS,KC_LEFT,KC_UP ,KC_DOWN,KC_RGHT,KC_LEFT,KC_DOWN,KC_UP ,KC_RGHT,_______,_______, _______,_______,\ + _______,_______,BL_TOGG,BL_INC ,BL_DEC ,_______,_______,KC_VOLD,KC_VOLU,KC_MUTE,_______, _______,_______,_______,\ + _______,_______,_______, _______, _______,_______,_______,_______,_______,_______), + +[2] = KEYMAP_ANSI( + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,\ + KC_BTN5,KC_BTN4,KC_BTN3,KC_BTN2,KC_BTN1,KC_HOME,KC_END ,_______,_______,_______,_______,_______,_______,_______,_______,\ + _______,_______,KC_WH_L,KC_WH_U,KC_WH_D,KC_WH_R,KC_MS_L,KC_MS_D,KC_MS_U,KC_MS_R,_______,_______, _______,_______,\ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,\ + _______,_______,_______, _______, _______,_______,_______,_______,_______,_______), + + +}; diff --git a/keyboards/tada68/keymaps/fakb/readme.md b/keyboards/tada68/keymaps/fakb/readme.md new file mode 100755 index 000000000000..563d5bbbaffc --- /dev/null +++ b/keyboards/tada68/keymaps/fakb/readme.md @@ -0,0 +1,58 @@ +# FabulousAnomalyKeyBoard + +This layout features an efficient layout for people without +a mouse. + +## layers + +Layer Base: complete basic keyboard +Layer Fn-Tab: F1-F12, Arrow Keys, Home, End, Backlight, Media +Layer Fn-Space: mouse keys in a vim like manner + +For detailed info check out keymap.c + +## the CTRL key + +It is where you would suspect CAPSLOCK to be. +WHO NEEDS CAPSLOCK ANYWAYS? +For those rare cases you need to shout at somebody in a comment +section you can still do a capslock by using TAB+CTRL + +## SUPER key + +There are two super keys. They are next to the space bar. +The intention is easing the use of tiling window mangers + +## emergency mouse + +Without a mouse you will find yourself in a situation where all +your tiling goodness will just not be able to click onto that +"close ads" button. +This keymap integrates a basic mouse pointer directly into the keyboard. +Mouse is accessible via holding SPACE and tapping keys: +``` +SPACE+ +h Move cursor left +j Move cursor down +k Move cursor up +l Move cursor right + +w Middle Mouse Click +r Right click +e Left click + +s Scroll wheel left +d Scroll wheel down +f Scroll wheel up +g Scroll wheel right +``` + +## shell focused + +Working in a shell the up and down arrow keys are often needed to +look at old commands or reuse some. +When held, the left ctrl and left shift will act as expected, +but when tapped they will become UP and DOWN arrow-keys. + +## krautfriend +The keys <|> are accessible even without a 102nd key diff --git a/keyboards/tada68/keymaps/fakb/rules.mk b/keyboards/tada68/keymaps/fakb/rules.mk new file mode 100644 index 000000000000..54b79fc9d4fb --- /dev/null +++ b/keyboards/tada68/keymaps/fakb/rules.mk @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif From 6f37bd6678d6e27251647f1bea6d7746bdf7c79d Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sat, 28 Apr 2018 02:12:25 -0700 Subject: [PATCH 301/578] Fix Clicky Down code --- quantum/process_keycode/process_clicky.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quantum/process_keycode/process_clicky.c b/quantum/process_keycode/process_clicky.c index 2b9d8a0f76a6..f445751e0f15 100644 --- a/quantum/process_keycode/process_clicky.c +++ b/quantum/process_keycode/process_clicky.c @@ -52,7 +52,7 @@ bool process_clicky(uint16_t keycode, keyrecord_t *record) { clicky_freq = new_freq; } } - if (keycode == CLICKY_TOGGLE && record->event.pressed) { + if (keycode == CLICKY_DOWN && record->event.pressed) { float new_freq = clicky_freq / AUDIO_CLICKY_FREQ_FACTOR; if (new_freq > AUDIO_CLICKY_FREQ_MIN) { clicky_freq = new_freq; From 19aa2c34e859946edae24108fe7df69c949b124e Mon Sep 17 00:00:00 2001 From: Andy Date: Sat, 28 Apr 2018 17:57:53 +0200 Subject: [PATCH 302/578] Add dz60 iso layout with vim-style arrows (#2837) --- .../dz60/keymaps/iso_vim_arrow/README.md | 6 ++ keyboards/dz60/keymaps/iso_vim_arrow/keymap.c | 68 +++++++++++++++++++ keyboards/dz60/keymaps/iso_vim_arrow/rules.mk | 15 ++++ 3 files changed, 89 insertions(+) create mode 100644 keyboards/dz60/keymaps/iso_vim_arrow/README.md create mode 100644 keyboards/dz60/keymaps/iso_vim_arrow/keymap.c create mode 100644 keyboards/dz60/keymaps/iso_vim_arrow/rules.mk diff --git a/keyboards/dz60/keymaps/iso_vim_arrow/README.md b/keyboards/dz60/keymaps/iso_vim_arrow/README.md new file mode 100644 index 000000000000..7e4ea7e6cc18 --- /dev/null +++ b/keyboards/dz60/keymaps/iso_vim_arrow/README.md @@ -0,0 +1,6 @@ +# ISO layout with VIM style arrow cluster + +This layout is ISO-DE and similar to a standard 60 ISO layout. There are vim style arrow keys on the function layer and in the bottom right corner of the main layer. + +![Layout](https://i.imgur.com/Wu8VT43.png) + diff --git a/keyboards/dz60/keymaps/iso_vim_arrow/keymap.c b/keyboards/dz60/keymaps/iso_vim_arrow/keymap.c new file mode 100644 index 000000000000..4cdb505607a9 --- /dev/null +++ b/keyboards/dz60/keymaps/iso_vim_arrow/keymap.c @@ -0,0 +1,68 @@ +#include QMK_KEYBOARD_H + +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* ISO VIM arrow +* ,-----------------------------------------------------------------------------------------. +* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ß | ´ | BSPC | +* |-----------------------------------------------------------------------------------------+ +* | Tab | Q | W | E | R | T | Z | U | I | O | P | P | Ü | * | | +* |-------------------------------------------------------------------------------------| + +* | Layer_1 | A | S | D | F | G | H | J | K | L | Ö | Ä | # |Enter | +* |-----------------------------------------------------------------------------------------+ +* | Shift| < | Y | X | C | V | B | N | M | , | . | . | - | RShift | +* |-----------------------------------------------------------------------------------------+ +* | LCtrl | LGUI | LAlt | Space | RAlt | Left | Down | Up | Right | +* `-----------------------------------------------------------------------------------------' +*/ + LAYOUT( + 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_NO, KC_BSPC, + 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_BSLS, + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT), + + + LAYOUT( + KC_GRV, 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_NO, KC_DEL, + KC_NO, KC_NO, KC_NO, KC_NO, RESET, KC_NO, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_PSCR, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_END, KC_DEL, KC_NO, + KC_LSFT, BL_TOGG, KC_APP, KC_PAUS, KC_INS, KC_NO, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_RSFT, KC_NO, + KC_LCTL, KC_LGUI, KC_LALT, KC_BSPC, KC_BSPC, KC_BSPC, KC_DEL, KC_HOME, KC_PGDN, KC_PGUP, KC_END), + +}; + +enum function_id { + SHIFT_ESC, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +} diff --git a/keyboards/dz60/keymaps/iso_vim_arrow/rules.mk b/keyboards/dz60/keymaps/iso_vim_arrow/rules.mk new file mode 100644 index 000000000000..b5f45d7aa89c --- /dev/null +++ b/keyboards/dz60/keymaps/iso_vim_arrow/rules.mk @@ -0,0 +1,15 @@ +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +AUDIO_ENABLE = no +RGBLIGHT_ENABLE = no +AUTO_SHIFT_ENABLE = no # If the time depressed is greater than or equal to the AUTO_SHIFT_TIMEOUT, then a shifted version of the key is emitted. If the time is less than the AUTO_SHIFT_TIMEOUT time, then the normal state is emitted +TAP_DANCE_ENABLE = no From 3b7b1994cd9e3e61fdee84eff78875135642aa6c Mon Sep 17 00:00:00 2001 From: Mattia Dal Ben Date: Sun, 29 Apr 2018 22:01:33 +0200 Subject: [PATCH 303/578] Redox keyboard code (#2843) * Added Redox keyboard with default keymap (IT layout) * Updated manufacturer url * Applied requested changes --- keyboards/redox/config.h | 23 ++ keyboards/redox/i2c.c | 162 ++++++++ keyboards/redox/i2c.h | 49 +++ keyboards/redox/keymaps/default/config.h | 41 ++ keyboards/redox/keymaps/default/keymap.c | 117 ++++++ keyboards/redox/keymaps/default/readme.md | 1 + keyboards/redox/keymaps/default/rules.mk | 5 + keyboards/redox/matrix.c | 455 ++++++++++++++++++++++ keyboards/redox/readme.md | 25 ++ keyboards/redox/redox.c | 16 + keyboards/redox/redox.h | 41 ++ keyboards/redox/rev1/config.h | 88 +++++ keyboards/redox/rev1/rev1.c | 22 ++ keyboards/redox/rev1/rev1.h | 66 ++++ keyboards/redox/rev1/rules.mk | 1 + keyboards/redox/rules.mk | 80 ++++ keyboards/redox/serial.c | 228 +++++++++++ keyboards/redox/serial.h | 26 ++ keyboards/redox/split_util.c | 86 ++++ keyboards/redox/split_util.h | 21 + 20 files changed, 1553 insertions(+) create mode 100644 keyboards/redox/config.h create mode 100644 keyboards/redox/i2c.c create mode 100644 keyboards/redox/i2c.h create mode 100644 keyboards/redox/keymaps/default/config.h create mode 100644 keyboards/redox/keymaps/default/keymap.c create mode 100644 keyboards/redox/keymaps/default/readme.md create mode 100644 keyboards/redox/keymaps/default/rules.mk create mode 100644 keyboards/redox/matrix.c create mode 100644 keyboards/redox/readme.md create mode 100644 keyboards/redox/redox.c create mode 100644 keyboards/redox/redox.h create mode 100644 keyboards/redox/rev1/config.h create mode 100644 keyboards/redox/rev1/rev1.c create mode 100644 keyboards/redox/rev1/rev1.h create mode 100644 keyboards/redox/rev1/rules.mk create mode 100644 keyboards/redox/rules.mk create mode 100644 keyboards/redox/serial.c create mode 100644 keyboards/redox/serial.h create mode 100644 keyboards/redox/split_util.c create mode 100644 keyboards/redox/split_util.h diff --git a/keyboards/redox/config.h b/keyboards/redox/config.h new file mode 100644 index 000000000000..1083ff5f59ad --- /dev/null +++ b/keyboards/redox/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2018 Mattia Dal Ben + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +#endif diff --git a/keyboards/redox/i2c.c b/keyboards/redox/i2c.c new file mode 100644 index 000000000000..084c890c405f --- /dev/null +++ b/keyboards/redox/i2c.c @@ -0,0 +1,162 @@ +#include +#include +#include +#include +#include +#include +#include "i2c.h" + +#ifdef USE_I2C + +// Limits the amount of we wait for any one i2c transaction. +// Since were running SCL line 100kHz (=> 10μs/bit), and each transactions is +// 9 bits, a single transaction will take around 90μs to complete. +// +// (F_CPU/SCL_CLOCK) => # of μC cycles to transfer a bit +// poll loop takes at least 8 clock cycles to execute +#define I2C_LOOP_TIMEOUT (9+1)*(F_CPU/SCL_CLOCK)/8 + +#define BUFFER_POS_INC() (slave_buffer_pos = (slave_buffer_pos+1)%SLAVE_BUFFER_SIZE) + +volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; + +static volatile uint8_t slave_buffer_pos; +static volatile bool slave_has_register_set = false; + +// Wait for an i2c operation to finish +inline static +void i2c_delay(void) { + uint16_t lim = 0; + while(!(TWCR & (1<10. + // Check datasheets for more info. + TWBR = ((F_CPU/SCL_CLOCK)-16)/2; +} + +// Start a transaction with the given i2c slave address. The direction of the +// transfer is set with I2C_READ and I2C_WRITE. +// returns: 0 => success +// 1 => error +uint8_t i2c_master_start(uint8_t address) { + TWCR = (1< slave ACK +// 1 => slave NACK +uint8_t i2c_master_write(uint8_t data) { + TWDR = data; + TWCR = (1<= SLAVE_BUFFER_SIZE ) { + ack = 0; + slave_buffer_pos = 0; + } + slave_has_register_set = true; + } else { + i2c_slave_buffer[slave_buffer_pos] = TWDR; + BUFFER_POS_INC(); + } + break; + + case TW_ST_SLA_ACK: + case TW_ST_DATA_ACK: + // master has addressed this device as a slave transmitter and is + // requesting data. + TWDR = i2c_slave_buffer[slave_buffer_pos]; + BUFFER_POS_INC(); + break; + + case TW_BUS_ERROR: // something went wrong, reset twi state + TWCR = 0; + default: + break; + } + // Reset everything, so we are ready for the next TWI interrupt + TWCR |= (1< + +#ifndef F_CPU +#define F_CPU 16000000UL +#endif + +#define I2C_READ 1 +#define I2C_WRITE 0 + +#define I2C_ACK 1 +#define I2C_NACK 0 + +#define SLAVE_BUFFER_SIZE 0x10 + +// i2c SCL clock frequency +#define SCL_CLOCK 100000L + +extern volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; + +void i2c_master_init(void); +uint8_t i2c_master_start(uint8_t address); +void i2c_master_stop(void); +uint8_t i2c_master_write(uint8_t data); +uint8_t i2c_master_read(int); +void i2c_reset_state(void); +void i2c_slave_init(uint8_t address); + + +static inline unsigned char i2c_start_read(unsigned char addr) { + return i2c_master_start((addr << 1) | I2C_READ); +} + +static inline unsigned char i2c_start_write(unsigned char addr) { + return i2c_master_start((addr << 1) | I2C_WRITE); +} + +// from SSD1306 scrips +extern unsigned char i2c_rep_start(unsigned char addr); +extern void i2c_start_wait(unsigned char addr); +extern unsigned char i2c_readAck(void); +extern unsigned char i2c_readNak(void); +extern unsigned char i2c_read(unsigned char ack); + +#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak(); + +#endif diff --git a/keyboards/redox/keymaps/default/config.h b/keyboards/redox/keymaps/default/config.h new file mode 100644 index 000000000000..ef1b4d944fa4 --- /dev/null +++ b/keyboards/redox/keymaps/default/config.h @@ -0,0 +1,41 @@ +/* +Copyright 2017 Danny Nguyen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +/* Use I2C or Serial, not both */ + +// #define USE_SERIAL +#define USE_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 14 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +#endif diff --git a/keyboards/redox/keymaps/default/keymap.c b/keyboards/redox/keymaps/default/keymap.c new file mode 100644 index 000000000000..d8fd76d02178 --- /dev/null +++ b/keyboards/redox/keymaps/default/keymap.c @@ -0,0 +1,117 @@ +#include QMK_KEYBOARD_H + +extern keymap_config_t keymap_config; +extern rgblight_config_t rgblight_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _SYMB 1 +#define _NAV 2 +#define _ADJUST 3 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + SYMB, + NAV, + ADJUST, +}; + +// Fillers to make layering more clear +#define KC_ KC_TRNS +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* QWERTY + * ,------------------------------------------------. ,------------------------------------------------. + * |\-Lyr2| 1 | 2 | 3 | 4 | 5 | Lyr1 | | Lyr1 | 6 | 7 | 8 | 9 | 0 |'-Lyr2| + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | è | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | Esc | A | S | D | F | G | PgUp | | End | H | J | K | L | ò | à | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | PgDn | | Home | N | M | , | . | ù |-(Sft)| + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * |<(Gui)| + | - |*(Alt)|/(Ctr)|Bcksp | Del | |Enter |Space |ì(AlG)| Left | Down | Up | Right| + * `------------------------------------------------' `------------------------------------------------' + */ + [_QWERTY] = LAYOUT( + //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. + LT(_NAV, KC_GRV) , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 ,MO(_SYMB), MO(_SYMB), KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,LT(_NAV, KC_MINS), + //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T ,RALT(KC_LBRC), RALT(KC_RBRC) , KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_LBRC, + //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| + KC_ESC , KC_A , KC_S , KC_D , KC_F , KC_G , LT(_ADJUST, KC_PGUP), LT( _ADJUST, KC_END) , KC_H , KC_J , KC_K , KC_L ,KC_SCLN,KC_QUOT, + //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B ,KC_PGDN, KC_HOME , KC_N , KC_M ,KC_COMM,KC_DOT ,KC_BSLASH,RSFT_T(KC_SLSH), + //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| + LGUI_T(KC_NONUS_BSLASH),KC_PPLS,KC_PMNS,LALT_T(KC_PAST),LCTL_T(KC_PSLS),KC_BSPC,KC_DEL , KC_ENT , KC_SPC, RALT_T(KC_EQL),KC_LEFT,KC_DOWN, KC_UP ,KC_RGHT + //`----+----+----+----+----+----+----' `----+----+----+----+----+----+----' + ), + +/* Symbols + * ,------------------------------------------------. ,------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | | ! | @ | { | } | | | | | | | 7 | 8 | 9 | | | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | | # | $ | [ | ] | ~ | | | | | 4 | 5 | 6 | | | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | | % | ^ | ( | ) | ` | | | | | 1 | 2 | 3 | | | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | | | | | | | | | | | 0 | 0 | . | | | + * `------------------------------------------------' `------------------------------------------------' + */ + + [_SYMB] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, + _______, KC_EXLM, RALT(KC_SCLN), RALT(KC_LCBR), RALT(KC_RCBR), KC_TILD, _______, _______, XXXXXXX, KC_KP_7, KC_KP_8, KC_KP_9, XXXXXXX, XXXXXXX, + _______, RALT(KC_QUOT), KC_DLR , RALT(KC_LBRC), RALT(KC_RBRC), RALT(KC_EQL), _______, _______, XXXXXXX, KC_KP_4, KC_KP_5, KC_KP_6, XXXXXXX, XXXXXXX, + _______, KC_PERC, LSFT(KC_EQL) , LSFT(KC_8), LSFT(KC_9), RALT(KC_MINS), _______, _______, XXXXXXX, KC_KP_1, KC_KP_2, KC_KP_3, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_0, KC_KP_0, KC_PDOT, XXXXXXX, XXXXXXX + ), + +/* Navigation + * ,------------------------------------------------. ,------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | | |MOUS_U| |WHEL_U| | | | | | | | | | | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | |MOUS_L|MOUS_D|MOUS_R|WHEL_D| | | | | LEFT | DOWN | UP |RIGHT | | | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | | | | |MOUS_1|MOUS_2| | | | | | | | | | + * `------------------------------------------------' `------------------------------------------------' + */ + [_NAV] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + XXXXXXX, XXXXXXX, KC_MS_U, XXXXXXX, KC_WH_U, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, XXXXXXX, _______, _______, KC_LEFT, KC_DOWN, KC_UP , KC_RIGHT,XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN2, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), + + [_ADJUST] = LAYOUT( + XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, + XXXXXXX, RESET , RGB_M_P, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, XXXXXXX, KC_DEL, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ) + +}; + +#ifdef AUDIO_ENABLE +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +#endif + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + diff --git a/keyboards/redox/keymaps/default/readme.md b/keyboards/redox/keymaps/default/readme.md new file mode 100644 index 000000000000..7f086f6e12b3 --- /dev/null +++ b/keyboards/redox/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for redox \ No newline at end of file diff --git a/keyboards/redox/keymaps/default/rules.mk b/keyboards/redox/keymaps/default/rules.mk new file mode 100644 index 000000000000..1e5761278801 --- /dev/null +++ b/keyboards/redox/keymaps/default/rules.mk @@ -0,0 +1,5 @@ +RGBLIGHT_ENABLE = yes + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/redox/matrix.c b/keyboards/redox/matrix.c new file mode 100644 index 000000000000..20c0f1d34935 --- /dev/null +++ b/keyboards/redox/matrix.c @@ -0,0 +1,455 @@ +/* +Copyright 2018 Mattia Dal Ben + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +/* + * scan matrix + */ +#include +#include +#include +#include "wait.h" +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "split_util.h" +#include "pro_micro.h" +#include "config.h" +#include "timer.h" + +#ifdef USE_I2C +# include "i2c.h" +#else // USE_SERIAL +# include "serial.h" +#endif + +#ifndef DEBOUNCING_DELAY +# define DEBOUNCING_DELAY 5 +#endif + +#if (DEBOUNCING_DELAY > 0) + static uint16_t debouncing_time; + static bool debouncing = false; +#endif + +#if (MATRIX_COLS <= 8) +# define print_matrix_header() print("\nr/c 01234567\n") +# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) +# define matrix_bitpop(i) bitpop(matrix[i]) +# define ROW_SHIFTER ((uint8_t)1) +#else +# error "Currently only supports 8 COLS" +#endif +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +#define ERROR_DISCONNECT_COUNT 5 + +#define ROWS_PER_HAND (MATRIX_ROWS/2) + +static uint8_t error_count = 0; + +static const uint8_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; +static const uint8_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +#if (DIODE_DIRECTION == COL2ROW) + static void init_cols(void); + static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row); + static void unselect_rows(void); + static void select_row(uint8_t row); + static void unselect_row(uint8_t row); +#elif (DIODE_DIRECTION == ROW2COL) + static void init_rows(void); + static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col); + static void unselect_cols(void); + static void unselect_col(uint8_t col); + static void select_col(uint8_t col); +#endif + +__attribute__ ((weak)) +void matrix_init_kb(void) { + matrix_init_user(); +} + +__attribute__ ((weak)) +void matrix_scan_kb(void) { + matrix_scan_user(); +} + +__attribute__ ((weak)) +void matrix_init_user(void) { +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { +} + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +void matrix_init(void) +{ + debug_enable = true; + debug_matrix = true; + debug_mouse = true; + // initialize row and col + unselect_rows(); + init_cols(); + + TX_RX_LED_INIT; + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } + + matrix_init_quantum(); + +} + +uint8_t _matrix_scan(void) +{ + int offset = isLeftHand ? 0 : (ROWS_PER_HAND); +#if (DIODE_DIRECTION == COL2ROW) + // Set row, read cols + for (uint8_t current_row = 0; current_row < ROWS_PER_HAND; current_row++) { +# if (DEBOUNCING_DELAY > 0) + bool matrix_changed = read_cols_on_row(matrix_debouncing+offset, current_row); + + if (matrix_changed) { + debouncing = true; + debouncing_time = timer_read(); + PORTD ^= (1 << 2); + } + +# else + read_cols_on_row(matrix+offset, current_row); +# endif + + } + +#elif (DIODE_DIRECTION == ROW2COL) + // Set col, read rows + for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) { +# if (DEBOUNCING_DELAY > 0) + bool matrix_changed = read_rows_on_col(matrix_debouncing+offset, current_col); + if (matrix_changed) { + debouncing = true; + debouncing_time = timer_read(); + } +# else + read_rows_on_col(matrix+offset, current_col); +# endif + + } +#endif + +# if (DEBOUNCING_DELAY > 0) + if (debouncing && (timer_elapsed(debouncing_time) > DEBOUNCING_DELAY)) { + for (uint8_t i = 0; i < ROWS_PER_HAND; i++) { + matrix[i+offset] = matrix_debouncing[i+offset]; + } + debouncing = false; + } +# endif + + return 1; +} + +#ifdef USE_I2C + +// Get rows from other half over i2c +int i2c_transaction(void) { + int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; + + int err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_WRITE); + if (err) goto i2c_error; + + // start of matrix stored at 0x00 + err = i2c_master_write(0x00); + if (err) goto i2c_error; + + // Start read + err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_READ); + if (err) goto i2c_error; + + if (!err) { + int i; + for (i = 0; i < ROWS_PER_HAND-1; ++i) { + matrix[slaveOffset+i] = i2c_master_read(I2C_ACK); + } + matrix[slaveOffset+i] = i2c_master_read(I2C_NACK); + i2c_master_stop(); + } else { +i2c_error: // the cable is disconnceted, or something else went wrong + i2c_reset_state(); + return err; + } + + return 0; +} + +#else // USE_SERIAL + +int serial_transaction(void) { + int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; + + if (serial_update_buffers()) { + return 1; + } + + for (int i = 0; i < ROWS_PER_HAND; ++i) { + matrix[slaveOffset+i] = serial_slave_buffer[i]; + } + return 0; +} +#endif + +uint8_t matrix_scan(void) +{ + uint8_t ret = _matrix_scan(); + +#ifdef USE_I2C + if( i2c_transaction() ) { +#else // USE_SERIAL + if( serial_transaction() ) { +#endif + // turn on the indicator led when halves are disconnected + TXLED1; + + error_count++; + + if (error_count > ERROR_DISCONNECT_COUNT) { + // reset other half if disconnected + int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; + for (int i = 0; i < ROWS_PER_HAND; ++i) { + matrix[slaveOffset+i] = 0; + } + } + } else { + // turn off the indicator led on no error + TXLED0; + error_count = 0; + } + matrix_scan_quantum(); + return ret; +} + +void matrix_slave_scan(void) { + _matrix_scan(); + + int offset = (isLeftHand) ? 0 : ROWS_PER_HAND; + +#ifdef USE_I2C + for (int i = 0; i < ROWS_PER_HAND; ++i) { + i2c_slave_buffer[i] = matrix[offset+i]; + } +#else // USE_SERIAL + for (int i = 0; i < ROWS_PER_HAND; ++i) { + serial_slave_buffer[i] = matrix[offset+i]; + } +#endif +} + +bool matrix_is_modified(void) +{ + if (debouncing) return false; + return true; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1<> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI + } +} + +static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) +{ + // Store last value of row prior to reading + matrix_row_t last_row_value = current_matrix[current_row]; + + // Clear data in matrix row + current_matrix[current_row] = 0; + + // Select row and wait for row selecton to stabilize + select_row(current_row); + wait_us(30); + + // For each col... + for(uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) { + + // Select the col pin to read (active low) + uint8_t pin = col_pins[col_index]; + uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); + + // Populate the matrix row with the state of the col pin + current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + } + + // Unselect row + unselect_row(current_row); + + return (last_row_value != current_matrix[current_row]); +} + +static void select_row(uint8_t row) +{ + uint8_t pin = row_pins[row]; + _SFR_IO8((pin >> 4) + 1) |= _BV(pin & 0xF); // OUT + _SFR_IO8((pin >> 4) + 2) &= ~_BV(pin & 0xF); // LOW +} + +static void unselect_row(uint8_t row) +{ + uint8_t pin = row_pins[row]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI +} + +static void unselect_rows(void) +{ + for(uint8_t x = 0; x < ROWS_PER_HAND; x++) { + uint8_t pin = row_pins[x]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI + } +} + +#elif (DIODE_DIRECTION == ROW2COL) + +static void init_rows(void) +{ + for(uint8_t x = 0; x < ROWS_PER_HAND; x++) { + uint8_t pin = row_pins[x]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI + } +} + +static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) +{ + bool matrix_changed = false; + + // Select col and wait for col selecton to stabilize + select_col(current_col); + wait_us(30); + + // For each row... + for(uint8_t row_index = 0; row_index < ROWS_PER_HAND; row_index++) + { + + // Store last value of row prior to reading + matrix_row_t last_row_value = current_matrix[row_index]; + + // Check row pin state + if ((_SFR_IO8(row_pins[row_index] >> 4) & _BV(row_pins[row_index] & 0xF)) == 0) + { + // Pin LO, set col bit + current_matrix[row_index] |= (ROW_SHIFTER << current_col); + } + else + { + // Pin HI, clear col bit + current_matrix[row_index] &= ~(ROW_SHIFTER << current_col); + } + + // Determine if the matrix changed state + if ((last_row_value != current_matrix[row_index]) && !(matrix_changed)) + { + matrix_changed = true; + } + } + + // Unselect col + unselect_col(current_col); + + return matrix_changed; +} + +static void select_col(uint8_t col) +{ + uint8_t pin = col_pins[col]; + _SFR_IO8((pin >> 4) + 1) |= _BV(pin & 0xF); // OUT + _SFR_IO8((pin >> 4) + 2) &= ~_BV(pin & 0xF); // LOW +} + +static void unselect_col(uint8_t col) +{ + uint8_t pin = col_pins[col]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI +} + +static void unselect_cols(void) +{ + for(uint8_t x = 0; x < MATRIX_COLS; x++) { + uint8_t pin = col_pins[x]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI + } +} + +#endif diff --git a/keyboards/redox/readme.md b/keyboards/redox/readme.md new file mode 100644 index 000000000000..6e1d980a7ae0 --- /dev/null +++ b/keyboards/redox/readme.md @@ -0,0 +1,25 @@ +# The Redox keyboard + +

+Redox logo +

+ +

+Redox PCB rev1.0 +

+ +**Redox**: the **R**educed **E**rgo**dox** project. More information and building instruction [here](https://github.com/mattdibi/redox-keyboard). + +- Keyboard Maintainer: [Mattia Dal Ben](https://github.com/mattdibi) +- Hardware Supported: Redox PCB rev1.0 w/ Pro Micro +- Hardware Availability: [Falbatech](https://falba.tech/product-category/keyboard-parts/redox-parts/) + +Make example for this keyboard (after setting up your build environment): + + make redox/rev1:default + +Example of flashing this keyboard: + + make redox/rev1:default:avrdude + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/redox/redox.c b/keyboards/redox/redox.c new file mode 100644 index 000000000000..7fa3545a47cb --- /dev/null +++ b/keyboards/redox/redox.c @@ -0,0 +1,16 @@ +/* Copyright 2017 REPLACE_WITH_YOUR_NAME + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "redox.h" diff --git a/keyboards/redox/redox.h b/keyboards/redox/redox.h new file mode 100644 index 000000000000..73f5ab85aea1 --- /dev/null +++ b/keyboards/redox/redox.h @@ -0,0 +1,41 @@ +/* Copyright 2017 REPLACE_WITH_YOUR_NAME + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#ifndef REDOX_H +#define REDOX_H + +#ifdef KEYBOARD_redox_rev1 + #include "rev1.h" +#endif + +// Used to create a keymap using only KC_ prefixed keys +#define LAYOUT_kc( \ + L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ + L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \ + L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \ + L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \ + L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \ + ) \ + KEYMAP( \ + KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##L06, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, KC_##R06, \ + KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##L16, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, KC_##R16, \ + KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##L26, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, KC_##R26, \ + KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##L36, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35, KC_##R36, \ + KC_##L40, KC_##L41, KC_##L42, KC_##L43, KC_##L44, KC_##L45, KC_##L46, KC_##R40, KC_##R41, KC_##R42, KC_##R43, KC_##R44, KC_##R45, KC_##R46 \ + ) + +#include "quantum.h" + +#endif diff --git a/keyboards/redox/rev1/config.h b/keyboards/redox/rev1/config.h new file mode 100644 index 000000000000..f8041f235674 --- /dev/null +++ b/keyboards/redox/rev1/config.h @@ -0,0 +1,88 @@ +/* +Copyright 2018 Mattia Dal Ben + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef REV1_CONFIG_H +#define REV1_CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0100 +#define MANUFACTURER Falbatech +#define PRODUCT The Redox Keyboard +#define DESCRIPTION Split Ergodox-like 5x7 custom keyboard + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 10 +#define MATRIX_COLS 7 + +// wiring of each half +#define MATRIX_ROW_PINS { D4, D7, E6, B4, B5 } +#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2, B6 } +// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5} //uncomment this line and comment line above if you need to reverse left-to-right key order + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +// #define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D3 +#define RGBLIGHT_TIMER +#define RGBLED_NUM 14 // Number of LEDs +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/redox/rev1/rev1.c b/keyboards/redox/rev1/rev1.c new file mode 100644 index 000000000000..2eb7c7c0e835 --- /dev/null +++ b/keyboards/redox/rev1/rev1.c @@ -0,0 +1,22 @@ +#include "redox.h" + + +#ifdef SSD1306OLED +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + led_set_user(usb_led); +} +#endif + +void matrix_init_kb(void) { + + // // green led on + // DDRD |= (1<<5); + // PORTD &= ~(1<<5); + + // // orange led on + // DDRB |= (1<<0); + // PORTB &= ~(1<<0); + + matrix_init_user(); +}; diff --git a/keyboards/redox/rev1/rev1.h b/keyboards/redox/rev1/rev1.h new file mode 100644 index 000000000000..be62247500b8 --- /dev/null +++ b/keyboards/redox/rev1/rev1.h @@ -0,0 +1,66 @@ +#ifndef REV1_H +#define REV1_H + +#include "../redox.h" + +//void promicro_bootloader_jmp(bool program); +#include "quantum.h" + + +#ifdef USE_I2C +#include +#ifdef __AVR__ + #include + #include +#endif +#endif + +//void promicro_bootloader_jmp(bool program); + +#ifndef FLIP_HALF +// Standard Keymap +// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left) +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ + L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \ + L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \ + L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \ + L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05, L06 }, \ + { L10, L11, L12, L13, L14, L15, L16 }, \ + { L20, L21, L22, L23, L24, L25, L26 }, \ + { L30, L31, L32, L33, L34, L35, L36 }, \ + { L40, L41, L42, L43, L44, L45, L46 }, \ + { R06, R05, R04, R03, R02, R01, R00 }, \ + { R16, R15, R14, R13, R12, R11, R10 }, \ + { R26, R25, R24, R23, R22, R21, R20 }, \ + { R36, R35, R34, R33, R32, R31, R30 }, \ + { R46, R45, R44, R43, R42, R41, R40 } \ + } +#else +// Keymap with right side flipped +// (TRRS jack on both halves are to the right) +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ + L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \ + L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \ + L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \ + L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05, L06 }, \ + { L10, L11, L12, L13, L14, L15, L16 }, \ + { L20, L21, L22, L23, L24, L25, L26 }, \ + { L30, L31, L32, L33, L34, L35, L36 }, \ + { L40, L41, L42, L43, L44, L45, L46 }, \ + { R00, R01, R02, R03, R04, R05, R06 }, \ + { R10, R11, R12, R13, R14, R15, R16 }, \ + { R20, R21, R22, R23, R24, R25, R26 }, \ + { R30, R31, R32, R33, R34, R35, R36 }, \ + { R40, R41, R42, R43, R44, R45, R46 } \ + } +#endif + +#endif diff --git a/keyboards/redox/rev1/rules.mk b/keyboards/redox/rev1/rules.mk new file mode 100644 index 000000000000..f845616741c2 --- /dev/null +++ b/keyboards/redox/rev1/rules.mk @@ -0,0 +1 @@ +BACKLIGHT_ENABLE = no \ No newline at end of file diff --git a/keyboards/redox/rules.mk b/keyboards/redox/rules.mk new file mode 100644 index 000000000000..3e79bf1fe9d4 --- /dev/null +++ b/keyboards/redox/rules.mk @@ -0,0 +1,80 @@ +SRC += matrix.c \ + i2c.c \ + split_util.c \ + serial.c + +# MCU name +#MCU = at90usb1286 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SUBPROJECT_rev1 = yes +USE_I2C = yes + +CUSTOM_MATRIX = yes + +DEFAULT_FOLDER = redox/rev1 diff --git a/keyboards/redox/serial.c b/keyboards/redox/serial.c new file mode 100644 index 000000000000..6faed09ce077 --- /dev/null +++ b/keyboards/redox/serial.c @@ -0,0 +1,228 @@ +/* + * WARNING: be careful changing this code, it is very timing dependent + */ + +#ifndef F_CPU +#define F_CPU 16000000 +#endif + +#include +#include +#include +#include +#include "serial.h" + +#ifdef USE_SERIAL + +// Serial pulse period in microseconds. Its probably a bad idea to lower this +// value. +#define SERIAL_DELAY 24 + +uint8_t volatile serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH] = {0}; +uint8_t volatile serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH] = {0}; + +#define SLAVE_DATA_CORRUPT (1<<0) +volatile uint8_t status = 0; + +inline static +void serial_delay(void) { + _delay_us(SERIAL_DELAY); +} + +inline static +void serial_output(void) { + SERIAL_PIN_DDR |= SERIAL_PIN_MASK; +} + +// make the serial pin an input with pull-up resistor +inline static +void serial_input(void) { + SERIAL_PIN_DDR &= ~SERIAL_PIN_MASK; + SERIAL_PIN_PORT |= SERIAL_PIN_MASK; +} + +inline static +uint8_t serial_read_pin(void) { + return !!(SERIAL_PIN_INPUT & SERIAL_PIN_MASK); +} + +inline static +void serial_low(void) { + SERIAL_PIN_PORT &= ~SERIAL_PIN_MASK; +} + +inline static +void serial_high(void) { + SERIAL_PIN_PORT |= SERIAL_PIN_MASK; +} + +void serial_master_init(void) { + serial_output(); + serial_high(); +} + +void serial_slave_init(void) { + serial_input(); + + // Enable INT0 + EIMSK |= _BV(INT0); + // Trigger on falling edge of INT0 + EICRA &= ~(_BV(ISC00) | _BV(ISC01)); +} + +// Used by the master to synchronize timing with the slave. +static +void sync_recv(void) { + serial_input(); + // This shouldn't hang if the slave disconnects because the + // serial line will float to high if the slave does disconnect. + while (!serial_read_pin()); + serial_delay(); +} + +// Used by the slave to send a synchronization signal to the master. +static +void sync_send(void) { + serial_output(); + + serial_low(); + serial_delay(); + + serial_high(); +} + +// Reads a byte from the serial line +static +uint8_t serial_read_byte(void) { + uint8_t byte = 0; + serial_input(); + for ( uint8_t i = 0; i < 8; ++i) { + byte = (byte << 1) | serial_read_pin(); + serial_delay(); + _delay_us(1); + } + + return byte; +} + +// Sends a byte with MSB ordering +static +void serial_write_byte(uint8_t data) { + uint8_t b = 8; + serial_output(); + while( b-- ) { + if(data & (1 << b)) { + serial_high(); + } else { + serial_low(); + } + serial_delay(); + } +} + +// interrupt handle to be used by the slave device +ISR(SERIAL_PIN_INTERRUPT) { + sync_send(); + + uint8_t checksum = 0; + for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) { + serial_write_byte(serial_slave_buffer[i]); + sync_send(); + checksum += serial_slave_buffer[i]; + } + serial_write_byte(checksum); + sync_send(); + + // wait for the sync to finish sending + serial_delay(); + + // read the middle of pulses + _delay_us(SERIAL_DELAY/2); + + uint8_t checksum_computed = 0; + for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) { + serial_master_buffer[i] = serial_read_byte(); + sync_send(); + checksum_computed += serial_master_buffer[i]; + } + uint8_t checksum_received = serial_read_byte(); + sync_send(); + + serial_input(); // end transaction + + if ( checksum_computed != checksum_received ) { + status |= SLAVE_DATA_CORRUPT; + } else { + status &= ~SLAVE_DATA_CORRUPT; + } +} + +inline +bool serial_slave_DATA_CORRUPT(void) { + return status & SLAVE_DATA_CORRUPT; +} + +// Copies the serial_slave_buffer to the master and sends the +// serial_master_buffer to the slave. +// +// Returns: +// 0 => no error +// 1 => slave did not respond +int serial_update_buffers(void) { + // this code is very time dependent, so we need to disable interrupts + cli(); + + // signal to the slave that we want to start a transaction + serial_output(); + serial_low(); + _delay_us(1); + + // wait for the slaves response + serial_input(); + serial_high(); + _delay_us(SERIAL_DELAY); + + // check if the slave is present + if (serial_read_pin()) { + // slave failed to pull the line low, assume not present + sei(); + return 1; + } + + // if the slave is present syncronize with it + sync_recv(); + + uint8_t checksum_computed = 0; + // receive data from the slave + for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) { + serial_slave_buffer[i] = serial_read_byte(); + sync_recv(); + checksum_computed += serial_slave_buffer[i]; + } + uint8_t checksum_received = serial_read_byte(); + sync_recv(); + + if (checksum_computed != checksum_received) { + sei(); + return 1; + } + + uint8_t checksum = 0; + // send data to the slave + for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) { + serial_write_byte(serial_master_buffer[i]); + sync_recv(); + checksum += serial_master_buffer[i]; + } + serial_write_byte(checksum); + sync_recv(); + + // always, release the line when not in use + serial_output(); + serial_high(); + + sei(); + return 0; +} + +#endif diff --git a/keyboards/redox/serial.h b/keyboards/redox/serial.h new file mode 100644 index 000000000000..15fe4db7b4c6 --- /dev/null +++ b/keyboards/redox/serial.h @@ -0,0 +1,26 @@ +#ifndef MY_SERIAL_H +#define MY_SERIAL_H + +#include "config.h" +#include + +/* TODO: some defines for interrupt setup */ +#define SERIAL_PIN_DDR DDRD +#define SERIAL_PIN_PORT PORTD +#define SERIAL_PIN_INPUT PIND +#define SERIAL_PIN_MASK _BV(PD0) +#define SERIAL_PIN_INTERRUPT INT0_vect + +#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2 +#define SERIAL_MASTER_BUFFER_LENGTH 1 + +// Buffers for master - slave communication +extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH]; +extern volatile uint8_t serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH]; + +void serial_master_init(void); +void serial_slave_init(void); +int serial_update_buffers(void); +bool serial_slave_data_corrupt(void); + +#endif diff --git a/keyboards/redox/split_util.c b/keyboards/redox/split_util.c new file mode 100644 index 000000000000..346cbc908949 --- /dev/null +++ b/keyboards/redox/split_util.c @@ -0,0 +1,86 @@ +#include +#include +#include +#include +#include +#include +#include "split_util.h" +#include "matrix.h" +#include "keyboard.h" +#include "config.h" +#include "timer.h" + +#ifdef USE_I2C +# include "i2c.h" +#else +# include "serial.h" +#endif + +volatile bool isLeftHand = true; + +static void setup_handedness(void) { + #ifdef EE_HANDS + isLeftHand = eeprom_read_byte(EECONFIG_HANDEDNESS); + #else + // I2C_MASTER_RIGHT is deprecated, use MASTER_RIGHT instead, since this works for both serial and i2c + #if defined(I2C_MASTER_RIGHT) || defined(MASTER_RIGHT) + isLeftHand = !has_usb(); + #else + isLeftHand = has_usb(); + #endif + #endif +} + +static void keyboard_master_setup(void) { +#ifdef USE_I2C + i2c_master_init(); +#ifdef SSD1306OLED + matrix_master_OLED_init (); +#endif +#else + serial_master_init(); +#endif +} + +static void keyboard_slave_setup(void) { + timer_init(); +#ifdef USE_I2C + i2c_slave_init(SLAVE_I2C_ADDRESS); +#else + serial_slave_init(); +#endif +} + +bool has_usb(void) { + USBCON |= (1 << OTGPADE); //enables VBUS pad + _delay_us(5); + return (USBSTA & (1< +#include "eeconfig.h" + + +#define SLAVE_I2C_ADDRESS 0x32 + +extern volatile bool isLeftHand; + +// slave version of matix scan, defined in matrix.c +void matrix_slave_scan(void); + +void split_keyboard_setup(void); +bool has_usb(void); +void keyboard_slave_loop(void); + +void matrix_master_OLED_init (void); + +#endif From 7216fd0f47bb41d0a49432095767aef6ead33da2 Mon Sep 17 00:00:00 2001 From: zer09 Date: Mon, 30 Apr 2018 04:02:37 +0800 Subject: [PATCH 304/578] My userspace and lets_split keymap (#2842) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * copied lets_slit to splinter * initial splinter layout * remove unused keymaps * implemented second half of the keyboard * initial definition of tap dance * the tap dance is working now tap dance for right hand 4c 2r hold - shift single tap - n double tap - ñ triple tap - Ñ * clear the keymap.c * put the tap state on to array * the n tilde tap dance should produce right shift if hold * add esc grv tap dance * remove the defined SS_LSFT on tap_dance.h because it was added on the quantum.h * minor cleanup for the keymap * use the X_* on tap dance * added super alt tap dance * use the NO_TAP on tap dance reset * allow track what rows and cols pressed * added the RGUI_ALT * keymap arrangement * use i2c * initial rgb * layer colors * initial rgb pressed key * set the layers led * SUCCESS!!! * cleaning * improve shifted layer * led brightness * initial caps rainbow * rename SET_LED_RGB to SET_LED_RGB_HEX * clean the SET_LED_RGB_HEX and added SET_LED_RGB * clean format * caps lock rainbow * rename key_led to set_key_led * caps lock rainbow enhanced * make varibiables static * change back the loop max value to 360 for the rainbow * add scroll lock to the rainbow led * fix pos calculation of right hand board * add ative keys and make rainbow color can override by key press * remove the TOTAL_MATRIX_POINTS * some improvments for the rgb * call the rgblight_set on the process_record_user * some enhancement for the leds * pass the dim value to set_layer_led and limit the brightness on _VL set the brightness to 2 if the dim value is less than 2 because their is not enought power for the leds. * remove the rgb steps on the config * use the non rev config * remove all the revisions * favor i2c instead of serial and remove all the ref for the serial * clang formatting * allow to save to eeprom the brightness value * add bootloader caterina this will enable soft reset key * initial commit for the userspace * added my own keymap for splinter * first working userspace * move splinter to handwired keyboards * handwired splinter default keymap * move some config to my keymap * cleanup some headers on the keymap * move the EECONFIG_RGB_DIM to the user space * I fix remove the GUI on SPC and ENT * remove the default include on tap_dance.c * add lights.c and refactoring * fix wrong source for led index * seperate the variable on set_layer_led for readabilty. * set the usb max power consumption to 50 * fix led lighting * add new enums for tap dance * use romeve path avr on eeprom.h * fix wrong spelling on TP names * changed the tap dance * allow to set rainbow on some pressed key * add reset key * fix error on matrix.c if ROW2COL is used * add extraflags -flto * See e2352d4 * Got no love from i2c, serial to the rescue * Fix the led will lit up to color red after boot * Trial if the power can handle yellow color at full * Add comment * Use EE_HANDS * add config.h in the use space * KC_N on BL should wrap in SFT_T * See d13567d, put it back but increase 1 level * Fix led soldering mistake * set the tapping_term to 100 * Use TT for the changing the layer * Remove the changing space to enter and vice version on BL and UL * Increate the tapping term * Use tap dance on changing layer * Add assorted layer * propery way to tapdance * Remove DA_EGRV This also fix the wrong placement of the reset and dance lspr should register the KC_LGUI on finished not unregistered. * Remove the media control to the up and down layer * Remove the interrupted state of the tap dance * swapt the space and enter on to th caps * Shorthand * Keymap update * My keymap for lets_split * cleaning --- keyboards/lets_split/keymaps/zer09/config.h | 59 ++++++ keyboards/lets_split/keymaps/zer09/keymap.c | 38 ++++ keyboards/lets_split/keymaps/zer09/keymap.h | 32 ++++ keyboards/lets_split/keymaps/zer09/rules.mk | 6 + users/zer09/config.h | 32 ++++ users/zer09/lights.c | 189 ++++++++++++++++++++ users/zer09/lights.h | 45 +++++ users/zer09/rules.mk | 2 + users/zer09/tap_dance.c | 182 +++++++++++++++++++ users/zer09/tap_dance.h | 55 ++++++ users/zer09/zer09.c | 88 +++++++++ users/zer09/zer09.h | 18 ++ 12 files changed, 746 insertions(+) create mode 100644 keyboards/lets_split/keymaps/zer09/config.h create mode 100644 keyboards/lets_split/keymaps/zer09/keymap.c create mode 100644 keyboards/lets_split/keymaps/zer09/keymap.h create mode 100644 keyboards/lets_split/keymaps/zer09/rules.mk create mode 100644 users/zer09/config.h create mode 100644 users/zer09/lights.c create mode 100644 users/zer09/lights.h create mode 100644 users/zer09/rules.mk create mode 100644 users/zer09/tap_dance.c create mode 100644 users/zer09/tap_dance.h create mode 100644 users/zer09/zer09.c create mode 100644 users/zer09/zer09.h diff --git a/keyboards/lets_split/keymaps/zer09/config.h b/keyboards/lets_split/keymaps/zer09/config.h new file mode 100644 index 000000000000..73438d8a9391 --- /dev/null +++ b/keyboards/lets_split/keymaps/zer09/config.h @@ -0,0 +1,59 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +/* key matrix size */ +/* Rows are doubled-up */ +#undef MATRIX_ROWS +#undef MATRIX_COLS +#define MATRIX_ROWS 10 +#define MATRIX_COLS 5 + +#undef MATRIX_ROW_PINS +#undef MATRIX_COL_PINS +#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 } +#define MATRIX_COL_PINS { F7, B1, B3, B2, B6 } + +#define CATERINA_BOOTLOADER +#define USB_MAX_POWER_CONSUMPTION 50 + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ + +/* #define MASTER_LEFT */ +// #define MASTER_RIGHT +#define EE_HANDS + +/* ws2812 RGB LED */ +#undef RGBLED_NUM +#define RGB_DI_PIN D3 +#define RGBLIGHT_TIMER +#define RGBLED_NUM 50 +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD +#endif diff --git a/keyboards/lets_split/keymaps/zer09/keymap.c b/keyboards/lets_split/keymaps/zer09/keymap.c new file mode 100644 index 000000000000..8d0eaf141163 --- /dev/null +++ b/keyboards/lets_split/keymaps/zer09/keymap.c @@ -0,0 +1,38 @@ +#include "keymap.h" + +extern keymap_config_t keymap_config; + +#define _baseLayer LAYOUT( \ + KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, /**/KC_F, KC_G, KC_C, KC_R, KC_L, \ + CTL_T(KC_A), SFT_T(KC_O), ALT_T(KC_E), KC_U, KC_I, /**/KC_D, KC_H, ALT_T(KC_T), SFT_T(KC_N), CTL_T(KC_S), \ + KC_SCOLON, KC_Q, KC_J, KC_K, KC_X, /**/KC_B, KC_M, KC_W, KC_V, KC_Z, \ + TD(DA_UPLY), MO(_VL), KC_TAB, KC_BSPACE, KC_ESC, /**/KC_INS, KC_HOME, KC_PGUP, MO(_VL), TD(DA_UPLY), \ + TD(DA_DWLY), TD(DA_LCTL), KC_SPC, TD(DA_LSPR), LSFT_T(KC_CAPS),/**/SFT_T(KC_CAPS), TD(DA_RALT), KC_ENT, TD(DA_RCTL), TD(DA_DWLY)) + +#define _upLayer LAYOUT( \ + KC_4, KC_5, KC_6, _______, _______,/**/ _______, KC_RBRC, _______, _______, _______, \ + LCTL_T(KC_1), LSFT_T(KC_2), LALT_T(KC_3), _______, _______,/**/ KC_LBRC, KC_BSLS, _______, _______, _______, \ + KC_7, KC_8, KC_9, KC_0, KC_GRV, /**/ KC_SLSH, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______,/**/ KC_DEL, KC_END, KC_PGDN, _______, _______, \ + _______, _______, _______, _______, _______,/**/ _______, _______, _______, _______, _______) + +#define _downLayer LAYOUT( \ + KC_F4, KC_F5, KC_F6, KC_F12, _______,/**/ _______, KC_RPRN, _______, _______, _______, \ + LCTL_T(KC_F1), LSFT_T(KC_F2), LALT_T(KC_F3), KC_F11, _______,/**/ KC_LPRN, KC_EQUAL, KC_LEFT, KC_UP, KC_RIGHT, \ + KC_F7, KC_F8, KC_F9, KC_F10, _______,/**/ KC_MINUS, _______, _______, KC_DOWN, _______, \ + _______, _______, _______, _______, _______,/**/ KC_PSCR, KC_SLCK, KC_PAUSE, _______, _______, \ + _______, _______, _______, _______, _______,/**/ _______, _______, _______, _______, _______) + +#define _astdLayer LAYOUT( \ + KC_MPRV, KC_MUTE, _______, _______, _______,/**/KC_PSCR, KC_SLCK, KC_PAUSE, _______, KC_RGUP, \ + KC_MPLY, KC_VOLD, _______, _______, _______,/**/_______, _______, _______, _______, KC_RGDWN, \ + KC_MNXT, KC_VOLU, RESET, _______, _______,/**/_______, _______, RESET, _______, _______, \ + _______, _______, _______, _______, _______,/**/_______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______,/**/_______, _______, _______, _______, _______) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BL] = _baseLayer, + [_UL] = _upLayer, + [_DL] = _downLayer, + [_VL] = _upLayer, + [_AL] = _astdLayer}; diff --git a/keyboards/lets_split/keymaps/zer09/keymap.h b/keyboards/lets_split/keymaps/zer09/keymap.h new file mode 100644 index 000000000000..03f8f480afec --- /dev/null +++ b/keyboards/lets_split/keymaps/zer09/keymap.h @@ -0,0 +1,32 @@ +#include "lets_split.h" +#include "action_layer.h" +#include "eeconfig.h" +#include "tap_dance.h" +#include "zer09.h" + +#ifdef LAYOUT_ortho_4x12 +#undef LAYOUT_ortho_4x12 +#endif + +#ifdef LAYOUT +#undef LAYOUT +#define LAYOUT( \ + L00, L01, L02, L03, L04, R00, R01, R02, R03, R04, \ + L10, L11, L12, L13, L14, R10, R11, R12, R13, R14, \ + L20, L21, L22, L23, L24, R20, R21, R22, R23, R24, \ + L30, L31, L32, L33, L34, R30, R31, R32, R33, R34, \ + L40, L41, L42, L43, L44, R40, R41, R42, R43, R44 \ +) \ + { \ + { L00, L01, L02, L03, L04 }, \ + { L10, L11, L12, L13, L14 }, \ + { L20, L21, L22, L23, L24 }, \ + { L30, L31, L32, L33, L34 }, \ + { L40, L41, L42, L43, L44 }, \ + { R00, R01, R02, R03, R04 }, \ + { R10, R11, R12, R13, R14 }, \ + { R20, R21, R22, R23, R24 }, \ + { R30, R31, R32, R33, R34 }, \ + { R40, R41, R42, R43, R44 } \ + } +#endif diff --git a/keyboards/lets_split/keymaps/zer09/rules.mk b/keyboards/lets_split/keymaps/zer09/rules.mk new file mode 100644 index 000000000000..d8adc708826d --- /dev/null +++ b/keyboards/lets_split/keymaps/zer09/rules.mk @@ -0,0 +1,6 @@ +RGBLIGHT_ENABLE = yes +TAP_DANCE_ENABLE = yes + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/users/zer09/config.h b/users/zer09/config.h new file mode 100644 index 000000000000..766806462253 --- /dev/null +++ b/users/zer09/config.h @@ -0,0 +1,32 @@ +#ifndef USERSPACE_CONFIG_H +#define USERSPACE_CONFIG_H + +#ifndef QMK_KEYS_PER_SCAN +#define QMK_KEYS_PER_SCAN 4 +#endif // !QMK_KEYS_PER_SCAN + +// this makes it possible to do rolling combos (zx) with keys that +// convert to other keys on hold (z becomes ctrl when you hold it, +// and when this option isn't enabled, z rapidly followed by x +// actually sends Ctrl-x. That's bad.) +#define IGNORE_MOD_TAP_INTERRUPT +#undef PERMISSIVE_HOLD +#undef PREVENT_STUCK_MODIFIERS + +#define FORCE_NKRO + +#ifndef TAPPING_TOGGLE +#define TAPPING_TOGGLE 1 +#endif + +#ifdef TAPPING_TERM +#undef TAPPING_TERM +#endif +#define TAPPING_TERM 120 + +// Disable action_get_macro and fn_actions, since we don't use these +// and it saves on space in the firmware. +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +#endif diff --git a/users/zer09/lights.c b/users/zer09/lights.c new file mode 100644 index 000000000000..448ef494e81c --- /dev/null +++ b/users/zer09/lights.c @@ -0,0 +1,189 @@ +#include "lights.h" + +static bool active_key_pos[50] = {}; +static uint8_t led_dim = 0; + +volatile led_key rbw_led_keys[RBW] = { + [RBW_LCTL] = {DEFAULT, 21, true}, [RBW_LCAP] = {DEFAULT, 24, false}, + [RBW_LSPR] = {DEFAULT, 23, true}, [RBW_RCTL] = {DEFAULT, 48, true}, + [RBW_RCAP] = {DEFAULT, 45, false}, [RBW_RALT] = {DEFAULT, 46, true}, + [RBW_SCRL] = {DEFAULT, 42, true}}; + +/* Pressed led color. */ +const uint32_t _PC[3] = {0xFF, 0x00, 0x00}; + +/* Layer color. */ +const uint8_t _LC[5][3] = {[_BL] = {0x00, 0x00, 0x00}, + [_UL] = {0x00, 0x00, 0xFF}, + [_VL] = {0xFF, 0xFF, 0x00}, + [_DL] = {0x00, 0xFF, 0x00}, + [_AL] = {0xFF, 0x00, 0x00}}; + +/* Color table by sine wave */ +const uint8_t _LIGHTS[360] = { + 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 4, 5, 6, 7, 8, + 11, 12, 9, 13, 15, 17, 18, 20, 22, 24, 26, 28, 30, 32, 35, + 37, 39, 42, 44, 47, 49, 52, 55, 58, 60, 63, 66, 69, 72, 75, + 78, 81, 85, 88, 91, 94, 97, 101, 104, 107, 111, 114, 117, 121, 124, + 127, 131, 134, 137, 141, 144, 147, 150, 154, 157, 160, 163, 167, 170, 173, + 176, 179, 182, 185, 188, 191, 194, 197, 200, 202, 205, 208, 210, 213, 215, + 217, 220, 222, 224, 226, 229, 231, 232, 234, 236, 238, 239, 241, 242, 244, + 245, 246, 248, 249, 250, 251, 251, 252, 253, 253, 254, 254, 255, 255, 255, + 255, 255, 255, 255, 254, 254, 253, 253, 252, 251, 251, 250, 249, 248, 246, + 245, 244, 242, 241, 239, 238, 236, 234, 232, 231, 229, 226, 224, 222, 220, + 217, 215, 213, 210, 208, 205, 202, 200, 197, 194, 191, 188, 185, 182, 179, + 176, 173, 170, 167, 163, 160, 157, 154, 150, 147, 144, 141, 137, 134, 131, + 127, 124, 121, 117, 114, 111, 107, 104, 101, 97, 94, 91, 88, 85, 81, + 78, 75, 72, 69, 66, 63, 60, 58, 55, 52, 49, 47, 44, 42, 39, + 37, 35, 32, 30, 28, 26, 24, 22, 20, 18, 17, 15, 13, 12, 11, + 9, 8, 7, 6, 5, 4, 3, 2, 2, 1, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + +void set_key_led(keyrecord_t *record, uint8_t lyr) { + static uint8_t base = 5; + + uint8_t r = record->event.key.row; + uint8_t c = record->event.key.col; + uint8_t pos; + + // This was the result of my soldering. + // Lesson of the day: always check. + if (r < 5) { + pos = r % 2 == 0 ? r * base + c : r * base + (base - (c + 1)); + } else { + pos = r % 2 == 0 ? r * base + (base - (c + 1)) : r * base + c; + } + + if (record->event.pressed) { + active_key_pos[pos] = true; + SET_LED_RGB(_PC[0], _PC[1], _PC[2], led_dim, pos); + } else { + active_key_pos[pos] = false; + SET_LED_RGB(_LC[lyr][0], _LC[lyr][1], _LC[lyr][2], led_dim, pos); + } +} + +/* Fix for unknown reason after testin flash the eeprom handedness, + the leds will ligth up after boot. + This should be call in the set layer led.*/ +bool is_first_run(void) { + static uint8_t run = 0; + + if (run == 0) { + run++; + return true; + } else { + return false; + } +} + +bool set_layer_led(uint8_t lyr) { + static uint8_t p_lyr = 0; // Previous layer. + static uint8_t p_dim = 0; // Previous dim. + + if (p_lyr == lyr && p_dim == led_dim && !is_first_run()) { + return false; + } + + p_lyr = lyr; + p_dim = led_dim; + const uint8_t r = _LC[lyr][0]; + const uint8_t g = _LC[lyr][1]; + const uint8_t b = _LC[lyr][2]; + const uint8_t d = (p_lyr == _VL && p_dim < 1) ? 1 : p_dim; + + for (uint8_t i = 0; i < RGBLED_NUM; i++) { + SET_LED_RGB(r, g, b, d, i); + } + + return true; +} + +bool rainbow_loop(uint8_t lyr) { + static uint16_t last_timer = 0; + static uint16_t i = 0; + static uint8_t r, g, b, pos; + + if (timer_elapsed(last_timer) < 8) { + return false; + } + + if (i >= 360) { + i = 0; + } + + last_timer = timer_read(); + r = _LIGHTS[(i + 120) % 360]; + g = _LIGHTS[i]; + b = _LIGHTS[(i + 240) % 360]; + + i++; + + bool set_rbw = false; + + for (uint8_t j = 0; j < RBW; j++) { + pos = rbw_led_keys[j].pos; + + switch (rbw_led_keys[j].status) { + case ENABLED: + if (!active_key_pos[pos] || rbw_led_keys[j].forced) { + SET_LED_RGB(r, g, b, led_dim, pos); + set_rbw = true; + } + + break; + case DISABLED: + if (!active_key_pos[pos] || rbw_led_keys[j].forced) { + SET_LED_RGB(_LC[lyr][0], _LC[lyr][1], _LC[lyr][2], led_dim, pos); + set_rbw = true; + } + + rbw_led_keys[j].status = DEFAULT; + break; + default: + break; + } + } + + return set_rbw; +} + +bool led_brightness(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case RGUP: + if (record->event.pressed && led_dim > 0) { + led_dim--; + eeprom_write_byte(EECONFIG_LED_DIM_LVL, led_dim); + } + + return true; + break; + case RGDWN: + if (record->event.pressed && led_dim < 8) { + led_dim++; + eeprom_write_byte(EECONFIG_LED_DIM_LVL, led_dim); + } + + return true; + break; + default: + return false; + break; + } +} + +void eeprom_read_led_dim_lvl(void) { + led_dim = eeprom_read_byte(EECONFIG_LED_DIM_LVL); + + if (led_dim > 8 || led_dim < 0) { + led_dim = 0; + eeprom_write_byte(EECONFIG_LED_DIM_LVL, led_dim); + } +} diff --git a/users/zer09/lights.h b/users/zer09/lights.h new file mode 100644 index 000000000000..f1bd7245d517 --- /dev/null +++ b/users/zer09/lights.h @@ -0,0 +1,45 @@ +#ifndef LIGHTS_H +#define LIGHTS_H + +#include "eeprom.h" +#include "tap_dance.h" +#include "zer09.h" + +/* Will hold the RGB brightness level */ +#define EECONFIG_LED_DIM_LVL (uint8_t *)15 + +#define SET_LED_RGB(r, g, b, led_dim, pos) \ + setrgb(r >> led_dim, g >> led_dim, b >> led_dim, (LED_TYPE *)&led[pos]) + +typedef enum { + DEFAULT, + ENABLED, + DISABLED, +} led_status; + +typedef struct { + led_status status; + uint8_t pos; + bool forced; +} led_key; + +enum rbw_keys { + RBW_LCTL, + RBW_LCAP, + RBW_LSPR, + RBW_RCTL, + RBW_RCAP, + RBW_RALT, + RBW_SCRL, + RBW +}; + +extern volatile led_key rbw_led_keys[RBW]; + +void set_key_led(keyrecord_t *record, uint8_t lyr); +bool set_layer_led(uint8_t lyr); +bool rainbow_loop(uint8_t lyr); +bool led_brightness(uint16_t keycode, keyrecord_t *record); +void eeprom_read_led_dim_lvl(void); + +#endif diff --git a/users/zer09/rules.mk b/users/zer09/rules.mk new file mode 100644 index 000000000000..43b409eca75b --- /dev/null +++ b/users/zer09/rules.mk @@ -0,0 +1,2 @@ +SRC += zer09.c tap_dance.c lights.c +EXTRAFLAGS += -flto diff --git a/users/zer09/tap_dance.c b/users/zer09/tap_dance.c new file mode 100644 index 000000000000..a23705ad8b5f --- /dev/null +++ b/users/zer09/tap_dance.c @@ -0,0 +1,182 @@ +#include "tap_dance.h" +#include "lights.h" + +qk_tap_dance_action_t tap_dance_actions[] = { + [DA_LCTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_lctl_finished, + dance_lctl_reset), + [DA_LSPR] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_lspr_finished, + dance_lspr_reset), + [DA_RCTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_rctl_finished, + dance_rctl_reset), + [DA_RALT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_ralt_finished, + dance_ralt_reset), + [DA_UPLY] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_uply_finished, + dance_uply_reset), + [DA_DWLY] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_dwly_finished, + dance_dwly_reset), +}; + +volatile uint8_t active_layer = _BL; +static tap upltap_state = {.state = 0}; +static tap dwltap_state = {.state = 0}; +static tap lsprtap_state = {.state = 0}; +static tap ralttap_state = {.state = 0}; + +void layer_switcher_tap(uint8_t new_layer) { + layer_off(active_layer); + layer_on(new_layer); + active_layer = new_layer; +} + +int cur_dance(qk_tap_dance_state_t *state) { + switch (state->count) { + case 1: + return state->pressed == 0 ? SINGLE_TAP : SINGLE_HOLD; + case 2: + return state->pressed == 0 ? DOUBLE_TAP : DOUBLE_HOLD; + case 3: + return state->pressed == 0 ? TRIPLE_TAP : TRIPLE_HOLD; + default: + return state->pressed == 0 ? DEFAULT_TAP : DEFAULT_HOLD; + } +} + +void dance_lctl_finished(qk_tap_dance_state_t *state, void *user_data) { + rbw_led_keys[RBW_LCTL].status = ENABLED; + register_code(KC_LCTRL); +}; + +void dance_lctl_reset(qk_tap_dance_state_t *state, void *user_data) { + unregister_code(KC_LCTRL); + rbw_led_keys[RBW_LCTL].status = DISABLED; +}; + +void dance_lspr_finished(qk_tap_dance_state_t *state, void *user_data) { + lsprtap_state.state = cur_dance(state); + + switch (lsprtap_state.state) { + case DOUBLE_HOLD: + rbw_led_keys[RBW_LSPR].status = ENABLED; + register_code(KC_LALT); + break; + default: + register_code(KC_LGUI); + break; + } +}; + +void dance_lspr_reset(qk_tap_dance_state_t *state, void *user_data) { + switch (lsprtap_state.state) { + case DOUBLE_HOLD: + unregister_code(KC_LALT); + rbw_led_keys[RBW_LSPR].status = DISABLED; + break; + default: + unregister_code(KC_LGUI); + break; + } +}; + +void dance_rctl_finished(qk_tap_dance_state_t *state, void *user_data) { + rbw_led_keys[RBW_RCTL].status = ENABLED; + register_code(KC_RCTRL); +}; + +void dance_rctl_reset(qk_tap_dance_state_t *state, void *user_data) { + unregister_code(KC_RCTRL); + rbw_led_keys[RBW_RCTL].status = DISABLED; +}; + +void dance_ralt_finished(qk_tap_dance_state_t *state, void *user_data) { + ralttap_state.state = cur_dance(state); + + switch (ralttap_state.state) { + case DOUBLE_HOLD: + rbw_led_keys[RBW_RALT].status = ENABLED; + unregister_code(KC_LGUI); + break; + default: + register_code(KC_RALT); + break; + } +}; + +void dance_ralt_reset(qk_tap_dance_state_t *state, void *user_data) { + switch (ralttap_state.state) { + case DOUBLE_HOLD: + unregister_code(KC_RGUI); + rbw_led_keys[RBW_RALT].status = DISABLED; + break; + default: + unregister_code(KC_RALT); + break; + } +}; + +void dance_uply_finished(qk_tap_dance_state_t *state, void *user_data) { + upltap_state.state = cur_dance(state); + + switch (upltap_state.state) { + case SINGLE_TAP: + if (active_layer == _UL) { + layer_switcher_tap(_BL); + } else { + layer_switcher_tap(_UL); + } + break; + case SINGLE_HOLD: + layer_switcher_tap(_UL); + break; + default: + layer_switcher_tap(_BL); + break; + } +} + +void dance_uply_reset(qk_tap_dance_state_t *state, void *user_data) { + switch (upltap_state.state) { + case SINGLE_TAP: + break; + case SINGLE_HOLD: + default: + layer_switcher_tap(_BL); + break; + } + upltap_state.state = 0; +} + +void dance_dwly_finished(qk_tap_dance_state_t *state, void *user_data) { + dwltap_state.state = cur_dance(state); + + switch (dwltap_state.state) { + case SINGLE_TAP: + if (active_layer == _DL) { + layer_switcher_tap(_BL); + } else { + layer_switcher_tap(_DL); + } + break; + case SINGLE_HOLD: + layer_switcher_tap(_DL); + break; + case DOUBLE_HOLD: + layer_switcher_tap(_AL); + break; + default: + layer_switcher_tap(_BL); + break; + } +} + +void dance_dwly_reset(qk_tap_dance_state_t *state, void *user_data) { + switch (dwltap_state.state) { + case SINGLE_TAP: + break; + case SINGLE_HOLD: + case DOUBLE_HOLD: + default: + layer_switcher_tap(_BL); + break; + } + dwltap_state.state = 0; +} diff --git a/users/zer09/tap_dance.h b/users/zer09/tap_dance.h new file mode 100644 index 000000000000..555c15924858 --- /dev/null +++ b/users/zer09/tap_dance.h @@ -0,0 +1,55 @@ +#ifndef TAP_DANCE_H +#define TAP_DANCE_H + +#include "zer09.h" + +typedef struct { + int state; +} tap; + +enum { + DEFAULT_TAP, + DEFAULT_HOLD, + SINGLE_TAP, + SINGLE_HOLD, + DOUBLE_TAP, + DOUBLE_HOLD, + TRIPLE_TAP, + TRIPLE_HOLD +}; + +enum { + DA_SAFE_START, + DA_LCTL, + DA_LSPR, + DA_RCTL, + DA_RALT, + DA_UPLY, + DA_DWLY, + DA_SAFE_END +}; + +extern volatile uint8_t active_layer; + +void layer_switcher_tap(uint8_t); +int cur_dance(qk_tap_dance_state_t *); + +void dance_lctl_finished(qk_tap_dance_state_t *, void *); +void dance_lctl_reset(qk_tap_dance_state_t *, void *); + +void dance_lspr_finished(qk_tap_dance_state_t *, void *); +void dance_lspr_reset(qk_tap_dance_state_t *, void *); + +void dance_rctl_finished(qk_tap_dance_state_t *, void *); +void dance_rctl_reset(qk_tap_dance_state_t *, void *); + +void dance_ralt_finished(qk_tap_dance_state_t *, void *); +void dance_ralt_reset(qk_tap_dance_state_t *, void *); + +void dance_uply_finished(qk_tap_dance_state_t *, void *); +void dance_uply_reset(qk_tap_dance_state_t *, void *); + +void dance_dwly_finished(qk_tap_dance_state_t *, void *); +void dance_dwly_reset(qk_tap_dance_state_t *, void *); + +#endif diff --git a/users/zer09/zer09.c b/users/zer09/zer09.c new file mode 100644 index 000000000000..a6768f0a1a7b --- /dev/null +++ b/users/zer09/zer09.c @@ -0,0 +1,88 @@ +#include "zer09.h" +#include "lights.h" +#include "tap_dance.h" + +__attribute__((weak)) void matrix_init_keymap(void) {} + +__attribute__((weak)) void matrix_scan_keymap(void) {} + +__attribute__((weak)) bool process_record_keymap(uint16_t keycode, + keyrecord_t *record) { + return true; +} + +__attribute__((weak)) void led_set_keymap(uint8_t usb_led) {} + +static uint8_t c_lyr = 0; // current layer. + +bool shifted_layer(void) { + static bool is_shifted = false; + + if (c_lyr == _VL) { + if (!is_shifted) { + register_code(KC_LSFT); + is_shifted = true; + return true; + } + } else { + if (is_shifted) { + unregister_code(KC_LSFT); + is_shifted = false; + return true; + } + } + + return false; +} + +void matrix_init_user(void) { + eeprom_read_led_dim_lvl(); + + matrix_init_keymap(); +} + +void matrix_scan_user(void) { + static uint8_t is_leds_changes = 1; + c_lyr = biton32(layer_state); + + is_leds_changes = is_leds_changes << set_layer_led(c_lyr); + is_leds_changes = is_leds_changes << shifted_layer(); + is_leds_changes = is_leds_changes << rainbow_loop(c_lyr); + + if (is_leds_changes > 1) { + rgblight_set(); + is_leds_changes = 1; + } + + matrix_scan_keymap(); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + set_key_led(record, c_lyr); + + if (led_brightness(keycode, record)) { + rgblight_set(); + return false; + } + + rgblight_set(); + return process_record_keymap(keycode, record); +} + +void led_set_user(uint8_t usb_led) { + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + rbw_led_keys[RBW_LCAP].status = ENABLED; + rbw_led_keys[RBW_RCAP].status = ENABLED; + } else { + rbw_led_keys[RBW_LCAP].status = DISABLED; + rbw_led_keys[RBW_RCAP].status = DISABLED; + } + + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + rbw_led_keys[RBW_SCRL].status = ENABLED; + } else { + rbw_led_keys[RBW_SCRL].status = DISABLED; + } + + led_set_keymap(usb_led); +} diff --git a/users/zer09/zer09.h b/users/zer09/zer09.h new file mode 100644 index 000000000000..75c1d3cad492 --- /dev/null +++ b/users/zer09/zer09.h @@ -0,0 +1,18 @@ +#ifndef USERSPACE +#define USERSPACE + +#include "quantum.h" + +enum custom_keycodes { CK_SAFE = SAFE_RANGE, RGUP, RGDWN, NEWPLACEHOLDER }; + +#define _______ KC_TRNS +#define KC_RGUP RGUP +#define KC_RGDWN RGDWN + +#define _BL 0 // The base layer +#define _UL 1 // The up layer +#define _DL 2 // The down layer +#define _VL 3 // The shifted up layer +#define _AL 4 // The assorted layer + +#endif From c7d3f31f641a0cc6d1a6e1555efb22217b334f2f Mon Sep 17 00:00:00 2001 From: Louis Orleans Date: Mon, 30 Apr 2018 07:37:47 -0700 Subject: [PATCH 305/578] board(whitefox): add layout (#2845) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ✨ add base layout * ✨ add mouse keys * 🔥 remove unwanted keys * 📝 add readme --- .../whitefox/keymaps/dudeofawesome/keymap.c | 150 ++++++++++++++++++ .../whitefox/keymaps/dudeofawesome/readme.md | 20 +++ 2 files changed, 170 insertions(+) create mode 100644 keyboards/whitefox/keymaps/dudeofawesome/keymap.c create mode 100644 keyboards/whitefox/keymaps/dudeofawesome/readme.md diff --git a/keyboards/whitefox/keymaps/dudeofawesome/keymap.c b/keyboards/whitefox/keymaps/dudeofawesome/keymap.c new file mode 100644 index 000000000000..59102c3ebe3b --- /dev/null +++ b/keyboards/whitefox/keymaps/dudeofawesome/keymap.c @@ -0,0 +1,150 @@ +#include "whitefox.h" + +enum whitefox_layers { + _QWERTY, + _WORKMAN, + _COLEMAK, + _DVORAK, + _FUNC, +}; + +enum whitefox_keycodes { + QWERTY = SAFE_RANGE, + WORKMAN, + COLEMAK, + DVORAK, + FUNC, +}; + +const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* QWERTY (Default Layer) + * ,---------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `|Prt| + * |---------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backs|Del| + * |---------------------------------------------------------------| + * |Fn/CL | A| S| D| F| G| H| J| K| L| ;| '|Enter |PgU| + * |---------------------------------------------------------------| + * |Shif| | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD| + * |---------------------------------------------------------------| + * |Ctrl|Alt |Gui | Space |Gui |Alt |Ctrl| |Lef|Dow|Rig| + * `---------------------------------------------------------------' + */ + [_QWERTY] = KEYMAP( \ + 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,KC_GRV, KC_PSCR, \ + 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, KC_DEL, \ + LT(_FUNC,KC_CAPS),KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_NUHS,KC_ENT, KC_PGUP,\ + KC_LSFT, KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_UP, KC_PGDN,\ + KC_LCTL, KC_LALT,KC_LGUI, KC_SPC, KC_RGUI,KC_RALT,KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT \ + ), + /* Workman + * ,---------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `|Prt| + * |---------------------------------------------------------------| + * |Tab | Q| D| R| W| B| J| F| U| P| ;| [| ]|Backs|Del| + * |---------------------------------------------------------------| + * |Fn/CL | A| S| H| T| G| Y| N| E| O| I| '|Enter |PgU| + * |---------------------------------------------------------------| + * |Shif| | Z| X| M| C| V| K| L| ,| .| /|Shift |Up |PgD| + * |---------------------------------------------------------------| + * |Ctrl|Alt |Gui | Space |Gui |Alt |Ctrl| |Lef|Dow|Rig| + * `---------------------------------------------------------------' + */ + [_WORKMAN] = KEYMAP( \ + 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,KC_GRV, KC_PSCR, \ + KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN,KC_LBRC,KC_RBRC,KC_BSPC, KC_DEL, \ + LT(_FUNC,KC_CAPS),KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT,KC_NUHS,KC_ENT, KC_PGUP,\ + KC_LSFT, KC_NUBS,KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_UP, KC_PGDN,\ + KC_LCTL, KC_LALT,KC_LGUI, KC_SPC, KC_RGUI,KC_RALT,KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT \ + ), + /* Dvorak + * ,---------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| [| ]| `| \|Prt| + * |---------------------------------------------------------------| + * |Tab | '| ,| .| P| Y| F| G| C| R| L| /| =|Backs|Del| + * |---------------------------------------------------------------| + * |Fn/CL | A| O| E| U| I| D| H| T| N| S| -|Enter |PgU| + * |---------------------------------------------------------------| + * |Shif| | ;| Q| J| K| X| B| M| W| V| Z|Shift |Up |PgD| + * |---------------------------------------------------------------| + * |Ctrl|Alt |Gui | Space |Gui |Alt |Ctrl| |Lef|Dow|Rig| + * `---------------------------------------------------------------' + */ + [_DVORAK] = KEYMAP( \ + 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,KC_GRV, KC_PSCR, \ + KC_TAB, KC_QUOT,KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,KC_EQL, KC_BSPC, KC_DEL, \ + LT(_FUNC,KC_CAPS),KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,KC_NUHS,KC_ENT, KC_PGUP,\ + KC_LSFT, KC_NUBS,KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z,KC_RSFT, KC_UP, KC_PGDN,\ + KC_LCTL, KC_LALT,KC_LGUI, KC_SPC, KC_RGUI,KC_RALT,KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT \ + ), + /* Colemak + * ,---------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| +| `| \|Prt| + * |---------------------------------------------------------------| + * |Tab | Q| W| F| P| G| J| L| U| Y| ;| [| ]|Backs|Del| + * |---------------------------------------------------------------| + * |Fn/CL | A| R| S| T| D| H| N| E| I| O| '|Enter |PgU| + * |---------------------------------------------------------------| + * |Shif| | Z| X| C| V| B| K| M| ,| .| /|Shift |Up |PgD| + * |---------------------------------------------------------------| + * |Ctrl|Alt |Gui | Space |Gui |Alt |Ctrl| |Lef|Dow|Rig| + * `---------------------------------------------------------------' + */ + [_COLEMAK] = KEYMAP( \ + 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,KC_GRV, KC_PSCR, \ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,KC_LBRC,KC_RBRC,KC_BSPC, KC_DEL, \ + LT(_FUNC,KC_CAPS),KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,KC_NUHS,KC_ENT, KC_PGUP,\ + KC_LSFT, KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_UP, KC_PGDN,\ + KC_LCTL, KC_LALT,KC_LGUI, KC_SPC, KC_RGUI,KC_RALT,KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT \ + ), + /* Function + * ,---------------------------------------------------------------. + * | | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | | | + * |---------------------------------------------------------------| + * | | | | | | | | | | | | | | | | + * |---------------------------------------------------------------| + * | | | | | | | | | | | | | | | + * |---------------------------------------------------------------| + * | | | | | | | | | | | | | | | | + * |---------------------------------------------------------------| + * | | | | | | | | | | | | + * `---------------------------------------------------------------' + */ + [_FUNC] = KEYMAP( \ + RESET, 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_WH_D,KC_BTN2,KC_MS_U,KC_BTN1,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,\ + _______,KC_WH_U,KC_MS_L,KC_MS_D,KC_MS_R,AG_NORM,AG_SWAP,QWERTY, WORKMAN,DVORAK, COLEMAK,_______,_______,_______, _______,\ + _______,_______,KC_WH_L,KC_BTN3,KC_WH_R,_______,_______,_______,_______,_______,_______,_______,_______, KC_VOLU,_______,\ + _______,_______,_______, KC_MPLY, _______,_______,_______, KC_MPRV,KC_VOLD,KC_MNXT \ + ), +}; + +// const uint16_t fn_actions[] = { +// [0] = ACTION_LAYER_MOMENTARY(1), +// }; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case WORKMAN: + if (record->event.pressed) { + set_single_persistent_default_layer(_WORKMAN); + } + return false; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + } + return true; +} diff --git a/keyboards/whitefox/keymaps/dudeofawesome/readme.md b/keyboards/whitefox/keymaps/dudeofawesome/readme.md new file mode 100644 index 000000000000..b5a33e74f6f7 --- /dev/null +++ b/keyboards/whitefox/keymaps/dudeofawesome/readme.md @@ -0,0 +1,20 @@ +# DudeOfAwesome's WhiteFox layout + +![WhiteFox Layout](https://i.imgur.com/TYYqJbP.png) + +## Features + +- Base Layers + - QWERTY + - Workman + - Dvorak + - Colemak +- Mouse Keys + +## Building and flashing + +1. Put your board in DFU mode with either the button on the bottom, or with a software key in your current firmware +1. Flash: + ```bash + $ make whitefox:dudeofawesome:dfu-util + ``` From 2054f20b69f7806943a95956c8f13c03f1f1a3ea Mon Sep 17 00:00:00 2001 From: Tobias O <109529+tobsn@users.noreply.github.com> Date: Mon, 30 Apr 2018 16:39:19 +0200 Subject: [PATCH 306/578] image fix (#2846) --- keyboards/dz60/keymaps/model42/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/dz60/keymaps/model42/readme.md b/keyboards/dz60/keymaps/model42/readme.md index af8407506842..04fa11aad571 100644 --- a/keyboards/dz60/keymaps/model42/readme.md +++ b/keyboards/dz60/keymaps/model42/readme.md @@ -4,7 +4,7 @@ ### Layer 0 -![layer 0](https://imgur.com/bOiQI69.png) +![layer 0](https://imgur.com/gELh7Se.png) Conventional ANSI layout. Except: - Backspace has been replaced with 2 keys @@ -27,7 +27,7 @@ RGB underglow and backlight controls, Reset ### Layer 2 -![layer 1](https://imgur.com/gELh7Se.png) +![layer 2](https://imgur.com/bOiQI69.png) F1-F12, PGUP -> HOME, PGDN -> END ### Layer 3 From bc89c4f104a9066a6d5eb80c92c504724a976cd5 Mon Sep 17 00:00:00 2001 From: Eric <22215921+ericywl@users.noreply.github.com> Date: Mon, 30 Apr 2018 22:45:38 +0800 Subject: [PATCH 307/578] QMK Configurator Support for KBD66 and RAMA M6-A (#2849) * Added KBD66 Config * Added RAMA M6-A Config * Changed KEYMAP to LAYOUT for KBD66 and M6-A --- keyboards/kbd66/info.json | 84 +++ keyboards/kbd66/kbd66.h | 2 +- keyboards/kbd66/keymaps/ansi/keymap.c | 6 +- keyboards/kbd66/keymaps/default/keymap.c | 6 +- keyboards/kbd66/keymaps/iso/keymap.c | 6 +- keyboards/kbd66/keymaps/maartenwut/keymap.c | 10 +- keyboards/rama/m6_a/info.json | 19 + keyboards/rama/m6_a/keymaps/default/keymap.c | 542 ++++++++++--------- keyboards/rama/m6_a/keymaps/knops/keymap.c | 173 +++--- keyboards/rama/m6_a/keymaps/krusli/README.md | 10 +- keyboards/rama/m6_a/keymaps/krusli/keymap.c | 100 ++-- keyboards/rama/m6_a/keymaps/naut/keymap.c | 21 +- keyboards/rama/m6_a/m6_a.h | 10 +- 13 files changed, 565 insertions(+), 424 deletions(-) create mode 100644 keyboards/kbd66/info.json create mode 100644 keyboards/rama/m6_a/info.json diff --git a/keyboards/kbd66/info.json b/keyboards/kbd66/info.json new file mode 100644 index 000000000000..c242abb9f0aa --- /dev/null +++ b/keyboards/kbd66/info.json @@ -0,0 +1,84 @@ +{ + "keyboard_name": "kbd66", + "url": "", + "maintainer": "qmk", + "width": 16.5, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "~", "x": 0, "y": 0 }, + { "label": "!", "x": 1, "y": 0 }, + { "label": "@", "x": 2, "y": 0 }, + { "label": "#", "x": 3, "y": 0 }, + { "label": "$", "x": 4, "y": 0 }, + { "label": "%", "x": 5, "y": 0 }, + { "label": "^", "x": 6, "y": 0 }, + { "label": "&", "x": 7, "y": 0 }, + { "label": "*", "x": 8, "y": 0 }, + { "label": "(", "x": 9, "y": 0 }, + { "label": ")", "x": 10, "y": 0 }, + { "label": "_", "x": 11, "y": 0 }, + { "label": "+", "x": 12, "y": 0 }, + { "label": "Bkspc", "x": 13, "y": 0 }, + { "label": "Bkspc", "x": 14, "y": 0 }, + { "x": 15.5, "y": 0 }, + { "label": "Tab", "x": 0, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 1 }, + { "label": "W", "x": 2.5, "y": 1 }, + { "label": "E", "x": 3.5, "y": 1 }, + { "label": "R", "x": 4.5, "y": 1 }, + { "label": "T", "x": 5.5, "y": 1 }, + { "label": "Y", "x": 6.5, "y": 1 }, + { "label": "U", "x": 7.5, "y": 1 }, + { "label": "I", "x": 8.5, "y": 1 }, + { "label": "O", "x": 9.5, "y": 1 }, + { "label": "P", "x": 10.5, "y": 1 }, + { "label": "{", "x": 11.5, "y": 1 }, + { "label": "}", "x": 12.5, "y": 1 }, + { "label": "|", "x": 13.5, "y": 1, "w": 1.5 }, + { "x": 15.5, "y": 1 }, + { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 2 }, + { "label": "S", "x": 2.75, "y": 2 }, + { "label": "D", "x": 3.75, "y": 2 }, + { "label": "F", "x": 4.75, "y": 2 }, + { "label": "G", "x": 5.75, "y": 2 }, + { "label": "H", "x": 6.75, "y": 2 }, + { "label": "J", "x": 7.75, "y": 2 }, + { "label": "K", "x": 8.75, "y": 2 }, + { "label": "L", "x": 9.75, "y": 2 }, + { "label": ":", "x": 10.75, "y": 2 }, + { "label": "\"", "x": 11.75, "y": 2 }, + { "x": 12.75, "y": 2 }, + { "label": "Enter", "x": 13.75, "y": 2, "w": 1.25 }, + { "label": "Shift", "x": 0, "y": 3, "w": 1.25 }, + { "x": 1.25, "y": 3 }, + { "label": "Z", "x": 2.25, "y": 3 }, + { "label": "X", "x": 3.25, "y": 3 }, + { "label": "C", "x": 4.25, "y": 3 }, + { "label": "V", "x": 5.25, "y": 3 }, + { "label": "B", "x": 6.25, "y": 3 }, + { "label": "N", "x": 7.25, "y": 3 }, + { "label": "M", "x": 8.25, "y": 3 }, + { "label": "<", "x": 9.25, "y": 3 }, + { "label": ">", "x": 10.25, "y": 3 }, + { "label": "?", "x": 11.25, "y": 3 }, + { "label": "Shift", "x": 12.25, "y": 3, "w": 1.25 }, + { "label": "Fn", "x": 13.5, "y": 3 }, + { "label": "Up", "x": 14.5, "y": 3 }, + { "label": "Ctrl", "x": 0, "y": 4, "w": 1.5 }, + { "label": "Win", "x": 1.5, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 2.75, "y": 4, "w": 1.25 }, + { "x": 4, "y": 4, "w": 2.75 }, + { "x": 6.75, "y": 4, "w": 2.75 }, + { "label": "Alt", "x": 9.5, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 10.75, "y": 4, "w": 1.25 }, + { "label": "Menu", "x": 12, "y": 4, "w": 1.5 }, + { "label": "Left", "x": 13.5, "y": 4 }, + { "label": "Down", "x": 14.5, "y": 4 }, + { "label": "Right", "x": 15.5, "y": 4 } + ] + } + } +} diff --git a/keyboards/kbd66/kbd66.h b/keyboards/kbd66/kbd66.h index af1156e5e4df..784e8e493e9c 100644 --- a/keyboards/kbd66/kbd66.h +++ b/keyboards/kbd66/kbd66.h @@ -19,7 +19,7 @@ #include "quantum.h" // This a shortcut to help you visually see your layout. -#define KEYMAP( \ +#define LAYOUT( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D,k0E, k0F, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1F, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, \ diff --git a/keyboards/kbd66/keymaps/ansi/keymap.c b/keyboards/kbd66/keymaps/ansi/keymap.c index f5ffa7b75d1d..253d8d5db34e 100644 --- a/keyboards/kbd66/keymaps/ansi/keymap.c +++ b/keyboards/kbd66/keymaps/ansi/keymap.c @@ -13,7 +13,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "kbd66.h" +#include QMK_KEYBOARD_H #define _____ KC_TRNS #define XXXXX KC_NO @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctl |OS |Alt | Space |Alt | Fn |Ctl |LFT|DWN|RIG| * `-------------------------------------------------------------------' */ -[_L0] = KEYMAP( +[_L0] = LAYOUT( KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, XXXXX, KC_BSPC, KC_INS, 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_BSLS, KC_DEL, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | |PDn|SLk| * `-------------------------------------------------------------------' */ -[_L1] = KEYMAP( +[_L1] = LAYOUT( KC_GRV, 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_HOME, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_PSCR, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, RESET, _____, _____, _____, _____, _____, _____, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, _____, _____, diff --git a/keyboards/kbd66/keymaps/default/keymap.c b/keyboards/kbd66/keymaps/default/keymap.c index 551df14185b2..3e8a90ee55ea 100644 --- a/keyboards/kbd66/keymaps/default/keymap.c +++ b/keyboards/kbd66/keymaps/default/keymap.c @@ -13,7 +13,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "kbd66.h" +#include QMK_KEYBOARD_H #define _____ KC_TRNS #define XXXXX KC_NO @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctl |OS |Alt | Space |Alt | Fn |Ctl |LFT|DWN|RIG| * `-------------------------------------------------------------------' */ -[_L0] = KEYMAP( +[_L0] = LAYOUT( KC_GESC, 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_GRV, KC_BSPC, KC_INS, 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_BSLS, KC_DEL, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | |PDn|SLk| * `-------------------------------------------------------------------' */ -[_L1] = KEYMAP( +[_L1] = LAYOUT( KC_GRV, 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_HOME, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_PSCR, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, RESET, _____, _____, _____, _____, _____, _____, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, _____, _____, diff --git a/keyboards/kbd66/keymaps/iso/keymap.c b/keyboards/kbd66/keymaps/iso/keymap.c index fa9202cadcfd..6b9b7ac4d45e 100644 --- a/keyboards/kbd66/keymaps/iso/keymap.c +++ b/keyboards/kbd66/keymaps/iso/keymap.c @@ -13,7 +13,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "kbd66.h" +#include QMK_KEYBOARD_H #define _____ KC_TRNS #define XXXXX KC_NO @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctl |OS |Alt | Space |Alt | Fn |Ctl |LFT|DWN|RIG| * `-------------------------------------------------------------------' */ -[_L0] = KEYMAP( +[_L0] = LAYOUT( KC_GESC, 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_GRV, KC_BSPC, KC_INS, 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_NUHS, KC_DEL, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | |PDn|SLk| * `-------------------------------------------------------------------' */ -[_L1] = KEYMAP( +[_L1] = LAYOUT( KC_GRV, 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_HOME, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_PSCR, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, RESET, _____, _____, _____, _____, _____, _____, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, _____, _____, diff --git a/keyboards/kbd66/keymaps/maartenwut/keymap.c b/keyboards/kbd66/keymaps/maartenwut/keymap.c index 4ca794c96e60..da438022e6ae 100755 --- a/keyboards/kbd66/keymaps/maartenwut/keymap.c +++ b/keyboards/kbd66/keymaps/maartenwut/keymap.c @@ -1,4 +1,4 @@ -#include "kbd66.h" +#include QMK_KEYBOARD_H #define _MA 0 #define _GA 1 @@ -14,7 +14,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Main Layer -[_MA] = KEYMAP( +[_MA] = LAYOUT( KC_GESC, 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_BSPC, KC_MPLY, 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_BSLS, KC_DEL, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, SPACE, SPACE, KC_RALT, KC_RCTRL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), //Function Layer -[_FL] = KEYMAP( +[_FL] = LAYOUT( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TRNS, RESET, KC_PSCR, TRNS, ______, ______, ______, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, ______, TRNS, ______, ______, ______, TRNS, TG(_GA), TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, ______, KC_PGDN, ______), //Arrow keys layer (space bar) -[_AR] = KEYMAP( +[_AR] = LAYOUT( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), //Game layer (fn + g) -[_GA] = KEYMAP( +[_GA] = LAYOUT( TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, diff --git a/keyboards/rama/m6_a/info.json b/keyboards/rama/m6_a/info.json new file mode 100644 index 000000000000..28dd733dac21 --- /dev/null +++ b/keyboards/rama/m6_a/info.json @@ -0,0 +1,19 @@ +{ + "keyboard_name": "m6-a", + "url": "", + "maintainer": "qmk", + "width": 3, + "height": 2, + "layouts": { + "LAYOUT": { + "layout": [ + { "x": 0, "y": 0 }, + { "x": 1, "y": 0 }, + { "x": 2, "y": 0 }, + { "x": 0, "y": 1 }, + { "x": 1, "y": 1 }, + { "x": 2, "y": 1 } + ] + } + } +} diff --git a/keyboards/rama/m6_a/keymaps/default/keymap.c b/keyboards/rama/m6_a/keymaps/default/keymap.c index 1323ba6f2a04..6b15f3cd102d 100644 --- a/keyboards/rama/m6_a/keymaps/default/keymap.c +++ b/keyboards/rama/m6_a/keymaps/default/keymap.c @@ -1,298 +1,324 @@ -#include "../../m6_a.h" +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - KEYMAP( - TO(1), KC_A, KC_B, KC_C, KC_D, KC_E), + LAYOUT( + TO(1), KC_A, KC_B, KC_C, KC_D, KC_E), - KEYMAP( - TO(2), KC_F, KC_G, KC_H, KC_I, KC_J), + LAYOUT( + TO(2), KC_F, KC_G, KC_H, KC_I, KC_J), - KEYMAP( - TO(3), KC_K, KC_L, KC_M, KC_N, KC_O), + LAYOUT( + TO(3), KC_K, KC_L, KC_M, KC_N, KC_O), - KEYMAP( - TO(4), KC_P, KC_Q, KC_R, KC_S, KC_T), + LAYOUT( + TO(4), KC_P, KC_Q, KC_R, KC_S, KC_T), - KEYMAP( - TO(5), KC_U, KC_V, KC_W, KC_X, KC_Y), + LAYOUT( + TO(5), KC_U, KC_V, KC_W, KC_X, KC_Y), - KEYMAP( - TO(0), KC_Z, KC_1, KC_2, KC_3, KC_4) -}; + LAYOUT( + TO(0), KC_Z, KC_1, KC_2, KC_3, KC_4)}; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - //keyevent_t event = record->event; +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + //keyevent_t event = record->event; - switch (id) { - case 0: - if (record->event.pressed) { - return MACRO( T(T), T(G), T(L), T(H), T(F), T(ENT), END ); - } - break; - case 1: - if (record->event.pressed) { - return MACRO( T(T), T(G), T(G), T(ENT), END ); - } - break; - case 2: - if (record->event.pressed) { - return MACRO( D(NO), T(L), U(NO), END ); - } - break; - case 3: - if (record->event.pressed) { - return MACRO( D(LCTL), T(Z), U(LCTL), END ); - } - break; - case 4: - if (record->event.pressed) { - return MACRO( D(LCTL), D(LSFT), T(Z), U(LSFT), U(LCTL), END ); - } - break; - case 5: - if (record->event.pressed) { - return MACRO( D(LCTL), T(X), U(LCTL), END ); - } - break; - case 6: - if (record->event.pressed) { - return MACRO( D(LCTL), T(C), U(LCTL), END ); - } - break; - case 7: - if (record->event.pressed) { - return MACRO( D(LCTL), T(V), U(LCTL), END ); - } - break; - } - return MACRO_NONE; + switch (id) + { + case 0: + if (record->event.pressed) + { + return MACRO(T(T), T(G), T(L), T(H), T(F), T(ENT), END); + } + break; + case 1: + if (record->event.pressed) + { + return MACRO(T(T), T(G), T(G), T(ENT), END); + } + break; + case 2: + if (record->event.pressed) + { + return MACRO(D(NO), T(L), U(NO), END); + } + break; + case 3: + if (record->event.pressed) + { + return MACRO(D(LCTL), T(Z), U(LCTL), END); + } + break; + case 4: + if (record->event.pressed) + { + return MACRO(D(LCTL), D(LSFT), T(Z), U(LSFT), U(LCTL), END); + } + break; + case 5: + if (record->event.pressed) + { + return MACRO(D(LCTL), T(X), U(LCTL), END); + } + break; + case 6: + if (record->event.pressed) + { + return MACRO(D(LCTL), T(C), U(LCTL), END); + } + break; + case 7: + if (record->event.pressed) + { + return MACRO(D(LCTL), T(V), U(LCTL), END); + } + break; + } + return MACRO_NONE; } // M6-A LEDs are connected to D6, B6, F5, B4, C7, F7 // This is 1-based because I copied it from Knops code. -void set_switch_led(int ledId, bool state) { - if(state) { - switch(ledId) { - case 1: - PORTD |= (1<<6); - break; - case 2: - PORTB |= (1<<6); - break; - case 3: - PORTF |= (1<<5); - break; - case 4: - PORTB |= (1<<4); - break; - case 5: - PORTC |= (1<<7); - break; - case 6: - PORTF |= (1<<7); - break; - } - } else { - switch(ledId) { - case 1: - PORTD &= ~(1<<6); - break; - case 2: - PORTB &= ~(1<<6); - break; - case 3: - PORTF &= ~(1<<5); - break; - case 4: - PORTB &= ~(1<<4); - break; - case 5: - PORTC &= ~(1<<7); - break; - case 6: - PORTF &= ~(1<<7); - break; - } - } +void set_switch_led(int ledId, bool state) +{ + if (state) + { + switch (ledId) + { + case 1: + PORTD |= (1 << 6); + break; + case 2: + PORTB |= (1 << 6); + break; + case 3: + PORTF |= (1 << 5); + break; + case 4: + PORTB |= (1 << 4); + break; + case 5: + PORTC |= (1 << 7); + break; + case 6: + PORTF |= (1 << 7); + break; + } + } + else + { + switch (ledId) + { + case 1: + PORTD &= ~(1 << 6); + break; + case 2: + PORTB &= ~(1 << 6); + break; + case 3: + PORTF &= ~(1 << 5); + break; + case 4: + PORTB &= ~(1 << 4); + break; + case 5: + PORTC &= ~(1 << 7); + break; + case 6: + PORTF &= ~(1 << 7); + break; + } + } } - -void set_layer_led(int layerId) { - // UNUSED +void set_layer_led(int layerId) +{ + // UNUSED } void led_set_layer(int layer); -void matrix_init_user(void) { - led_init_ports(); - led_set_layer(0); +void matrix_init_user(void) +{ + led_init_ports(); + led_set_layer(0); } -void matrix_scan_user(void) { +void matrix_scan_user(void) +{ } // M6-A LEDs are connected to D6, B6, F5, B4, C7, F7 -void led_init_ports() { - // Switch #1 - DDRD |= (1<<6); - PORTD &= ~(1<<6); - - // Switch #2 - DDRB |= (1<<6); - PORTB &= ~(1<<6); - - // Switch #3 - DDRF |= (1<<5); - PORTF &= ~(1<<5); - - // Switch #4 - DDRB |= (1<<4); - PORTB &= ~(1<<4); +void led_init_ports() +{ + // Switch #1 + DDRD |= (1 << 6); + PORTD &= ~(1 << 6); - // Switch #5 - DDRC |= (1<<7); - PORTC &= ~(1<<7); - - // Switch #6 - DDRF |= (1<<7); - PORTF &= ~(1<<7); -} + // Switch #2 + DDRB |= (1 << 6); + PORTB &= ~(1 << 6); -void led_set_user(uint8_t usb_led) { + // Switch #3 + DDRF |= (1 << 5); + PORTF &= ~(1 << 5); - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - - } else { - - } + // Switch #4 + DDRB |= (1 << 4); + PORTB &= ~(1 << 4); - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + // Switch #5 + DDRC |= (1 << 7); + PORTC &= ~(1 << 7); + + // Switch #6 + DDRF |= (1 << 7); + PORTF &= ~(1 << 7); +} - } else { +void led_set_user(uint8_t usb_led) +{ - } + if (usb_led & (1 << USB_LED_NUM_LOCK)) + { + } + else + { + } - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } else { - - } + if (usb_led & (1 << USB_LED_CAPS_LOCK)) + { + } + else + { + } - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } else { - - } + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) + { + } + else + { + } - if (usb_led & (1 << USB_LED_KANA)) { - - } else { - - } + if (usb_led & (1 << USB_LED_COMPOSE)) + { + } + else + { + } + if (usb_led & (1 << USB_LED_KANA)) + { + } + else + { + } } -void led_set_layer(int layer) { - switch(layer) { - case 0: - set_switch_led(1, true); - set_switch_led(2, false); - set_switch_led(3, false); - set_switch_led(4, false); - set_switch_led(5, false); - set_switch_led(6, false); - break; - case 1: - set_switch_led(1, false); - set_switch_led(2, true); - set_switch_led(3, false); - set_switch_led(4, false); - set_switch_led(5, false); - set_switch_led(6, false); - break; - case 2: - set_switch_led(1, false); - set_switch_led(2, false); - set_switch_led(3, true); - set_switch_led(4, false); - set_switch_led(5, false); - set_switch_led(6, false); - break; - case 3: - set_switch_led(1, false); - set_switch_led(2, false); - set_switch_led(3, false); - set_switch_led(4, true); - set_switch_led(5, false); - set_switch_led(6, false); - break; - case 4: - set_switch_led(1, false); - set_switch_led(2, false); - set_switch_led(3, false); - set_switch_led(4, false); - set_switch_led(5, true); - set_switch_led(6, false); - break; - case 5: - set_switch_led(1, false); - set_switch_led(2, false); - set_switch_led(3, false); - set_switch_led(4, false); - set_switch_led(5, false); - set_switch_led(6, true); - break; - default: - set_switch_led(1, true); - set_switch_led(2, true); - set_switch_led(3, true); - set_switch_led(4, true); - set_switch_led(5, true); - set_switch_led(6, true); - break; - } +void led_set_layer(int layer) +{ + switch (layer) + { + case 0: + set_switch_led(1, true); + set_switch_led(2, false); + set_switch_led(3, false); + set_switch_led(4, false); + set_switch_led(5, false); + set_switch_led(6, false); + break; + case 1: + set_switch_led(1, false); + set_switch_led(2, true); + set_switch_led(3, false); + set_switch_led(4, false); + set_switch_led(5, false); + set_switch_led(6, false); + break; + case 2: + set_switch_led(1, false); + set_switch_led(2, false); + set_switch_led(3, true); + set_switch_led(4, false); + set_switch_led(5, false); + set_switch_led(6, false); + break; + case 3: + set_switch_led(1, false); + set_switch_led(2, false); + set_switch_led(3, false); + set_switch_led(4, true); + set_switch_led(5, false); + set_switch_led(6, false); + break; + case 4: + set_switch_led(1, false); + set_switch_led(2, false); + set_switch_led(3, false); + set_switch_led(4, false); + set_switch_led(5, true); + set_switch_led(6, false); + break; + case 5: + set_switch_led(1, false); + set_switch_led(2, false); + set_switch_led(3, false); + set_switch_led(4, false); + set_switch_led(5, false); + set_switch_led(6, true); + break; + default: + set_switch_led(1, true); + set_switch_led(2, true); + set_switch_led(3, true); + set_switch_led(4, true); + set_switch_led(5, true); + set_switch_led(6, true); + break; + } } -bool process_record_user (uint16_t keycode, keyrecord_t *record) { - switch ( keycode ) - { - case TO( 0 ): - if ( record->event.pressed ) - { - led_set_layer( 0 ); - } - break; - case TO( 1 ): - if ( record->event.pressed ) - { - led_set_layer( 1 ); - } - break; - case TO( 2 ): - if ( record->event.pressed ) - { - led_set_layer( 2 ); - } - break; - case TO( 3 ): - if ( record->event.pressed ) - { - led_set_layer( 3 ); - } - break; - case TO( 4 ): - if ( record->event.pressed ) - { - led_set_layer( 4 ); - } - break; - case TO( 5 ): - if ( record->event.pressed ) - { - led_set_layer( 5 ); - } - break; - } - return true; +bool process_record_user(uint16_t keycode, keyrecord_t *record) +{ + switch (keycode) + { + case TO(0): + if (record->event.pressed) + { + led_set_layer(0); + } + break; + case TO(1): + if (record->event.pressed) + { + led_set_layer(1); + } + break; + case TO(2): + if (record->event.pressed) + { + led_set_layer(2); + } + break; + case TO(3): + if (record->event.pressed) + { + led_set_layer(3); + } + break; + case TO(4): + if (record->event.pressed) + { + led_set_layer(4); + } + break; + case TO(5): + if (record->event.pressed) + { + led_set_layer(5); + } + break; + } + return true; } diff --git a/keyboards/rama/m6_a/keymaps/knops/keymap.c b/keyboards/rama/m6_a/keymaps/knops/keymap.c index 912147f4b4b3..d687fe851666 100644 --- a/keyboards/rama/m6_a/keymaps/knops/keymap.c +++ b/keyboards/rama/m6_a/keymaps/knops/keymap.c @@ -1,92 +1,100 @@ -#include "../../m6_a.h" +#include QMK_KEYBOARD_H /*KNOPS_MISC*/ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /*KNOPS_KEYMAP*/ + /*KNOPS_LAYOUT*/ }; -void set_led_state(int ledId, bool state) { - if(state) { - switch(ledId) { - case 0: - PORTD |= (1<<6); - break; - case 1: - PORTB |= (1<<6); - break; - case 2: - PORTF |= (1<<5); - break; - case 3: - PORTB |= (1<<4); - break; - case 4: - PORTC |= (1<<7); - break; - case 5: - PORTF |= (1<<7); - break; - } - } else { - switch(ledId) { - case 0: - PORTD &= ~(1<<6); - break; - case 1: - PORTB &= ~(1<<6); - break; - case 2: - PORTF &= ~(1<<5); - break; - case 3: - PORTB &= ~(1<<4); - break; - case 4: - PORTC &= ~(1<<7); - break; - case 5: - PORTF &= ~(1<<7); - break; - } - } +void set_led_state(int ledId, bool state) +{ + if (state) + { + switch (ledId) + { + case 0: + PORTD |= (1 << 6); + break; + case 1: + PORTB |= (1 << 6); + break; + case 2: + PORTF |= (1 << 5); + break; + case 3: + PORTB |= (1 << 4); + break; + case 4: + PORTC |= (1 << 7); + break; + case 5: + PORTF |= (1 << 7); + break; + } + } + else + { + switch (ledId) + { + case 0: + PORTD &= ~(1 << 6); + break; + case 1: + PORTB &= ~(1 << 6); + break; + case 2: + PORTF &= ~(1 << 5); + break; + case 3: + PORTB &= ~(1 << 4); + break; + case 4: + PORTC &= ~(1 << 7); + break; + case 5: + PORTF &= ~(1 << 7); + break; + } + } } -void led_init_ports() { - // Switch #1 - DDRD |= (1<<6); - PORTD &= ~(1<<6); - - // Switch #2 - DDRB |= (1<<6); - PORTB &= ~(1<<6); - - // Switch #3 - DDRF |= (1<<5); - PORTF &= ~(1<<5); - - // Switch #4 - DDRB |= (1<<4); - PORTB &= ~(1<<4); - - // Switch #5 - DDRC |= (1<<7); - PORTC &= ~(1<<7); - - // Switch #6 - DDRF |= (1<<7); - PORTF &= ~(1<<7); +void led_init_ports() +{ + // Switch #1 + DDRD |= (1 << 6); + PORTD &= ~(1 << 6); + + // Switch #2 + DDRB |= (1 << 6); + PORTB &= ~(1 << 6); + + // Switch #3 + DDRF |= (1 << 5); + PORTF &= ~(1 << 5); + + // Switch #4 + DDRB |= (1 << 4); + PORTB &= ~(1 << 4); + + // Switch #5 + DDRC |= (1 << 7); + PORTC &= ~(1 << 7); + + // Switch #6 + DDRF |= (1 << 7); + PORTF &= ~(1 << 7); } -void led_set_layer(int layer) { +void led_set_layer(int layer) +{ /*KNOPS_SIMPLELED_STATES*/ - } -void matrix_init_user(void) { +void matrix_init_user(void) +{ led_init_ports(); led_set_layer(0); @@ -94,27 +102,28 @@ void matrix_init_user(void) { /*KNOPS_INIT*/ } -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ //keyevent_t event = record->event; /*KNOPS_MACRO*/ - return NULL; + return NULL; } -void matrix_scan_user(void) { +void matrix_scan_user(void) +{ /*KNOPS_SCAN*/ } -void led_set_user(uint8_t usb_led) { +void led_set_user(uint8_t usb_led) +{ /*KNOPS_FUNCTIONALLED_STATES*/ - } -bool process_record_user(uint16_t keycode, keyrecord_t *record) { +bool process_record_user(uint16_t keycode, keyrecord_t *record) +{ /*KNOPS_PROCESS_STATE*/ - return NULL; + return NULL; } - - diff --git a/keyboards/rama/m6_a/keymaps/krusli/README.md b/keyboards/rama/m6_a/keymaps/krusli/README.md index 771b47a475ff..7c1fa38fcbb9 100644 --- a/keyboards/rama/m6_a/keymaps/krusli/README.md +++ b/keyboards/rama/m6_a/keymaps/krusli/README.md @@ -6,12 +6,14 @@ Keymap was from my own port for the M6-A before official support was added, thus Top-right button acts as a "toggle between layers" button. Layer 0 -> Layer 1 -> Layer 2 -> Layer 0 -> ... -- Layer 0: Git and Discord shortcuts -- Layer 1: Media playback and volume controls -- Layer 2: Osu! gamepad layer +* Layer 0: Git and Discord shortcuts +* Layer 1: Media playback and volume controls +* Layer 2: Osu! gamepad layer ## Helpful alternative keymaps (WIP) + ### Arrow cluster + Use [karabiner-elements](https://github.com/tekezo/Karabiner-Elements) on macOS so that the state of the modifiers (shift, caps lock) are synchronised between keyboards (for shift + arrow key text selection, for example). It's also a handy tool for customising keyboard behaviour on a Mac. On Windows/Linux modifier state should be shared between all keyboards by default. @@ -19,7 +21,7 @@ On Windows/Linux modifier state should be shared between all keyboards by defaul Installation: install [homebrew](https://brew.sh) and run `brew install Caskroom/cask/karabiner-elements`. ```C -KEYMAP( +LAYOUT( KC_ESC, KC_UP, TO(_LAYER0), KC_LEFT, KC_DOWN, KC_RIGHT ) diff --git a/keyboards/rama/m6_a/keymaps/krusli/keymap.c b/keyboards/rama/m6_a/keymaps/krusli/keymap.c index 679d0bc43bac..c8775f4eae5b 100644 --- a/keyboards/rama/m6_a/keymaps/krusli/keymap.c +++ b/keyboards/rama/m6_a/keymaps/krusli/keymap.c @@ -1,4 +1,4 @@ -#include "../../m6_a.h" +#include QMK_KEYBOARD_H #include "action_layer.h" #include "eeconfig.h" @@ -9,64 +9,66 @@ extern keymap_config_t keymap_config; // Layer names don't all need to be of the same length, obviously, and you can also skip them // entirely and just use numbers. -enum layers { - _LAYER0, - _LAYER1, - _LAYER2 +enum layers +{ + _LAYER0, + _LAYER1, + _LAYER2 }; -enum custom_keycodes { - GIT_ADD = SAFE_RANGE, - GIT_COMMIT, - GIT_PUSH, - MUTE, - DEAFEN +enum custom_keycodes +{ + GIT_ADD = SAFE_RANGE, + GIT_COMMIT, + GIT_PUSH, + MUTE, + DEAFEN }; -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - switch(keycode) { - case GIT_ADD: - SEND_STRING("git add ."SS_TAP(X_ENTER)); - break; - case GIT_COMMIT: - SEND_STRING("git commit -m "SS_DOWN(X_LSHIFT)SS_TAP(X_QUOTE)SS_UP(X_LSHIFT)); - break; - case GIT_PUSH: - SEND_STRING("git push"SS_TAP(X_ENTER)); - break; - case MUTE: - SEND_STRING(SS_LGUI(SS_LSFT("M"))); - break; - case DEAFEN: - SEND_STRING(SS_LGUI(SS_LSFT("D"))); - break; - return false; - } - } - return true; +bool process_record_user(uint16_t keycode, keyrecord_t *record) +{ + if (record->event.pressed) + { + switch (keycode) + { + case GIT_ADD: + SEND_STRING("git add ." SS_TAP(X_ENTER)); + break; + case GIT_COMMIT: + SEND_STRING("git commit -m " SS_DOWN(X_LSHIFT) SS_TAP(X_QUOTE) SS_UP(X_LSHIFT)); + break; + case GIT_PUSH: + SEND_STRING("git push" SS_TAP(X_ENTER)); + break; + case MUTE: + SEND_STRING(SS_LGUI(SS_LSFT("M"))); + break; + case DEAFEN: + SEND_STRING(SS_LGUI(SS_LSFT("D"))); + break; + return false; + } + } + return true; }; #define _______ KC_TRNS #define XXXXXXX KC_NO const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = KEYMAP( - MUTE, DEAFEN, TO(_LAYER1), - GIT_ADD, GIT_COMMIT, GIT_PUSH - ), - [_LAYER1] = KEYMAP( - KC_VOLD, KC_VOLU, TO(_LAYER2), - KC_MRWD, KC_MPLY, KC_MNXT - ), - [_LAYER2] = KEYMAP( - KC_ESC, KC_UP, TO(_LAYER0), - KC_Z, KC_X, KC_SPACE - ) -}; + [_LAYER0] = LAYOUT( + MUTE, DEAFEN, TO(_LAYER1), + GIT_ADD, GIT_COMMIT, GIT_PUSH), + [_LAYER1] = LAYOUT( + KC_VOLD, KC_VOLU, TO(_LAYER2), + KC_MRWD, KC_MPLY, KC_MNXT), + [_LAYER2] = LAYOUT( + KC_ESC, KC_UP, TO(_LAYER0), + KC_Z, KC_X, KC_SPACE)}; -void matrix_init_user(void) { - #ifdef BACKLIGHT_ENABLE +void matrix_init_user(void) +{ +#ifdef BACKLIGHT_ENABLE backlight_level(0); - #endif +#endif } diff --git a/keyboards/rama/m6_a/keymaps/naut/keymap.c b/keyboards/rama/m6_a/keymaps/naut/keymap.c index 6ef59e01a926..df4cf9be373a 100644 --- a/keyboards/rama/m6_a/keymaps/naut/keymap.c +++ b/keyboards/rama/m6_a/keymaps/naut/keymap.c @@ -1,18 +1,17 @@ -#include "../../m6_a.h" +#include QMK_KEYBOARD_H // Define Layers #define _BASE 0 -#define _FNX 1 +#define _FNX 1 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -// Base Layer - [_BASE] = KEYMAP( - TO(1), KC_UP, KC_PGDN, - KC_LEFT,KC_DOWN,KC_RGHT), + // Base Layer + [_BASE] = LAYOUT( + TO(1), KC_UP, KC_PGDN, + KC_LEFT, KC_DOWN, KC_RGHT), -// Fn Layer - [_FNX] = KEYMAP( - TO(0),KC_VOLU,KC_MPLY, - KC_MRWD,KC_VOLD,KC_MFFD) -}; \ No newline at end of file + // Fn Layer + [_FNX] = LAYOUT( + TO(0), KC_VOLU, KC_MPLY, + KC_MRWD, KC_VOLD, KC_MFFD)}; \ No newline at end of file diff --git a/keyboards/rama/m6_a/m6_a.h b/keyboards/rama/m6_a/m6_a.h index 6809c2cc92fa..d3c7bad3323c 100644 --- a/keyboards/rama/m6_a/m6_a.h +++ b/keyboards/rama/m6_a/m6_a.h @@ -21,9 +21,9 @@ // This a shortcut to help you visually see your layout. // The first section contains all of the arguments // The second converts the arguments into a two-dimensional array -#define KEYMAP( \ - K00, K01, K02, K03, K04, K05 \ -) { \ - { K00, K01, K02, K03, K04, K05 }, \ -} +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05) \ + { \ + {K00, K01, K02, K03, K04, K05}, \ + } #endif // RAMA_M6_A From de97c560f5b731f45f70b92d82509cc3ba97b9e9 Mon Sep 17 00:00:00 2001 From: Eric <22215921+ericywl@users.noreply.github.com> Date: Mon, 30 Apr 2018 22:46:23 +0800 Subject: [PATCH 308/578] Added FC980C Config (#2850) --- keyboards/fc980c/fc980c.h | 54 +++++---- keyboards/fc980c/info.json | 111 ++++++++++++++++++ .../keymaps/actuation-point-example/keymap.c | 93 ++++++++------- .../fc980c/keymaps/coloneljesus/keymap.c | 35 +++--- keyboards/fc980c/keymaps/default/keymap.c | 35 +++--- keyboards/fc980c/matrix.c | 2 +- 6 files changed, 222 insertions(+), 108 deletions(-) create mode 100644 keyboards/fc980c/info.json diff --git a/keyboards/fc980c/fc980c.h b/keyboards/fc980c/fc980c.h index c3992bbed8fb..74c468061316 100644 --- a/keyboards/fc980c/fc980c.h +++ b/keyboards/fc980c/fc980c.h @@ -37,33 +37,35 @@ along with this program. If not, see . ---------------------------------------------------------------------------------------------------------------------- */ -#define KEYMAP( \ - K0D, K2D,K5D,K3D,K6D,K7D,K7F,K7E,K7C,K72,K71,K70,K73, K74,K76,K77,K75, \ - K0A,K69,K59,K58,K5B,K6F,K5F,K5E,K6C,K5C,K52,K51,K50,K55, K54,K56,K57,K65, \ - K6A,K39,K68,K6B,K3B,K3F,K6E,K3E,K3C,K62,K61,K60,K33,K53, K64,K66,K67,K25, \ - K3A,K29,K38,K28,K2B,K2F,K2E,K2C,K1C,K32,K31,K20, K63, K24,K26,K27, \ - K2A, K18,K08,K1B,K0B,K1F,K1E,K0E,K22,K11,K21, K30, K34, K14,K16,K17,K15, \ - K1A,K09,K19, K0F, K02,K01,K10, K00,K04,K06, K07,K05 \ -) { \ - { K00, K01, K02, KC_NO,K04, K05, K06, K07 , \ - K08, K09, K0A, K0B, KC_NO,K0D, K0E, K0F }, \ - { K10, K11, KC_NO,KC_NO,K14, K15, K16, K17 , \ - K18, K19, K1A, K1B, K1C, KC_NO,K1E, K1F }, \ - { K20, K21, K22, KC_NO,K24, K25, K26, K27 , \ - K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ - { K30, K31, K32, K33, K34, KC_NO,KC_NO,KC_NO , \ - K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ - { KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO , \ - KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO }, \ - { K50, K51, K52, K53, K54, K55, K56, K57 , \ - K58, K59, KC_NO,K5B, K5C, K5D, K5E, K5F }, \ - { K60, K61, K62, K63, K64, K65, K66, K67 , \ - K68, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \ - { K70, K71, K72, K73, K74, K75, K76, K77 , \ - KC_NO,KC_NO,KC_NO,KC_NO,K7C, K7D, K7E, K7F } \ -} +#define LAYOUT( \ + K0D, K2D, K5D, K3D, K6D, K7D, K7F, K7E, K7C, K72, K71, K70, K73, K74, K76, K77, K75, \ + K0A, K69, K59, K58, K5B, K6F, K5F, K5E, K6C, K5C, K52, K51, K50, K55, K54, K56, K57, K65, \ + K6A, K39, K68, K6B, K3B, K3F, K6E, K3E, K3C, K62, K61, K60, K33, K53, K64, K66, K67, K25, \ + K3A, K29, K38, K28, K2B, K2F, K2E, K2C, K1C, K32, K31, K20, K63, K24, K26, K27, \ + K2A, K18, K08, K1B, K0B, K1F, K1E, K0E, K22, K11, K21, K30, K34, K14, K16, K17, K15, \ + K1A, K09, K19, K0F, K02, K01, K10, K00, K04, K06, K07, K05) \ + { \ + {K00, K01, K02, KC_NO, K04, K05, K06, K07, \ + K08, K09, K0A, K0B, KC_NO, K0D, K0E, K0F}, \ + {K10, K11, KC_NO, KC_NO, K14, K15, K16, K17, \ + K18, K19, K1A, K1B, K1C, KC_NO, K1E, K1F}, \ + {K20, K21, K22, KC_NO, K24, K25, K26, K27, \ + K28, K29, K2A, K2B, K2C, K2D, K2E, K2F}, \ + {K30, K31, K32, K33, K34, KC_NO, KC_NO, KC_NO, \ + K38, K39, K3A, K3B, K3C, K3D, K3E, K3F}, \ + {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}, \ + {K50, K51, K52, K53, K54, K55, K56, K57, \ + K58, K59, KC_NO, K5B, K5C, K5D, K5E, K5F}, \ + {K60, K61, K62, K63, K64, K65, K66, K67, \ + K68, K69, K6A, K6B, K6C, K6D, K6E, K6F}, \ + { \ + K70, K71, K72, K73, K74, K75, K76, K77, \ + KC_NO, KC_NO, KC_NO, KC_NO, K7C, K7D, K7E, K7F \ + } \ + } /* -KEYMAP( +LAYOUT( _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______, diff --git a/keyboards/fc980c/info.json b/keyboards/fc980c/info.json new file mode 100644 index 000000000000..f3007f2f8489 --- /dev/null +++ b/keyboards/fc980c/info.json @@ -0,0 +1,111 @@ +{ + "keyboard_name": "fc980c", + "url": "", + "maintainer": "qmk", + "width": 19.5, + "height": 6.75, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 2, "y": 0 }, + { "label": "F2", "x": 3, "y": 0 }, + { "label": "F3", "x": 4, "y": 0 }, + { "label": "F4", "x": 5, "y": 0 }, + { "label": "F5", "x": 6.5, "y": 0 }, + { "label": "F6", "x": 7.5, "y": 0 }, + { "label": "F7", "x": 8.5, "y": 0 }, + { "label": "F8", "x": 9.5, "y": 0 }, + { "label": "F9", "x": 11, "y": 0 }, + { "label": "F10", "x": 12, "y": 0 }, + { "label": "F11", "x": 13, "y": 0 }, + { "label": "F12", "x": 14, "y": 0 }, + { "label": "Delete", "x": 15.5, "y": 0 }, + { "label": "Insert", "x": 16.5, "y": 0 }, + { "label": "Pg Up", "x": 17.5, "y": 0 }, + { "label": "Pg Dn", "x": 18.5, "y": 0 }, + { "label": "~", "x": 0, "y": 1.5 }, + { "label": "!", "x": 1, "y": 1.5 }, + { "label": "@", "x": 2, "y": 1.5 }, + { "label": "#", "x": 3, "y": 1.5 }, + { "label": "$", "x": 4, "y": 1.5 }, + { "label": "%", "x": 5, "y": 1.5 }, + { "label": "^", "x": 6, "y": 1.5 }, + { "label": "&", "x": 7, "y": 1.5 }, + { "label": "*", "x": 8, "y": 1.5 }, + { "label": "(", "x": 9, "y": 1.5 }, + { "label": ")", "x": 10, "y": 1.5 }, + { "label": "_", "x": 11, "y": 1.5 }, + { "label": "+", "x": 12, "y": 1.5 }, + { "label": "Backspace", "x": 13, "y": 1.5, "w": 2 }, + { "label": "Num Lock", "x": 15.5, "y": 1.5 }, + { "label": "/", "x": 16.5, "y": 1.5 }, + { "label": "*", "x": 17.5, "y": 1.5 }, + { "label": "-", "x": 18.5, "y": 1.5 }, + { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.5 }, + { "label": "W", "x": 2.5, "y": 2.5 }, + { "label": "E", "x": 3.5, "y": 2.5 }, + { "label": "R", "x": 4.5, "y": 2.5 }, + { "label": "T", "x": 5.5, "y": 2.5 }, + { "label": "Y", "x": 6.5, "y": 2.5 }, + { "label": "U", "x": 7.5, "y": 2.5 }, + { "label": "I", "x": 8.5, "y": 2.5 }, + { "label": "O", "x": 9.5, "y": 2.5 }, + { "label": "P", "x": 10.5, "y": 2.5 }, + { "label": "{", "x": 11.5, "y": 2.5 }, + { "label": "}", "x": 12.5, "y": 2.5 }, + { "label": "|", "x": 13.5, "y": 2.5, "w": 1.5 }, + { "label": "7", "x": 15.5, "y": 2.5 }, + { "label": "8", "x": 16.5, "y": 2.5 }, + { "label": "9", "x": 17.5, "y": 2.5 }, + { "label": "+", "x": 18.5, "y": 2.5, "h": 2 }, + { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.5 }, + { "label": "S", "x": 2.75, "y": 3.5 }, + { "label": "D", "x": 3.75, "y": 3.5 }, + { "label": "F", "x": 4.75, "y": 3.5 }, + { "label": "G", "x": 5.75, "y": 3.5 }, + { "label": "H", "x": 6.75, "y": 3.5 }, + { "label": "J", "x": 7.75, "y": 3.5 }, + { "label": "K", "x": 8.75, "y": 3.5 }, + { "label": "L", "x": 9.75, "y": 3.5 }, + { "label": ":", "x": 10.75, "y": 3.5 }, + { "label": "\"", "x": 11.75, "y": 3.5 }, + { "label": "Enter", "x": 12.75, "y": 3.5, "w": 2.25 }, + { "label": "4", "x": 15.5, "y": 3.5 }, + { "label": "5", "x": 16.5, "y": 3.5 }, + { "label": "6", "x": 17.5, "y": 3.5 }, + { "label": "Shift", "x": 0, "y": 4.5, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.5 }, + { "label": "X", "x": 3.25, "y": 4.5 }, + { "label": "C", "x": 4.25, "y": 4.5 }, + { "label": "V", "x": 5.25, "y": 4.5 }, + { "label": "B", "x": 6.25, "y": 4.5 }, + { "label": "N", "x": 7.25, "y": 4.5 }, + { "label": "M", "x": 8.25, "y": 4.5 }, + { "label": "<", "x": 9.25, "y": 4.5 }, + { "label": ">", "x": 10.25, "y": 4.5 }, + { "label": "?", "x": 11.25, "y": 4.5 }, + { "label": "Shift", "x": 12.25, "y": 4.5, "w": 1.75 }, + { "label": "1", "x": 15.5, "y": 4.5 }, + { "label": "2", "x": 16.5, "y": 4.5 }, + { "label": "3", "x": 17.5, "y": 4.5 }, + { "label": "Enter", "x": 18.5, "y": 4.5, "h": 2 }, + { "label": "\u2191", "x": 14.25, "y": 4.75 }, + { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.5 }, + { "label": "Alt", "x": 2.25, "y": 5.5, "w": 1.25 }, + { "x": 3.5, "y": 5.5, "w": 6 }, + { "label": "Alt", "x": 9.5, "y": 5.5, "w": 1.25 }, + { "label": "Ctrl", "x": 10.75, "y": 5.5 }, + { "label": "Fn", "x": 11.75, "y": 5.5, "w": 1.25 }, + { "label": "0", "x": 16.5, "y": 5.5 }, + { "label": ".", "x": 17.5, "y": 5.5 }, + { "label": "\u2190", "x": 13.25, "y": 5.75 }, + { "label": "\u2193", "x": 14.25, "y": 5.75 }, + { "label": "\u2192", "x": 15.25, "y": 5.75 } + ] + } + } +} diff --git a/keyboards/fc980c/keymaps/actuation-point-example/keymap.c b/keyboards/fc980c/keymaps/actuation-point-example/keymap.c index dcecd86b9675..ac993ae6baa3 100644 --- a/keyboards/fc980c/keymaps/actuation-point-example/keymap.c +++ b/keyboards/fc980c/keymaps/actuation-point-example/keymap.c @@ -14,10 +14,11 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "fc980c.h" +#include QMK_KEYBOARD_H #include "actuation_point.h" -enum custom_keycodes { +enum custom_keycodes +{ AP_UP = SAFE_RANGE, // Higher actuation point, more sensitive AP_DN, // Lower actuation point, less sensitive AP_READ_RDAC, // Prints current RDAC value to console @@ -25,53 +26,59 @@ enum custom_keycodes { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP( - KC_ESC, 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_DEL, KC_INS, KC_PGUP,KC_PGDN, - KC_GRV, 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_BSPC, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, - 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_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS, - MO(1) , KC_A,KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RCTL,MO(1), KC_LEFT,KC_DOWN,KC_RGHT, KC_P0, KC_PDOT - ), - [1] = KEYMAP( - _______, _______,_______,_______,_______,_______,_______, _______, _______,AP_READ_RDAC,AP_READ_EEPROM,AP_DN,AP_UP, _______,_______,KC_HOME,KC_END, - _______,_______,_______,_______,_______,_______,_______,_______, _______, _______,_______,_______,_______,_______, _______,_______,_______,_______, - KC_CAPS,KC_MPRV,KC_VOLU,KC_MNXT,KC_PGUP,KC_INS,KC_HOME, LCTL(KC_LEFT),LCTL(KC_RGHT),KC_END, KC_PSCR,KC_SLCK,KC_PAUS,_______, _______,_______,_______,_______, - _______,KC_MUTE,KC_VOLD,KC_MPLY,KC_PGDN,KC_DEL,KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,_______,_______, _______, _______,_______,_______, - _______, _______,_______,_______,_______,_______,LCTL(KC_BSPC),LCTL(KC_DEL), _______,_______,_______, _______, KC_PGUP, _______,_______,_______,_______, - _______,_______,_______, _______, _______,KC_APP, _______, KC_HOME,KC_PGDN,KC_END, _______,_______ - ), + [0] = LAYOUT( + KC_ESC, 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_DEL, KC_INS, KC_PGUP, KC_PGDN, + KC_GRV, 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_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + 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_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS, + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, AP_READ_RDAC, AP_READ_EEPROM, AP_DN, AP_UP, _______, _______, KC_HOME, KC_END, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_CAPS, KC_MPRV, KC_VOLU, KC_MNXT, KC_PGUP, KC_INS, KC_HOME, LCTL(KC_LEFT), LCTL(KC_RGHT), KC_END, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, _______, _______, + _______, KC_MUTE, KC_VOLD, KC_MPLY, KC_PGDN, KC_DEL, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, LCTL(KC_BSPC), LCTL(KC_DEL), _______, _______, _______, _______, KC_PGUP, _______, _______, _______, _______, + _______, _______, _______, _______, _______, KC_APP, _______, KC_HOME, KC_PGDN, KC_END, _______, _______), }; -void matrix_init_user(void) { -}; +void matrix_init_user(void){}; -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - switch(keycode) { - case AP_UP: { - actuation_point_up(); - return false; - } - case AP_DN: { - actuation_point_down(); - return false; - } - case AP_READ_RDAC: { - xprintf("RDAC: %d", read_rdac()); - return false; - } - case AP_READ_EEPROM: { - xprintf("EEPROM: %d", read_eeprom()); - return false; - } +bool process_record_user(uint16_t keycode, keyrecord_t *record) +{ + if (record->event.pressed) + { + switch (keycode) + { + case AP_UP: + { + actuation_point_up(); + return false; + } + case AP_DN: + { + actuation_point_down(); + return false; + } + case AP_READ_RDAC: + { + xprintf("RDAC: %d", read_rdac()); + return false; + } + case AP_READ_EEPROM: + { + xprintf("EEPROM: %d", read_eeprom()); + return false; + } - default: return true; + default: + return true; } - } else { + } + else + { return true; } }; -const uint16_t PROGMEM fn_actions[] = { -}; +const uint16_t PROGMEM fn_actions[] = {}; diff --git a/keyboards/fc980c/keymaps/coloneljesus/keymap.c b/keyboards/fc980c/keymaps/coloneljesus/keymap.c index d82a616ebb16..26d476ab6140 100644 --- a/keyboards/fc980c/keymaps/coloneljesus/keymap.c +++ b/keyboards/fc980c/keymaps/coloneljesus/keymap.c @@ -14,26 +14,23 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "fc980c.h" +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP( - KC_ESC, 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_DEL, KC_INS, KC_PGUP,KC_PGDN, - KC_GRV, 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_BSPC, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, - 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_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS, - MO(1) , KC_A,KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RCTL,MO(1), KC_LEFT,KC_DOWN,KC_RGHT, KC_P0, KC_PDOT - ), - [1] = KEYMAP( - _______, _______,_______,_______,_______,_______,_______, _______, _______,_______,_______,_______,_______, _______,_______,KC_HOME,KC_END, - _______,_______,_______,_______,_______,_______,_______,_______, _______, _______,_______,_______,_______,_______, _______,_______,_______,_______, - KC_CAPS,KC_MPRV,KC_VOLU,KC_MNXT,KC_PGUP,KC_INS,KC_HOME, LCTL(KC_LEFT),LCTL(KC_RGHT),KC_END, KC_PSCR,KC_SLCK,KC_PAUS,_______, _______,_______,_______,_______, - _______,KC_MUTE,KC_VOLD,KC_MPLY,KC_PGDN,KC_DEL,KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,_______,_______, _______, _______,_______,_______, - _______, _______,_______,_______,_______,_______,LCTL(KC_BSPC),LCTL(KC_DEL), _______,_______,_______, _______, KC_PGUP, _______,_______,_______,_______, - _______,_______,_______, _______, _______,KC_APP, _______, KC_HOME,KC_PGDN,KC_END, _______,_______ - ), + [0] = LAYOUT( + KC_ESC, 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_DEL, KC_INS, KC_PGUP, KC_PGDN, + KC_GRV, 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_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + 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_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS, + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_CAPS, KC_MPRV, KC_VOLU, KC_MNXT, KC_PGUP, KC_INS, KC_HOME, LCTL(KC_LEFT), LCTL(KC_RGHT), KC_END, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, _______, _______, + _______, KC_MUTE, KC_VOLD, KC_MPLY, KC_PGDN, KC_DEL, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, LCTL(KC_BSPC), LCTL(KC_DEL), _______, _______, _______, _______, KC_PGUP, _______, _______, _______, _______, + _______, _______, _______, _______, _______, KC_APP, _______, KC_HOME, KC_PGDN, KC_END, _______, _______), }; -const uint16_t PROGMEM fn_actions[] = { -}; +const uint16_t PROGMEM fn_actions[] = {}; diff --git a/keyboards/fc980c/keymaps/default/keymap.c b/keyboards/fc980c/keymaps/default/keymap.c index 4a1872ad0b4f..b3f7bb7b1149 100644 --- a/keyboards/fc980c/keymaps/default/keymap.c +++ b/keyboards/fc980c/keymaps/default/keymap.c @@ -14,26 +14,23 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "fc980c.h" +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP( - KC_ESC, 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_DEL, KC_INS, KC_PGUP,KC_PGDN, - KC_GRV, 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_BSPC, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, - 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_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_CAPS,KC_A,KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RCTL,MO(1), KC_LEFT,KC_DOWN,KC_RGHT, KC_P0, KC_PDOT - ), - [1] = KEYMAP( - _______, _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______,_______, _______,_______,KC_HOME,KC_END, - _______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______,_______, _______,_______,_______,_______, - _______,_______,_______,_______,_______,_______,_______,_______,KC_PSCR, KC_SLCK, KC_PAUS, _______,_______,_______, _______,_______,_______,_______, - _______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______,_______,_______, - _______, _______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, KC_PGUP, _______,_______,_______,_______, - _______,_______,_______, _______, _______,KC_APP, _______, KC_HOME,KC_PGDN,KC_END, _______,_______ - ), + [0] = LAYOUT( + KC_ESC, 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_DEL, KC_INS, KC_PGUP, KC_PGDN, + KC_GRV, 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_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + 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_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, _______, _______, _______, + _______, _______, _______, _______, _______, KC_APP, _______, KC_HOME, KC_PGDN, KC_END, _______, _______), }; -const uint16_t PROGMEM fn_actions[] = { -}; +const uint16_t PROGMEM fn_actions[] = {}; diff --git a/keyboards/fc980c/matrix.c b/keyboards/fc980c/matrix.c index bde0f3c139e7..1126f3047ae7 100644 --- a/keyboards/fc980c/matrix.c +++ b/keyboards/fc980c/matrix.c @@ -28,7 +28,7 @@ along with this program. If not, see . #include "timer.h" #include "matrix.h" #include "led.h" -// #include "fc980c.h" +// #include QMK_KEYBOARD_H // Timer resolution check From 1ff7473ce4fa53f1ea28edfa16ae68ea5cc74d47 Mon Sep 17 00:00:00 2001 From: MakotoKurauchi Date: Tue, 1 May 2018 00:15:49 +0900 Subject: [PATCH 309/578] Add LOCAL_GLCDFONT option (#2854) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add some comment about Helix customize and auto-setup RGBLIGHT_LIMIT_VAL * add define USB_MAX_POWER_CONSUMPTION * Helix keyboard OLED, RGBLIGHT enable/disable control integrate into rules.mk rules.mk: add 4 Variables for compile control. # Helix keyboard customize # you can edit follows 4 Variables # jp: 以下の4つの変数を必要に応じて編集します。 OLED_ENABLE = no # OLED_ENABLE LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) LED_ANIMATIONS = yes # LED animations config.h: auto set RGBLED_NUM by HELIX_ROWS and rules.mk's define * HELIX_ROWS define move from config.h to rules.mk * add readme.md * rename readme.md to readme_jp.md * add readme.md and modify readme_jp.md * change helix/ssd1306.c for select glcdfont.c position * add variable LOCAL_GLCDFONT into each keymaps rules.mk --- keyboards/helix/rev2/keymaps/default/rules.mk | 9 +++++++-- keyboards/helix/rev2/keymaps/five_rows/rules.mk | 9 +++++++-- keyboards/helix/ssd1306.c | 4 ++++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/keyboards/helix/rev2/keymaps/default/rules.mk b/keyboards/helix/rev2/keymaps/default/rules.mk index 976529ef911b..d407dfb5eb92 100644 --- a/keyboards/helix/rev2/keymaps/default/rules.mk +++ b/keyboards/helix/rev2/keymaps/default/rules.mk @@ -26,10 +26,11 @@ define HELIX_CUSTOMISE_MSG endef # Helix keyboard customize -# you can edit follows 5 Variables -# jp: 以下の5つの変数を必要に応じて編集します。 +# you can edit follows 6 Variables +# jp: 以下の6つの変数を必要に応じて編集します。 HELIX_ROWS = 5 # Helix Rows is 4 or 5 OLED_ENABLE = no # OLED_ENABLE +LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c" LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) LED_ANIMATIONS = yes # LED animations @@ -70,6 +71,10 @@ ifeq ($(strip $(OLED_ENABLE)), yes) OPT_DEFS += -DOLED_ENABLE endif +ifeq ($(strip $(LOCAL_GLCDFONT)), yes) + OPT_DEFS += -DLOCAL_GLCDFONT +endif + # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/helix/rev2/keymaps/five_rows/rules.mk b/keyboards/helix/rev2/keymaps/five_rows/rules.mk index 67344f94f037..53a581ec2566 100644 --- a/keyboards/helix/rev2/keymaps/five_rows/rules.mk +++ b/keyboards/helix/rev2/keymaps/five_rows/rules.mk @@ -27,9 +27,10 @@ define HELIX_CUSTOMISE_MSG endef # Helix keyboard customize -# you can edit follows 5 Variables -# jp: 以下の5つの変数を必要に応じて編集します。 +# you can edit follows 6 Variables +# jp: 以下の6つの変数を必要に応じて編集します。 OLED_ENABLE = no # OLED_ENABLE +LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c" LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) LED_ANIMATIONS = yes # LED animations @@ -97,6 +98,10 @@ ifeq ($(strip $(OLED_ENABLE)), yes) OPT_DEFS += -DOLED_ENABLE endif +ifeq ($(strip $(LOCAL_GLCDFONT)), yes) + OPT_DEFS += -DLOCAL_GLCDFONT +endif + # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/helix/ssd1306.c b/keyboards/helix/ssd1306.c index 80efc3d16683..b13060ef733b 100644 --- a/keyboards/helix/ssd1306.c +++ b/keyboards/helix/ssd1306.c @@ -4,7 +4,11 @@ #include "i2c.h" #include #include "print.h" +#ifndef LOCAL_GLCDFONT #include "common/glcdfont.c" +#else +#include +#endif #ifdef ADAFRUIT_BLE_ENABLE #include "adafruit_ble.h" #endif From 3aeaf4e3ea6c590ea2c75946d2d0b04f1dfa59a9 Mon Sep 17 00:00:00 2001 From: Eric <22215921+ericywl@users.noreply.github.com> Date: Mon, 30 Apr 2018 23:17:07 +0800 Subject: [PATCH 310/578] QMK Configurator Support for Lightsaver V3 (#2856) * Added Lightsaver Config * Changed KEYMAP to LAYOUT * Missed out one KEYMAP * Changed lightsaver.h to QMK_KEYBOARD_H * Missed out one lightsaver.h --- keyboards/lightsaver/info.json | 13 +++++++++++++ keyboards/lightsaver/keymaps/default/keymap.c | 6 +++--- keyboards/lightsaver/keymaps/rasmus/keymap.c | 8 ++++---- keyboards/lightsaver/lightsaver.h | 2 +- 4 files changed, 21 insertions(+), 8 deletions(-) create mode 100644 keyboards/lightsaver/info.json diff --git a/keyboards/lightsaver/info.json b/keyboards/lightsaver/info.json new file mode 100644 index 000000000000..e29b039b1c97 --- /dev/null +++ b/keyboards/lightsaver/info.json @@ -0,0 +1,13 @@ +{ + "keyboard_name": "lightsaver_v3", + "url": "", + "maintainer": "qmk", + "bootloader": "", + "width": 19, + "height": 6, + "layouts": { + "LAYOUT": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Delete", "x":15, "y":0}, {"x":16, "y":0}, {"x":17, "y":0}, {"x":18, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Bkspc", "x":13, "y":1}, {"label":"Bkspc", "x":14, "y":1}, {"label":"Num
Lock", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "y":2}, {"label":"+", "x":18, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"x":12.75, "y":3}, {"label":"Enter", "x":13.75, "y":3, "w":1.25}, {"label":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"label":"+", "x":18, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Enter", "x":18, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.5}, {"label":"Fn", "x":11.5, "y":5, "w":1.5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}, {"x":16, "y":5}, {"x":17, "y":5}, {"label":"Enter", "x":18, "y":5}] + } + } +} diff --git a/keyboards/lightsaver/keymaps/default/keymap.c b/keyboards/lightsaver/keymaps/default/keymap.c index fd188bd34450..d945ada24da6 100644 --- a/keyboards/lightsaver/keymaps/default/keymap.c +++ b/keyboards/lightsaver/keymaps/default/keymap.c @@ -14,7 +14,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "lightsaver.h" +#include QMK_KEYBOARD_H #define KC_F1GL TD(TD_F1_GAME) #define KC_CLFN TD(TD_CAPS_FN) @@ -25,7 +25,7 @@ enum custom_layers { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[BASE] = KEYMAP(\ +[BASE] = LAYOUT(\ KC_ESC, 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_PSCR, KC_NLCK, KC_INS, KC_HOME, KC_PGUP, KC_PSLS, \ KC_GRV, 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_BSPC, KC_DEL, KC_END, KC_PGDN, KC_PAST, \ 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_BSLS, KC_P7, KC_P8, KC_P9, KC_PMNS, \ @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), \ -[FN] = KEYMAP(\ +[FN] = LAYOUT(\ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUS, KC_SLCK, RGB_TOG, RGB_MOD, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_CAPS, BL_TOGG, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, \ diff --git a/keyboards/lightsaver/keymaps/rasmus/keymap.c b/keyboards/lightsaver/keymaps/rasmus/keymap.c index acdfe9394e7e..518ba2d21a77 100644 --- a/keyboards/lightsaver/keymaps/rasmus/keymap.c +++ b/keyboards/lightsaver/keymaps/rasmus/keymap.c @@ -14,7 +14,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "lightsaver.h" +#include QMK_KEYBOARD_H #define KC_F1GL TD(TD_F1_GAME) #define KC_CLFN TD(TD_CAPS_FN) @@ -65,7 +65,7 @@ enum macro_id { ) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[BASE] = KEYMAP(\ +[BASE] = LAYOUT(\ KC_ESC, KC_F1GL, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_NLCK, KC_INS, KC_HOME, KC_PGUP, KC_PSLS, \ KC_GRV, 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_BSPC, KC_DEL, KC_END, KC_PGDN, KC_PAST, \ 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_BSLS, KC_P7, KC_P8, KC_P9, KC_PMNS, \ @@ -73,7 +73,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), \ -[GAME] = KEYMAP(\ +[GAME] = LAYOUT(\ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LOCK, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ @@ -81,7 +81,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, KC_LGUI, KC_LALT, _______, KC_RALT, _______, _______, _______, _______, _______, _______ ), \ -[FN] = KEYMAP(\ +[FN] = LAYOUT(\ _______, M(SHRG), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUS, KC_SLCK, RGB_TOG, RGB_MOD, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, \ diff --git a/keyboards/lightsaver/lightsaver.h b/keyboards/lightsaver/lightsaver.h index 5b80dbabb6f5..19fcf36bacb4 100644 --- a/keyboards/lightsaver/lightsaver.h +++ b/keyboards/lightsaver/lightsaver.h @@ -20,7 +20,7 @@ #define NO KC_NO -#define KEYMAP( \ +#define LAYOUT( \ K5A, K5B, K5C, K5D, K5E, K5F, K5G, K5H, K5I, K5J, K5K, K5L, K5M, K5N, K5O, K5P, K5Q, K5R, K5S, \ K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4O, K4P, K4Q, K4R, K4S, \ K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3O, K3P, K3Q, K3R, K3S, \ From c76ab936c859d7da1e87d6f6ad4bbec2740fe57f Mon Sep 17 00:00:00 2001 From: Eric <22215921+ericywl@users.noreply.github.com> Date: Mon, 30 Apr 2018 23:19:12 +0800 Subject: [PATCH 311/578] Changed KEYMAP to LAYOUT for HHKB (#2857) --- keyboards/hhkb/hhkb.h | 4 +- keyboards/hhkb/info.json | 155 +++++++++++++++++-- keyboards/hhkb/keymaps/blakedietz/keymap.c | 69 +++++---- keyboards/hhkb/keymaps/cinaeco/keymap.c | 104 ++++++------- keyboards/hhkb/keymaps/dbroqua/keymap.c | 126 +++++++-------- keyboards/hhkb/keymaps/dbroqua/readme.md | 8 +- keyboards/hhkb/keymaps/default/keymap.c | 47 +++--- keyboards/hhkb/keymaps/enoch_jp/keymap.c | 35 ++--- keyboards/hhkb/keymaps/eric/keymap.c | 47 +++--- keyboards/hhkb/keymaps/jp/keymap.c | 39 +++-- keyboards/hhkb/keymaps/jp_mac/keymap.c | 39 +++-- keyboards/hhkb/keymaps/krusli/keymap.c | 47 +++--- keyboards/hhkb/keymaps/lxol/keymap.c | 114 +++++++------- keyboards/hhkb/keymaps/mjt/keymap.c | 85 +++++----- keyboards/hhkb/keymaps/rdg_jp/keymap.c | 64 ++++---- keyboards/hhkb/keymaps/sh_jp/keymap.c | 94 ++++++----- keyboards/hhkb/keymaps/shela/keymap.c | 90 ++++++----- keyboards/hhkb/keymaps/shela/keymap_jis2us.h | 4 +- keyboards/hhkb/keymaps/smt/keymap.c | 144 ++++++++--------- 19 files changed, 722 insertions(+), 593 deletions(-) diff --git a/keyboards/hhkb/hhkb.h b/keyboards/hhkb/hhkb.h index e95125efcb22..30dc039a4c1f 100644 --- a/keyboards/hhkb/hhkb.h +++ b/keyboards/hhkb/hhkb.h @@ -3,7 +3,7 @@ #include "quantum.h" -#define KEYMAP( \ +#define LAYOUT( \ K31, K30, K00, K10, K11, K20, K21, K40, K41, K60, K61, K70, K71, K50, K51, \ K32, K01, K02, K13, K12, K23, K22, K42, K43, K62, K63, K73, K72, K52, \ K33, K04, K03, K14, K15, K24, K25, K45, K44, K65, K64, K74, K53, \ @@ -22,7 +22,7 @@ } -#define KEYMAP_JP( \ +#define LAYOUT_JP( \ K02, K32, K62, K22, K12, K52, K72, KA2, K92, K82, KB2, KE2, KF2, KD2, KC2, \ K03, K63, K23, K13, K53, K73, KA3, K93, K83, KB3, KE3, KF3, KD3, \ K06, K66, K26, K16, K56, K76, KA6, K96, K86, KB6, KE6, KF6, KD6, KC6, \ diff --git a/keyboards/hhkb/info.json b/keyboards/hhkb/info.json index bce1bfce18b2..3beaff83da9a 100644 --- a/keyboards/hhkb/info.json +++ b/keyboards/hhkb/info.json @@ -1,16 +1,147 @@ { - "keyboard_name": "hhkb", - "url": "", - "maintainer": "qmk", - "width": 15, - "height": 5, - "layouts": { - "KEYMAP": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Delete", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Return", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"", "x":1.5, "y":4}, {"label":"", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":6}, {"label":"", "x":10, "y":4, "w":1.5}, {"label":"", "x":11.5, "y":4}] - }, + "keyboard_name": "hhkb", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "!", "x": 1, "y": 0 }, + { "label": "@", "x": 2, "y": 0 }, + { "label": "#", "x": 3, "y": 0 }, + { "label": "$", "x": 4, "y": 0 }, + { "label": "%", "x": 5, "y": 0 }, + { "label": "^", "x": 6, "y": 0 }, + { "label": "&", "x": 7, "y": 0 }, + { "label": "*", "x": 8, "y": 0 }, + { "label": "(", "x": 9, "y": 0 }, + { "label": ")", "x": 10, "y": 0 }, + { "label": "_", "x": 11, "y": 0 }, + { "label": "+", "x": 12, "y": 0 }, + { "label": "|", "x": 13, "y": 0 }, + { "label": "~", "x": 14, "y": 0 }, + { "label": "Tab", "x": 0, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 1 }, + { "label": "W", "x": 2.5, "y": 1 }, + { "label": "E", "x": 3.5, "y": 1 }, + { "label": "R", "x": 4.5, "y": 1 }, + { "label": "T", "x": 5.5, "y": 1 }, + { "label": "Y", "x": 6.5, "y": 1 }, + { "label": "U", "x": 7.5, "y": 1 }, + { "label": "I", "x": 8.5, "y": 1 }, + { "label": "O", "x": 9.5, "y": 1 }, + { "label": "P", "x": 10.5, "y": 1 }, + { "label": "{", "x": 11.5, "y": 1 }, + { "label": "}", "x": 12.5, "y": 1 }, + { "label": "Delete", "x": 13.5, "y": 1, "w": 1.5 }, + { "label": "Control", "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 2 }, + { "label": "S", "x": 2.75, "y": 2 }, + { "label": "D", "x": 3.75, "y": 2 }, + { "label": "F", "x": 4.75, "y": 2 }, + { "label": "G", "x": 5.75, "y": 2 }, + { "label": "H", "x": 6.75, "y": 2 }, + { "label": "J", "x": 7.75, "y": 2 }, + { "label": "K", "x": 8.75, "y": 2 }, + { "label": "L", "x": 9.75, "y": 2 }, + { "label": ":", "x": 10.75, "y": 2 }, + { "label": "\"", "x": 11.75, "y": 2 }, + { "label": "Return", "x": 12.75, "y": 2, "w": 2.25 }, + { "label": "Shift", "x": 0, "y": 3, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 3 }, + { "label": "X", "x": 3.25, "y": 3 }, + { "label": "C", "x": 4.25, "y": 3 }, + { "label": "V", "x": 5.25, "y": 3 }, + { "label": "B", "x": 6.25, "y": 3 }, + { "label": "N", "x": 7.25, "y": 3 }, + { "label": "M", "x": 8.25, "y": 3 }, + { "label": "<", "x": 9.25, "y": 3 }, + { "label": ">", "x": 10.25, "y": 3 }, + { "label": "?", "x": 11.25, "y": 3 }, + { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "Fn", "x": 14, "y": 3 }, + { "label": "", "x": 1.5, "y": 4 }, + { "label": "", "x": 2.5, "y": 4, "w": 1.5 }, + { "x": 4, "y": 4, "w": 6 }, + { "label": "", "x": 10, "y": 4, "w": 1.5 }, + { "label": "", "x": 11.5, "y": 4 } + ] + }, - "KEYMAP_JP": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"&", "x":6, "y":0}, {"label":"'", "x":7, "y":0}, {"label":"(", "x":8, "y":0}, {"label":")", "x":9, "y":0}, {"label":"", "x":10, "y":0}, {"label":"=", "x":11, "y":0}, {"label":"~", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"BS", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"`", "x":11.5, "y":1}, {"label":"{", "x":12.5, "y":1}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":"+", "x":10.75, "y":2}, {"label":"*", "x":11.75, "y":2}, {"label":"}", "x":12.75, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"_", "x":12, "y":3}, {"label":"\u2191", "x":13, "y":3}, {"label":"Shift", "x":14, "y":3}, {"label":"Fn", "x":0, "y":4}, {"label":"HH", "x":1.25, "y":4}, {"label":"\u2662", "x":2.25, "y":4}, {"label":"", "x":3.25, "y":4}, {"label":"NN", "x":4.25, "y":4}, {"x":5.25, "y":4, "w":2.5}, {"label":"\u25cc", "x":7.75, "y":4}, {"label":"Kana", "x":8.75, "y":4}, {"label":"", "x":9.75, "y":4}, {"label":"Fn", "x":10.75, "y":4}, {"label":"\u2190", "x":12, "y":4}, {"label":"\u2193", "x":13, "y":4}, {"label":"\u2192", "x":14, "y":4}] - } + "LAYOUT_JP": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "!", "x": 1, "y": 0 }, + { "label": "\"", "x": 2, "y": 0 }, + { "label": "#", "x": 3, "y": 0 }, + { "label": "$", "x": 4, "y": 0 }, + { "label": "%", "x": 5, "y": 0 }, + { "label": "&", "x": 6, "y": 0 }, + { "label": "'", "x": 7, "y": 0 }, + { "label": "(", "x": 8, "y": 0 }, + { "label": ")", "x": 9, "y": 0 }, + { "label": "", "x": 10, "y": 0 }, + { "label": "=", "x": 11, "y": 0 }, + { "label": "~", "x": 12, "y": 0 }, + { "label": "|", "x": 13, "y": 0 }, + { "label": "BS", "x": 14, "y": 0 }, + { "label": "Tab", "x": 0, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 1 }, + { "label": "W", "x": 2.5, "y": 1 }, + { "label": "E", "x": 3.5, "y": 1 }, + { "label": "R", "x": 4.5, "y": 1 }, + { "label": "T", "x": 5.5, "y": 1 }, + { "label": "Y", "x": 6.5, "y": 1 }, + { "label": "U", "x": 7.5, "y": 1 }, + { "label": "I", "x": 8.5, "y": 1 }, + { "label": "O", "x": 9.5, "y": 1 }, + { "label": "P", "x": 10.5, "y": 1 }, + { "label": "`", "x": 11.5, "y": 1 }, + { "label": "{", "x": 12.5, "y": 1 }, + { "label": "Enter", "x": 13.75, "y": 1, "w": 1.25, "h": 2 }, + { "label": "Control", "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 2 }, + { "label": "S", "x": 2.75, "y": 2 }, + { "label": "D", "x": 3.75, "y": 2 }, + { "label": "F", "x": 4.75, "y": 2 }, + { "label": "G", "x": 5.75, "y": 2 }, + { "label": "H", "x": 6.75, "y": 2 }, + { "label": "J", "x": 7.75, "y": 2 }, + { "label": "K", "x": 8.75, "y": 2 }, + { "label": "L", "x": 9.75, "y": 2 }, + { "label": "+", "x": 10.75, "y": 2 }, + { "label": "*", "x": 11.75, "y": 2 }, + { "label": "}", "x": 12.75, "y": 2 }, + { "label": "Shift", "x": 0, "y": 3, "w": 2 }, + { "label": "Z", "x": 2, "y": 3 }, + { "label": "X", "x": 3, "y": 3 }, + { "label": "C", "x": 4, "y": 3 }, + { "label": "V", "x": 5, "y": 3 }, + { "label": "B", "x": 6, "y": 3 }, + { "label": "N", "x": 7, "y": 3 }, + { "label": "M", "x": 8, "y": 3 }, + { "label": "<", "x": 9, "y": 3 }, + { "label": ">", "x": 10, "y": 3 }, + { "label": "?", "x": 11, "y": 3 }, + { "label": "_", "x": 12, "y": 3 }, + { "label": "\u2191", "x": 13, "y": 3 }, + { "label": "Shift", "x": 14, "y": 3 }, + { "label": "Fn", "x": 0, "y": 4 }, + { "label": "HH", "x": 1.25, "y": 4 }, + { "label": "\u2662", "x": 2.25, "y": 4 }, + { "label": "", "x": 3.25, "y": 4 }, + { "label": "NN", "x": 4.25, "y": 4 }, + { "x": 5.25, "y": 4, "w": 2.5 }, + { "label": "\u25cc", "x": 7.75, "y": 4 }, + { "label": "Kana", "x": 8.75, "y": 4 }, + { "label": "", "x": 9.75, "y": 4 }, + { "label": "Fn", "x": 10.75, "y": 4 }, + { "label": "\u2190", "x": 12, "y": 4 }, + { "label": "\u2193", "x": 13, "y": 4 }, + { "label": "\u2192", "x": 14, "y": 4 } + ] } + } } diff --git a/keyboards/hhkb/keymaps/blakedietz/keymap.c b/keyboards/hhkb/keymaps/blakedietz/keymap.c index ef29a5c80df0..a9146a4a08e8 100644 --- a/keyboards/hhkb/keymaps/blakedietz/keymap.c +++ b/keyboards/hhkb/keymaps/blakedietz/keymap.c @@ -1,4 +1,4 @@ -#include "hhkb.h" +#include QMK_KEYBOARD_H // Layer names #define BASE 0 @@ -27,12 +27,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+-----------------------+------+------| */ - [BASE] = KEYMAP( // default layer - KC_GRV, 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_BSPC, KC_LEAD, \ - 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_BSLS, \ - ALL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(MEDIA, KC_SCLN), KC_QUOT, ALL_T(KC_ENT), \ - KC_LSFT, CTL_T(KC_Z), ALT_T(KC_X), GUI_T(KC_C), KC_V, KC_B, KC_N, KC_M, GUI_T(KC_COMM), ALT_T(KC_DOT), CTL_T(KC_SLSH), KC_RSFT, TG(DEV), \ - TG(DEV), TG(MOUSE), LT(DEV, KC_SPC), TG(MOUSE), TG(DEV)), + [BASE] = LAYOUT( // default layer + KC_GRV, 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_BSPC, KC_LEAD, + 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_BSLS, + ALL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(MEDIA, KC_SCLN), KC_QUOT, ALL_T(KC_ENT), + KC_LSFT, CTL_T(KC_Z), ALT_T(KC_X), GUI_T(KC_C), KC_V, KC_B, KC_N, KC_M, GUI_T(KC_COMM), ALT_T(KC_DOT), CTL_T(KC_SLSH), KC_RSFT, TG(DEV), + TG(DEV), TG(MOUSE), LT(DEV, KC_SPC), TG(MOUSE), TG(DEV)), /* Layer DEV: DEV mode (DEV Fn) TODO: Add a cmd/tab function to the developer layer for quick switching between different applications when debugging @@ -51,12 +51,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+----------------------+------+------+ */ - [DEV] = KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(DEV), \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [DEV] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(DEV), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), /* Layer MOUSE: MOUSE mode (MOUSE Fn) |------+-----+-----+-----+----+----+--------+----------------+--------------+-----------+-------------+-----+-------+-------+-----| @@ -74,12 +74,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+----------------------+------+------+ */ - [MOUSE] = KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_WH_D, KC_WH_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(DEV), \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [MOUSE] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_WH_D, KC_WH_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(DEV), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), /* Layer MEDIA: mode (Hold Semi-colon) |------+-----+-----+-----+----+----+----+----------------+--------------+-----------+-------------+-----+-------+-------+-----| @@ -98,25 +98,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ - [MEDIA] = KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_MUTE, KC_TRNS, KC_MPLY, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, TG(DEV), \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) -}; + [MEDIA] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_MUTE, KC_TRNS, KC_MPLY, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, TG(DEV), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)}; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { + // MACRODOWN only works in this function + switch (id) + { + case 0: + if (record->event.pressed) + { register_code(KC_RSFT); - } else { + } + else + { unregister_code(KC_RSFT); - } + } break; - } + } return MACRO_NONE; }; diff --git a/keyboards/hhkb/keymaps/cinaeco/keymap.c b/keyboards/hhkb/keymaps/cinaeco/keymap.c index 0b204600d159..f50f90a84379 100644 --- a/keyboards/hhkb/keymaps/cinaeco/keymap.c +++ b/keyboards/hhkb/keymaps/cinaeco/keymap.c @@ -1,7 +1,7 @@ /* -*- eval: (turn-on-orgtbl); -*- * cinaeco's HHKB Layout */ -#include "hhkb.h" +#include QMK_KEYBOARD_H // Layers. #define QWER 0 @@ -14,15 +14,15 @@ // Easier-to-read Layer Arrays. #define ____ KC_TRNS -enum hhkb_keycodes { - DYNAMIC_MACRO_RANGE = SAFE_RANGE, +enum hhkb_keycodes +{ + DYNAMIC_MACRO_RANGE = SAFE_RANGE, }; #include "dynamic_macro.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* QWER Layer: Qwerty Default * * ,--------------------------------------------------------------. @@ -39,13 +39,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * */ - [QWER] = KEYMAP( - 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, KC_GRV, \ - KC_TAB, LT(MREC, 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, \ - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, CTL_T(KC_ENT), \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), \ - KC_LALT, KC_LGUI, LT(UTIL, KC_SPC), KC_RGUI, KC_RALT), - + [QWER] = LAYOUT( + 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, KC_GRV, + KC_TAB, LT(MREC, 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, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, CTL_T(KC_ENT), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), + KC_LALT, KC_LGUI, LT(UTIL, KC_SPC), KC_RGUI, KC_RALT), /* COLE Layer: Colemak * @@ -63,13 +62,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * */ - [COLE] = KEYMAP( - 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, KC_GRV, \ - KC_TAB, LT(MREC, KC_Q), KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSPC, \ - KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, CTL_T(KC_ENT), \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_K, KC_B, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), \ - KC_LALT, KC_LGUI, LT(UTIL, KC_SPC), KC_RGUI, KC_RALT), - + [COLE] = LAYOUT( + 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, KC_GRV, + KC_TAB, LT(MREC, KC_Q), KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSPC, + KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, CTL_T(KC_ENT), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_K, KC_B, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), + KC_LALT, KC_LGUI, LT(UTIL, KC_SPC), KC_RGUI, KC_RALT), /* DVOR Layer: Dvorak * @@ -87,13 +85,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * */ - [DVOR] = KEYMAP( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, \ - KC_TAB, LT(MREC, KC_QUOT), KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSPC, \ - KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, CTL_T(KC_ENT), \ - KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, MO(HHKB), \ - KC_LALT, KC_LGUI, LT(UTIL, KC_SPC), KC_RGUI, KC_RALT), - + [DVOR] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, + KC_TAB, LT(MREC, KC_QUOT), KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSPC, + KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, CTL_T(KC_ENT), + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, MO(HHKB), + KC_LALT, KC_LGUI, LT(UTIL, KC_SPC), KC_RGUI, KC_RALT), /* HHKB Layer: HHKB mode (HHKB Fn) * @@ -110,13 +107,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-------------------------------------------' */ - [HHKB] = KEYMAP( - 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, \ - KC_CAPS, KC_MPLY, KC_MPRV, KC_MNXT, ____, ____, ____, ____, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ____, KC_BSPC, \ - ____, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, ____, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ - ____, ____, ____, ____, ____, ____, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, ____, ____, \ - ____, ____, ____, KC_MSTP, ____), - + [HHKB] = LAYOUT( + 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, + KC_CAPS, KC_MPLY, KC_MPRV, KC_MNXT, ____, ____, ____, ____, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ____, KC_BSPC, + ____, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, ____, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, + ____, ____, ____, ____, ____, ____, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, ____, ____, + ____, ____, ____, KC_MSTP, ____), /* UTIL Layer: Extra utilities * @@ -134,13 +130,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * */ - [UTIL] = KEYMAP( - RESET, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, ____, ____, ____, ____, ____, ____, ____, ____, DF(QWER), DF(COLE), DF(DVOR), DEBUG, \ - ____, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, ____, KC_HOME, KC_PGDN, KC_PGUP, KC_END, ____, ____, ____, ____, \ - ____, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, ____, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, ____, ____, ____, \ - ____, ____, ____, ____, ____, KC_SPC, ____, ____, ____, ____, ____, ____, ____, \ - ____, ____, ____, ____, ____), - + [UTIL] = LAYOUT( + RESET, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, ____, ____, ____, ____, ____, ____, ____, ____, DF(QWER), DF(COLE), DF(DVOR), DEBUG, + ____, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, ____, KC_HOME, KC_PGDN, KC_PGUP, KC_END, ____, ____, ____, ____, + ____, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, ____, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, ____, ____, ____, + ____, ____, ____, ____, ____, KC_SPC, ____, ____, ____, ____, ____, ____, ____, + ____, ____, ____, ____, ____), /* MREC Layer: Record macros with `q` * @@ -158,29 +153,30 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * */ - [MREC] = KEYMAP( - ____, DYN_REC_START1, DYN_REC_START2, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ - ____, ____, DYN_REC_STOP, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ - ____, ____, ____, ____, ____) + [MREC] = LAYOUT( + ____, DYN_REC_START1, DYN_REC_START2, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, + ____, ____, DYN_REC_STOP, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, + ____, ____, ____, ____, ____) }; - - const uint16_t PROGMEM fn_actions[] = { }; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - return MACRO_NONE; +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + return MACRO_NONE; }; // For Dynamic Macros. -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (!process_record_dynamic_macro(keycode, record)) { - return false; - } - return true; +bool process_record_user(uint16_t keycode, keyrecord_t *record) +{ + if (!process_record_dynamic_macro(keycode, record)) + { + return false; + } + return true; } diff --git a/keyboards/hhkb/keymaps/dbroqua/keymap.c b/keyboards/hhkb/keymaps/dbroqua/keymap.c index 91faea942cc0..666471a03b30 100644 --- a/keyboards/hhkb/keymaps/dbroqua/keymap.c +++ b/keyboards/hhkb/keymaps/dbroqua/keymap.c @@ -1,18 +1,20 @@ /* * dbroqua HHKB Layout */ -#include "hhkb.h" +#include QMK_KEYBOARD_H -enum planck_layers { - _DEFAULT, - _ALTERNATE, - _FN, - _ADJUST +enum planck_layers +{ + _DEFAULT, + _ALTERNATE, + _FN, + _ADJUST }; -enum planck_keycodes { - DEF = SAFE_RANGE, - ALT +enum planck_keycodes +{ + DEF = SAFE_RANGE, + ALT }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -29,13 +31,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Alt | Gui | Space | Gui | Alt | * `----------------------------------------------------------------´ */ - [_DEFAULT] = KEYMAP( - 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, KC_GRV, \ - 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, \ - 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_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), \ - KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT - ), + [_DEFAULT] = LAYOUT( + 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, KC_GRV, + 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, + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), + KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT), /* Alternamte layer: swap alt/gui * ,-----------------------------------------------------------------------------------------. * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | @@ -49,13 +50,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Gui | Alt | Space | AltGr | RGui| * `----------------------------------------------------------------´ */ - [_ALTERNATE] = KEYMAP( - 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, KC_GRV, \ - 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, \ - 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_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), \ - KC_LGUI, KC_LALT, /* */ KC_SPC, KC_RALT, KC_RGUI - ), + [_ALTERNATE] = LAYOUT( + 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, KC_GRV, + 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, + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), + KC_LGUI, KC_LALT, /* */ KC_SPC, KC_RALT, KC_RGUI), /* FN Layer * ,-----------------------------------------------------------------------------------------. @@ -70,13 +70,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | Adjust | Stop | | * `----------------------------------------------------------------´ */ - [_FN] = KEYMAP( - 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, \ - 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, \ - KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, \ - 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, \ - KC_TRNS, KC_TRNS, TG(_ADJUST), KC_MSTP, KC_TRNS - ), + [_FN] = LAYOUT( + 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, + 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, + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, + 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, + KC_TRNS, KC_TRNS, TG(_ADJUST), KC_MSTP, KC_TRNS), /* SWITCH LAYOUT * ,-----------------------------------------------------------------------------------------. @@ -91,14 +90,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | * `----------------------------------------------------------------´ */ - [_ADJUST] = KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - DEF, ALT, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; + [_ADJUST] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + DEF, ALT, KC_TRNS, KC_TRNS, KC_TRNS)}; const uint16_t PROGMEM fn_actions[] = { @@ -106,35 +103,42 @@ const uint16_t PROGMEM fn_actions[] = { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { + // MACRODOWN only works in this function + switch (id) + { + case 0: + if (record->event.pressed) + { register_code(KC_RSFT); - } else { + } + else + { unregister_code(KC_RSFT); - } + } break; - } + } return MACRO_NONE; }; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { +bool process_record_user(uint16_t keycode, keyrecord_t *record) +{ + switch (keycode) + { case DEF: - if (record->event.pressed) { - print("mode just switched to qwerty and this is a huge string\n"); - set_single_persistent_default_layer(_DEFAULT); - } - return false; - break; + if (record->event.pressed) + { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_DEFAULT); + } + return false; + break; case ALT: - if (record->event.pressed) { - set_single_persistent_default_layer(_ALTERNATE); - } - return false; - break; - } - return true; + if (record->event.pressed) + { + set_single_persistent_default_layer(_ALTERNATE); + } + return false; + break; + } + return true; } diff --git a/keyboards/hhkb/keymaps/dbroqua/readme.md b/keyboards/hhkb/keymaps/dbroqua/readme.md index 0afebc84c871..05ae9ff42763 100644 --- a/keyboards/hhkb/keymaps/dbroqua/readme.md +++ b/keyboards/hhkb/keymaps/dbroqua/readme.md @@ -1,9 +1,11 @@ # Dbroqua Layout -* Online keyboard layout editor: http://www.keyboard-layout-editor.com/#/gists/78eaf35e80bb714eea80cb4049dedb01 +* Online keyboard layout editor: http://www.keyboard-layout-editor.com/#/gists/78eaf35e80bb714eea80cb4049dedb01 # Programming Instructions: + Enter into programming mode and run the following command. + +``` +$ sudo LAYOUT=dbroqua make dfu ``` -$ sudo KEYMAP=dbroqua make dfu -``` \ No newline at end of file diff --git a/keyboards/hhkb/keymaps/default/keymap.c b/keyboards/hhkb/keymaps/default/keymap.c index bd5dd8372d50..3a01fd80205f 100644 --- a/keyboards/hhkb/keymaps/default/keymap.c +++ b/keyboards/hhkb/keymaps/default/keymap.c @@ -1,7 +1,7 @@ /* -*- eval: (turn-on-orgtbl); -*- * default HHKB Layout */ -#include "hhkb.h" +#include QMK_KEYBOARD_H #define BASE 0 #define HHKB 1 @@ -24,14 +24,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+-----------------------+------+------| */ - [BASE] = KEYMAP( // default layer - 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, KC_GRV, \ - 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, \ - 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_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), \ - KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT), - - + [BASE] = LAYOUT( // default layer + 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, KC_GRV, + 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, + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), + KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT), /* Layer HHKB: HHKB mode (HHKB Fn) |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| @@ -50,13 +48,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ - [HHKB] = KEYMAP( - 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, \ - 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_BSPC, \ - 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_PENT, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)}; - + [HHKB] = LAYOUT( + 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, + 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_BSPC, + 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_PENT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)}; const uint16_t PROGMEM fn_actions[] = { @@ -64,15 +61,19 @@ const uint16_t PROGMEM fn_actions[] = { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { + // MACRODOWN only works in this function + switch (id) + { + case 0: + if (record->event.pressed) + { register_code(KC_RSFT); - } else { + } + else + { unregister_code(KC_RSFT); - } + } break; - } + } return MACRO_NONE; }; diff --git a/keyboards/hhkb/keymaps/enoch_jp/keymap.c b/keyboards/hhkb/keymaps/enoch_jp/keymap.c index 4068e579c9e2..60bf832a741c 100644 --- a/keyboards/hhkb/keymaps/enoch_jp/keymap.c +++ b/keyboards/hhkb/keymaps/enoch_jp/keymap.c @@ -1,7 +1,6 @@ -#include "hhkb.h" +#include QMK_KEYBOARD_H #define _______ KC_TRNS - /* Layer 0: HHKB JP * ,-----------------------------------------------------------. * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| -| =|Yen|Bsp| @@ -31,29 +30,27 @@ */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP_JP( - 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_GRAVE, KC_BSPC, - 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_DEL, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_BSLS, - KC_BSPC, KC_ZKHK, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_BSPC, KC_RSFT, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT - ), + [0] = LAYOUT_JP( + 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_GRAVE, KC_BSPC, + 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_DEL, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_BSLS, + KC_BSPC, KC_ZKHK, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_BSPC, KC_RSFT, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), - [1] = KEYMAP_JP( - _______, 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, - KC_CAPS, KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, - _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PSCR, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LEFT, KC_RGHT, _______, KC_PENT, - _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, - _______, _______, _______, _______, _______, _______ , _______, _______, _______, _______, _______, _______, _______ - ) -}; + [1] = LAYOUT_JP( + _______, 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, + KC_CAPS, KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PSCR, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LEFT, KC_RGHT, _______, KC_PENT, + _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)}; const uint16_t PROGMEM fn_actions[] = { }; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - return MACRO_NONE; +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + return MACRO_NONE; }; /*void matrix_scan_user(void) { diff --git a/keyboards/hhkb/keymaps/eric/keymap.c b/keyboards/hhkb/keymaps/eric/keymap.c index 496ead346ca1..46dcd95c03ae 100644 --- a/keyboards/hhkb/keymaps/eric/keymap.c +++ b/keyboards/hhkb/keymaps/eric/keymap.c @@ -1,7 +1,7 @@ /* -*- eval: (turn-on-orgtbl); -*- * default HHKB Layout */ -#include "hhkb.h" +#include QMK_KEYBOARD_H #define BASE 0 #define HHKB 1 @@ -23,14 +23,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+-----------------------+------+------| */ - [BASE] = KEYMAP( // default layer - 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, KC_GRV, \ - 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, \ - 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_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), \ - KC_LGUI, KC_LALT, /* */ KC_SPC, KC_RALT, KC_RGUI), - - + [BASE] = LAYOUT( // default layer + 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, KC_GRV, + 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, + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), + KC_LGUI, KC_LALT, /* */ KC_SPC, KC_RALT, KC_RGUI), /* Layer HHKB: HHKB mode (HHKB Fn) |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| @@ -48,13 +46,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ - [HHKB] = KEYMAP( - KC_CAPS, 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, \ - KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_HOME, KC_AMPR, KC_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_UP, KC_DEL, KC_BSPC, \ - KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_ASTR, KC_TRNS, KC_TRNS, KC_PGUP, KC_HOME, KC_LEFT, KC_RGHT, KC_TRNS, \ - KC_TRNS, KC_UNDS, KC_PLUS, KC_LPRN, KC_RPRN, KC_PIPE, KC_TRNS, KC_TRNS, KC_PGDN, KC_END, KC_DOWN, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)}; - + [HHKB] = LAYOUT( + KC_CAPS, 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, + KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_HOME, KC_AMPR, KC_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_UP, KC_DEL, KC_BSPC, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_ASTR, KC_TRNS, KC_TRNS, KC_PGUP, KC_HOME, KC_LEFT, KC_RGHT, KC_TRNS, + KC_TRNS, KC_UNDS, KC_PLUS, KC_LPRN, KC_RPRN, KC_PIPE, KC_TRNS, KC_TRNS, KC_PGDN, KC_END, KC_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)}; const uint16_t PROGMEM fn_actions[] = { @@ -62,15 +59,19 @@ const uint16_t PROGMEM fn_actions[] = { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { + // MACRODOWN only works in this function + switch (id) + { + case 0: + if (record->event.pressed) + { register_code(KC_RSFT); - } else { + } + else + { unregister_code(KC_RSFT); - } + } break; - } + } return MACRO_NONE; }; diff --git a/keyboards/hhkb/keymaps/jp/keymap.c b/keyboards/hhkb/keymaps/jp/keymap.c index 8525adce59dc..24e4a04a53d5 100644 --- a/keyboards/hhkb/keymaps/jp/keymap.c +++ b/keyboards/hhkb/keymaps/jp/keymap.c @@ -1,8 +1,7 @@ -#include "hhkb.h" +#include QMK_KEYBOARD_H #define _______ KC_TRNS - /* Layer 0: HHKB JP * ,-----------------------------------------------------------. * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| -| =|Yen|Bsp| @@ -32,25 +31,23 @@ */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP_JP( - 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_JYEN, KC_BSPC, - 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_UP, KC_RSFT, - MO(1), KC_ZKHK, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC, KC_HENK, KC_KANA, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = KEYMAP_JP( - 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, - KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, - _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PWR, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, KC_PENT, - _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, - _______, _______, _______, _______, _______, _______ , _______, _______, _______, _______, _______, _______, _______ - ) -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t macro_id, uint8_t opt) { - return MACRO_NONE; + [0] = LAYOUT_JP( + 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_JYEN, KC_BSPC, + 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_UP, KC_RSFT, + MO(1), KC_ZKHK, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC, KC_HENK, KC_KANA, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT_JP( + 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, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PWR, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, KC_PENT, + _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t macro_id, uint8_t opt) +{ + return MACRO_NONE; } const uint16_t PROGMEM fn_actions[] = { diff --git a/keyboards/hhkb/keymaps/jp_mac/keymap.c b/keyboards/hhkb/keymaps/jp_mac/keymap.c index e08bf33df114..326f22cd123d 100644 --- a/keyboards/hhkb/keymaps/jp_mac/keymap.c +++ b/keyboards/hhkb/keymaps/jp_mac/keymap.c @@ -1,8 +1,7 @@ -#include "hhkb.h" +#include QMK_KEYBOARD_H #define _______ KC_TRNS - /* Layer 0: HHKB JP * ,-----------------------------------------------------------. * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| -| =|Yen|Bsp| @@ -32,25 +31,23 @@ */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP_JP( - 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_JYEN, KC_BSPC, - 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_UP, KC_RSFT, - MO(1), KC_GRV, KC_LALT, KC_LGUI, KC_MHEN, KC_SPC, KC_HENK, KC_RGUI, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = KEYMAP_JP( - 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, - KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, - _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PWR, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, KC_PENT, - _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, - _______, _______, _______, _______, _______, _______ , _______, _______, _______, _______, KC_DEL, _______, _______ - ) -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t macro_id, uint8_t opt) { - return MACRO_NONE; + [0] = LAYOUT_JP( + 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_JYEN, KC_BSPC, + 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_UP, KC_RSFT, + MO(1), KC_GRV, KC_LALT, KC_LGUI, KC_MHEN, KC_SPC, KC_HENK, KC_RGUI, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT_JP( + 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, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PWR, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, KC_PENT, + _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, _______)}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t macro_id, uint8_t opt) +{ + return MACRO_NONE; } const uint16_t PROGMEM fn_actions[] = { diff --git a/keyboards/hhkb/keymaps/krusli/keymap.c b/keyboards/hhkb/keymaps/krusli/keymap.c index bd5dd8372d50..3a01fd80205f 100644 --- a/keyboards/hhkb/keymaps/krusli/keymap.c +++ b/keyboards/hhkb/keymaps/krusli/keymap.c @@ -1,7 +1,7 @@ /* -*- eval: (turn-on-orgtbl); -*- * default HHKB Layout */ -#include "hhkb.h" +#include QMK_KEYBOARD_H #define BASE 0 #define HHKB 1 @@ -24,14 +24,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+-----------------------+------+------| */ - [BASE] = KEYMAP( // default layer - 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, KC_GRV, \ - 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, \ - 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_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), \ - KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT), - - + [BASE] = LAYOUT( // default layer + 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, KC_GRV, + 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, + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), + KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT), /* Layer HHKB: HHKB mode (HHKB Fn) |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| @@ -50,13 +48,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ - [HHKB] = KEYMAP( - 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, \ - 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_BSPC, \ - 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_PENT, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)}; - + [HHKB] = LAYOUT( + 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, + 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_BSPC, + 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_PENT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)}; const uint16_t PROGMEM fn_actions[] = { @@ -64,15 +61,19 @@ const uint16_t PROGMEM fn_actions[] = { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { + // MACRODOWN only works in this function + switch (id) + { + case 0: + if (record->event.pressed) + { register_code(KC_RSFT); - } else { + } + else + { unregister_code(KC_RSFT); - } + } break; - } + } return MACRO_NONE; }; diff --git a/keyboards/hhkb/keymaps/lxol/keymap.c b/keyboards/hhkb/keymaps/lxol/keymap.c index ccf1e07042fd..3e3b3d2ed0c2 100644 --- a/keyboards/hhkb/keymaps/lxol/keymap.c +++ b/keyboards/hhkb/keymaps/lxol/keymap.c @@ -1,7 +1,7 @@ /* -*- eval: (turn-on-orgtbl); -*- * lxol HHKB Layout */ -#include "hhkb.h" +#include QMK_KEYBOARD_H #define BASE 0 #define WIN 1 @@ -11,7 +11,6 @@ #define RALTLEV 5 #define LALTLEV 6 - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Layer 0: Default Layer @@ -30,16 +29,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+-------+------+------| */ - [BASE] = KEYMAP( // layer 0 : default - - - 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, KC_GRV, \ - 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, \ - KC_LCTL, LT(LALTLEV,KC_A), LT(LGUILEV,KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, LT(RGUILEV,KC_L), LT(RALTLEV,KC_SCLN), KC_QUOT, KC_FN0, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), \ - KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT), - + [BASE] = LAYOUT( // layer 0 : default + 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, KC_GRV, + 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, + KC_LCTL, LT(LALTLEV, KC_A), LT(LGUILEV, KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, LT(RGUILEV, KC_L), LT(RALTLEV, KC_SCLN), KC_QUOT, KC_FN0, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), + KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT), /* Layer 1: HHKB mode (HHKB Fn) |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| @@ -57,13 +53,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |---+---+---+---+---| */ - [HHKB] = KEYMAP( - 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, \ - 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_BSPC, \ - 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_PENT, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - + [HHKB] = LAYOUT( + 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, + 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_BSPC, + 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_PENT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), /* Layer LGUI: All keys with RGUI modifier |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| @@ -81,13 +76,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+-------+------+------| */ - [RGUILEV] = KEYMAP( // Right GUI layer by KC_L + [RGUILEV] = LAYOUT( // Right GUI layer by KC_L - RGUI(KC_ESC), RGUI(KC_1), RGUI(KC_2), RGUI(KC_3), RGUI(KC_4), RGUI(KC_5), RGUI(KC_6), RGUI(KC_7), RGUI(KC_8), RGUI(KC_9), RGUI(KC_0), RGUI(KC_MINS), RGUI(KC_EQL), RGUI(KC_BSLS), RGUI(KC_GRV), \ - RGUI(KC_TAB), RGUI(KC_Q), RGUI(KC_W), RGUI(KC_E), RGUI(KC_R), RGUI(KC_T), RGUI(KC_Y), RGUI(KC_U), RGUI(KC_I), RGUI(KC_O), RGUI(KC_P), RGUI(KC_LBRC), RGUI(KC_RBRC), RGUI(KC_BSPC), \ - RGUI(KC_LCTL), RGUI(KC_A), RGUI(KC_S), RGUI(KC_D), RGUI(KC_F), RGUI(KC_G), RGUI(KC_H), RGUI(KC_J), RGUI(KC_K), KC_TRNS, KC_TRNS, RGUI(KC_QUOT), KC_FN0, \ - RGUI(KC_LSFT), RGUI(KC_Z), RGUI(KC_X), RGUI(KC_C), RGUI(KC_V), RGUI(KC_B), RGUI(KC_N), RGUI(KC_M), RGUI(KC_COMM), RGUI(KC_DOT), RGUI(KC_SLSH), RGUI(KC_RSFT), KC_TRNS, \ - KC_LALT, KC_LGUI, RGUI(KC_SPC), KC_RGUI, KC_RALT), + RGUI(KC_ESC), RGUI(KC_1), RGUI(KC_2), RGUI(KC_3), RGUI(KC_4), RGUI(KC_5), RGUI(KC_6), RGUI(KC_7), RGUI(KC_8), RGUI(KC_9), RGUI(KC_0), RGUI(KC_MINS), RGUI(KC_EQL), RGUI(KC_BSLS), RGUI(KC_GRV), + RGUI(KC_TAB), RGUI(KC_Q), RGUI(KC_W), RGUI(KC_E), RGUI(KC_R), RGUI(KC_T), RGUI(KC_Y), RGUI(KC_U), RGUI(KC_I), RGUI(KC_O), RGUI(KC_P), RGUI(KC_LBRC), RGUI(KC_RBRC), RGUI(KC_BSPC), + RGUI(KC_LCTL), RGUI(KC_A), RGUI(KC_S), RGUI(KC_D), RGUI(KC_F), RGUI(KC_G), RGUI(KC_H), RGUI(KC_J), RGUI(KC_K), KC_TRNS, KC_TRNS, RGUI(KC_QUOT), KC_FN0, + RGUI(KC_LSFT), RGUI(KC_Z), RGUI(KC_X), RGUI(KC_C), RGUI(KC_V), RGUI(KC_B), RGUI(KC_N), RGUI(KC_M), RGUI(KC_COMM), RGUI(KC_DOT), RGUI(KC_SLSH), RGUI(KC_RSFT), KC_TRNS, + KC_LALT, KC_LGUI, RGUI(KC_SPC), KC_RGUI, KC_RALT), /* Layer LGUI: All keys with LGUI modifier |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| @@ -105,13 +100,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+-------+------+------| */ - [LGUILEV] = KEYMAP( // Right GUI layer by KC_L + [LGUILEV] = LAYOUT( // Right GUI layer by KC_L - LGUI(KC_ESC), 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), LGUI(KC_MINS), LGUI(KC_EQL), LGUI(KC_BSLS), LGUI(KC_GRV), \ - LGUI(KC_TAB), LGUI(KC_Q), LGUI(KC_W), LGUI(KC_E), LGUI(KC_R), LGUI(KC_T), LGUI(KC_Y), LGUI(KC_U), LGUI(KC_I), LGUI(KC_O), LGUI(KC_P), LGUI(KC_LBRC), LGUI(KC_RBRC), LGUI(KC_BSPC), \ - LGUI(KC_LCTL), KC_TRNS, KC_TRNS, LGUI(KC_D), LGUI(KC_F), LGUI(KC_G), LGUI(KC_H), LGUI(KC_J), LGUI(KC_K), LGUI(KC_L), LGUI(KC_SCLN), LGUI(KC_QUOT), KC_FN0, \ - KC_LSFT, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_B), LGUI(KC_N), LGUI(KC_M), LGUI(KC_COMM), LGUI(KC_DOT), LGUI(KC_SLSH), KC_RSFT, KC_TRNS, \ - KC_LALT, KC_LGUI, LGUI(KC_SPC), KC_LGUI, KC_RALT), + LGUI(KC_ESC), 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), LGUI(KC_MINS), LGUI(KC_EQL), LGUI(KC_BSLS), LGUI(KC_GRV), + LGUI(KC_TAB), LGUI(KC_Q), LGUI(KC_W), LGUI(KC_E), LGUI(KC_R), LGUI(KC_T), LGUI(KC_Y), LGUI(KC_U), LGUI(KC_I), LGUI(KC_O), LGUI(KC_P), LGUI(KC_LBRC), LGUI(KC_RBRC), LGUI(KC_BSPC), + LGUI(KC_LCTL), KC_TRNS, KC_TRNS, LGUI(KC_D), LGUI(KC_F), LGUI(KC_G), LGUI(KC_H), LGUI(KC_J), LGUI(KC_K), LGUI(KC_L), LGUI(KC_SCLN), LGUI(KC_QUOT), KC_FN0, + KC_LSFT, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_B), LGUI(KC_N), LGUI(KC_M), LGUI(KC_COMM), LGUI(KC_DOT), LGUI(KC_SLSH), KC_RSFT, KC_TRNS, + KC_LALT, KC_LGUI, LGUI(KC_SPC), KC_LGUI, KC_RALT), /* Layer LALT: All keys with RALT modifier |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| @@ -129,13 +124,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+-------+------+------| */ - [RALTLEV] = KEYMAP( // Right ALT layer by KC_L + [RALTLEV] = LAYOUT( // Right ALT layer by KC_L - RALT(KC_ESC), RALT(KC_1), RALT(KC_2), RALT(KC_3), RALT(KC_4), RALT(KC_5), RALT(KC_6), RALT(KC_7), RALT(KC_8), RALT(KC_9), RALT(KC_0), RALT(KC_MINS), RALT(KC_EQL), RALT(KC_BSLS), RALT(KC_GRV), \ - RALT(KC_TAB), RALT(KC_Q), RALT(KC_W), RALT(KC_E), RALT(KC_R), RALT(KC_T), RALT(KC_Y), RALT(KC_U), RALT(KC_I), RALT(KC_O), RALT(KC_P), RALT(KC_LBRC), RALT(KC_RBRC), RALT(KC_BSPC), \ - RALT(KC_LCTL), RALT(KC_A), RALT(KC_S), RALT(KC_D), RALT(KC_F), RALT(KC_G), RALT(KC_H), RALT(KC_J), RALT(KC_K), KC_TRNS, KC_TRNS, RALT(KC_QUOT), KC_FN0, \ - RALT(KC_LSFT), RALT(KC_Z), RALT(KC_X), RALT(KC_C), RALT(KC_V), RALT(KC_B), RALT(KC_N), RALT(KC_M), RALT(KC_COMM), RALT(KC_DOT), RALT(KC_SLSH), RALT(KC_RSFT), KC_TRNS, \ - KC_LALT, KC_LGUI, RALT(KC_SPC), KC_RGUI, KC_RALT), + RALT(KC_ESC), RALT(KC_1), RALT(KC_2), RALT(KC_3), RALT(KC_4), RALT(KC_5), RALT(KC_6), RALT(KC_7), RALT(KC_8), RALT(KC_9), RALT(KC_0), RALT(KC_MINS), RALT(KC_EQL), RALT(KC_BSLS), RALT(KC_GRV), + RALT(KC_TAB), RALT(KC_Q), RALT(KC_W), RALT(KC_E), RALT(KC_R), RALT(KC_T), RALT(KC_Y), RALT(KC_U), RALT(KC_I), RALT(KC_O), RALT(KC_P), RALT(KC_LBRC), RALT(KC_RBRC), RALT(KC_BSPC), + RALT(KC_LCTL), RALT(KC_A), RALT(KC_S), RALT(KC_D), RALT(KC_F), RALT(KC_G), RALT(KC_H), RALT(KC_J), RALT(KC_K), KC_TRNS, KC_TRNS, RALT(KC_QUOT), KC_FN0, + RALT(KC_LSFT), RALT(KC_Z), RALT(KC_X), RALT(KC_C), RALT(KC_V), RALT(KC_B), RALT(KC_N), RALT(KC_M), RALT(KC_COMM), RALT(KC_DOT), RALT(KC_SLSH), RALT(KC_RSFT), KC_TRNS, + KC_LALT, KC_LGUI, RALT(KC_SPC), KC_RGUI, KC_RALT), /* Layer LALT: All keys with LALT modifier |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| @@ -153,14 +148,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+-------+------+------| */ - [LALTLEV] = KEYMAP( // Right ALT layer by KC_L - - LALT(KC_ESC), LALT(KC_1), LALT(KC_2), LALT(KC_3), LALT(KC_4), LALT(KC_5), LALT(KC_6), LALT(KC_7), LALT(KC_8), LALT(KC_9), LALT(KC_0), LALT(KC_MINS), LALT(KC_EQL), LALT(KC_BSLS), LALT(KC_GRV), \ - LALT(KC_TAB), LALT(KC_Q), LALT(KC_W), LALT(KC_E), LALT(KC_R), LALT(KC_T), LALT(KC_Y), LALT(KC_U), LALT(KC_I), LALT(KC_O), LALT(KC_P), LALT(KC_LBRC), LALT(KC_RBRC), LALT(KC_BSPC), \ - LALT(KC_LCTL), KC_TRNS, KC_TRNS, LALT(KC_D), LALT(KC_F), LALT(KC_G), LALT(KC_H), LALT(KC_J), LALT(KC_K), LALT(KC_L), LALT(KC_SCLN), LALT(KC_QUOT), KC_FN0, \ - KC_LSFT, LALT(KC_Z), LALT(KC_X), LALT(KC_C), LALT(KC_V), LALT(KC_B), LALT(KC_N), LALT(KC_M), LALT(KC_COMM), LALT(KC_DOT), LALT(KC_SLSH), KC_RSFT, KC_TRNS, \ - KC_LALT, KC_LGUI, LALT(KC_SPC), KC_LGUI, KC_RALT), + [LALTLEV] = LAYOUT( // Right ALT layer by KC_L + LALT(KC_ESC), LALT(KC_1), LALT(KC_2), LALT(KC_3), LALT(KC_4), LALT(KC_5), LALT(KC_6), LALT(KC_7), LALT(KC_8), LALT(KC_9), LALT(KC_0), LALT(KC_MINS), LALT(KC_EQL), LALT(KC_BSLS), LALT(KC_GRV), + LALT(KC_TAB), LALT(KC_Q), LALT(KC_W), LALT(KC_E), LALT(KC_R), LALT(KC_T), LALT(KC_Y), LALT(KC_U), LALT(KC_I), LALT(KC_O), LALT(KC_P), LALT(KC_LBRC), LALT(KC_RBRC), LALT(KC_BSPC), + LALT(KC_LCTL), KC_TRNS, KC_TRNS, LALT(KC_D), LALT(KC_F), LALT(KC_G), LALT(KC_H), LALT(KC_J), LALT(KC_K), LALT(KC_L), LALT(KC_SCLN), LALT(KC_QUOT), KC_FN0, + KC_LSFT, LALT(KC_Z), LALT(KC_X), LALT(KC_C), LALT(KC_V), LALT(KC_B), LALT(KC_N), LALT(KC_M), LALT(KC_COMM), LALT(KC_DOT), LALT(KC_SLSH), KC_RSFT, KC_TRNS, + KC_LALT, KC_LGUI, LALT(KC_SPC), KC_LGUI, KC_RALT), /* Layer WIN: Win layer |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| @@ -178,31 +172,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+-------+------+------| */ - [WIN] = KEYMAP( // BASE level with swapped GUI/ALT - - - 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, KC_GRV, \ - 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, \ - KC_LCTL, LT(LGUILEV,KC_A), LT(LALTLEV,KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, LT(RALTLEV,KC_L), LT(RGUILEV,KC_SCLN), KC_QUOT, KC_FN0, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), \ - KC_RGUI, KC_RALT, KC_SPC, KC_RALT, KC_RGUI)}; + [WIN] = LAYOUT( // BASE level with swapped GUI/ALT + 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, KC_GRV, + 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, + KC_LCTL, LT(LGUILEV, KC_A), LT(LALTLEV, KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, LT(RALTLEV, KC_L), LT(RGUILEV, KC_SCLN), KC_QUOT, KC_FN0, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), + KC_RGUI, KC_RALT, KC_SPC, KC_RALT, KC_RGUI)}; const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENT) // RControl with tap Enter* + [0] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENT) // RControl with tap Enter* }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { + // MACRODOWN only works in this function + switch (id) + { + case 0: + if (record->event.pressed) + { register_code(KC_RSFT); - } else { + } + else + { unregister_code(KC_RSFT); - } + } break; - } + } return MACRO_NONE; }; diff --git a/keyboards/hhkb/keymaps/mjt/keymap.c b/keyboards/hhkb/keymaps/mjt/keymap.c index b5cd9971488d..d1725f5c75a6 100644 --- a/keyboards/hhkb/keymaps/mjt/keymap.c +++ b/keyboards/hhkb/keymaps/mjt/keymap.c @@ -1,7 +1,7 @@ /* -*- eval: (turn-on-orgtbl); -*- * default HHKB Layout */ -#include "hhkb.h" +#include QMK_KEYBOARD_H #define BASE 0 #define HHKB 1 @@ -10,10 +10,11 @@ #define CTL_ESC CTL_T(KC_ESC) #define MACSLEEP LCTL(LSFT(KC_POWER)) -enum hhkb_keycodes { - QWERTY = SAFE_RANGE, - DYNKEY, - DYNAMIC_MACRO_RANGE, +enum hhkb_keycodes +{ + QWERTY = SAFE_RANGE, + DYNKEY, + DYNAMIC_MACRO_RANGE, }; #include "dynamic_macro.h" @@ -36,14 +37,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+-----------------------+------+------| */ - [BASE] = KEYMAP( // default layer - KC_GRV, 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, KC_DEL, \ - 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, \ - CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT), TT(FUNK), \ - KC_LALT, KC_LGUI, /* */ KC_SPC, MO(DYN), KC_RALT), - - + [BASE] = LAYOUT( // default layer + KC_GRV, 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, KC_DEL, + 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, + CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT), TT(FUNK), + KC_LALT, KC_LGUI, /* */ KC_SPC, MO(DYN), KC_RALT), /* Layer HHKB: HHKB mode (HHKB Fn) |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| @@ -62,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [HHKB] = KEYMAP( + [HHKB] = LAYOUT( 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, \ 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_BSPC, \ 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_PENT, \ @@ -70,20 +69,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), */ - [FUNK] = KEYMAP( - 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, \ - KC_CAPS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \ - KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -[DYN] = KEYMAP( -KC_TRNS, DYN_REC_START1, DYN_REC_START2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, \ -KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, \ -KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MACSLEEP, KC_HOME, KC_END , KC_TRNS, \ -KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, DYN_REC_STOP, KC_TRNS, KC_TRNS) - }; - + [FUNK] = LAYOUT( + 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, + KC_CAPS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [DYN] = LAYOUT( + KC_TRNS, DYN_REC_START1, DYN_REC_START2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MACSLEEP, KC_HOME, KC_END, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, DYN_REC_STOP, KC_TRNS, KC_TRNS)}; const uint16_t PROGMEM fn_actions[] = { @@ -91,24 +88,30 @@ const uint16_t PROGMEM fn_actions[] = { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { + // MACRODOWN only works in this function + switch (id) + { + case 0: + if (record->event.pressed) + { register_code(KC_RSFT); - } else { + } + else + { unregister_code(KC_RSFT); - } + } break; - } + } return MACRO_NONE; }; -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - uint16_t macro_kc = (keycode == MO(DYN) ? DYN_REC_STOP : keycode); - if (!process_record_dynamic_macro(macro_kc, record)) { - return false; - } +bool process_record_user(uint16_t keycode, keyrecord_t *record) +{ + uint16_t macro_kc = (keycode == MO(DYN) ? DYN_REC_STOP : keycode); + if (!process_record_dynamic_macro(macro_kc, record)) + { + return false; + } - return true; + return true; } diff --git a/keyboards/hhkb/keymaps/rdg_jp/keymap.c b/keyboards/hhkb/keymaps/rdg_jp/keymap.c index 700ba3a0b768..2afac7a0b0e3 100644 --- a/keyboards/hhkb/keymaps/rdg_jp/keymap.c +++ b/keyboards/hhkb/keymaps/rdg_jp/keymap.c @@ -1,21 +1,20 @@ -#include "hhkb.h" +#include QMK_KEYBOARD_H #define _______ KC_TRNS -enum { - ZER, - HDN, - OSY +enum +{ + ZER, + HDN, + OSY }; - #define CTL_ESC CTL_T(KC_ESC) #define SFT_BSP SFT_T(KC_BSPC) #define SCRNS3 LGUI(LCTL(LSFT(KC_3))) #define SCRNS4 LGUI(LCTL(LSFT(KC_4))) - /* hhkb jp ~ layout * ,-----------------------------------------------------------. * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| -| =|Yen|Bsp| @@ -31,33 +30,30 @@ enum { */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [ZER] = KEYMAP_JP( - 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_INS, KC_BSPC, - 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, - CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_GRV, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS, KC_UP, KC_RSFT, - MO(HDN), KC_LCTL, KC_LALT, KC_LGUI, MO(HDN), KC_SPC, SFT_BSP, MO(HDN), MO(OSY), KC_NO, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [HDN] = KEYMAP_JP( - KC_GRV, 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_DEL, - _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, - _______, KC_TILD, KC_GRV, KC_BSLS, KC_PIPE, KC_MINS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TILD, KC_GRV, _______, _______, - _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PWR, _______, _______, KC_ENT, _______, _______, _______, _______, KC_PGUP, _______, - _______, _______, _______, _______, _______, KC_UNDS , KC_DEL, _______, _______, _______, KC_HOME, KC_PGDN, KC_END - ), - - [OSY] = KEYMAP_JP( - _______, _______, _______, SCRNS3, SCRNS4, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______ , _______, _______, _______, _______, _______, _______, _______ - ) -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t macro_id, uint8_t opt) { - return MACRO_NONE; + [ZER] = LAYOUT_JP( + 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_INS, KC_BSPC, + 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, + CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_GRV, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS, KC_UP, KC_RSFT, + MO(HDN), KC_LCTL, KC_LALT, KC_LGUI, MO(HDN), KC_SPC, SFT_BSP, MO(HDN), MO(OSY), KC_NO, KC_LEFT, KC_DOWN, KC_RGHT), + + [HDN] = LAYOUT_JP( + KC_GRV, 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_DEL, + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, + _______, KC_TILD, KC_GRV, KC_BSLS, KC_PIPE, KC_MINS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TILD, KC_GRV, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PWR, _______, _______, KC_ENT, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, KC_UNDS, KC_DEL, _______, _______, _______, KC_HOME, KC_PGDN, KC_END), + + [OSY] = LAYOUT_JP( + _______, _______, _______, SCRNS3, SCRNS4, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t macro_id, uint8_t opt) +{ + return MACRO_NONE; } const uint16_t PROGMEM fn_actions[] = { diff --git a/keyboards/hhkb/keymaps/sh_jp/keymap.c b/keyboards/hhkb/keymaps/sh_jp/keymap.c index d4cb3b04188e..39710a654289 100644 --- a/keyboards/hhkb/keymaps/sh_jp/keymap.c +++ b/keyboards/hhkb/keymaps/sh_jp/keymap.c @@ -1,58 +1,54 @@ -#include "hhkb.h" +#include QMK_KEYBOARD_H #define _______ KC_TRNS -enum { - DVOR, - QWER, - NEW_CMD, - SYMB, - FUNC +enum +{ + DVOR, + QWER, + NEW_CMD, + SYMB, + FUNC }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [DVOR] = KEYMAP_JP( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_JYEN, KC_BSPC, - KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, - KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_BSLS, KC_ENT, - KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RO, KC_UP, KC_RSFT, - MO(FUNC), KC_ZKHK, KC_LALT, MO(NEW_CMD), MO(SYMB), MT(MOD_LSFT, KC_SPC), MO(SYMB), KC_TAB, KC_RGUI, TG(QWER), KC_LEFT, KC_DOWN, KC_RGHT - ), - [QWER] = KEYMAP_JP( - 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_JYEN, KC_BSPC, - 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_UP, KC_RSFT, - MO(FUNC), KC_ZKHK, KC_LALT, MO(NEW_CMD), MO(SYMB), MT(MOD_LSFT, KC_SPC), MO(SYMB), KC_TAB, KC_RGUI, _______, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [NEW_CMD] = KEYMAP_JP( - _______, 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), _______, _______, _______, LGUI(KC_BSPC), - _______, LGUI(KC_Q), LGUI(KC_W), LGUI(KC_E), LGUI(KC_R), LGUI(KC_T), LGUI(KC_Y), LGUI(KC_U), LGUI(KC_I), LGUI(KC_O), LGUI(KC_P), LGUI(KC_LBRC), LGUI(KC_RBRC), - _______, LGUI(KC_A), LGUI(KC_S), LGUI(KC_D), LGUI(KC_F), LGUI(KC_G), LGUI(KC_H), LGUI(KC_J), LGUI(KC_K), LGUI(KC_L), _______, _______, _______, _______, - LGUI(KC_LSFT), LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_B), LGUI(KC_N), LGUI(KC_M), LGUI(KC_COMM), LGUI(KC_DOT), LGUI(KC_SLSH), _______, _______, _______, - _______, _______, _______, _______, _______, LGUI(KC_SPC), _______, _______, _______, _______, LGUI(KC_LEFT), LGUI(KC_DOWN), LGUI(KC_RGHT) - ), - - [SYMB] = KEYMAP_JP( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, LSFT(KC_LBRC), LSFT(KC_RBRC), _______, _______,_______, _______, - _______, LSFT(KC_1),LSFT(KC_2),LSFT(KC_3),LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LSFT(KC_0), _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - [FUNC] = KEYMAP_JP( - 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, - KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, - _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PWR, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, KC_PENT, - _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, - _______, _______, _______, _______, _______, _______ , _______, _______, _______, _______, _______, _______, _______ - ) -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t macro_id, uint8_t opt) { - return MACRO_NONE; + [DVOR] = LAYOUT_JP( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_JYEN, KC_BSPC, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, + KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_BSLS, KC_ENT, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RO, KC_UP, KC_RSFT, + MO(FUNC), KC_ZKHK, KC_LALT, MO(NEW_CMD), MO(SYMB), MT(MOD_LSFT, KC_SPC), MO(SYMB), KC_TAB, KC_RGUI, TG(QWER), KC_LEFT, KC_DOWN, KC_RGHT), + [QWER] = LAYOUT_JP( + 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_JYEN, KC_BSPC, + 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_UP, KC_RSFT, + MO(FUNC), KC_ZKHK, KC_LALT, MO(NEW_CMD), MO(SYMB), MT(MOD_LSFT, KC_SPC), MO(SYMB), KC_TAB, KC_RGUI, _______, KC_LEFT, KC_DOWN, KC_RGHT), + + [NEW_CMD] = LAYOUT_JP( + _______, 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), _______, _______, _______, LGUI(KC_BSPC), + _______, LGUI(KC_Q), LGUI(KC_W), LGUI(KC_E), LGUI(KC_R), LGUI(KC_T), LGUI(KC_Y), LGUI(KC_U), LGUI(KC_I), LGUI(KC_O), LGUI(KC_P), LGUI(KC_LBRC), LGUI(KC_RBRC), + _______, LGUI(KC_A), LGUI(KC_S), LGUI(KC_D), LGUI(KC_F), LGUI(KC_G), LGUI(KC_H), LGUI(KC_J), LGUI(KC_K), LGUI(KC_L), _______, _______, _______, _______, + LGUI(KC_LSFT), LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_B), LGUI(KC_N), LGUI(KC_M), LGUI(KC_COMM), LGUI(KC_DOT), LGUI(KC_SLSH), _______, _______, _______, + _______, _______, _______, _______, _______, LGUI(KC_SPC), _______, _______, _______, _______, LGUI(KC_LEFT), LGUI(KC_DOWN), LGUI(KC_RGHT)), + + [SYMB] = LAYOUT_JP( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, LSFT(KC_LBRC), LSFT(KC_RBRC), _______, _______, _______, _______, + _______, LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LSFT(KC_0), _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [FUNC] = LAYOUT_JP( + 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, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PWR, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, KC_PENT, + _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t macro_id, uint8_t opt) +{ + return MACRO_NONE; } const uint16_t PROGMEM fn_actions[] = { diff --git a/keyboards/hhkb/keymaps/shela/keymap.c b/keyboards/hhkb/keymaps/shela/keymap.c index f0700d7ba138..5f3881539a41 100644 --- a/keyboards/hhkb/keymaps/shela/keymap.c +++ b/keyboards/hhkb/keymaps/shela/keymap.c @@ -1,11 +1,12 @@ /* * HHKB Pro 2 US Layout for shela */ -#include "hhkb.h" +#include QMK_KEYBOARD_H #include "keymap_jis2us.h" #include "action_pseudo_lut.h" -enum keymap_layout { +enum keymap_layout +{ BASE = 0, PSEUDO_US, DVORAK, @@ -31,11 +32,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------' */ [BASE] = - KEYMAP(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_GRV, KC_BSPC, \ - 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_BSLS, \ - 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_ENT, \ - OSM(MOD_LSFT),KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,KC_FN0, \ - KC_LALT,KC_LGUI, KC_FN2, KC_RGUI,KC_RALT), + LAYOUT(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_GRV, KC_BSPC, + 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_BSLS, + 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_ENT, + OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_FN0, + KC_LALT, KC_LGUI, KC_FN2, KC_RGUI, KC_RALT), /* Layer 1: Pseudo US Layout Layer * ,-----------------------------------------------------------------------------------------. @@ -51,11 +52,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------' */ [PSEUDO_US] = - KEYMAP(KC_ESC, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_BSPC, \ - KC_TAB, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, \ - KC_LCTL,KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_ENT, \ - KC_LSFT,KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_RSFT,KC_FN0, \ - KC_LGUI,KC_FN3, KC_FN2, KC_FN4 ,KC_RGUI), + LAYOUT(KC_ESC, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_BSPC, + KC_TAB, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, + KC_LCTL, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_ENT, + KC_LSFT, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_RSFT, KC_FN0, + KC_LGUI, KC_FN3, KC_FN2, KC_FN4, KC_RGUI), /* Layer 2: Dvorak Layer * ,-----------------------------------------------------------------------------------------. @@ -71,11 +72,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------' */ [DVORAK] = - KEYMAP(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC,KC_RBRC,KC_GRV, KC_BSPC, \ - KC_TAB, KC_QUOT,KC_COMM,KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,KC_EQL, KC_BSLS, \ - KC_LCTL,KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,KC_ENT, \ - KC_LSFT,KC_SCLN,KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,KC_FN0, \ - KC_LALT,KC_LGUI, KC_FN2, KC_RGUI,KC_RALT), + LAYOUT(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_GRV, KC_BSPC, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, + KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_FN0, + KC_LALT, KC_LGUI, KC_FN2, KC_RGUI, KC_RALT), /* Layer 3: Mouse layer * ,-----------------------------------------------------------------------------------------. @@ -91,11 +92,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------' */ [MOUSE] = - KEYMAP(KC_ESC, 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_NO, KC_TRNS, \ - KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_L,KC_WH_D,KC_WH_U,KC_WH_R,KC_NO, KC_NO, KC_NO, KC_NO, \ - KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_L,KC_MS_D,KC_MS_U,KC_MS_R,KC_NO, KC_NO, KC_TRNS, \ - KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN1,KC_BTN2,KC_BTN3,KC_NO, KC_NO, KC_TRNS,KC_FN0, \ - KC_TRNS,KC_TRNS, KC_BTN1, KC_TRNS,KC_TRNS), + LAYOUT(KC_ESC, 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_NO, KC_TRNS, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN1, KC_BTN2, KC_BTN3, KC_NO, KC_NO, KC_TRNS, KC_FN0, + KC_TRNS, KC_TRNS, KC_BTN1, KC_TRNS, KC_TRNS), /* Layer 4: Tenkey layer * ,-----------------------------------------------------------------------------------------. @@ -111,11 +112,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------' */ [TENKEY] = - KEYMAP(KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSLS,KC_PAST,KC_PMNS,KC_NO, KC_BSPC, \ - KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_KP_7,KC_KP_8,KC_KP_9,KC_PPLS,KC_NO, \ - KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_KP_4,KC_KP_5,KC_KP_6,KC_PENT, \ - KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_KP_1,KC_KP_2,KC_KP_3,KC_PPLS,KC_FN0, \ - KC_TRNS,KC_TRNS, KC_FN2, KC_KP_0,KC_PDOT), + LAYOUT(KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSLS, KC_PAST, KC_PMNS, KC_NO, KC_BSPC, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_KP_7, KC_KP_8, KC_KP_9, KC_PPLS, KC_NO, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_KP_4, KC_KP_5, KC_KP_6, KC_PENT, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_KP_1, KC_KP_2, KC_KP_3, KC_PPLS, KC_FN0, + KC_TRNS, KC_TRNS, KC_FN2, KC_KP_0, KC_PDOT), /* Layer 5: HHKB mode (HHKB Fn) * ,-----------------------------------------------------------------------------------------. @@ -131,11 +132,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------' */ [HHKB] = - KEYMAP(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, \ - KC_CAPS,KC_FN5, KC_FN6, KC_FN7, KC_FN8, KC_FN9, KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK,KC_PAUS,KC_UP, KC_TRNS,KC_BSPC, \ - 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_PENT, \ - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PPLS,KC_PMNS,KC_END, KC_PGDN,KC_DOWN,KC_TRNS,KC_TRNS, \ - KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS), + LAYOUT(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, + KC_CAPS, KC_FN5, KC_FN6, KC_FN7, KC_FN8, KC_FN9, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, + 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_PENT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), /* Layer 6: SpaceFN * ,-----------------------------------------------------------------------------------------. @@ -151,26 +152,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------' */ [SPACE_FN] = - KEYMAP(KC_TRNS,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_NO, KC_DEL, \ - KC_TRNS,KC_HOME,KC_UP, KC_END, KC_NO, KC_NO, KC_NO, KC_HOME,KC_END, KC_NO, KC_PSCR,KC_SLCK,KC_PAUS,KC_INS, \ - KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_PGUP,KC_NO, KC_LEFT,KC_DOWN,KC_UP, KC_RGHT,KC_NO, KC_NO, KC_TRNS, \ - KC_TRNS,KC_NO, KC_NO, KC_PGDN,KC_NO, KC_SPC, KC_NO, KC_PGDN,KC_PGUP,KC_NO, KC_NO, KC_TRNS,KC_NO, \ - KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS), + LAYOUT(KC_TRNS, 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_NO, KC_DEL, + KC_TRNS, KC_HOME, KC_UP, KC_END, KC_NO, KC_NO, KC_NO, KC_HOME, KC_END, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_INS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGUP, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_NO, KC_NO, KC_PGDN, KC_NO, KC_SPC, KC_NO, KC_PGDN, KC_PGUP, KC_NO, KC_NO, KC_TRNS, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; /* * user defined action function */ -enum function_id { +enum function_id +{ PSEUDO_US_FUNCTION, }; -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) +{ - switch (id) { - case PSEUDO_US_FUNCTION: - action_pseudo_lut(record, BASE, keymap_jis2us); - break; + switch (id) + { + case PSEUDO_US_FUNCTION: + action_pseudo_lut(record, BASE, keymap_jis2us); + break; } } diff --git a/keyboards/hhkb/keymaps/shela/keymap_jis2us.h b/keyboards/hhkb/keymaps/shela/keymap_jis2us.h index cf2bd4f0e842..edc1e6d869b7 100644 --- a/keyboards/hhkb/keymaps/shela/keymap_jis2us.h +++ b/keyboards/hhkb/keymaps/shela/keymap_jis2us.h @@ -1,5 +1,5 @@ -#ifndef KEYMAP_JIS2US_H -#define KEYMAP_JIS2US_H +#ifndef LAYOUT_JIS2US_H +#define LAYOUT_JIS2US_H /* keymap for convert from JIS to US */ const uint16_t PROGMEM keymap_jis2us[][2] = { diff --git a/keyboards/hhkb/keymaps/smt/keymap.c b/keyboards/hhkb/keymaps/smt/keymap.c index 484df851a522..428861640fc1 100644 --- a/keyboards/hhkb/keymaps/smt/keymap.c +++ b/keyboards/hhkb/keymaps/smt/keymap.c @@ -1,18 +1,19 @@ /* -*- eval: (turn-on-orgtbl); -*- * default HHKB Layout */ -#include "hhkb.h" +#include QMK_KEYBOARD_H #define _QWERTY 0 #define _COLEMAK 1 #define _DVORAK 2 #define _HHKB 3 -enum planck_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - HHKB +enum planck_keycodes +{ + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + HHKB }; // Fillers to make layering more clear @@ -20,10 +21,10 @@ enum planck_keycodes { #define XXXXXXX KC_NO // Custom macros -#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl -#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift -#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper (Super+Ctrl+Alt+Shift) -#define MEH_GRV MEH_T(KC_GRV) // Tap for Backtick, hold for Meh (Ctrl+Alt+Shift) +#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl +#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift +#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper (Super+Ctrl+Alt+Shift) +#define MEH_GRV MEH_T(KC_GRV) // Tap for Backtick, hold for Meh (Ctrl+Alt+Shift) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -43,14 +44,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+-----------------------+------+------| */ - [_QWERTY] = KEYMAP( // Qwerty layer - 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, MEH_GRV, \ - HPR_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, \ - CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, SFT_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_HHKB), \ - KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT), - - + [_QWERTY] = LAYOUT( // Qwerty layer + 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, MEH_GRV, + HPR_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, + CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, SFT_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_HHKB), + KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT), /* Layer COLEMAK: Colemak Layer |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| @@ -68,14 +67,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+-----------------------+------+------| */ - [_COLEMAK] = KEYMAP( // Colemak layer - 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, MEH_GRV, \ - HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSPC, \ - CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, SFT_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_HHKB), \ - KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT), - - + [_COLEMAK] = LAYOUT( // Colemak layer + 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, MEH_GRV, + HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSPC, + CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, SFT_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_HHKB), + KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT), /* Layer DVORAK: Dvorak Layer |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| @@ -93,14 +90,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+-----------------------+------+------| */ - [_DVORAK] = KEYMAP( // Dvorak layer - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSLS, MEH_GRV, \ - HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSPC, \ - CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, SFT_ENT, \ - KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, MO(_HHKB), \ - KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT), - - + [_DVORAK] = LAYOUT( // Dvorak layer + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSLS, MEH_GRV, + HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSPC, + CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, SFT_ENT, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, MO(_HHKB), + KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT), /* Layer HHKB: HHKB mode (HHKB Fn) |------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-------+-------+-----| @@ -119,13 +114,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ - [_HHKB] = KEYMAP( - 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, \ - KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_BSPC, \ - _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ - _______, _______, QWERTY, COLEMAK, DVORAK, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, \ - _______, _______, _______, _______, _______)}; - + [_HHKB] = LAYOUT( + 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, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_BSPC, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, + _______, _______, QWERTY, COLEMAK, DVORAK, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, _______)}; const uint16_t PROGMEM fn_actions[] = { @@ -133,44 +127,54 @@ const uint16_t PROGMEM fn_actions[] = { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { + // MACRODOWN only works in this function + switch (id) + { + case 0: + if (record->event.pressed) + { register_code(KC_RSFT); - } else { + } + else + { unregister_code(KC_RSFT); - } + } break; - } + } return MACRO_NONE; }; -void persistent_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); +void persistent_default_layer_set(uint16_t default_layer) +{ + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); } -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { +bool process_record_user(uint16_t keycode, keyrecord_t *record) +{ + switch (keycode) + { case QWERTY: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_QWERTY); - } - return false; - break; + if (record->event.pressed) + { + persistent_default_layer_set(1UL << _QWERTY); + } + return false; + break; case COLEMAK: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_COLEMAK); - } - return false; - break; + if (record->event.pressed) + { + persistent_default_layer_set(1UL << _COLEMAK); + } + return false; + break; case DVORAK: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_DVORAK); - } - return false; - break; - } - return true; + if (record->event.pressed) + { + persistent_default_layer_set(1UL << _DVORAK); + } + return false; + break; + } + return true; } From 43e589aa02379ec932ce530fa7c3e7e918eae7cb Mon Sep 17 00:00:00 2001 From: Fig Date: Mon, 30 Apr 2018 17:20:05 +0200 Subject: [PATCH 312/578] Add the fig-r layout to the preonic (#2858) --- keyboards/preonic/keymaps/fig-r/config.h | 42 +++++ keyboards/preonic/keymaps/fig-r/keymap.c | 210 ++++++++++++++++++++++ keyboards/preonic/keymaps/fig-r/readme.md | 9 + keyboards/preonic/keymaps/fig-r/rules.mk | 0 4 files changed, 261 insertions(+) create mode 100644 keyboards/preonic/keymaps/fig-r/config.h create mode 100644 keyboards/preonic/keymaps/fig-r/keymap.c create mode 100644 keyboards/preonic/keymaps/fig-r/readme.md create mode 100644 keyboards/preonic/keymaps/fig-r/rules.mk diff --git a/keyboards/preonic/keymaps/fig-r/config.h b/keyboards/preonic/keymaps/fig-r/config.h new file mode 100644 index 000000000000..dc3a7ba261b5 --- /dev/null +++ b/keyboards/preonic/keymaps/fig-r/config.h @@ -0,0 +1,42 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PREONIC_SOUND) + // #define STARTUP_SONG SONG(NO_SOUND) + + #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(COLEMAK_SOUND), \ + SONG(DVORAK_SOUND) \ + } +#endif + +#define MUSIC_MASK (keycode != KC_NO) + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ + +#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 2 + +#endif diff --git a/keyboards/preonic/keymaps/fig-r/keymap.c b/keyboards/preonic/keymaps/fig-r/keymap.c new file mode 100644 index 000000000000..86c87b0aca1c --- /dev/null +++ b/keyboards/preonic/keymaps/fig-r/keymap.c @@ -0,0 +1,210 @@ +/* Copyright 2015-2017 Fig + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum preonic_layers { + _DVORAK, + _QWERTY, + _LOWER, + _RAISE, + _ADJUST, + _COMMAND +}; + +enum preonic_keycodes { + DVORAK = SAFE_RANGE, + QWERTY, + LOWER, + RAISE, + COMMAND +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | ' | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Cmd | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = LAYOUT_preonic_grid( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT, \ + COMMAND, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | ' | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Cmd | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = LAYOUT_preonic_grid( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \ + COMMAND, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | |CtrlS |CtrlY |CtrlZ | | | _ | + | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | |CtrlX |CtrlC |CtrlV | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Home | Down | Up | End | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT_preonic_grid( \ + 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_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ + KC_GRV, _______, LCTL(KC_S), LCTL(KC_Y), LCTL(KC_Z), _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + _______, _______, LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDOWN, KC_PGUP, KC_END \ +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | | | | | | | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT_preonic_grid( \ + 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_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ + KC_GRV, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +), + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | |Reset |Debug | | | | | | | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | |MusMod|AudOn |AudOff|AGNorm|AGSwap|Qwerty|Dvorak| | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|MusOn |MusOff|MidOn |MidOff| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT_preonic_grid( \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, RESET, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, DVORAK, _______, _______, _______, \ + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +), + +/* Cmd +* ,-----------------------------------------------------------------------------------. +* | | | | | | | | | | | | | +* |------+------+------+------+------+------+------+------+------+------+------+------| +* | | | | | | | | | | | | | +* |------+------+------+------+------+------+------+------+------+------+------+------| +* | | | | | | | | | | | | | +* |------+------+------+------+------+------+------+------+------+------+------+------| +* | | | | | | | | | | | | | +* |------+------+------+------+------+------+------+------+------+------+------+------| +* | | | | | | | | | | | | +* `-----------------------------------------------------------------------------------' + */ +[_COMMAND] = LAYOUT_preonic_grid( \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +) + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case COMMAND: + if (record->event.pressed) { + layer_on(_COMMAND); + } else { + layer_off(_COMMAND); + } + return false; + break; + } + return true; +}; diff --git a/keyboards/preonic/keymaps/fig-r/readme.md b/keyboards/preonic/keymaps/fig-r/readme.md new file mode 100644 index 000000000000..16d752b79dba --- /dev/null +++ b/keyboards/preonic/keymaps/fig-r/readme.md @@ -0,0 +1,9 @@ +# Fig-r Preonic layout. + +Not designed! + +Version 1: + +Use Dvorak layout by default. + +_COMMAND layout is to work with sxhkd. diff --git a/keyboards/preonic/keymaps/fig-r/rules.mk b/keyboards/preonic/keymaps/fig-r/rules.mk new file mode 100644 index 000000000000..e69de29bb2d1 From 187d76476ec8bbf066b367956dc3d4f9fdba69a9 Mon Sep 17 00:00:00 2001 From: Eric <22215921+ericywl@users.noreply.github.com> Date: Mon, 30 Apr 2018 23:22:02 +0800 Subject: [PATCH 313/578] QMK Configurator Support for JD45 and JD40 (#2851) * Added JD45 Config * Added JD40 Config * Changed KEYMAP to LAYOUT for JD40 and JD45 --- keyboards/jd40/info.json | 57 +++ keyboards/jd40/jd40.h | 2 +- keyboards/jd40/keymaps/default/keymap.c | 205 ++++---- keyboards/jd40/keymaps/vanagon/config.h | 2 +- keyboards/jd40/keymaps/vanagon/keymap.c | 45 +- keyboards/jd45/info.json | 60 +++ keyboards/jd45/jd45.h | 2 +- keyboards/jd45/keymaps/blakedietz/config.h | 2 +- keyboards/jd45/keymaps/blakedietz/keymap.c | 409 ++++++++-------- keyboards/jd45/keymaps/default/keymap.c | 12 +- keyboards/jd45/keymaps/jeebak/config.h | 2 +- keyboards/jd45/keymaps/jeebak/keymap.c | 539 +++++++++++---------- keyboards/jd45/keymaps/justin/keymap.c | 94 ++-- keyboards/jd45/keymaps/mjt/keymap.c | 105 ++-- keyboards/jd45/keymaps/mjt6u/keymap.c | 198 ++++---- 15 files changed, 956 insertions(+), 778 deletions(-) create mode 100644 keyboards/jd40/info.json create mode 100644 keyboards/jd45/info.json diff --git a/keyboards/jd40/info.json b/keyboards/jd40/info.json new file mode 100644 index 000000000000..4d321ee35629 --- /dev/null +++ b/keyboards/jd40/info.json @@ -0,0 +1,57 @@ +{ + "keyboard_name": "jd40", + "url": "", + "maintainer": "qmk", + "width": 12, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "Q", "x": 1, "y": 0 }, + { "label": "W", "x": 2, "y": 0 }, + { "label": "E", "x": 3, "y": 0 }, + { "label": "R", "x": 4, "y": 0 }, + { "label": "T", "x": 5, "y": 0 }, + { "label": "Y", "x": 6, "y": 0 }, + { "label": "U", "x": 7, "y": 0 }, + { "label": "I", "x": 8, "y": 0 }, + { "label": "O", "x": 9, "y": 0 }, + { "label": "P", "x": 10, "y": 0 }, + { "label": "Back
Space", "x": 11, "y": 0 }, + { "label": "Tab", "x": 0, "y": 1, "w": 1.25 }, + { "label": "A", "x": 1.25, "y": 1 }, + { "label": "S", "x": 2.25, "y": 1 }, + { "label": "D", "x": 3.25, "y": 1 }, + { "label": "F", "x": 4.25, "y": 1 }, + { "label": "G", "x": 5.25, "y": 1 }, + { "label": "H", "x": 6.25, "y": 1 }, + { "label": "J", "x": 7.25, "y": 1 }, + { "label": "K", "x": 8.25, "y": 1 }, + { "label": "L", "x": 9.25, "y": 1 }, + { "label": "Enter", "x": 10.25, "y": 1, "w": 1.75 }, + { "label": "Shift", "x": 0, "y": 2, "w": 1.75 }, + { "label": "Z", "x": 1.75, "y": 2 }, + { "label": "X", "x": 2.75, "y": 2 }, + { "label": "C", "x": 3.75, "y": 2 }, + { "label": "V", "x": 4.75, "y": 2 }, + { "label": "B", "x": 5.75, "y": 2 }, + { "label": "N", "x": 6.75, "y": 2 }, + { "label": "M", "x": 7.75, "y": 2 }, + { "label": "<", "x": 8.75, "y": 2 }, + { "label": "Shift", "x": 9.75, "y": 2, "w": 1.25 }, + { "label": ">", "x": 11, "y": 2 }, + { "label": "Ctrl", "x": 0, "y": 3 }, + { "label": "Fn", "x": 1, "y": 3 }, + { "label": "Alt", "x": 2, "y": 3 }, + { "label": "Super", "x": 3, "y": 3, "w": 1.25 }, + { "x": 4.25, "y": 3, "w": 1.75 }, + { "x": 6, "y": 3, "w": 1.75 }, + { "label": "Menu", "x": 7.75, "y": 3, "w": 1.25 }, + { "label": "Alt", "x": 9, "y": 3 }, + { "label": "Fn2", "x": 10, "y": 3 }, + { "label": "Ctrl", "x": 11, "y": 3 } + ] + } + } +} diff --git a/keyboards/jd40/jd40.h b/keyboards/jd40/jd40.h index 77a122299390..0000bc7ed9ef 100644 --- a/keyboards/jd40/jd40.h +++ b/keyboards/jd40/jd40.h @@ -30,7 +30,7 @@ inline void gh60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); } /* JD40 MKII keymap definition macro */ -#define KEYMAP( \ +#define LAYOUT( \ K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, \ K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, \ K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, \ diff --git a/keyboards/jd40/keymaps/default/keymap.c b/keyboards/jd40/keymaps/default/keymap.c index 79ac146c9ebd..b8cff95ac46d 100644 --- a/keyboards/jd40/keymaps/default/keymap.c +++ b/keyboards/jd40/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -#include "jd40.h" +#include QMK_KEYBOARD_H #include "action_layer.h" #define _BL 0 @@ -7,32 +7,33 @@ #define _UL 3 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BL] = KEYMAP( - F12, Q, W, E, R, T, Y, U, I, O, P, BSPC, - TAB, A, S, D, F, G, H, J, K, L, ENT, - LSFT, Z, X, C, V, B, N, M, COMM, UP, DOT, - LCTL, LGUI, LALT, FN0, SPC, SPC, FN0, LEFT, DOWN, RIGHT ), - - [_AL] = KEYMAP( - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, DEL, - CAPS, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, SCLN, PGUP, QUOT, - TRNS, TRNS, TRNS, TRNS, FN3, FN3, TRNS, HOME, PGDN, END ), + [_BL] = LAYOUT( + F12, Q, W, E, R, T, Y, U, I, O, P, BSPC, + TAB, A, S, D, F, G, H, J, K, L, ENT, + LSFT, Z, X, C, V, B, N, M, COMM, UP, DOT, + LCTL, LGUI, LALT, FN0, SPC, SPC, FN0, LEFT, DOWN, RIGHT), - [_FL] = KEYMAP( - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS ), - - [_UL] = KEYMAP( - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, FN4, FN5, FN11, FN10, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS ), + [_AL] = LAYOUT( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, DEL, + CAPS, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, SCLN, PGUP, QUOT, + TRNS, TRNS, TRNS, TRNS, FN3, FN3, TRNS, HOME, PGDN, END), + + [_FL] = LAYOUT( + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), + + [_UL] = LAYOUT( + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, FN4, FN5, FN11, FN10, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), }; -enum function_id { +enum function_id +{ RGBLED_TOGGLE, RGBLED_STEP_MODE, RGBLED_INCREASE_HUE, @@ -41,20 +42,20 @@ enum function_id { RGBLED_DECREASE_SAT, RGBLED_INCREASE_VAL, RGBLED_DECREASE_VAL, - SHIFT_ESC, + SHIFT_ESC, }; const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_MOMENTARY(1), // Momentary Fn overlay - [1] = ACTION_LAYER_TOGGLE(2), // Toggle Arrow Layer overlay - [2] = ACTION_LAYER_TAP_KEY(2, KC_CAPS), // Tap to toggle caps lock and hold to activate function layer - [3] = ACTION_LAYER_TOGGLE(3), // Toggle Underglow Layer overlay - [4] = ACTION_FUNCTION(RGBLED_TOGGLE), //Turn on/off underglow - [5] = ACTION_FUNCTION(RGBLED_STEP_MODE), // Change underglow mode - [6] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), - [7] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), - [8] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), - [9] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [0] = ACTION_LAYER_MOMENTARY(1), // Momentary Fn overlay + [1] = ACTION_LAYER_TOGGLE(2), // Toggle Arrow Layer overlay + [2] = ACTION_LAYER_TAP_KEY(2, KC_CAPS), // Tap to toggle caps lock and hold to activate function layer + [3] = ACTION_LAYER_TOGGLE(3), // Toggle Underglow Layer overlay + [4] = ACTION_FUNCTION(RGBLED_TOGGLE), //Turn on/off underglow + [5] = ACTION_FUNCTION(RGBLED_STEP_MODE), // Change underglow mode + [6] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [7] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [8] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [9] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), [10] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), [11] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), [12] = ACTION_FUNCTION(SHIFT_ESC), @@ -62,103 +63,133 @@ const uint16_t PROGMEM fn_actions[] = { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { + // MACRODOWN only works in this function + switch (id) + { + case 0: + if (record->event.pressed) + { register_code(KC_RSFT); - } else { + } + else + { unregister_code(KC_RSFT); - } + } break; - } + } return MACRO_NONE; }; -void matrix_scan_user(void) { +void matrix_scan_user(void) +{ -// Layer LED indicators -// ESC led on when in function layer, WASD cluster leds enabled when on arrow cluster + // Layer LED indicators + // ESC led on when in function layer, WASD cluster leds enabled when on arrow cluster uint32_t layer = layer_state; - if (layer & (1<<1)) { + if (layer & (1 << 1)) + { //gh60_wasd_leds_on(); - } else { + } + else + { //gh60_wasd_leds_off(); } - if (layer & (1<<2)) { + if (layer & (1 << 2)) + { //gh60_esc_led_on(); - } else { + } + else + { //gh60_esc_led_off(); } }; -#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { - switch (id) { +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch (id) + { case RGBLED_TOGGLE: - //led operations - if (record->event.pressed) { - rgblight_toggle(); + //led operations + if (record->event.pressed) + { + rgblight_toggle(); } break; case RGBLED_INCREASE_HUE: - if (record->event.pressed) { - rgblight_increase_hue(); + if (record->event.pressed) + { + rgblight_increase_hue(); } break; case RGBLED_DECREASE_HUE: - if (record->event.pressed) { - rgblight_decrease_hue(); + if (record->event.pressed) + { + rgblight_decrease_hue(); } break; case RGBLED_INCREASE_SAT: - if (record->event.pressed) { - rgblight_increase_sat(); + if (record->event.pressed) + { + rgblight_increase_sat(); } break; case RGBLED_DECREASE_SAT: - if (record->event.pressed) { - rgblight_decrease_sat(); + if (record->event.pressed) + { + rgblight_decrease_sat(); } break; case RGBLED_INCREASE_VAL: - if (record->event.pressed) { - rgblight_increase_val(); + if (record->event.pressed) + { + rgblight_increase_val(); } break; case RGBLED_DECREASE_VAL: - if (record->event.pressed) { - rgblight_decrease_val(); + if (record->event.pressed) + { + rgblight_decrease_val(); } break; case RGBLED_STEP_MODE: - if (record->event.pressed) { - rgblight_step(); + if (record->event.pressed) + { + rgblight_step(); } break; - static uint8_t shift_esc_shift_mask; + static uint8_t shift_esc_shift_mask; // Shift + ESC = ~ case SHIFT_ESC: - shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; - if (record->event.pressed) { - if (shift_esc_shift_mask) { - add_key(KC_GRV); - send_keyboard_report(); - } else { - add_key(KC_ESC); - send_keyboard_report(); + shift_esc_shift_mask = get_mods() & MODS_CTRL_MASK; + if (record->event.pressed) + { + if (shift_esc_shift_mask) + { + add_key(KC_GRV); + send_keyboard_report(); + } + else + { + add_key(KC_ESC); + send_keyboard_report(); + } } - } else { - if (shift_esc_shift_mask) { - del_key(KC_GRV); - send_keyboard_report(); - } else { - del_key(KC_ESC); - send_keyboard_report(); + else + { + if (shift_esc_shift_mask) + { + del_key(KC_GRV); + send_keyboard_report(); + } + else + { + del_key(KC_ESC); + send_keyboard_report(); + } } - } - break; + break; } }; diff --git a/keyboards/jd40/keymaps/vanagon/config.h b/keyboards/jd40/keymaps/vanagon/config.h index 65d2fe6f9874..ed09b50ee4db 100644 --- a/keyboards/jd40/keymaps/vanagon/config.h +++ b/keyboards/jd40/keymaps/vanagon/config.h @@ -1,6 +1,6 @@ #include "../../config.h" -#define KEYMAP_VANAGON(\ +#define LAYOUT_VANAGON(\ K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, \ K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, \ K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, \ diff --git a/keyboards/jd40/keymaps/vanagon/keymap.c b/keyboards/jd40/keymaps/vanagon/keymap.c index 34314614c647..e16a44af336d 100644 --- a/keyboards/jd40/keymaps/vanagon/keymap.c +++ b/keyboards/jd40/keymaps/vanagon/keymap.c @@ -1,29 +1,26 @@ -#include "jd40.h" +#include QMK_KEYBOARD_H #include "action_layer.h" -enum { - _BL = 0, - _AL1, - _AL2, +enum +{ + _BL = 0, + _AL1, + _AL2, }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BL] = KEYMAP_VANAGON( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - MO(_AL1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, MO(_AL1), - KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, - MO(_AL2), KC_LCTL, KC_LALT, KC_LGUI, KC_ENT, KC_SPC, KC_RGUI, KC_RALT, KC_RSPC, MO(_AL2) - ), - [_AL1] = KEYMAP_VANAGON( - KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LBRC, KC_RBRC, KC_TRNS, - KC_TRNS, KC_BSLS, KC_QUOT, KC_MINS, KC_EQL, KC_COLN, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_TRNS, - KC_TRNS, KC_ESC, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [_AL2] = KEYMAP_VANAGON( - KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, - KC_TRNS, KC_PIPE, KC_DQT, KC_UNDS, KC_PLUS, KC_SCLN, KC_TRNS, KC_4, KC_5, KC_6, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_1, KC_2, KC_3, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; + [_BL] = LAYOUT_VANAGON( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + MO(_AL1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, MO(_AL1), + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + MO(_AL2), KC_LCTL, KC_LALT, KC_LGUI, KC_ENT, KC_SPC, KC_RGUI, KC_RALT, KC_RSPC, MO(_AL2)), + [_AL1] = LAYOUT_VANAGON( + KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LBRC, KC_RBRC, KC_TRNS, + KC_TRNS, KC_BSLS, KC_QUOT, KC_MINS, KC_EQL, KC_COLN, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_TRNS, + KC_TRNS, KC_ESC, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_AL2] = LAYOUT_VANAGON( + KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, KC_PIPE, KC_DQT, KC_UNDS, KC_PLUS, KC_SCLN, KC_TRNS, KC_4, KC_5, KC_6, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_1, KC_2, KC_3, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)}; diff --git a/keyboards/jd45/info.json b/keyboards/jd45/info.json new file mode 100644 index 000000000000..77ad23a4bee1 --- /dev/null +++ b/keyboards/jd45/info.json @@ -0,0 +1,60 @@ +{ + "keyboard_name": "jd45", + "url": "", + "maintainer": "qmk", + "width": 13, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Tab", "x": 0, "y": 0 }, + { "label": "Q", "x": 1, "y": 0 }, + { "label": "W", "x": 2, "y": 0 }, + { "label": "E", "x": 3, "y": 0 }, + { "label": "R", "x": 4, "y": 0 }, + { "label": "T", "x": 5, "y": 0 }, + { "label": "Y", "x": 6, "y": 0 }, + { "label": "U", "x": 7, "y": 0 }, + { "label": "I", "x": 8, "y": 0 }, + { "label": "O", "x": 9, "y": 0 }, + { "label": "P", "x": 10, "y": 0 }, + { "label": "Back
Space", "x": 11, "y": 0 }, + { "x": 12, "y": 0 }, + { "label": "Caps", "x": 0, "y": 1, "w": 1.25 }, + { "label": "A", "x": 1.25, "y": 1 }, + { "label": "S", "x": 2.25, "y": 1 }, + { "label": "D", "x": 3.25, "y": 1 }, + { "label": "F", "x": 4.25, "y": 1 }, + { "label": "G", "x": 5.25, "y": 1 }, + { "label": "H", "x": 6.25, "y": 1 }, + { "label": "J", "x": 7.25, "y": 1 }, + { "label": "K", "x": 8.25, "y": 1 }, + { "label": "L", "x": 9.25, "y": 1 }, + { "label": ":", "x": 10.25, "y": 1 }, + { "label": "Enter", "x": 11.25, "y": 1, "w": 1.75 }, + { "label": "Shift", "x": 0, "y": 2, "w": 1.75 }, + { "label": "Z", "x": 1.75, "y": 2 }, + { "label": "X", "x": 2.75, "y": 2 }, + { "label": "C", "x": 3.75, "y": 2 }, + { "label": "V", "x": 4.75, "y": 2 }, + { "label": "B", "x": 5.75, "y": 2 }, + { "label": "N", "x": 6.75, "y": 2 }, + { "label": "M", "x": 7.75, "y": 2 }, + { "label": "<", "x": 8.75, "y": 2 }, + { "label": ">", "x": 9.75, "y": 2 }, + { "label": "?", "x": 10.75, "y": 2 }, + { "label": "Shift", "x": 11.75, "y": 2, "w": 1.25 }, + { "label": "Hyper", "x": 0, "y": 3, "w": 1.25 }, + { "label": "Super", "x": 1.25, "y": 3 }, + { "label": "Meta", "x": 2.25, "y": 3, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 3, "w": 1.25 }, + { "x": 4.75, "y": 3, "w": 1.75 }, + { "x": 6.5, "y": 3, "w": 1.75 }, + { "label": "Meta", "x": 8.25, "y": 3, "w": 1.25 }, + { "label": "Super", "x": 9.5, "y": 3, "w": 1.25 }, + { "label": "Fn2", "x": 10.75, "y": 3 }, + { "label": "Ctrl", "x": 11.75, "y": 3, "w": 1.25 } + ] + } + } +} diff --git a/keyboards/jd45/jd45.h b/keyboards/jd45/jd45.h index 04ac6649e7ad..48641c199ad1 100644 --- a/keyboards/jd45/jd45.h +++ b/keyboards/jd45/jd45.h @@ -5,7 +5,7 @@ /* JD45 keymap definition macro */ -#define KEYMAP( \ +#define LAYOUT( \ K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, \ K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, \ K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, K37, \ diff --git a/keyboards/jd45/keymaps/blakedietz/config.h b/keyboards/jd45/keymaps/blakedietz/config.h index 6667d6fa1d4f..38d850ef6ea6 100644 --- a/keyboards/jd45/keymaps/blakedietz/config.h +++ b/keyboards/jd45/keymaps/blakedietz/config.h @@ -3,7 +3,7 @@ /** *JD45 keymap definition macro */ -#define KEYMAP_JD45( \ +#define LAYOUT_JD45( \ K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, \ K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, \ K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, K37, \ diff --git a/keyboards/jd45/keymaps/blakedietz/keymap.c b/keyboards/jd45/keymaps/blakedietz/keymap.c index 1b1d0817e6c3..bde760a22383 100644 --- a/keyboards/jd45/keymaps/blakedietz/keymap.c +++ b/keyboards/jd45/keymaps/blakedietz/keymap.c @@ -1,4 +1,4 @@ -#include "jd45.h" +#include QMK_KEYBOARD_H extern keymap_config_t keymap_config; @@ -19,28 +19,30 @@ extern keymap_config_t keymap_config; // TODO: (bdietz) - make a symbol layer for greek symbols // Keycodes -enum planck_keycodes { - QWERTY = SAFE_RANGE, - LOWER, - RAISE, +enum planck_keycodes +{ + QWERTY = SAFE_RANGE, + LOWER, + RAISE, }; -enum macro_keycodes { - KC_ALT_TAB, - KC_CMD_TAB, - KC_CTL_TAB, - KC_CMD_SLSH, - KC_AG_FIND, - KC_AG_AGAIN, - KC_AG_UNDO, - KC_AG_CUT, - KC_AG_COPY, - KC_AG_PASTE, - KC_AG_DESK_L, - KC_AG_DESK_R, - KC_AG_TAB_C, - KC_AG_TAB_N, - KC_AG_TAB_R, +enum macro_keycodes +{ + KC_ALT_TAB, + KC_CMD_TAB, + KC_CTL_TAB, + KC_CMD_SLSH, + KC_AG_FIND, + KC_AG_AGAIN, + KC_AG_UNDO, + KC_AG_CUT, + KC_AG_COPY, + KC_AG_PASTE, + KC_AG_DESK_L, + KC_AG_DESK_R, + KC_AG_TAB_C, + KC_AG_TAB_N, + KC_AG_TAB_R, }; // Fillers to make layering more clear @@ -55,36 +57,36 @@ enum macro_keycodes { * - will fire z if tapped * - will fire cmd/super/win if held */ -#define ALT_DOT ALT_T(KC_DOT) -#define ALT_X ALT_T(KC_X) -#define CTL_SLSH CTL_T(KC_SLSH) -#define CTL_Z CTL_T(KC_Z) -#define GUI_C GUI_T(KC_C) -#define GUI_COMM GUI_T(KC_COMM) -#define HPR_ESC ALL_T(KC_ESC) -#define HPR_QUO ALL_T(KC_QUOT) +#define ALT_DOT ALT_T(KC_DOT) +#define ALT_X ALT_T(KC_X) +#define CTL_SLSH CTL_T(KC_SLSH) +#define CTL_Z CTL_T(KC_Z) +#define GUI_C GUI_T(KC_C) +#define GUI_COMM GUI_T(KC_COMM) +#define HPR_ESC ALL_T(KC_ESC) +#define HPR_QUO ALL_T(KC_QUOT) // Toggle to VIM when left space button is held, emit space keycode when left space is tapped -#define TGL_VIM LT(_VIM, KC_SPC) +#define TGL_VIM LT(_VIM, KC_SPC) // Toggle to the mouse layer when the right space button is held and emit enter when right space is tapped -#define TGL_MOUSE LT(_MOUSECURSOR, KC_ENT) +#define TGL_MOUSE LT(_MOUSECURSOR, KC_ENT) // TODO: (bdietz) - need to audit these keycodes to see what sort of cool things the default layout was doing. -#define ALT_TAB M(KC_ALT_TAB) // Macro for Alt-Tab -#define CMD_TAB M(KC_CMD_TAB) // Macro for Cmd-Tab -#define CTL_TAB M(KC_CTL_TAB) // Macro for Ctl-Tab -#define CMD_SLSH M(KC_CMD_SLSH) // Macro for Cmd-Slash (personal shortcut to toggle iTerm2 visibility) -#define AG_FIND M(KC_AG_FIND) // Macros for Cmd-[x] vs Ctrl-[x] based on current AG_NORM or AG_SWAP settings -#define AG_AGAIN M(KC_AG_AGAIN) -#define AG_UNDO M(KC_AG_UNDO) -#define AG_CUT M(KC_AG_CUT) -#define AG_COPY M(KC_AG_COPY) -#define AG_PASTE M(KC_AG_PASTE) -#define AG_D_L M(KC_AG_DESK_L) // For Virtual Desktop Switching: Left, and -#define AG_D_R M(KC_AG_DESK_R) // Right -#define AG_T_C M(KC_AG_TAB_C) // For Chrome, etc. Tab Close, -#define AG_T_N M(KC_AG_TAB_N) // Tab New, and -#define AG_T_R M(KC_AG_TAB_R) // Tab Reopen Closed +#define ALT_TAB M(KC_ALT_TAB) // Macro for Alt-Tab +#define CMD_TAB M(KC_CMD_TAB) // Macro for Cmd-Tab +#define CTL_TAB M(KC_CTL_TAB) // Macro for Ctl-Tab +#define CMD_SLSH M(KC_CMD_SLSH) // Macro for Cmd-Slash (personal shortcut to toggle iTerm2 visibility) +#define AG_FIND M(KC_AG_FIND) // Macros for Cmd-[x] vs Ctrl-[x] based on current AG_NORM or AG_SWAP settings +#define AG_AGAIN M(KC_AG_AGAIN) +#define AG_UNDO M(KC_AG_UNDO) +#define AG_CUT M(KC_AG_CUT) +#define AG_COPY M(KC_AG_COPY) +#define AG_PASTE M(KC_AG_PASTE) +#define AG_D_L M(KC_AG_DESK_L) // For Virtual Desktop Switching: Left, and +#define AG_D_R M(KC_AG_DESK_R) // Right +#define AG_T_C M(KC_AG_TAB_C) // For Chrome, etc. Tab Close, +#define AG_T_N M(KC_AG_TAB_N) // Tab New, and +#define AG_T_R M(KC_AG_TAB_R) // Tab Reopen Closed /* Qwerty * @@ -99,19 +101,19 @@ enum macro_keycodes { * `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------' */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QWERTY] = KEYMAP_JD45( -/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, ALL_T(KC_NO), -/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ - HPR_ESC , KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(_MEDIA, KC_SCLN), HPR_QUO, -/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ - KC_LSFT, CTL_Z, ALT_X, GUI_C, KC_V, KC_B, KC_N, KC_M,GUI_COMM, ALT_DOT, CTL_SLSH, KC_RSFT , -/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ - _______ , _______ , _______ , LOWER , TGL_VIM , TGL_MOUSE , RAISE , _______ , _______ , _______), -/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ + [_QWERTY] = LAYOUT_JD45( + /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, ALL_T(KC_NO), + /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ + HPR_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(_MEDIA, KC_SCLN), HPR_QUO, + /*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ + KC_LSFT, CTL_Z, ALT_X, GUI_C, KC_V, KC_B, KC_N, KC_M, GUI_COMM, ALT_DOT, CTL_SLSH, KC_RSFT, + /*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ + _______, _______, _______, LOWER, TGL_VIM, TGL_MOUSE, RAISE, _______, _______, _______), + /*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ -// TODO: (bdietz) - update the keymap documentation to include the modifier keys on the third row -/* Lower + // TODO: (bdietz) - update the keymap documentation to include the modifier keys on the third row + /* Lower * ,---------+------+------+------+------+------+------+------+------+------+------+------+------. * | ` | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | Bksp | * |---------`------`------`------`------`------`------`------`------`------`------`------`------| @@ -122,18 +124,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Prev | Next | Mute | * `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------' */ -[_LOWER] = KEYMAP_JD45( -/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ - KC_GRV,KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, KC_BSPC, -/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ - KC_LBRC , KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE , -/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ - KC_RBRC , CTL_T(KC_F7), ALT_T(KC_F8),GUI_T(KC_F9), KC_F10, KC_F11, KC_F12, KC_MINS, GUI_T(KC_EQL) , ALT_T(KC_LBRC), CTL_T(KC_RBRC), KC_BSLS , -/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ - _______ , _______, _______, _______, _______ , _______ , _______, KC_MPRV, KC_MNXT, KC_MUTE), -/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ + [_LOWER] = LAYOUT_JD45( + /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ + KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, KC_BSPC, + /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ + KC_LBRC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + /*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ + KC_RBRC, CTL_T(KC_F7), ALT_T(KC_F8), GUI_T(KC_F9), KC_F10, KC_F11, KC_F12, KC_MINS, GUI_T(KC_EQL), ALT_T(KC_LBRC), CTL_T(KC_RBRC), KC_BSLS, + /*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ + _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_MUTE), + /*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ -/* Raise + /* Raise * ,---------+------+------+------+------+------+------+------+------+------+------+------+------. * | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | Bksp | * |---------`------`------`------`------`------`------`------`------`------`------`------`------| @@ -144,18 +146,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Prev | Next | Mute | * `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------' */ -[_RAISE] = KEYMAP_JD45( -/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ - KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_BSPC, -/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ - KC_DLR , KC_4, KC_5, KC_6, KC_DOT, KC_PLUS, KC_DOT, KC_4, KC_5, KC_6, KC_ASTR, KC_PIPE , -/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ - KC_EQL , CTL_T(KC_7), ALT_T(KC_8), GUI_T(KC_9), KC_0, KC_MINS, KC_DOT, KC_1 ,GUI_T(KC_2), ALT_T(KC_3), CTL_T(KC_SLSH), KC_BSLS , -/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ - _______ , _______, _______, _______, _______ , _______ , _______, KC_MPRV, KC_MNXT, KC_MUTE), -/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ + [_RAISE] = LAYOUT_JD45( + /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ + KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_BSPC, + /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ + KC_DLR, KC_4, KC_5, KC_6, KC_DOT, KC_PLUS, KC_DOT, KC_4, KC_5, KC_6, KC_ASTR, KC_PIPE, + /*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ + KC_EQL, CTL_T(KC_7), ALT_T(KC_8), GUI_T(KC_9), KC_0, KC_MINS, KC_DOT, KC_1, GUI_T(KC_2), ALT_T(KC_3), CTL_T(KC_SLSH), KC_BSLS, + /*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ + _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_MUTE), + /*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ -/* Mouse Layer + /* Mouse Layer * ,---------+------+------+------+------+------+------+------+------+------+------+------+------. * | | |ACCL0 | | | | |WHL_L | Up |WHL_R | BTN2 | | | * |---------`------`------`------`------`------`------`------`------`------`------`------`------| @@ -167,18 +169,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------' */ -[_MOUSECURSOR] = KEYMAP_JD45( -/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ - _______,_______, _______, KC_MS_U, _______, _______, _______, KC_ACL2, KC_ACL1, KC_ACL0, _______, _______, _______, -/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ - _______ ,_______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN1, KC_BTN2, _______, _______, _______ , -/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ - _______ ,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , -/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ - _______ , _______, _______, _______, _______, _______, _______, _______, _______, _______), -/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ + [_MOUSECURSOR] = LAYOUT_JD45( + /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ + _______, _______, _______, KC_MS_U, _______, _______, _______, KC_ACL2, KC_ACL1, KC_ACL0, _______, _______, _______, + /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ + _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN1, KC_BTN2, _______, _______, _______, + /*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + /*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + /*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ -/* Adjust (Lower + Raise) + /* Adjust (Lower + Raise) * ,---------+------+------+------+------+------+------+------+------+------+------+------+------. * | | | | | | | | | | | | | Del | * |---------`------`------`------`------`------`------`------`------`------`------`------`------| @@ -189,19 +191,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | Reset | * `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------' */ -[_ADJUST] = KEYMAP_JD45( + [_ADJUST] = LAYOUT_JD45( -/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ - _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , -/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ - _______ ,_______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______ , -/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ - _______ ,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , -/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ - _______ , _______, _______, _______, _______ , _______ , _______, _______, _______, RESET), -/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ + /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, + /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ + _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, + /*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + /*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ + _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET), + /*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ -/* VIM + /* VIM * ,---------+------+------+------+------+------+------+------+------+------+------+------+------. * | | | | | | | | | | | | | | * |---------`------`------`------`------`------`------`------`------`------`------`------`------| @@ -212,18 +214,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | * `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------' */ -[_VIM] = KEYMAP_JD45( -/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ - _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ - _______ ,_______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______ , -/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ - _______ ,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , -/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ - _______ , _______, _______, _______, _______ , _______ , _______, _______, _______,_______), -/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ + [_VIM] = LAYOUT_JD45( + /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, + /*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + /*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + /*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ -/* Media + /* Media * ,---------+------+------+------+------+------+------+------+------+------+------+------+------. * | | | | | | | | | | | | | | * |---------`------`------`------`------`------`------`------`------`------`------`------`------| @@ -234,53 +236,63 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | * `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------' */ -[_MEDIA] = KEYMAP_JD45( -/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ - _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ - _______ ,_______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_MUTE, _______, KC_MPLY , -/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ - _______ ,_______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______, _______, _______ , -/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ - _______ , _______, _______, _______, _______ , _______ , _______, _______, _______, _______) -/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ + [_MEDIA] = LAYOUT_JD45( + /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ + _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_MUTE, _______, KC_MPLY, + /*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ + _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______, _______, _______, + /*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + /*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ }; -void persistant_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); +void persistant_default_layer_set(uint16_t default_layer) +{ + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); } -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { +bool process_record_user(uint16_t keycode, keyrecord_t *record) +{ + switch (keycode) + { case QWERTY: - if (record->event.pressed) { - default_layer_set(1UL<<_QWERTY); - } - return false; - break; + if (record->event.pressed) + { + default_layer_set(1UL << _QWERTY); + } + return false; + break; case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; + if (record->event.pressed) + { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + else + { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - } - return true; + if (record->event.pressed) + { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + else + { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + } + return true; } /* @@ -288,54 +300,69 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { */ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - if (!eeconfig_is_enabled()) { - eeconfig_init(); + if (!eeconfig_is_enabled()) + { + eeconfig_init(); } - bool use_cmd = true; // Use, for example, Cmd-Tab, Cmd-C, Cmd-V, etc. + bool use_cmd = true; // Use, for example, Cmd-Tab, Cmd-C, Cmd-V, etc. // Compare to MAGIC_SWAP_ALT_GUI and MAGIC_UNSWAP_ALT_GUI configs, set in: // quantum/quantum.c - if(keymap_config.swap_lalt_lgui == 1 && keymap_config.swap_ralt_rgui == 1) { - use_cmd = false; // ... or, Alt-Tab, Ctrl-C, Ctrl-V, etc. + if (keymap_config.swap_lalt_lgui == 1 && keymap_config.swap_ralt_rgui == 1) + { + use_cmd = false; // ... or, Alt-Tab, Ctrl-C, Ctrl-V, etc. } - switch (id) { - case KC_ALT_TAB: - if(use_cmd) { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); } - else { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); } - case KC_CMD_TAB: - if(use_cmd) { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); } - else { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); } + switch (id) + { + case KC_ALT_TAB: + if (use_cmd) + { + return (record->event.pressed ? MACRO(D(LALT), D(TAB), END) : MACRO(U(TAB), END)); + } + else + { + return (record->event.pressed ? MACRO(D(LGUI), D(TAB), END) : MACRO(U(TAB), END)); + } + case KC_CMD_TAB: + if (use_cmd) + { + return (record->event.pressed ? MACRO(D(LGUI), D(TAB), END) : MACRO(U(TAB), END)); + } + else + { + return (record->event.pressed ? MACRO(D(LALT), D(TAB), END) : MACRO(U(TAB), END)); + } - case KC_CTL_TAB: - return (record->event.pressed ? MACRO( D(LCTRL), D(TAB), END ) : MACRO( U(TAB), END )); - case KC_CMD_SLSH: - return (record->event.pressed ? MACRO( D(LGUI), D(SLSH),END ) : MACRO( U(SLSH),END )); + case KC_CTL_TAB: + return (record->event.pressed ? MACRO(D(LCTRL), D(TAB), END) : MACRO(U(TAB), END)); + case KC_CMD_SLSH: + return (record->event.pressed ? MACRO(D(LGUI), D(SLSH), END) : MACRO(U(SLSH), END)); - case KC_AG_FIND: - return use_cmd ? MACRODOWN( D(LGUI), T(F), END ) : MACRODOWN( D(LCTRL), T(F), END ); - case KC_AG_AGAIN: - return use_cmd ? MACRODOWN( D(LGUI), T(G), END ) : MACRODOWN( D(LCTRL), T(G), END ); - case KC_AG_UNDO: - return use_cmd ? MACRODOWN( D(LGUI), T(Z), END ) : MACRODOWN( D(LCTRL), T(Z), END ); - case KC_AG_CUT: - return use_cmd ? MACRODOWN( D(LGUI), T(X), END ) : MACRODOWN( D(LCTRL), T(X), END ); - case KC_AG_COPY: - return use_cmd ? MACRODOWN( D(LGUI), T(C), END ) : MACRODOWN( D(LCTRL), T(C), END ); - case KC_AG_PASTE: - return use_cmd ? MACRODOWN( D(LGUI), T(V), END ) : MACRODOWN( D(LCTRL), T(V), END ); + case KC_AG_FIND: + return use_cmd ? MACRODOWN(D(LGUI), T(F), END) : MACRODOWN(D(LCTRL), T(F), END); + case KC_AG_AGAIN: + return use_cmd ? MACRODOWN(D(LGUI), T(G), END) : MACRODOWN(D(LCTRL), T(G), END); + case KC_AG_UNDO: + return use_cmd ? MACRODOWN(D(LGUI), T(Z), END) : MACRODOWN(D(LCTRL), T(Z), END); + case KC_AG_CUT: + return use_cmd ? MACRODOWN(D(LGUI), T(X), END) : MACRODOWN(D(LCTRL), T(X), END); + case KC_AG_COPY: + return use_cmd ? MACRODOWN(D(LGUI), T(C), END) : MACRODOWN(D(LCTRL), T(C), END); + case KC_AG_PASTE: + return use_cmd ? MACRODOWN(D(LGUI), T(V), END) : MACRODOWN(D(LCTRL), T(V), END); - case KC_AG_DESK_L: - return use_cmd ? MACRODOWN( D(LGUI), D(LCTRL), T(SCLN), END ) : MACRODOWN( D(LALT), D(LCTRL), T(SCLN), END ); - case KC_AG_DESK_R: - return use_cmd ? MACRODOWN( D(LGUI), D(LCTRL), T(QUOT), END ) : MACRODOWN( D(LALT), D(LCTRL), T(QUOT), END ); + case KC_AG_DESK_L: + return use_cmd ? MACRODOWN(D(LGUI), D(LCTRL), T(SCLN), END) : MACRODOWN(D(LALT), D(LCTRL), T(SCLN), END); + case KC_AG_DESK_R: + return use_cmd ? MACRODOWN(D(LGUI), D(LCTRL), T(QUOT), END) : MACRODOWN(D(LALT), D(LCTRL), T(QUOT), END); - case KC_AG_TAB_C: - return use_cmd ? MACRODOWN( D(LGUI), T(W), END ) : MACRODOWN( D(LCTRL), T(W), END ); - case KC_AG_TAB_N: - return use_cmd ? MACRODOWN( D(LGUI), T(T), END ) : MACRODOWN( D(LCTRL), T(T), END ); - case KC_AG_TAB_R: - return use_cmd ? MACRODOWN( D(LGUI), D(LSHIFT), T(T), END ) : MACRODOWN( D(LCTRL), D(LSHIFT), T(T), END ); + case KC_AG_TAB_C: + return use_cmd ? MACRODOWN(D(LGUI), T(W), END) : MACRODOWN(D(LCTRL), T(W), END); + case KC_AG_TAB_N: + return use_cmd ? MACRODOWN(D(LGUI), T(T), END) : MACRODOWN(D(LCTRL), T(T), END); + case KC_AG_TAB_R: + return use_cmd ? MACRODOWN(D(LGUI), D(LSHIFT), T(T), END) : MACRODOWN(D(LCTRL), D(LSHIFT), T(T), END); } return MACRO_NONE; diff --git a/keyboards/jd45/keymaps/default/keymap.c b/keyboards/jd45/keymaps/default/keymap.c index 95abb1505c26..0bb519f5fc35 100644 --- a/keyboards/jd45/keymaps/default/keymap.c +++ b/keyboards/jd45/keymaps/default/keymap.c @@ -1,15 +1,15 @@ -#include "jd45.h" +#include QMK_KEYBOARD_H /* this keymap is to provide a basic keyboard layout for testing the matrix * for more practical and complicated keymap refer to other keymaps in the same folder */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( - ESC, Q, W, E, R, T, Y, U, I, O, P, QUOT, BSPC, - TAB, A, S, D, F, G, H, J, K, L, SCLN, ENT, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, - PAUSE, LCTL, LALT, DEL, SPC, DEL, LEFT, UP, DOWN, RIGHT ), + [0] = LAYOUT( + ESC, Q, W, E, R, T, Y, U, I, O, P, QUOT, BSPC, + TAB, A, S, D, F, G, H, J, K, L, SCLN, ENT, + LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, + PAUSE, LCTL, LALT, DEL, SPC, DEL, LEFT, UP, DOWN, RIGHT), }; const uint16_t PROGMEM fn_actions[] = { diff --git a/keyboards/jd45/keymaps/jeebak/config.h b/keyboards/jd45/keymaps/jeebak/config.h index 53a1f0a3078a..bfaa128937ea 100644 --- a/keyboards/jd45/keymaps/jeebak/config.h +++ b/keyboards/jd45/keymaps/jeebak/config.h @@ -3,7 +3,7 @@ /** *JD45 keymap definition macro */ -#define KEYMAP_JD45( \ +#define LAYOUT_JD45( \ K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, \ K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, \ K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, K37, \ diff --git a/keyboards/jd45/keymaps/jeebak/keymap.c b/keyboards/jd45/keymaps/jeebak/keymap.c index 0da114a1edc0..c711939fcf78 100644 --- a/keyboards/jd45/keymaps/jeebak/keymap.c +++ b/keyboards/jd45/keymaps/jeebak/keymap.c @@ -1,4 +1,4 @@ -#include "jd45.h" +#include QMK_KEYBOARD_H extern keymap_config_t keymap_config; @@ -17,33 +17,35 @@ extern keymap_config_t keymap_config; #define _ADJUST 16 // Keycodes -enum planck_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - PLOVER, - LOWER, - RAISE, - BACKLIT, - EXT_PLV +enum planck_keycodes +{ + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + PLOVER, + LOWER, + RAISE, + BACKLIT, + EXT_PLV }; -enum macro_keycodes { - KC_ALT_TAB, - KC_CMD_TAB, - KC_CTL_TAB, - KC_CMD_SLSH, - KC_AG_FIND, - KC_AG_AGAIN, - KC_AG_UNDO, - KC_AG_CUT, - KC_AG_COPY, - KC_AG_PASTE, - KC_AG_DESK_L, - KC_AG_DESK_R, - KC_AG_TAB_C, - KC_AG_TAB_N, - KC_AG_TAB_R, +enum macro_keycodes +{ + KC_ALT_TAB, + KC_CMD_TAB, + KC_CTL_TAB, + KC_CMD_SLSH, + KC_AG_FIND, + KC_AG_AGAIN, + KC_AG_UNDO, + KC_AG_CUT, + KC_AG_COPY, + KC_AG_PASTE, + KC_AG_DESK_L, + KC_AG_DESK_R, + KC_AG_TAB_C, + KC_AG_TAB_N, + KC_AG_TAB_R, }; // Fillers to make layering more clear @@ -51,29 +53,29 @@ enum macro_keycodes { #define XXXXXXX KC_NO // Custom macros -#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl -#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift -#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper -#define GUI_SEM GUI_T(KC_SCLN) // Tap for Semicolon, hold for GUI -#define ALT_QUO ALT_T(KC_QUOT) // Tap for Quote, hold for Alt +#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl +#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift +#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper +#define GUI_SEM GUI_T(KC_SCLN) // Tap for Semicolon, hold for GUI +#define ALT_QUO ALT_T(KC_QUOT) // Tap for Quote, hold for Alt // Requires KC_TRNS/_______ for the trigger key in the destination layer -#define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor -#define LT_MC(kc) LT(_MOUSECURSOR, kc) // L-ayer T-ap M-ouse C-ursor -#define ALT_TAB M(KC_ALT_TAB) // Macro for Alt-Tab -#define CMD_TAB M(KC_CMD_TAB) // Macro for Cmd-Tab -#define CTL_TAB M(KC_CTL_TAB) // Macro for Ctl-Tab -#define CMD_SLSH M(KC_CMD_SLSH) // Macro for Cmd-Slash (personal shortcut to toggle iTerm2 visibility) -#define AG_FIND M(KC_AG_FIND) // Macros for Cmd-[x] vs Ctrl-[x] based on current AG_NORM or AG_SWAP settings -#define AG_AGAIN M(KC_AG_AGAIN) -#define AG_UNDO M(KC_AG_UNDO) -#define AG_CUT M(KC_AG_CUT) -#define AG_COPY M(KC_AG_COPY) -#define AG_PASTE M(KC_AG_PASTE) -#define AG_D_L M(KC_AG_DESK_L) // For Virtual Desktop Switching: Left, and -#define AG_D_R M(KC_AG_DESK_R) // Right -#define AG_T_C M(KC_AG_TAB_C) // For Chrome, etc. Tab Close, -#define AG_T_N M(KC_AG_TAB_N) // Tab New, and -#define AG_T_R M(KC_AG_TAB_R) // Tab Reopen Closed +#define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor +#define LT_MC(kc) LT(_MOUSECURSOR, kc) // L-ayer T-ap M-ouse C-ursor +#define ALT_TAB M(KC_ALT_TAB) // Macro for Alt-Tab +#define CMD_TAB M(KC_CMD_TAB) // Macro for Cmd-Tab +#define CTL_TAB M(KC_CTL_TAB) // Macro for Ctl-Tab +#define CMD_SLSH M(KC_CMD_SLSH) // Macro for Cmd-Slash (personal shortcut to toggle iTerm2 visibility) +#define AG_FIND M(KC_AG_FIND) // Macros for Cmd-[x] vs Ctrl-[x] based on current AG_NORM or AG_SWAP settings +#define AG_AGAIN M(KC_AG_AGAIN) +#define AG_UNDO M(KC_AG_UNDO) +#define AG_CUT M(KC_AG_CUT) +#define AG_COPY M(KC_AG_COPY) +#define AG_PASTE M(KC_AG_PASTE) +#define AG_D_L M(KC_AG_DESK_L) // For Virtual Desktop Switching: Left, and +#define AG_D_R M(KC_AG_DESK_R) // Right +#define AG_T_C M(KC_AG_TAB_C) // For Chrome, etc. Tab Close, +#define AG_T_N M(KC_AG_TAB_N) // Tab New, and +#define AG_T_R M(KC_AG_TAB_R) // Tab Reopen Closed /* Qwerty * @@ -89,18 +91,18 @@ enum macro_keycodes { */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QWERTY] = KEYMAP_JD45( -/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ - HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_BSPC, -/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ - CTL_ESC , KC_A, KC_S,LT_MC(KC_D), KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, GUI_SEM, ALT_QUO , -/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ - KC_LSFT , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT , -/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ - KC_RGUI , KC_LALT , KC_LGUI , LOWER , LT_TC , LT_TC , RAISE , KC_VOLD , KC_VOLU , KC_MPLY), -/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ + [_QWERTY] = LAYOUT_JD45( + /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ + HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_BSPC, + /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ + CTL_ESC, KC_A, KC_S, LT_MC(KC_D), KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, GUI_SEM, ALT_QUO, + /*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT, + /*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ + KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_VOLD, KC_VOLU, KC_MPLY), + /*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ -/* Colemak + /* Colemak * ,---------+------+------+------+------+------+------+------+------+------+------+------+------. * |Hyper/Tab| Q | W | F | P | G | J | L | U | Y | ; | Bksp | Bksp | * |---------`------`------`------`------`------`------`------`------`------`------`------`------| @@ -111,18 +113,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | RGUI | Alt | GUI | Lower | TC/Space | TC/Space | Raise | Vol- | Vol+ | Play | * `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------' */ -[_COLEMAK] = KEYMAP_JD45( -/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ - HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, KC_BSPC, -/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ - CTL_ESC , KC_A, KC_R,LT_MC(KC_S), KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT , -/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ - KC_LSFT , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT , -/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ - KC_RGUI , KC_LALT , KC_LGUI , LOWER , LT_TC , LT_TC , RAISE , KC_VOLD , KC_VOLU , KC_MPLY), -/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ + [_COLEMAK] = LAYOUT_JD45( + /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ + HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, KC_BSPC, + /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ + CTL_ESC, KC_A, KC_R, LT_MC(KC_S), KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + /*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT, + /*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ + KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_VOLD, KC_VOLU, KC_MPLY), + /*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ -/* Dvorak + /* Dvorak * ,---------+------+------+------+------+------+------+------+------+------+------+------+------. * |Hyper/Tab| " | , | . | P | Y | F | G | C | R | L | Bksp | Bksp | * |---------`------`------`------`------`------`------`------`------`------`------`------`------| @@ -133,18 +135,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | RGUI | Alt | GUI | Lower | TC/Space | TC/Space | Raise | Vol- | Vol+ | Play | * `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------' */ -[_DVORAK] = KEYMAP_JD45( -/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ - HPR_TAB,KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, KC_BSPC, -/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ - CTL_ESC , KC_A, KC_O,LT_MC(KC_E), KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH , -/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ - KC_LSFT , KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT , -/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ - KC_RGUI , KC_LALT , KC_LGUI , LOWER , LT_TC , LT_TC , RAISE , KC_VOLD , KC_VOLU , KC_MPLY), -/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ + [_DVORAK] = LAYOUT_JD45( + /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ + HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, KC_BSPC, + /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ + CTL_ESC, KC_A, KC_O, LT_MC(KC_E), KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, + /*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT, + /*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ + KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_VOLD, KC_VOLU, KC_MPLY), + /*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ -/* Lower + /* Lower * ,---------+------+------+------+------+------+------+------+------+------+------+------+------. * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | Bksp | * |---------`------`------`------`------`------`------`------`------`------`------`------`------| @@ -155,18 +157,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite | | | | | | | Prev | Next | Mute | * `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------' */ -[_LOWER] = KEYMAP_JD45( -/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ - KC_TILD,KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, KC_BSPC, -/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ - KC_LBRC , KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE , -/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ - KC_RBRC , KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS , -/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ - BACKLIT , _______, _______, _______, _______ , _______ , _______, KC_MPRV, KC_MNXT, KC_MUTE), -/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ + [_LOWER] = LAYOUT_JD45( + /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, KC_BSPC, + /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ + KC_LBRC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + /*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ + KC_RBRC, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + /*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ + BACKLIT, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_MUTE), + /*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ -/* Raise + /* Raise * ,---------+------+------+------+------+------+------+------+------+------+------+------+------. * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | Bksp | * |---------`------`------`------`------`------`------`------`------`------`------`------`------| @@ -177,18 +179,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite | | | | | | | Prev | Next | Mute | * `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------' */ -[_RAISE] = KEYMAP_JD45( -/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ - KC_0 , KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_BSPC, -/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ - KC_DLR , KC_4, KC_5, KC_6, KC_DOT, KC_PLUS, KC_DOT, KC_4, KC_5, KC_6, KC_ASTR, KC_PIPE , -/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ - KC_EQL , KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_DOT, KC_1, KC_2, KC_3, KC_SLSH, KC_BSLS , -/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ - BACKLIT , _______, _______, _______, _______ , _______ , _______, KC_MPRV, KC_MNXT, KC_MUTE), -/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ + [_RAISE] = LAYOUT_JD45( + /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_BSPC, + /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ + KC_DLR, KC_4, KC_5, KC_6, KC_DOT, KC_PLUS, KC_DOT, KC_4, KC_5, KC_6, KC_ASTR, KC_PIPE, + /*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ + KC_EQL, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_DOT, KC_1, KC_2, KC_3, KC_SLSH, KC_BSLS, + /*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ + BACKLIT, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_MUTE), + /*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ -/* TouchCursor layer (http://martin-stone.github.io/touchcursor/) plus personal customizations + /* TouchCursor layer (http://martin-stone.github.io/touchcursor/) plus personal customizations * ,---------+------+------+------+------+------+------+------+------+------+------+------+------. * | AltTab |CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | | * |---------`------`------`------`------`------`------`------`------`------`------`------`------| @@ -203,18 +205,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * seem to work on Mac. Presumably they'll work under Windows. */ -[_TOUCHCURSOR] = KEYMAP_JD45( -/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ - ALT_TAB,CMD_TAB, CTL_TAB, KC_LGUI, KC_LSFT, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______, _______, -/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ - _______ ,KC_LALT, KC_SPC, AG_T_C, AG_FIND,AG_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, AG_D_L, AG_D_R , -/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ - _______ ,AG_UNDO, AG_CUT, AG_COPY,AG_PASTE, KC_GRV, KC_PGDN, KC_DEL, AG_T_N, AG_T_R,CMD_SLSH, _______ , -/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ - _______ , _______, _______, _______, _______ , _______ , _______, _______, _______, _______), -/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ + [_TOUCHCURSOR] = LAYOUT_JD45( + /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ + ALT_TAB, CMD_TAB, CTL_TAB, KC_LGUI, KC_LSFT, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______, _______, + /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ + _______, KC_LALT, KC_SPC, AG_T_C, AG_FIND, AG_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, AG_D_L, AG_D_R, + /*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ + _______, AG_UNDO, AG_CUT, AG_COPY, AG_PASTE, KC_GRV, KC_PGDN, KC_DEL, AG_T_N, AG_T_R, CMD_SLSH, _______, + /*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + /*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ -/* Mouse Layer + /* Mouse Layer * ,---------+------+------+------+------+------+------+------+------+------+------+------+------. * | | |ACCL0 | | | | |WHL_L | Up |WHL_R | BTN2 | | | * |---------`------`------`------`------`------`------`------`------`------`------`------`------| @@ -226,18 +228,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------' */ -[_MOUSECURSOR] = KEYMAP_JD45( -/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ - _______,_______, KC_ACL0, _______, _______, _______, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_BTN2, _______, _______, -/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ - _______ ,KC_ACL2, KC_BTN2, _______, KC_BTN1, KC_ACL1, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN4, KC_BTN5 , -/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ - _______ ,_______, _______, _______, KC_BTN3, _______, KC_WH_D, KC_BTN1, _______, _______, KC_BTN3, _______ , -/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ - _______ , _______, _______, _______, _______, _______, _______, _______, _______, _______), -/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ + [_MOUSECURSOR] = LAYOUT_JD45( + /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ + _______, _______, KC_ACL0, _______, _______, _______, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_BTN2, _______, _______, + /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ + _______, KC_ACL2, KC_BTN2, _______, KC_BTN1, KC_ACL1, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN4, KC_BTN5, + /*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ + _______, _______, _______, _______, KC_BTN3, _______, KC_WH_D, KC_BTN1, _______, _______, KC_BTN3, _______, + /*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + /*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ -/* Plover layer (http://opensteno.org) + /* Plover layer (http://opensteno.org) * ,---------+------+------+------+------+------+------+------+------+------+------+------+------. * | # | # | # | # | # | # | # | # | # | # | # | # | # | * |---------`------`------`------`------`------`------`------`------`------`------`------`------| @@ -249,18 +251,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------' */ -[_PLOVER] = KEYMAP_JD45( -/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ - KC_1 , KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 , -/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ - XXXXXXX , KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC , -/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ - XXXXXXX , KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT , -/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ - EXT_PLV , XXXXXXX, KC_C, KC_V, XXXXXXX , XXXXXXX , KC_N, KC_M, XXXXXXX, XXXXXXX), -/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ + [_PLOVER] = LAYOUT_JD45( + /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ + KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, + /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ + XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + /*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ + XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + /*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ + EXT_PLV, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX), + /*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ -/* Adjust (Lower + Raise) + /* Adjust (Lower + Raise) * ,---------+------+------+------+------+------+------+------+------+------+------+------+------. * | | | | | | | | | | | | | Del | * |---------`------`------`------`------`------`------`------`------`------`------`------`------| @@ -271,97 +273,115 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | Reset | * `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------' */ -[_ADJUST] = KEYMAP_JD45( -/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ - _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , -/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ - _______ ,_______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______ , -/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ - _______ ,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , -/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ - _______ , _______, _______, _______, _______ , _______ , _______, _______, _______, RESET) -/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ + [_ADJUST] = LAYOUT_JD45( + /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, + /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/ + _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______, + /*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + /*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ + _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET) + /*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/ }; -void persistent_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); +void persistent_default_layer_set(uint16_t default_layer) +{ + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); } -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { +bool process_record_user(uint16_t keycode, keyrecord_t *record) +{ + switch (keycode) + { case QWERTY: - if (record->event.pressed) { - default_layer_set(1UL<<_QWERTY); - } - return false; - break; + if (record->event.pressed) + { + default_layer_set(1UL << _QWERTY); + } + return false; + break; case COLEMAK: - if (record->event.pressed) { - default_layer_set(1UL<<_COLEMAK); - } - return false; - break; + if (record->event.pressed) + { + default_layer_set(1UL << _COLEMAK); + } + return false; + break; case DVORAK: - if (record->event.pressed) { - default_layer_set(1UL<<_DVORAK); - } - return false; - break; + if (record->event.pressed) + { + default_layer_set(1UL << _DVORAK); + } + return false; + break; case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; + if (record->event.pressed) + { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + else + { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; + if (record->event.pressed) + { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + else + { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; case BACKLIT: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - return false; - break; + if (record->event.pressed) + { + register_code(KC_RSFT); +#ifdef BACKLIGHT_ENABLE + backlight_step(); +#endif + } + else + { + unregister_code(KC_RSFT); + } + return false; + break; case PLOVER: - if (record->event.pressed) { - layer_off(_RAISE); - layer_off(_LOWER); - layer_off(_ADJUST); - layer_on(_PLOVER); - if (!eeconfig_is_enabled()) { - eeconfig_init(); + if (record->event.pressed) + { + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) + { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); } - keymap_config.raw = eeconfig_read_keymap(); - keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); - } - return false; - break; + return false; + break; case EXT_PLV: - if (record->event.pressed) { - layer_off(_PLOVER); - } - return false; - break; - } - return true; + if (record->event.pressed) + { + layer_off(_PLOVER); + } + return false; + break; + } + return true; } /* @@ -369,54 +389,69 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { */ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - if (!eeconfig_is_enabled()) { - eeconfig_init(); + if (!eeconfig_is_enabled()) + { + eeconfig_init(); } - bool use_cmd = true; // Use, for example, Cmd-Tab, Cmd-C, Cmd-V, etc. + bool use_cmd = true; // Use, for example, Cmd-Tab, Cmd-C, Cmd-V, etc. // Compare to MAGIC_SWAP_ALT_GUI and MAGIC_UNSWAP_ALT_GUI configs, set in: // quantum/quantum.c - if(keymap_config.swap_lalt_lgui == 1 && keymap_config.swap_ralt_rgui == 1) { - use_cmd = false; // ... or, Alt-Tab, Ctrl-C, Ctrl-V, etc. + if (keymap_config.swap_lalt_lgui == 1 && keymap_config.swap_ralt_rgui == 1) + { + use_cmd = false; // ... or, Alt-Tab, Ctrl-C, Ctrl-V, etc. } - switch (id) { - case KC_ALT_TAB: - if(use_cmd) { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); } - else { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); } - case KC_CMD_TAB: - if(use_cmd) { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); } - else { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); } + switch (id) + { + case KC_ALT_TAB: + if (use_cmd) + { + return (record->event.pressed ? MACRO(D(LALT), D(TAB), END) : MACRO(U(TAB), END)); + } + else + { + return (record->event.pressed ? MACRO(D(LGUI), D(TAB), END) : MACRO(U(TAB), END)); + } + case KC_CMD_TAB: + if (use_cmd) + { + return (record->event.pressed ? MACRO(D(LGUI), D(TAB), END) : MACRO(U(TAB), END)); + } + else + { + return (record->event.pressed ? MACRO(D(LALT), D(TAB), END) : MACRO(U(TAB), END)); + } - case KC_CTL_TAB: - return (record->event.pressed ? MACRO( D(LCTRL), D(TAB), END ) : MACRO( U(TAB), END )); - case KC_CMD_SLSH: - return (record->event.pressed ? MACRO( D(LGUI), D(SLSH),END ) : MACRO( U(SLSH),END )); + case KC_CTL_TAB: + return (record->event.pressed ? MACRO(D(LCTRL), D(TAB), END) : MACRO(U(TAB), END)); + case KC_CMD_SLSH: + return (record->event.pressed ? MACRO(D(LGUI), D(SLSH), END) : MACRO(U(SLSH), END)); - case KC_AG_FIND: - return use_cmd ? MACRODOWN( D(LGUI), T(F), END ) : MACRODOWN( D(LCTRL), T(F), END ); - case KC_AG_AGAIN: - return use_cmd ? MACRODOWN( D(LGUI), T(G), END ) : MACRODOWN( D(LCTRL), T(G), END ); - case KC_AG_UNDO: - return use_cmd ? MACRODOWN( D(LGUI), T(Z), END ) : MACRODOWN( D(LCTRL), T(Z), END ); - case KC_AG_CUT: - return use_cmd ? MACRODOWN( D(LGUI), T(X), END ) : MACRODOWN( D(LCTRL), T(X), END ); - case KC_AG_COPY: - return use_cmd ? MACRODOWN( D(LGUI), T(C), END ) : MACRODOWN( D(LCTRL), T(C), END ); - case KC_AG_PASTE: - return use_cmd ? MACRODOWN( D(LGUI), T(V), END ) : MACRODOWN( D(LCTRL), T(V), END ); + case KC_AG_FIND: + return use_cmd ? MACRODOWN(D(LGUI), T(F), END) : MACRODOWN(D(LCTRL), T(F), END); + case KC_AG_AGAIN: + return use_cmd ? MACRODOWN(D(LGUI), T(G), END) : MACRODOWN(D(LCTRL), T(G), END); + case KC_AG_UNDO: + return use_cmd ? MACRODOWN(D(LGUI), T(Z), END) : MACRODOWN(D(LCTRL), T(Z), END); + case KC_AG_CUT: + return use_cmd ? MACRODOWN(D(LGUI), T(X), END) : MACRODOWN(D(LCTRL), T(X), END); + case KC_AG_COPY: + return use_cmd ? MACRODOWN(D(LGUI), T(C), END) : MACRODOWN(D(LCTRL), T(C), END); + case KC_AG_PASTE: + return use_cmd ? MACRODOWN(D(LGUI), T(V), END) : MACRODOWN(D(LCTRL), T(V), END); - case KC_AG_DESK_L: - return use_cmd ? MACRODOWN( D(LGUI), D(LCTRL), T(SCLN), END ) : MACRODOWN( D(LALT), D(LCTRL), T(SCLN), END ); - case KC_AG_DESK_R: - return use_cmd ? MACRODOWN( D(LGUI), D(LCTRL), T(QUOT), END ) : MACRODOWN( D(LALT), D(LCTRL), T(QUOT), END ); + case KC_AG_DESK_L: + return use_cmd ? MACRODOWN(D(LGUI), D(LCTRL), T(SCLN), END) : MACRODOWN(D(LALT), D(LCTRL), T(SCLN), END); + case KC_AG_DESK_R: + return use_cmd ? MACRODOWN(D(LGUI), D(LCTRL), T(QUOT), END) : MACRODOWN(D(LALT), D(LCTRL), T(QUOT), END); - case KC_AG_TAB_C: - return use_cmd ? MACRODOWN( D(LGUI), T(W), END ) : MACRODOWN( D(LCTRL), T(W), END ); - case KC_AG_TAB_N: - return use_cmd ? MACRODOWN( D(LGUI), T(T), END ) : MACRODOWN( D(LCTRL), T(T), END ); - case KC_AG_TAB_R: - return use_cmd ? MACRODOWN( D(LGUI), D(LSHIFT), T(T), END ) : MACRODOWN( D(LCTRL), D(LSHIFT), T(T), END ); + case KC_AG_TAB_C: + return use_cmd ? MACRODOWN(D(LGUI), T(W), END) : MACRODOWN(D(LCTRL), T(W), END); + case KC_AG_TAB_N: + return use_cmd ? MACRODOWN(D(LGUI), T(T), END) : MACRODOWN(D(LCTRL), T(T), END); + case KC_AG_TAB_R: + return use_cmd ? MACRODOWN(D(LGUI), D(LSHIFT), T(T), END) : MACRODOWN(D(LCTRL), D(LSHIFT), T(T), END); } return MACRO_NONE; diff --git a/keyboards/jd45/keymaps/justin/keymap.c b/keyboards/jd45/keymaps/justin/keymap.c index c278abba55be..a797582b072a 100644 --- a/keyboards/jd45/keymaps/justin/keymap.c +++ b/keyboards/jd45/keymaps/justin/keymap.c @@ -1,58 +1,59 @@ -#include "jd45.h" +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( - ESC, Q, W, F, P, G, J, L, U, Y, SCLN, QUOT, BSPC, - FN8, A, R, S, T, D, H, N, E, I, O, ENT, - LSFT, Z, X, C, V, B, K, M, COMM, DOT, SLSH, FN6, - FN4, LGUI, FN7, FN2, FN1, SPC, FN5, RALT, FN3, FN0 ), -[1] = KEYMAP( - TRNS, FN10, FN11, FN12, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, DEL, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGUP, LEFT, RGHT, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, END, PGDN, DOWN, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS ), -[2] = KEYMAP( - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, 7, 8, 9, 0, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, 4, 5, 6, DOT, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC, 1, 2, 3, BSLS, TRNS, - TRNS,FN29, TRNS, TRNS, TRNS, PAUSE, EQL, MINS, TRNS, TRNS ), -[3] = KEYMAP( - TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS ), -[4] = KEYMAP( - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, 7, 8, 9, 0, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, 4, 5, 6, DOT, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC, 1, 2, 3, BSLS, TRNS, - TRNS,FN29, TRNS, TRNS, TRNS, PAUSE, EQL, MINS, TRNS, TRNS ), + [0] = LAYOUT( + ESC, Q, W, F, P, G, J, L, U, Y, SCLN, QUOT, BSPC, + FN8, A, R, S, T, D, H, N, E, I, O, ENT, + LSFT, Z, X, C, V, B, K, M, COMM, DOT, SLSH, FN6, + FN4, LGUI, FN7, FN2, FN1, SPC, FN5, RALT, FN3, FN0), + [1] = LAYOUT( + TRNS, FN10, FN11, FN12, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, DEL, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGUP, LEFT, RGHT, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, END, PGDN, DOWN, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), + [2] = LAYOUT( + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, 7, 8, 9, 0, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, 4, 5, 6, DOT, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC, 1, 2, 3, BSLS, TRNS, + TRNS, FN29, TRNS, TRNS, TRNS, PAUSE, EQL, MINS, TRNS, TRNS), + [3] = LAYOUT( + TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), + [4] = LAYOUT( + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, 7, 8, 9, 0, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, 4, 5, 6, DOT, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC, 1, 2, 3, BSLS, TRNS, + TRNS, FN29, TRNS, TRNS, TRNS, PAUSE, EQL, MINS, TRNS, TRNS), }; -enum macro_id { - PSWD1, - PSWD2, - PSWD3, +enum macro_id +{ + PSWD1, + PSWD2, + PSWD3, }; const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_MINS), - [1] = ACTION_LAYER_MOMENTARY(1), // FN1 - [2] = ACTION_LAYER_MOMENTARY(2), // FN2 - [3] = ACTION_LAYER_MOMENTARY(3), // FN3 + [1] = ACTION_LAYER_MOMENTARY(1), // FN1 + [2] = ACTION_LAYER_MOMENTARY(2), // FN2 + [3] = ACTION_LAYER_MOMENTARY(3), // FN3 [4] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_GRV), [5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_RGUI), [6] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_CAPS), - [7] = ACTION_LAYER_MODS(4, MOD_LSFT), // FN4 + [7] = ACTION_LAYER_MODS(4, MOD_LSFT), // FN4 [8] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_TAB), [10] = ACTION_MACRO(PSWD1), [11] = ACTION_MACRO(PSWD2), [12] = ACTION_MACRO(PSWD3), - + [29] = ACTION_BACKLIGHT_TOGGLE(), [30] = ACTION_BACKLIGHT_INCREASE(), [31] = ACTION_BACKLIGHT_DECREASE() - + }; /* @@ -60,19 +61,14 @@ const uint16_t PROGMEM fn_actions[] = { */ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - switch (id) { - case PSWD1: - return (record->event.pressed ? - MACRO( I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END ) : - MACRO_NONE ); - case PSWD2: - return (record->event.pressed ? - MACRO( I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END ) : - MACRO_NONE ); - case PSWD3: - return (record->event.pressed ? - MACRO( I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END ) : - MACRO_NONE ); + switch (id) + { + case PSWD1: + return (record->event.pressed ? MACRO(I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END) : MACRO_NONE); + case PSWD2: + return (record->event.pressed ? MACRO(I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END) : MACRO_NONE); + case PSWD3: + return (record->event.pressed ? MACRO(I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END) : MACRO_NONE); //case VOLUP: // return (record->event.pressed ? // MACRO( D(VOLU), U(VOLU), END ) : diff --git a/keyboards/jd45/keymaps/mjt/keymap.c b/keyboards/jd45/keymaps/mjt/keymap.c index 610552ecfaad..a53b09642a79 100644 --- a/keyboards/jd45/keymaps/mjt/keymap.c +++ b/keyboards/jd45/keymaps/mjt/keymap.c @@ -1,33 +1,34 @@ -#include "jd45.h" +#include QMK_KEYBOARD_H /* Mike's Layout for JD45 with backlight LEDs acting as layer indicator */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( - TAB, Q, W, E, R, T, Y, U, I, O, P, MINS, BSLS, - FN1, A, S, D, F, G, H, J, K, L, QUOT, ENT, - FN0, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, - NO, LCTL, LALT, LGUI, SPC, BSPC, APP, FN2, ESC, NO ), -[1] = KEYMAP( -GRV, TRNS, UP, TRNS, 7, 8, 9, 0, MINS, EQL, PSCR, LBRC, RBRC, -TRNS, LEFT, DOWN, RGHT, 4, 5, 6, INS, HOME, PGUP, SCLN, TRNS, -TRNS, TRNS, TRNS, TRNS, 1, 2, 3, DEL, END, PGDN, TRNS, TRNS, -TRNS, TRNS, TRNS, SPC, TRNS, DEL, TRNS, FN3, TRNS, TRNS ), -[2] = KEYMAP( -TRNS, TRNS, VOLU, TRNS, F7, F8, F9, F10, F11, F12, PSCR, FN3, FN4, -TRNS, MPRV, VOLD, MNXT, F4, F5, F6, J, K, L, SCLN, TRNS, -TRNS, TRNS, TRNS, TRNS, F1, F2, F3, MUTE, MPRV, MNXT, MSTP, TRNS, -TRNS, TRNS, TRNS, LGUI, TRNS, TRNS, TRNS, TRNS, PAUS, TRNS ) -/* , -[3] = KEYMAP( + [0] = LAYOUT( + TAB, Q, W, E, R, T, Y, U, I, O, P, MINS, BSLS, + FN1, A, S, D, F, G, H, J, K, L, QUOT, ENT, + FN0, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, + NO, LCTL, LALT, LGUI, SPC, BSPC, APP, FN2, ESC, NO), + [1] = LAYOUT( + GRV, TRNS, UP, TRNS, 7, 8, 9, 0, MINS, EQL, PSCR, LBRC, RBRC, + TRNS, LEFT, DOWN, RGHT, 4, 5, 6, INS, HOME, PGUP, SCLN, TRNS, + TRNS, TRNS, TRNS, TRNS, 1, 2, 3, DEL, END, PGDN, TRNS, TRNS, + TRNS, TRNS, TRNS, SPC, TRNS, DEL, TRNS, FN3, TRNS, TRNS), + [2] = LAYOUT( + TRNS, TRNS, VOLU, TRNS, F7, F8, F9, F10, F11, F12, PSCR, FN3, FN4, + TRNS, MPRV, VOLD, MNXT, F4, F5, F6, J, K, L, SCLN, TRNS, + TRNS, TRNS, TRNS, TRNS, F1, F2, F3, MUTE, MPRV, MNXT, MSTP, TRNS, + TRNS, TRNS, TRNS, LGUI, TRNS, TRNS, TRNS, TRNS, PAUS, TRNS) + /* , +[3] = LAYOUT( TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, BTLD, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS )*/ }; -enum macro_id { +enum macro_id +{ M_LAYER1, M_LAYER2 }; @@ -38,43 +39,43 @@ const uint16_t PROGMEM fn_actions[] = { [1] = ACTION_MACRO(M_LAYER1), [2] = ACTION_LAYER_TAP_TOGGLE(2), [3] = ACTION_BACKLIGHT_STEP(), - [4] = ACTION_BACKLIGHT_TOGGLE() -}; + [4] = ACTION_BACKLIGHT_TOGGLE()}; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function - switch(id) { - case M_LAYER1: - // need to add a timer for doubletap: https://github.com/jackhumbert/qmk_firmware/wiki#timer-functionality - // action_function_tap may also handle this... - if (record->event.pressed) - { - breathing_period_set(3); - breathing_enable(); - layer_on(1); - } - else - { - breathing_period_set(1); - breathing_self_disable(); - layer_off(1); - } + // MACRODOWN only works in this function + switch (id) + { + case M_LAYER1: + // need to add a timer for doubletap: https://github.com/jackhumbert/qmk_firmware/wiki#timer-functionality + // action_function_tap may also handle this... + if (record->event.pressed) + { + breathing_period_set(3); + breathing_enable(); + layer_on(1); + } + else + { + breathing_period_set(1); + breathing_self_disable(); + layer_off(1); + } break; - case M_LAYER2: - if (record->event.pressed) - { - breathing_period_set(2); - breathing_pulse(); - layer_on(2); - } - else - { - breathing_period_set(1); - breathing_self_disable(); - layer_off(2); - } + case M_LAYER2: + if (record->event.pressed) + { + breathing_period_set(2); + breathing_pulse(); + layer_on(2); + } + else + { + breathing_period_set(1); + breathing_self_disable(); + layer_off(2); + } break; - } + } return MACRO_NONE; }; diff --git a/keyboards/jd45/keymaps/mjt6u/keymap.c b/keyboards/jd45/keymaps/mjt6u/keymap.c index 44f0c31db3bd..c17a07fd04ee 100644 --- a/keyboards/jd45/keymaps/mjt6u/keymap.c +++ b/keyboards/jd45/keymaps/mjt6u/keymap.c @@ -1,23 +1,23 @@ -#include "jd45.h" +#include QMK_KEYBOARD_H enum jd45_layers { - _QWERTY, - _QWERTYNUMMODS, - _NUMSYM, - _FUNCTION, - _NUMPAD, - _FKEYNUMPAD, - _ADJUST + _QWERTY, + _QWERTYNUMMODS, + _NUMSYM, + _FUNCTION, + _NUMPAD, + _FKEYNUMPAD, + _ADJUST }; enum jd45_keycodes { - NUMSYM = SAFE_RANGE, - MACSLEEP, - USEFNMODS, - USENUMMODS, - DYNAMIC_MACRO_RANGE, + NUMSYM = SAFE_RANGE, + MACSLEEP, + USEFNMODS, + USENUMMODS, + DYNAMIC_MACRO_RANGE, }; #include "dynamic_macro.h" @@ -33,117 +33,91 @@ enum jd45_keycodes #define F_FNTAB F(2) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = { - {F_FNTAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, KC_BSPC}, - {CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(_ADJUST, KC_QUOT)}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT)}, - { XXXXXXX, KC_LALT, KC_LGUI, XXXXXXX, XXXXXXX, XXXXXXX, F_FNSPC, XXXXXXX, XXXXXXX, MO(_FUNCTION), MO(_ADJUST) } -}, -[_QWERTYNUMMODS] = { - {F_FNTAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, KC_BSPC}, - {CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(_ADJUST, KC_QUOT)}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT)}, - {XXXXXXX, KC_LALT, KC_LGUI, XXXXXXX, XXXXXXX, XXXXXXX, F_NUMSPC, XXXXXXX, XXXXXXX, MO(_FKEYNUMPAD), MO(_ADJUST) } -}, -[_NUMSYM] = { -{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, KC_DEL}, - {__MOD__, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______}, - {_______, _______, _______, _______, _______, KC_SPC, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______}, -{XXXXXXX, __MOD__, __MOD__, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, __MOD__, __MOD__} -}, -[_FUNCTION] = { -{__MOD__, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, -{__MOD__, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, _______, _______}, -{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, -{XXXXXXX, __MOD__, __MOD__, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, __MOD__ , __MOD__} -}, -[_NUMPAD] = { -{KC_GRV, _______, KC_UP, _______, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_PSCR, KC_LBRC, KC_RBRC}, -{_______, KC_LEFT, KC_DOWN, KC_RGHT, KC_4, KC_5, KC_6, KC_INS, KC_HOME, KC_PGUP, _______, _______}, -{_______, _______, _______, _______, KC_1, KC_2, KC_3, KC_DEL, KC_END, KC_PGDN, _______, _______}, -{XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, __MOD__, __MOD__} -}, -[_FKEYNUMPAD] = { -{_______, _______, KC_VOLU, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, _______, _______}, -{_______, KC_MPRV, KC_VOLD, KC_MNXT, KC_F4, KC_F5, KC_F6, KC_J, KC_K, KC_L, KC_SCLN, _______}, -{_______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_MUTE, KC_MPRV, KC_MNXT, KC_MSTP, _______}, -{XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, __MOD__, __MOD__ } -}, -[_ADJUST] = { - {_______, RESET, _______, _______, _______, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, KC_PSCR, _______, _______}, - { _______, _______, _______, _______, USEFNMODS, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, MACSLEEP, _______, _______}, - { _______, _______, _______, _______, _______, _______, USENUMMODS, _______, _______, _______, _______, _______}, - {XXXXXXX, _______, _______,XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, __MOD__, __MOD__} - } -}; - + [_QWERTY] = { + {F_FNTAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, KC_BSPC}, + {CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(_ADJUST, KC_QUOT)}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT)}, + {XXXXXXX, KC_LALT, KC_LGUI, XXXXXXX, XXXXXXX, XXXXXXX, F_FNSPC, XXXXXXX, XXXXXXX, MO(_FUNCTION), MO(_ADJUST)}}, + [_QWERTYNUMMODS] = {{F_FNTAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, KC_BSPC}, {CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(_ADJUST, KC_QUOT)}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT)}, {XXXXXXX, KC_LALT, KC_LGUI, XXXXXXX, XXXXXXX, XXXXXXX, F_NUMSPC, XXXXXXX, XXXXXXX, MO(_FKEYNUMPAD), MO(_ADJUST)}}, + [_NUMSYM] = {{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, KC_DEL}, {__MOD__, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______}, {_______, _______, _______, _______, _______, KC_SPC, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______}, {XXXXXXX, __MOD__, __MOD__, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, __MOD__, __MOD__}}, + [_FUNCTION] = {{__MOD__, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, {__MOD__, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, {XXXXXXX, __MOD__, __MOD__, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, __MOD__, __MOD__}}, + [_NUMPAD] = {{KC_GRV, _______, KC_UP, _______, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_PSCR, KC_LBRC, KC_RBRC}, {_______, KC_LEFT, KC_DOWN, KC_RGHT, KC_4, KC_5, KC_6, KC_INS, KC_HOME, KC_PGUP, _______, _______}, {_______, _______, _______, _______, KC_1, KC_2, KC_3, KC_DEL, KC_END, KC_PGDN, _______, _______}, {XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, __MOD__, __MOD__}}, + [_FKEYNUMPAD] = {{_______, _______, KC_VOLU, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, _______, _______}, {_______, KC_MPRV, KC_VOLD, KC_MNXT, KC_F4, KC_F5, KC_F6, KC_J, KC_K, KC_L, KC_SCLN, _______}, {_______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_MUTE, KC_MPRV, KC_MNXT, KC_MSTP, _______}, {XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, __MOD__, __MOD__}}, + [_ADJUST] = {{_______, RESET, _______, _______, _______, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, KC_PSCR, _______, _______}, {_______, _______, _______, _______, USEFNMODS, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, MACSLEEP, _______, _______}, {_______, _______, _______, _______, _______, _______, USENUMMODS, _______, _______, _______, _______, _______}, {XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, __MOD__, __MOD__}}}; const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_TAP_KEY(_NUMSYM, KC_SPC), - [1] = ACTION_LAYER_TAP_KEY(_NUMPAD, KC_SPC), - [2] = ACTION_LAYER_TAP_KEY(_FUNCTION, KC_TAB), + [0] = ACTION_LAYER_TAP_KEY(_NUMSYM, KC_SPC), + [1] = ACTION_LAYER_TAP_KEY(_NUMPAD, KC_SPC), + [2] = ACTION_LAYER_TAP_KEY(_FUNCTION, KC_TAB), }; -void persistent_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); +void persistent_default_layer_set(uint16_t default_layer) +{ + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); } static bool singular_key = false; -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - uint16_t macro_kc = (keycode == MO(_ADJUST) ? DYN_REC_STOP : keycode); - if (!process_record_dynamic_macro(macro_kc, record)) { - return false; - } - println(" "); - print("process record"); - - switch (keycode) { - case MACSLEEP: - if (record->event.pressed) { - // ACTION_MODS_KEY(MOD_LCTL | MOD_LSFT, KC_POWER); - register_code(KC_RSFT); - register_code(KC_RCTL); - register_code(KC_POWER); - unregister_code(KC_POWER); - unregister_code(KC_RCTL); - unregister_code(KC_RSFT); - } - return false; - break; - case USEFNMODS: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_QWERTY); - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_fnpc, false, 0); - #endif - print("Space-FN"); +bool process_record_user(uint16_t keycode, keyrecord_t *record) +{ + uint16_t macro_kc = (keycode == MO(_ADJUST) ? DYN_REC_STOP : keycode); + if (!process_record_dynamic_macro(macro_kc, record)) + { + return false; } - return false; - break; - case USENUMMODS: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_QWERTYNUMMODS); - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_fnmac, false, 0); - #endif - print("Space-Numpad"); + println(" "); + print("process record"); + + switch (keycode) + { + case MACSLEEP: + if (record->event.pressed) + { + // ACTION_MODS_KEY(MOD_LCTL | MOD_LSFT, KC_POWER); + register_code(KC_RSFT); + register_code(KC_RCTL); + register_code(KC_POWER); + unregister_code(KC_POWER); + unregister_code(KC_RCTL); + unregister_code(KC_RSFT); + } + return false; + break; + case USEFNMODS: + if (record->event.pressed) + { + persistent_default_layer_set(1UL << _QWERTY); +#ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_fnpc, false, 0); +#endif + print("Space-FN"); + } + return false; + break; + case USENUMMODS: + if (record->event.pressed) + { + persistent_default_layer_set(1UL << _QWERTYNUMMODS); +#ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_fnmac, false, 0); +#endif + print("Space-Numpad"); + } + return false; + break; + default: + singular_key = false; + break; } - return false; - break; - default: - singular_key = false; - break; - } - return true; + return true; }; - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif +void matrix_init_user(void) +{ +#ifdef AUDIO_ENABLE + startup_user(); +#endif // debug_enable = true; } From aade625054643a8b76d58b980fe09087db0fcebd Mon Sep 17 00:00:00 2001 From: Eric <22215921+ericywl@users.noreply.github.com> Date: Mon, 30 Apr 2018 23:22:35 +0800 Subject: [PATCH 314/578] QMK Configurator Support for KMAC (#2852) * Added KMAC Config * Removed .vscode --- keyboards/kmac/info.json | 192 +++++++++++++++++++++ keyboards/kmac/keymaps/default/keymap.c | 101 +++++------ keyboards/kmac/keymaps/winkeyless/keymap.c | 101 +++++------ keyboards/kmac/kmac.h | 59 +++---- keyboards/kmac/readme.md | 11 +- 5 files changed, 329 insertions(+), 135 deletions(-) create mode 100644 keyboards/kmac/info.json diff --git a/keyboards/kmac/info.json b/keyboards/kmac/info.json new file mode 100644 index 000000000000..f86cfdde59de --- /dev/null +++ b/keyboards/kmac/info.json @@ -0,0 +1,192 @@ +{ + "keyboard_name": "kmac", + "url": "", + "maintainer": "qmk", + "bootloader": "", + "width": 18.25, + "height": 6.5, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 2, "y": 0 }, + { "label": "F2", "x": 3, "y": 0 }, + { "label": "F3", "x": 4, "y": 0 }, + { "label": "F4", "x": 5, "y": 0 }, + { "label": "F5", "x": 6.5, "y": 0 }, + { "label": "F6", "x": 7.5, "y": 0 }, + { "label": "F7", "x": 8.5, "y": 0 }, + { "label": "F8", "x": 9.5, "y": 0 }, + { "label": "F9", "x": 11, "y": 0 }, + { "label": "F10", "x": 12, "y": 0 }, + { "label": "F11", "x": 13, "y": 0 }, + { "label": "F12", "x": 14, "y": 0 }, + { "label": "PrtSc", "x": 15.25, "y": 0 }, + { "label": "Scroll Lock", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + { "label": "~", "x": 0, "y": 1.5 }, + { "label": "!", "x": 1, "y": 1.5 }, + { "label": "@", "x": 2, "y": 1.5 }, + { "label": "#", "x": 3, "y": 1.5 }, + { "label": "$", "x": 4, "y": 1.5 }, + { "label": "%", "x": 5, "y": 1.5 }, + { "label": "^", "x": 6, "y": 1.5 }, + { "label": "&", "x": 7, "y": 1.5 }, + { "label": "*", "x": 8, "y": 1.5 }, + { "label": "(", "x": 9, "y": 1.5 }, + { "label": ")", "x": 10, "y": 1.5 }, + { "label": "_", "x": 11, "y": 1.5 }, + { "label": "+", "x": 12, "y": 1.5 }, + { "label": "Backspace", "x": 13, "y": 1.5, "w": 2 }, + { "label": "Insert", "x": 15.25, "y": 1.5 }, + { "label": "Home", "x": 16.25, "y": 1.5 }, + { "label": "PgUp", "x": 17.25, "y": 1.5 }, + { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.5 }, + { "label": "W", "x": 2.5, "y": 2.5 }, + { "label": "E", "x": 3.5, "y": 2.5 }, + { "label": "R", "x": 4.5, "y": 2.5 }, + { "label": "T", "x": 5.5, "y": 2.5 }, + { "label": "Y", "x": 6.5, "y": 2.5 }, + { "label": "U", "x": 7.5, "y": 2.5 }, + { "label": "I", "x": 8.5, "y": 2.5 }, + { "label": "O", "x": 9.5, "y": 2.5 }, + { "label": "P", "x": 10.5, "y": 2.5 }, + { "label": "{", "x": 11.5, "y": 2.5 }, + { "label": "}", "x": 12.5, "y": 2.5 }, + { "label": "|", "x": 13.5, "y": 2.5, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.5 }, + { "label": "End", "x": 16.25, "y": 2.5 }, + { "label": "PgDn", "x": 17.25, "y": 2.5 }, + { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.5 }, + { "label": "S", "x": 2.75, "y": 3.5 }, + { "label": "D", "x": 3.75, "y": 3.5 }, + { "label": "F", "x": 4.75, "y": 3.5 }, + { "label": "G", "x": 5.75, "y": 3.5 }, + { "label": "H", "x": 6.75, "y": 3.5 }, + { "label": "J", "x": 7.75, "y": 3.5 }, + { "label": "K", "x": 8.75, "y": 3.5 }, + { "label": "L", "x": 9.75, "y": 3.5 }, + { "label": ":", "x": 10.75, "y": 3.5 }, + { "label": "\"", "x": 11.75, "y": 3.5 }, + { "label": "Enter", "x": 12.75, "y": 3.5, "w": 2.25 }, + { "label": "Shift", "x": 0, "y": 4.5, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.5 }, + { "label": "X", "x": 3.25, "y": 4.5 }, + { "label": "C", "x": 4.25, "y": 4.5 }, + { "label": "V", "x": 5.25, "y": 4.5 }, + { "label": "B", "x": 6.25, "y": 4.5 }, + { "label": "N", "x": 7.25, "y": 4.5 }, + { "label": "M", "x": 8.25, "y": 4.5 }, + { "label": "<", "x": 9.25, "y": 4.5 }, + { "label": ">", "x": 10.25, "y": 4.5 }, + { "label": "?", "x": 11.25, "y": 4.5 }, + { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.5 }, + { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.5, "w": 1.25 }, + { "x": 3.75, "y": 5.5, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.5, "w": 1.25 }, + { "label": "Win", "x": 11.25, "y": 5.5, "w": 1.25 }, + { "label": "Menu", "x": 12.5, "y": 5.5, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.5 }, + { "label": "\u2193", "x": 16.25, "y": 5.5 }, + { "label": "\u2192", "x": 17.25, "y": 5.5 } + ] + }, + + "LAYOUT_WKL": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 2, "y": 0 }, + { "label": "F2", "x": 3, "y": 0 }, + { "label": "F3", "x": 4, "y": 0 }, + { "label": "F4", "x": 5, "y": 0 }, + { "label": "F5", "x": 6.5, "y": 0 }, + { "label": "F6", "x": 7.5, "y": 0 }, + { "label": "F7", "x": 8.5, "y": 0 }, + { "label": "F8", "x": 9.5, "y": 0 }, + { "label": "F9", "x": 11, "y": 0 }, + { "label": "F10", "x": 12, "y": 0 }, + { "label": "F11", "x": 13, "y": 0 }, + { "label": "F12", "x": 14, "y": 0 }, + { "label": "PrtSc", "x": 15.25, "y": 0 }, + { "label": "Scroll Lock", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + { "label": "~", "x": 0, "y": 1.5 }, + { "label": "!", "x": 1, "y": 1.5 }, + { "label": "@", "x": 2, "y": 1.5 }, + { "label": "#", "x": 3, "y": 1.5 }, + { "label": "$", "x": 4, "y": 1.5 }, + { "label": "%", "x": 5, "y": 1.5 }, + { "label": "^", "x": 6, "y": 1.5 }, + { "label": "&", "x": 7, "y": 1.5 }, + { "label": "*", "x": 8, "y": 1.5 }, + { "label": "(", "x": 9, "y": 1.5 }, + { "label": ")", "x": 10, "y": 1.5 }, + { "label": "_", "x": 11, "y": 1.5 }, + { "label": "+", "x": 12, "y": 1.5 }, + { "label": "Backspace", "x": 13, "y": 1.5, "w": 2 }, + { "label": "Insert", "x": 15.25, "y": 1.5 }, + { "label": "Home", "x": 16.25, "y": 1.5 }, + { "label": "PgUp", "x": 17.25, "y": 1.5 }, + { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.5 }, + { "label": "W", "x": 2.5, "y": 2.5 }, + { "label": "E", "x": 3.5, "y": 2.5 }, + { "label": "R", "x": 4.5, "y": 2.5 }, + { "label": "T", "x": 5.5, "y": 2.5 }, + { "label": "Y", "x": 6.5, "y": 2.5 }, + { "label": "U", "x": 7.5, "y": 2.5 }, + { "label": "I", "x": 8.5, "y": 2.5 }, + { "label": "O", "x": 9.5, "y": 2.5 }, + { "label": "P", "x": 10.5, "y": 2.5 }, + { "label": "{", "x": 11.5, "y": 2.5 }, + { "label": "}", "x": 12.5, "y": 2.5 }, + { "label": "|", "x": 13.5, "y": 2.5, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.5 }, + { "label": "End", "x": 16.25, "y": 2.5 }, + { "label": "PgDn", "x": 17.25, "y": 2.5 }, + { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.5 }, + { "label": "S", "x": 2.75, "y": 3.5 }, + { "label": "D", "x": 3.75, "y": 3.5 }, + { "label": "F", "x": 4.75, "y": 3.5 }, + { "label": "G", "x": 5.75, "y": 3.5 }, + { "label": "H", "x": 6.75, "y": 3.5 }, + { "label": "J", "x": 7.75, "y": 3.5 }, + { "label": "K", "x": 8.75, "y": 3.5 }, + { "label": "L", "x": 9.75, "y": 3.5 }, + { "label": ":", "x": 10.75, "y": 3.5 }, + { "label": "\"", "x": 11.75, "y": 3.5 }, + { "label": "Enter", "x": 12.75, "y": 3.5, "w": 2.25 }, + { "label": "Shift", "x": 0, "y": 4.5, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.5 }, + { "label": "X", "x": 3.25, "y": 4.5 }, + { "label": "C", "x": 4.25, "y": 4.5 }, + { "label": "V", "x": 5.25, "y": 4.5 }, + { "label": "B", "x": 6.25, "y": 4.5 }, + { "label": "N", "x": 7.25, "y": 4.5 }, + { "label": "M", "x": 8.25, "y": 4.5 }, + { "label": "<", "x": 9.25, "y": 4.5 }, + { "label": ">", "x": 10.25, "y": 4.5 }, + { "label": "?", "x": 11.25, "y": 4.5 }, + { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.5 }, + { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.5 }, + { "label": "Win", "x": 1.5, "y": 5.5 }, + { "label": "Alt", "x": 2.5, "y": 5.5, "w": 1.5 }, + { "x": 4, "y": 5.5, "w": 7 }, + { "label": "Alt", "x": 11, "y": 5.5, "w": 1.5 }, + { "label": "Win", "x": 12.5, "y": 5.5 }, + { "label": "Ctrl", "x": 13.5, "y": 5.5, "w": 1.5 }, + { "label": "\u2190", "x": 15.25, "y": 5.5 }, + { "label": "\u2193", "x": 16.25, "y": 5.5 }, + { "label": "\u2192", "x": 17.25, "y": 5.5 } + ] + } + } +} diff --git a/keyboards/kmac/keymaps/default/keymap.c b/keyboards/kmac/keymaps/default/keymap.c index f3ac93abf740..8ae8627a06ff 100644 --- a/keyboards/kmac/keymaps/default/keymap.c +++ b/keyboards/kmac/keymaps/default/keymap.c @@ -13,7 +13,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "kmac.h" +#include QMK_KEYBOARD_H // Helpful defines #define _______ KC_TRNS @@ -26,22 +26,20 @@ #define _FL 1 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BL] = KEYMAP( - KC_ESC, 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_PSCR, KC_SLCK, KC_BRK, \ - KC_GRV, 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_BSPC, KC_INS, KC_HOME, KC_PGUP, \ - 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_BSLS, KC_DEL, KC_END, KC_PGDN, \ - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ - ), - [_FL] = KEYMAP( - BL_STEP, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ - ), + [_BL] = LAYOUT( + KC_ESC, 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_PSCR, KC_SLCK, KC_BRK, + KC_GRV, 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_BSPC, KC_INS, KC_HOME, KC_PGUP, + 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_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + [_FL] = LAYOUT( + BL_STEP, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; const uint16_t PROGMEM fn_actions[] = { @@ -51,47 +49,52 @@ const uint16_t PROGMEM fn_actions[] = { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - SEND_STRING("The"); - return false; - } - break; - case 1: - if (record->event.pressed) { - SEND_STRING("Custom"); - return false; - } - break; - case 2: - if (record->event.pressed) { - SEND_STRING("Keyboard"); - return false; - } - break; - case 3: - if (record->event.pressed) { - return MACRO( D(LCTL), T(C), U(LCTL), T(RGHT), D(LCTL), T(V), U(LCTL), END ); - } - break; + switch (id) + { + case 0: + if (record->event.pressed) + { + SEND_STRING("The"); + return false; + } + break; + case 1: + if (record->event.pressed) + { + SEND_STRING("Custom"); + return false; + } + break; + case 2: + if (record->event.pressed) + { + SEND_STRING("Keyboard"); + return false; + } + break; + case 3: + if (record->event.pressed) + { + return MACRO(D(LCTL), T(C), U(LCTL), T(RGHT), D(LCTL), T(V), U(LCTL), END); + } + break; } return MACRO_NONE; }; - -void matrix_init_user(void) { - +void matrix_init_user(void) +{ } -void matrix_scan_user(void) { - +void matrix_scan_user(void) +{ } -bool process_record_user(uint16_t keycode, keyrecord_t *record) { +bool process_record_user(uint16_t keycode, keyrecord_t *record) +{ return true; } -void led_set_user(uint8_t usb_led) { - +void led_set_user(uint8_t usb_led) +{ } diff --git a/keyboards/kmac/keymaps/winkeyless/keymap.c b/keyboards/kmac/keymaps/winkeyless/keymap.c index e3d66ea0838c..985d5a89fb2e 100644 --- a/keyboards/kmac/keymaps/winkeyless/keymap.c +++ b/keyboards/kmac/keymaps/winkeyless/keymap.c @@ -13,7 +13,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "kmac.h" +#include QMK_KEYBOARD_H // Helpful defines #define _______ KC_TRNS @@ -26,22 +26,20 @@ #define _FL 1 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BL] = KEYMAP_WINKEYLESS( - KC_ESC, 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_PSCR, KC_SLCK, KC_BRK, \ - KC_GRV, 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_BSPC, KC_INS, KC_HOME, KC_PGUP, \ - 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_BSLS, KC_DEL, KC_END, KC_PGDN, \ - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ - ), - [_FL] = KEYMAP_WINKEYLESS( - BL_STEP, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ - ), + [_BL] = LAYOUT_WKL( + KC_ESC, 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_PSCR, KC_SLCK, KC_BRK, + KC_GRV, 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_BSPC, KC_INS, KC_HOME, KC_PGUP, + 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_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + [_FL] = LAYOUT_WKL( + BL_STEP, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; const uint16_t PROGMEM fn_actions[] = { @@ -51,47 +49,52 @@ const uint16_t PROGMEM fn_actions[] = { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - SEND_STRING("The"); - return false; - } - break; - case 1: - if (record->event.pressed) { - SEND_STRING("Custom"); - return false; - } - break; - case 2: - if (record->event.pressed) { - SEND_STRING("Keyboard"); - return false; - } - break; - case 3: - if (record->event.pressed) { - return MACRO( D(LCTL), T(C), U(LCTL), T(RGHT), D(LCTL), T(V), U(LCTL), END ); - } - break; + switch (id) + { + case 0: + if (record->event.pressed) + { + SEND_STRING("The"); + return false; + } + break; + case 1: + if (record->event.pressed) + { + SEND_STRING("Custom"); + return false; + } + break; + case 2: + if (record->event.pressed) + { + SEND_STRING("Keyboard"); + return false; + } + break; + case 3: + if (record->event.pressed) + { + return MACRO(D(LCTL), T(C), U(LCTL), T(RGHT), D(LCTL), T(V), U(LCTL), END); + } + break; } return MACRO_NONE; }; - -void matrix_init_user(void) { - +void matrix_init_user(void) +{ } -void matrix_scan_user(void) { - +void matrix_scan_user(void) +{ } -bool process_record_user(uint16_t keycode, keyrecord_t *record) { +bool process_record_user(uint16_t keycode, keyrecord_t *record) +{ return true; } -void led_set_user(uint8_t usb_led) { - +void led_set_user(uint8_t usb_led) +{ } diff --git a/keyboards/kmac/kmac.h b/keyboards/kmac/kmac.h index 1d9d8e36be69..44de8914af5f 100644 --- a/keyboards/kmac/kmac.h +++ b/keyboards/kmac/kmac.h @@ -19,38 +19,35 @@ #include "quantum.h" // Keymap for the winkey version of the PCB. -#define KEYMAP( \ - K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4D, K4F, \ - K50, K51, K52, K55, K58, K5A, K5C, K5D, K5E, K5F, K5G \ -) { \ -/* 0 1 2 3 4 5 6 7 8 9 A B C D E F G */ \ -/* 0 */ { K00, KC_NO, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ -/* 1 */ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ -/* 2 */ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ -/* 3 */ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, KC_NO, KC_NO, KC_NO }, \ -/* 4 */ { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, KC_NO, KC_NO, K4D, KC_NO, K4F, KC_NO }, \ -/* 5 */ { K50, K51, K52, KC_NO, KC_NO, K55, KC_NO, KC_NO, K58, KC_NO, K5A, KC_NO, K5C, K5D, K5E, K5F, K5G } \ -} +#define LAYOUT( \ + K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4D, K4F, \ + K50, K51, K52, K55, K58, K5A, K5C, K5D, K5E, K5F, K5G) \ + { \ + /* 0 1 2 3 4 5 6 7 8 9 A B C D E F G */ \ + /* 0 */ {K00, KC_NO, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G}, \ + /* 1 */ {K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G}, \ + /* 2 */ {K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G}, \ + /* 3 */ {K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, KC_NO, KC_NO, KC_NO}, \ + /* 4 */ {K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, KC_NO, KC_NO, K4D, KC_NO, K4F, KC_NO}, \ + /* 5 */ { K50, K51, K52, KC_NO, KC_NO, K55, KC_NO, KC_NO, K58, KC_NO, K5A, KC_NO, K5C, K5D, K5E, K5F, K5G } \ + } // Keymap for the winkeyless version of the PCB. -#define KEYMAP_WINKEYLESS( \ - K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4D, K4F, \ - K50, K51, K52, K55, K58, K5A, K5D, K5E, K5F, K5G \ -) KEYMAP( \ - K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4D, K4F, \ - K50, K51, K52, K55, K58, K5A, KC_NO, K5D, K5E, K5F, K5G \ -) +#define LAYOUT_WKL( \ + K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4D, K4F, \ + K50, K51, K52, K55, K58, K5A, K5D, K5E, K5F, K5G) LAYOUT(K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4D, K4F, \ + K50, K51, K52, K55, K58, K5A, KC_NO, K5D, K5E, K5F, K5G) #endif diff --git a/keyboards/kmac/readme.md b/keyboards/kmac/readme.md index fccf902cab0e..ec36c0a5c9bf 100644 --- a/keyboards/kmac/readme.md +++ b/keyboards/kmac/readme.md @@ -1,5 +1,4 @@ -KMAC keyboard firmware -====================== +# KMAC keyboard firmware A Korean custom keyboard designed by Byungho Kim and the KBDMania community. @@ -37,9 +36,9 @@ To define your own keymap, copy one of the [existing keymap](keymaps) folders an To make it easy to define keymaps for the different versions of the PCB two macros are provided. -| PCB | Macro | -| -------------- | --------------------- | -| Winkey PCB | `KEYMAP()` | -| Winkeyless PCB | `KEYMAP_WINKEYLESS()` | +| PCB | Macro | +| -------------- | -------------- | +| Winkey PCB | `LAYOUT()` | +| Winkeyless PCB | `LAYOUT_WKL()` | To build the firmware with a custom keymap, run `make ` From 9689944c16a5cda459801c9d77a34dc8a6be01b3 Mon Sep 17 00:00:00 2001 From: WillyPillow Date: Mon, 30 Apr 2018 23:40:34 +0800 Subject: [PATCH 315/578] Clean up v60_type_r keyboard (#2848) * Use *_kb instead of *_user in keyboard config * Place POLESTAR-only #includes in its #ifdef --- keyboards/v60_type_r/v60_type_r.c | 55 +++++-------------------------- keyboards/v60_type_r/v60_type_r.h | 4 +-- 2 files changed, 11 insertions(+), 48 deletions(-) diff --git a/keyboards/v60_type_r/v60_type_r.c b/keyboards/v60_type_r/v60_type_r.c index 016348db9f7f..86d87e12da2a 100644 --- a/keyboards/v60_type_r/v60_type_r.c +++ b/keyboards/v60_type_r/v60_type_r.c @@ -15,25 +15,28 @@ */ #include "v60_type_r.h" +#include "quantum.h" + +// if we've got an RGB underglow! +#ifdef V60_POLESTAR + #include "rgblight.h" #include #include "action_layer.h" -#include "quantum.h" -// if we've got an RGB underglow! -#ifdef V60_POLESTAR #define SOFTPWM_LED_TIMER_TOP F_CPU/(256*64) extern rgblight_config_t rgblight_config; static uint8_t softpwm_buff[3] = {0}; -void matrix_init_user(void) { +void matrix_init_kb(void) { rgb_init(); + matrix_init_user(); } -bool process_record_user(uint16_t keycode, keyrecord_t *record) { +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { uint8_t r = led[0].r, g = led[0].g, b = led[0].b; switch(keycode) { case RGB_RI: @@ -98,7 +101,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return false; } - return true; + return process_record_user(keycode, record); } @@ -188,44 +191,4 @@ ISR(TIMER1_COMPA_vect) softpwm_buff[2] = led[0].b; } } -#else - -void matrix_init_user(void) { -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - #endif // V60_POLESTAR - -// we need these functions for both versions -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - - led_set_user(usb_led); -} - -void matrix_scan_user(void) { -} - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - - matrix_init_user(); -} - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - matrix_scan_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - - return process_record_user(keycode, record); -} diff --git a/keyboards/v60_type_r/v60_type_r.h b/keyboards/v60_type_r/v60_type_r.h index d65df2b3fd14..3d7aef7eaf09 100644 --- a/keyboards/v60_type_r/v60_type_r.h +++ b/keyboards/v60_type_r/v60_type_r.h @@ -18,10 +18,10 @@ #include "quantum.h" -#include "rgblight.h" - #ifdef V60_POLESTAR +#include "rgblight.h" + void rgb_init(void); void set_rgb_color(uint8_t pin, uint8_t value, uint8_t timer_value); From f31a8f2738d45cc49ad7aba7b4255708a032882d Mon Sep 17 00:00:00 2001 From: Ben Date: Tue, 1 May 2018 17:29:43 +0200 Subject: [PATCH 316/578] Add DZ60 ANSI layout with arrows and F keys (#2839) * Add DZ60 ANSI layout with arrows and F keys I testet the keymap on my dz60 keyboard. * added new layout syntax and a readme * fix typo in readme --- .../keymaps/60_ansi_arrow_fkeys/README.md | 33 +++++++ .../dz60/keymaps/60_ansi_arrow_fkeys/keymap.c | 86 +++++++++++++++++++ 2 files changed, 119 insertions(+) create mode 100644 keyboards/dz60/keymaps/60_ansi_arrow_fkeys/README.md create mode 100644 keyboards/dz60/keymaps/60_ansi_arrow_fkeys/keymap.c diff --git a/keyboards/dz60/keymaps/60_ansi_arrow_fkeys/README.md b/keyboards/dz60/keymaps/60_ansi_arrow_fkeys/README.md new file mode 100644 index 000000000000..3a4218a7c211 --- /dev/null +++ b/keyboards/dz60/keymaps/60_ansi_arrow_fkeys/README.md @@ -0,0 +1,33 @@ +### 0 Qwerty +``` +,-----------------------------------------------------------------------------------------. +| ` ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc | +|-----------------------------------------------------------------------------------------+ +| Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | +|-----------------------------------------------------------------------------------------+ +| Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | +|-----------------------------------------------------------------------------------------+ +| Shift | Z | X | C | V | B | N | M | , | . | / | RSh | U | DEL | +|-----------------------------------------------------------------------------------------+ +| Ctrl | Cmd | Alt | Space | RAlt | FN | L | D | R | +`-----------------------------------------------------------------------------------------' +``` + +### 1 FN Layer +``` +FN Layer +,-----------------------------------------------------------------------------------------. +| Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | RESET | +|-----------------------------------------------------------------------------------------+ +| |RBB T|RGB M| Hue+| Hue-| Sat+| Sat-| Val+| Val-| | | | | | +|-----------------------------------------------------------------------------------------+ +| | BL T| BL M| BL+ | BL- | | | | | | | | | +|-----------------------------------------------------------------------------------------+ +| | | | | | | | | | | | | | | +|-----------------------------------------------------------------------------------------+ +| | | | | | | | | | +`-----------------------------------------------------------------------------------------' +``` + +`FN`+`ESC`=backtick +`Shift`+`ESC`=`˜` diff --git a/keyboards/dz60/keymaps/60_ansi_arrow_fkeys/keymap.c b/keyboards/dz60/keymaps/60_ansi_arrow_fkeys/keymap.c new file mode 100644 index 000000000000..76804670c879 --- /dev/null +++ b/keyboards/dz60/keymaps/60_ansi_arrow_fkeys/keymap.c @@ -0,0 +1,86 @@ +#include QMK_KEYBOARD_H + +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +#define ______ KC_TRNS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------------------------------------------------------. + * | ` ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc | + * |-----------------------------------------------------------------------------------------+ + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | + * |-----------------------------------------------------------------------------------------+ + * | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | + * |-----------------------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | RSh | U | DEL | + * |-----------------------------------------------------------------------------------------+ + * | Ctrl | Cmd | Alt | Space | RAlt | FN | L | D | R | + * `-----------------------------------------------------------------------------------------' + */ + + LAYOUT_2_shifts( + F(0), 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_BSPC, + 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_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, ______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + + /* FN Layer + * ,-----------------------------------------------------------------------------------------. + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | RESET | + * |-----------------------------------------------------------------------------------------+ + * | |RBB T|RGB M| Hue+| Hue-| Sat+| Sat-| Val+| Val-| | | | | | + * |-----------------------------------------------------------------------------------------+ + * | | BL T| BL M| BL+ | BL- | | | | | | | | | + * |-----------------------------------------------------------------------------------------+ + * | | | | | | | | | | | | | | | + * |-----------------------------------------------------------------------------------------+ + * | | | | | | | | | | + * `-----------------------------------------------------------------------------------------' + */ + + LAYOUT_directional( + KC_GRV, 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_TRNS, RESET, + ______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, ______, ______, ______, ______, ______, + ______, BL_TOGG, BL_STEP, BL_INC, BL_DEC, ______, ______, ______, ______, ______, ______, ______, + ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, + ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______ + ), +}; + +enum function_id { + SHIFT_ESC, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +} From 7a57446f5e0f6044b4e934138edf9fe19177d319 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Tue, 1 May 2018 08:31:41 -0700 Subject: [PATCH 317/578] new layout for iso and arrows (#2865) --- keyboards/dz60/dz60.h | 14 ++++++++++++++ keyboards/dz60/info.json | 4 ++++ 2 files changed, 18 insertions(+) diff --git a/keyboards/dz60/dz60.h b/keyboards/dz60/dz60.h index 0ebf8d212e42..b86e5fb8da16 100644 --- a/keyboards/dz60/dz60.h +++ b/keyboards/dz60/dz60.h @@ -77,5 +77,19 @@ { K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \ } +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \ +} + #endif diff --git a/keyboards/dz60/info.json b/keyboards/dz60/info.json index b39bdb000f1d..c5c6182bfc61 100644 --- a/keyboards/dz60/info.json +++ b/keyboards/dz60/info.json @@ -23,6 +23,10 @@ "LAYOUT_directional": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] + }, + + "LAYOUT_all": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] } } } From bde1c9d909ae7d226198c45bbf314569e82ca1ee Mon Sep 17 00:00:00 2001 From: Anthony Metcalf Date: Tue, 1 May 2018 16:34:06 +0100 Subject: [PATCH 318/578] Keymap file to match the TMK the board came flashed with (#2868) * Made the keymap file match the TMK the board UT47 was origonally flashed with using native QMK codes. * Add non-us layout --- keyboards/ut47/keymaps/default/keymap.c | 8 +- keyboards/ut47/keymaps/non-us/config.h | 24 +++++ keyboards/ut47/keymaps/non-us/keymap.c | 136 ++++++++++++++++++++++++ keyboards/ut47/keymaps/non-us/readme.md | 19 ++++ 4 files changed, 183 insertions(+), 4 deletions(-) create mode 100644 keyboards/ut47/keymaps/non-us/config.h create mode 100644 keyboards/ut47/keymaps/non-us/keymap.c create mode 100644 keyboards/ut47/keymaps/non-us/readme.md diff --git a/keyboards/ut47/keymaps/default/keymap.c b/keyboards/ut47/keymaps/default/keymap.c index 3f065b615f7c..6b6bb025b19f 100644 --- a/keyboards/ut47/keymaps/default/keymap.c +++ b/keyboards/ut47/keymaps/default/keymap.c @@ -69,9 +69,9 @@ LAYOUT( /* Right */ /* FN Layer 2 * ,-------------------------------------------------------------------------. - * | FN6 | FN7 | FN8 | FN9 | FN9 | FN10| FN11| FN12| FN13| FN14| FN15| Delete| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) |Delete| * |-------------------------------------------------------------------------+ - * | | | | | | | | FN17| FN18| FN19| FN20| FN21| + * | | | | | | | | _ | + | { | } | | | * |-------------------------------------------------------------------------+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | | * |-------------------------------------------------------------------------+ @@ -80,8 +80,8 @@ LAYOUT( /* Right */ */ LAYOUT( /* Left */ - KC_FN6, KC_FN7, KC_FN8, KC_FN9, KC_FN10, KC_FN11, KC_FN12, KC_FN13, KC_FN14, KC_FN15, KC_FN16, KC_DELETE, - _______, _______, _______, _______, _______, _______, _______, KC_FN17, KC_FN18, KC_FN19, KC_FN20, KC_FN21, + KC_TILDE, KC_EXCLAIM, KC_AT, KC_HASH, KC_DOLLAR, KC_PERCENT, KC_CIRCUMFLEX, KC_AMPERSAND, KC_ASTERISK, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_DELETE, + _______, _______, _______, _______, _______, _______, _______, KC_UNDERSCORE, KC_PLUS, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_PIPE, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, KC_CAPS, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END ), diff --git a/keyboards/ut47/keymaps/non-us/config.h b/keyboards/ut47/keymaps/non-us/config.h new file mode 100644 index 000000000000..46098a22fb2b --- /dev/null +++ b/keyboards/ut47/keymaps/non-us/config.h @@ -0,0 +1,24 @@ +/* Copyright 2018 Carlos Filoteo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +// place overrides here + +#endif diff --git a/keyboards/ut47/keymaps/non-us/keymap.c b/keyboards/ut47/keymaps/non-us/keymap.c new file mode 100644 index 000000000000..1cb537b7d00a --- /dev/null +++ b/keyboards/ut47/keymaps/non-us/keymap.c @@ -0,0 +1,136 @@ +/* Copyright 2018 Carlos Filoteo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H +#ifdef LED_ENABLE + #include "protocol/serial.h" +#endif + +#define _______ KC_TRNS +#define LT3_TAB LT(3, KC_TAB) +#define MT_RSFT_ENT MT(MOD_RSFT, KC_ENT) + +enum custom_keycodes { + LED_TOG = SAFE_RANGE, + LED_CHG +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Base Layer + * ,-------------------------------------------------------------------------. + * | Esc | Q | W | E | R | T | Y | U | I | O | P |Bspace | + * |-------------------------------------------------------------------------+ + * |Tab/L3| A | S | D | F | G | H | J | K | L | ; | ' | + * |-------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / |Sh/En| + * |-------------------------------------------------------------------------+ + * | Ctrl| Alt | Gui | App | L2 | Space | L1 | Left| Down| Up |Right| + * `-------------------------------------------------------------------------' + */ + +LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + LT3_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT_RSFT_ENT, + KC_LCTL, KC_LALT, KC_LGUI, KC_APP, MO(2), KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + + /* FN Layer 1 + * ,-------------------------------------------------------------------------. + * | ` ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Delete| + * |-------------------------------------------------------------------------+ + * | | | | | | | # | - | = | [ | ] | \ | + * |-------------------------------------------------------------------------+ + * | | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | | + * |-------------------------------------------------------------------------+ + * | | | |Capsl| | | | Home| PgDn| PgUp| End | + * `-------------------------------------------------------------------------' + */ + +LAYOUT( /* Right */ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELETE, + _______, _______, _______, _______, _______, _______, KC_NUHS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_NUBS, + _______, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, _______, + _______, _______, _______, KC_CAPS, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END +), + + /* FN Layer 2 + * ,-------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) |Delete| + * |-------------------------------------------------------------------------+ + * | | | | | | | | _ | + | { | } | | | + * |-------------------------------------------------------------------------+ + * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | | + * |-------------------------------------------------------------------------+ + * | | | |Capsl| | | | Home| PgDn| PgUp| End | + * `-------------------------------------------------------------------------' + */ + +LAYOUT( /* Left */ + KC_TILDE, KC_EXCLAIM, KC_AT, KC_HASH, KC_DOLLAR, KC_PERCENT, KC_CIRCUMFLEX, KC_AMPERSAND, KC_ASTERISK, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_DELETE, + _______, _______, _______, _______, _______, _______, _______, KC_UNDERSCORE, KC_PLUS, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_PIPE, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, + _______, _______, _______, KC_CAPS, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END +), + + /* FN Layer 2 + * ,-------------------------------------------------------------------------. + * | Esc | Calc|Webhm| Mail| Comp| | | | | |PrtSc| | + * |-------------------------------------------------------------------------+ + * | | | | | | | | | | | | | + * |-------------------------------------------------------------------------+ + * | |LEDtg|LEDch| | | | | | | | | | + * |-------------------------------------------------------------------------+ + * | | | | | | | |MousL|MousD|MousU|MousR| + * `-------------------------------------------------------------------------' + */ + +LAYOUT( /* Tab */ + KC_ESC, KC_CALC, KC_WHOM, KC_MAIL, KC_MYCM, _______, _______, _______, _______, _______, KC_PSCR, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, LED_TOG, LED_CHG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R +), +}; + +//LED keymap functions + #ifdef LED_ENABLE +void led_chmode(void) { + serial_send(101); +} + +void led_toggle(void) { + serial_send(100); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch(keycode) { + case LED_TOG: + #ifdef LED_ENABLE + led_toggle(); + #endif + return false; + case LED_CHG: + #ifdef LED_ENABLE + led_chmode(); + #endif + return false; + } + } + return true; +}; +#endif diff --git a/keyboards/ut47/keymaps/non-us/readme.md b/keyboards/ut47/keymaps/non-us/readme.md new file mode 100644 index 000000000000..e09dc73fab86 --- /dev/null +++ b/keyboards/ut47/keymaps/non-us/readme.md @@ -0,0 +1,19 @@ +# UT47 default keymap + +![UT47 layout image](https://i.imgur.com/Tsz5qsF.png) + +[KLE](http://www.keyboard-layout-editor.com/##@@_y:0%3B&=Esc&=Q&=W&=E&=R&=T&=Y&=U&=I&=O&=P&_w:1.5%3B&=Back%20Space&_x:0.25&a:4&f:4&w:4&h:4&d:true%3B&=%3Cb%3EGNAP!%3C%2F%2Fb%3E%3Cp%3E%3Cp%3EMinimum%20stagger%3Cp%3E47%20key%20layout%3B&@_a:7&f:3&w:1.25%3B&=Tab&=A&=S&=D&=F&=G&=H&=J&=K&=L&=%2F%3B&_w:1.25%3B&=%27%3B&@_w:1.5%3B&=Shift&=Z&=X&=C&=V&=B&=N&=M&=,&=.&=%2F%2F&=Return%3B&@=Ctrl&=Alt&=Super&=Menu&_w:1.25%3B&=%2F&dArr%2F%3B&_w:2%3B&=&_w:1.25%3B&=%2F&uArr%2F%3B&=%2F&larr%2F%3B&=%2F&darr%2F%3B&=%2F&uarr%2F%3B&=%2F&rarr%2F%3B%3B&=undefined) + +### LED Controls + +Use TAB+Z to cycle through brightness (8 steps) + +Use TAB+X to cycle through the following LED modes: + +- solid +- breathing +- random +- rain +- reactive +- poptang +- off From 861dc88bc2f3856acf20ccdf69fa641b365f3a6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Louren=C3=A7o=20Pinto=20Neto?= Date: Tue, 1 May 2018 12:42:21 -0300 Subject: [PATCH 319/578] New XD60 keymap (Standard/GH60 ANSI + custom Fn layer) (#2866) * XD60 standard 60% + custom Fn layer * Fixed README.MD --- keyboards/xd60/keymaps/edulpn/keymap.c | 46 +++++++++++++++++++++++++ keyboards/xd60/keymaps/edulpn/readme.md | 9 +++++ 2 files changed, 55 insertions(+) create mode 100644 keyboards/xd60/keymaps/edulpn/keymap.c create mode 100644 keyboards/xd60/keymaps/edulpn/readme.md diff --git a/keyboards/xd60/keymaps/edulpn/keymap.c b/keyboards/xd60/keymaps/edulpn/keymap.c new file mode 100644 index 000000000000..4e9b97da53cc --- /dev/null +++ b/keyboards/xd60/keymaps/edulpn/keymap.c @@ -0,0 +1,46 @@ +#include "xd60.h" +#include "action_layer.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // 0: Base Layer + LAYOUT_ALL( + KC_GRV, 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_BSPC, KC_NO, \ + 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_BSLS, \ + KC_CAPS, 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, \ + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSHIFT, KC_NO, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, F(0), KC_NO, KC_RGUI, KC_RCTL), + + // 1: Function Layer + LAYOUT_ALL( + KC_ESC, 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_DEL, KC_NO, \ + KC_NO, KC_NO, KC_UP, KC_NO, KC_INSERT, KC_HOME, KC_PGUP, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, KC_END, KC_PGDN, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_NO, KC_NO, KC_ENT, \ + KC_LSFT, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_RSFT, KC_NO, KC_NO, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, F(0), KC_NO, KC_RGUI, KC_RCTL), + +}; + +// Custom Actions +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay +}; + +// Macros +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { register_code(KC_RSFT); } + else { unregister_code(KC_RSFT); } + break; + } + + return MACRO_NONE; +}; + +// Loop +void matrix_scan_user(void) { + // Empty +}; diff --git a/keyboards/xd60/keymaps/edulpn/readme.md b/keyboards/xd60/keymaps/edulpn/readme.md new file mode 100644 index 000000000000..14f7da063d14 --- /dev/null +++ b/keyboards/xd60/keymaps/edulpn/readme.md @@ -0,0 +1,9 @@ +# Edulpn Keymap for the XD60 PCB + +## Additional Notes +60% Keymap for XD60 with GH60 ANSI layout (based on Supercoffe's keymap) + customized Fn layer. + +![Edulpn Keymap for the XD60 PCB](https://i.imgur.com/PoL5qcr.png) + +## Build +To build the default keymap, simply run `make xd60:edulpn`. From f756b72167a573640d2427920603fa369c7949ae Mon Sep 17 00:00:00 2001 From: Anthony Metcalf Date: Tue, 1 May 2018 16:48:47 +0100 Subject: [PATCH 320/578] A default layout but with support for non-us keymaps (#2869) * Made the keymap file match the TMK the board UT47 was origonally flashed with using native QMK codes. * Add non-us layout From 5112af887ae59c9c54eabaec5c1ae2f5a53de180 Mon Sep 17 00:00:00 2001 From: M1K Date: Tue, 1 May 2018 18:39:46 +0100 Subject: [PATCH 321/578] Added command history to terminal with other bug fixes, added new song to song_list.h (#2855) * Implemented Terminal + added song to song_list.h * Added wait() in order to prevent misbehaviour of 'command not found' --- docs/feature_terminal.md | 31 ++++- quantum/audio/song_list.h | 6 + quantum/process_keycode/process_terminal.c | 125 ++++++++++++++++++--- 3 files changed, 146 insertions(+), 16 deletions(-) diff --git a/docs/feature_terminal.md b/docs/feature_terminal.md index 334a46c2d469..1863599f8440 100644 --- a/docs/feature_terminal.md +++ b/docs/feature_terminal.md @@ -14,12 +14,14 @@ When enabled, a `> ` prompt will appear, where you'll be able to type, backspace `#define TERMINAL_HELP` enables some other output helpers that aren't really needed with this page. +Pressing "up" and "down" will allow you to cycle through the past 5 commands entered. + ## Future Ideas * Keyboard/user-extensible commands * Smaller footprint * Arrow key support -* Command history +* Command history - Done * SD card support * LCD support for buffer display * Keycode -> name string LUT @@ -43,14 +45,39 @@ QMK Firmware Built: 2017-08-29-20:24:44 ``` + +### `print-buffer` + +Outputs the last 5 commands entered + +``` +> print-buffer +0. print-buffer +1. help +2. about +3. keymap 0 +4. help +5. flush-buffer +``` + +### `flush-buffer` + +Clears command buffer +``` +> flush-buffer +Buffer cleared! +``` + + ### `help` + Prints out the available commands: ``` > help commands available: - about help keycode keymap exit + about help keycode keymap exit print-buffer flush-buffer ``` ### `keycode ` diff --git a/quantum/audio/song_list.h b/quantum/audio/song_list.h index a66c4d864455..1ddcfb345cd7 100644 --- a/quantum/audio/song_list.h +++ b/quantum/audio/song_list.h @@ -20,6 +20,12 @@ #define NO_SOUND +#define LP_NUMB \ + H__NOTE(_CS5), H__NOTE(_E5), H__NOTE(_CS5), WD_NOTE(_FS5), \ + WD_NOTE(_A5), WD_NOTE(_GS5), WD_NOTE(_REST), H__NOTE(_CS5), H__NOTE(_E5), \ + H__NOTE(_CS5), WD_NOTE(_A5), WD_NOTE(_GS5), WD_NOTE(_E5), + + #define ODE_TO_JOY \ Q__NOTE(_E4), Q__NOTE(_E4), Q__NOTE(_F4), Q__NOTE(_G4), \ Q__NOTE(_G4), Q__NOTE(_F4), Q__NOTE(_E4), Q__NOTE(_D4), \ diff --git a/quantum/process_keycode/process_terminal.c b/quantum/process_keycode/process_terminal.c index deb1543e3da9..bc365dddfa4b 100644 --- a/quantum/process_keycode/process_terminal.c +++ b/quantum/process_keycode/process_terminal.c @@ -20,10 +20,20 @@ #include #include +#ifndef CMD_BUFF_SIZE + #define CMD_BUFF_SIZE 5 +#endif + + bool terminal_enabled = false; char buffer[80] = ""; +char cmd_buffer[CMD_BUFF_SIZE][80]; +bool cmd_buffer_enabled = true; //replace with ifdef? char newline[2] = "\n"; char arguments[6][20]; +bool firstTime = true; + +short int current_cmd_buffer_pos = 0; //used for up/down arrows - keeps track of where you are in the command buffer __attribute__ ((weak)) const char terminal_prompt[8] = "> "; @@ -34,36 +44,37 @@ const char terminal_prompt[8] = "> "; #endif float terminal_song[][2] = TERMINAL_SONG; #define TERMINAL_BELL() PLAY_SONG(terminal_song) -#else - #define TERMINAL_BELL() +#else + #define TERMINAL_BELL() #endif __attribute__ ((weak)) const char keycode_to_ascii_lut[58] = { 0, 0, 0, 0, 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', - 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', + 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 0, 0, 0, '\t', ' ', '-', '=', '[', ']', '\\', 0, ';', '\'', '`', ',', '.', '/' -}; +}; __attribute__ ((weak)) const char shifted_keycode_to_ascii_lut[58] = { 0, 0, 0, 0, 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', - 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', + 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', 0, 0, 0, '\t', ' ', '_', '+', '{', '}', '|', 0, ':', '\'', '~', '<', '>', '?' -}; +}; -struct stringcase { - char* string; - void (*func)(void); +struct stringcase { + char* string; + void (*func)(void); } typedef stringcase; void enable_terminal(void) { terminal_enabled = true; strcpy(buffer, ""); + memset(cmd_buffer,0,CMD_BUFF_SIZE * 80); for (int i = 0; i < 6; i++) strcpy(arguments[i], ""); // select all text to start over @@ -73,6 +84,29 @@ void enable_terminal(void) { void disable_terminal(void) { terminal_enabled = false; + SEND_STRING("\n"); +} + +void push_to_cmd_buffer(void) { +if (cmd_buffer_enabled) { + if (cmd_buffer == NULL) { + return; + } else { + if (firstTime) { + firstTime = false; + strcpy(cmd_buffer[0],buffer); + return; + } + + for (int i= CMD_BUFF_SIZE - 1;i > 0 ;--i) { + strncpy(cmd_buffer[i],cmd_buffer[i-1],80); + } + + strcpy(cmd_buffer[0],buffer); + + return; + } + } } void terminal_about(void) { @@ -136,11 +170,34 @@ void terminal_keymap(void) { } } -stringcase terminal_cases[] = { +void print_cmd_buff(void) { + /* without the below wait, a race condition can occur wherein the + buffer can be printed before it has been fully moved */ + wait_ms(250); + for(int i=0;istring, buffer ) ) { @@ -192,6 +250,16 @@ void process_terminal_command(void) { send_string(terminal_prompt); } } +void check_pos(void) { + if (current_cmd_buffer_pos >= CMD_BUFF_SIZE) { //if over the top, move it back down to the top of the buffer so you can climb back down... + current_cmd_buffer_pos = CMD_BUFF_SIZE - 1; + } else if (current_cmd_buffer_pos < 0) { //...and if you fall under the bottom of the buffer, reset back to 0 so you can climb back up + current_cmd_buffer_pos = 0; + } +} + + + bool process_terminal(uint16_t keycode, keyrecord_t *record) { @@ -210,6 +278,8 @@ bool process_terminal(uint16_t keycode, keyrecord_t *record) { char char_to_add; switch (keycode) { case KC_ENTER: + push_to_cmd_buffer(); + current_cmd_buffer_pos = 0; process_terminal_command(); return false; break; case KC_ESC: @@ -226,9 +296,36 @@ bool process_terminal(uint16_t keycode, keyrecord_t *record) { return false; } break; case KC_LEFT: + return false; break; case KC_RIGHT: - case KC_UP: + return false; break; + case KC_UP: // 0 = recent + check_pos(); //check our current buffer position is valid + if (current_cmd_buffer_pos <= CMD_BUFF_SIZE - 1) { //once we get to the top, dont do anything + str_len = strlen(buffer); + for(int i= 0;i < str_len ;++i) { + send_string(SS_TAP(X_BSPACE)); //clear w/e is on the line already + //process_terminal(KC_BSPC,record); + } + strncpy(buffer,cmd_buffer[current_cmd_buffer_pos],80); + + send_string(buffer); + ++current_cmd_buffer_pos; //get ready to access the above cmd if up/down is pressed again + } + return false; break; case KC_DOWN: + check_pos(); + if (current_cmd_buffer_pos >= 0) { //once we get to the bottom, dont do anything + str_len = strlen(buffer); + for(int i= 0;i < str_len ;++i) { + send_string(SS_TAP(X_BSPACE)); //clear w/e is on the line already + //process_terminal(KC_BSPC,record); + } + strncpy(buffer,cmd_buffer[current_cmd_buffer_pos],79); + + send_string(buffer); + --current_cmd_buffer_pos; //get ready to access the above cmd if down/up is pressed again + } return false; break; default: if (keycode <= 58) { @@ -240,7 +337,7 @@ bool process_terminal(uint16_t keycode, keyrecord_t *record) { } if (char_to_add != 0) { strncat(buffer, &char_to_add, 1); - } + } } break; } @@ -249,4 +346,4 @@ bool process_terminal(uint16_t keycode, keyrecord_t *record) { } } return true; -} \ No newline at end of file +} From ec7223d9f08799eac58fa6c02c7d54f24fd9b089 Mon Sep 17 00:00:00 2001 From: tdl-jturner Date: Tue, 1 May 2018 12:29:49 -0700 Subject: [PATCH 322/578] Added new layout to XD75. See Readme for details (#2871) * Clean commit of xd75 layout. See Readme for details * Corrected header * Switched to HSV and added init --- keyboards/xd75/keymaps/tdl-jturner/config.h | 38 +++ keyboards/xd75/keymaps/tdl-jturner/keymap.c | 312 +++++++++++++++++++ keyboards/xd75/keymaps/tdl-jturner/readme.md | 12 + keyboards/xd75/keymaps/tdl-jturner/rules.mk | 23 ++ 4 files changed, 385 insertions(+) create mode 100644 keyboards/xd75/keymaps/tdl-jturner/config.h create mode 100644 keyboards/xd75/keymaps/tdl-jturner/keymap.c create mode 100644 keyboards/xd75/keymaps/tdl-jturner/readme.md create mode 100644 keyboards/xd75/keymaps/tdl-jturner/rules.mk diff --git a/keyboards/xd75/keymaps/tdl-jturner/config.h b/keyboards/xd75/keymaps/tdl-jturner/config.h new file mode 100644 index 000000000000..561a48d7eb88 --- /dev/null +++ b/keyboards/xd75/keymaps/tdl-jturner/config.h @@ -0,0 +1,38 @@ +/* Copyright 2018 Josh Turner (/u/tdl-jturner) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + // additional config optoinsa vailable at https://docs.qmk.fm/reference/config-options#the-config.h-file + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here +//#define TAPPING_TERM 200 +#define TAPPING_TOGGLE 2 +//#define PERMISSIVE_HOLD +//#define QMK_KEYS_PER_SCAN 4 +#define PREVENT_STUCK_MODIFIERS +#define FORCE_NKRO + +#define MOUSEKEY_INTERVAL 16 +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_TIME_TO_MAX 60 +#define MOUSEKEY_MAX_SPEED 7 +#define MOUSEKEY_WHEEL_DELAY 0 + +#endif diff --git a/keyboards/xd75/keymaps/tdl-jturner/keymap.c b/keyboards/xd75/keymaps/tdl-jturner/keymap.c new file mode 100644 index 000000000000..9789d9a8678b --- /dev/null +++ b/keyboards/xd75/keymaps/tdl-jturner/keymap.c @@ -0,0 +1,312 @@ +/* Copyright 2018 Josh Turner (/u/tdl-jturner) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "xd75.h" + +enum xd75_layers { + _QWERTY, + _COLEMAK, + _LYMD, + _LYFK, + _LYMED, + _LYNUM, + _LYNAV, + _LYMOS, + _LYSYS, + _LYLT +}; + +enum xd75_keycodes { + HELP = SAFE_RANGE, + KC_BSDEL, + KC_FBSLH, + KC_DOTQ, + KC_CPIPE, + COLEMAK, + QWERTY, + KC_LYDEF +}; + +//Tap Dance Declarations +enum { + TD_LOCK_SLEEP, + TD_ABK, + TD_BRC, + TD_CBR, +}; + +//Tap Dance Definitions +qk_tap_dance_action_t tap_dance_actions[] = { + //Tap once for Esc, twice for Caps Lock + [TD_LOCK_SLEEP] = ACTION_TAP_DANCE_DOUBLE(LGUI(KC_L), KC_SLEP), + [TD_ABK] = ACTION_TAP_DANCE_DOUBLE(KC_LABK,KC_RABK), + [TD_BRC] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC,KC_RBRC), + [TD_CBR] = ACTION_TAP_DANCE_DOUBLE(KC_LCBR,KC_RCBR) +// Other declarations would go here, separated by commas, if you have them +}; + +//remaps for pretty layouts +#define ________ KC_TRNS +#define ___XX___ KC_NO + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + //QWERY - Base Layer + [_QWERTY] = { + {KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 ,________ ,________,________, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,KC_MINUS}, + {KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T ,________ ,________,________, KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_BSDEL}, //Custom shift Codes. Backspace ^ Delete +{LT(_LYMD,KC_ESC), KC_A , KC_S , KC_D , KC_F , KC_G ,________ ,________,________, KC_H , KC_J , KC_K , KC_L ,KC_SCLN ,KC_QUOT }, + {KC_LSPO, KC_Z , KC_X , KC_C , KC_V , KC_B ,________ ,________,________, KC_N , KC_M ,KC_CPIPE,KC_DOTQ ,KC_FBSLH,KC_RSPC }, // Custom Shift Codes. ,^| .^? /^| + { KC_MEH ,KC_LCTL ,KC_LGUI ,KC_LALT ,MO(_LYNUM), KC_SPC ,________ ,________,________, KC_ENT ,MO(_LYNAV),TD(TD_CBR) ,TD(TD_BRC),TD(TD_ABK),TD(TD_LOCK_SLEEP)} + + }, + + //_COLEMAK - Colemak Layout - Identical to qwerty layer except for the layout changes + [_COLEMAK] = { + {KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 ,________ ,________,________, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,KC_MINUS}, + {KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_G ,________ ,________,________, KC_J , KC_L , KC_U , KC_Y ,KC_SCLN ,KC_BSDEL}, //Custom shift Codes. Backspace ^ Delete +{LT(_LYMD,KC_ESC), KC_A , KC_R , KC_S , KC_T , KC_D ,________ ,________,________, KC_H , KC_N , KC_E , KC_I , KC_O ,KC_QUOT }, + {KC_LSPO, KC_Z , KC_X , KC_C , KC_V , KC_B ,________ ,________,________, KC_K , KC_M ,KC_CPIPE,KC_DOTQ ,KC_FBSLH,KC_RSPC }, // Custom Shift Codes. ,^| .^? /^| + { KC_MEH ,KC_LCTL ,KC_LGUI ,KC_LALT ,MO(_LYNUM), KC_SPC ,________ ,________,________, KC_ENT ,MO(_LYNAV),TD(TD_CBR) ,TD(TD_BRC),TD(TD_ABK),TD(TD_LOCK_SLEEP)} + + }, + + // Decision Layer + [_LYMD] = + { + {________,________ ,________ ,________ ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___}, + {________,MO(_LYFK) ,MO(_LYMED),________ ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,________}, + {________,MO(_LYNUM),MO(_LYNAV),________ ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___}, + {________,MO(_LYMOS),MO(_LYSYS),MO(_LYLT) ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___}, + {________,________ ,________ ,________ ,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___} + }, + + //F Keys + [_LYFK] = + { + {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___}, + {KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_F7 ,KC_F8 ,KC_F9 ,KC_F12 ,________}, + {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_F4 ,KC_F5 ,KC_F6 ,KC_F11 ,___XX___}, + {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_F1 ,KC_F2 ,KC_F3 ,KC_F10 ,___XX___}, + {________,________,________,________,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___} + }, +//Media Keys +[_LYMED] = + { + {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___}, + {KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_VOLU ,___XX___,___XX___,________}, + {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_MPRV ,KC_MUTE ,KC_MNXT ,___XX___,___XX___}, + {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_VOLD ,___XX___,KC_MSTP ,___XX___}, + {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_MPLY ,___XX___,___XX___,___XX___,___XX___} + }, +//Num Keys +[_LYNUM] = + { + {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_PEQL ,KC_PSLS ,KC_PAST ,KC_PMNS ,___XX___}, + {KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_7 ,KC_8 ,KC_9 ,KC_MINUS,________}, + {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_4 ,KC_5 ,KC_6 ,KC_PPLS ,KC_PSLS }, + {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_1 ,KC_2 ,KC_3 ,KC_PENT ,KC_PAST }, + {________,________,________,________,________,________,________,________,________,________,KC_0 ,KC_0 ,KC_PDOT ,KC_PEQL ,___XX___} + }, +//Navigation Keys +[_LYNAV] = + { + {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___}, + {KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_HOME ,KC_UP ,KC_PGUP ,KC_PSCR ,________}, + {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_LEFT ,KC_F5 ,KC_RIGHT,KC_SLCK ,___XX___}, + {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_END ,KC_DOWN ,KC_PGDN ,KC_PAUS ,___XX___}, + {________,________,________,________,________,________,________,________,________,________,________,KC_INS ,KC_DEL ,___XX___,___XX___} + }, + //Mouse Keys + [_LYMOS] = + { + {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___}, + {KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_MS_U ,KC_WH_U ,KC_ACL2 ,________}, + {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_MS_L ,KC_ACL0 ,KC_MS_R ,KC_ACL1 ,___XX___}, + {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_MS_D ,KC_WH_D ,KC_BTN2 ,___XX___}, + {________,________,________,________,________,________,________,________,________,________,KC_BTN1 ,KC_BTN3 ,KC_BTN4 ,___XX___,___XX___} + }, + //Systen Keys + [_LYSYS] = + { + {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___}, + {KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,________}, + {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,QWERTY ,COLEMAK ,___XX___,RESET }, + {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___}, + {________,________,________,________,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___} + }, + +// Light Control +[_LYLT] = + { + {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___}, + {KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,RGB_HUD ,RGB_HUI ,RGB_SAD ,RGB_SAI ,RGB_VAD ,RGB_VAI }, + {________,________,________,________,________,________,___XX___,___XX___,___XX___,RGB_TOG ,RGB_RMOD,RGB_MOD ,___XX___,___XX___,___XX___}, + {________,________,________,________,________,________,___XX___,___XX___,___XX___,BL_TOGG ,BL_DEC ,BL_INC ,BL_BRTG ,___XX___,___XX___}, + {________,________,________,________,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___} + } +}; + +//Define layer colors +#define rgblight_setrgb_user_base() rgblight_sethsv(325,255,255) +#define rgblight_setrgb_user_LYFK() rgblight_sethsv_red() +#define rgblight_setrgb_user_LYMED() rgblight_sethsv_blue() +#define rgblight_setrgb_user_LYNUM() rgblight_sethsv_purple() +#define rgblight_setrgb_user_LYNAV() rgblight_sethsv_cyan() +#define rgblight_setrgb_user_LYMOS() rgblight_sethsv_orange() +#define rgblight_setrgb_user_LYSYS() rgblight_sethsv_green() +#define rgblight_setrgb_user_LYLT() rgblight_sethsv_yellow() +#define rgblight_setrgb_user_LYMD() rgblight_sethsv_white() + +//initialize rgb +void matrix_init_user(void) { + rgblight_enable(); + rgblight_mode(1); + rgblight_setrgb_user_base(); +} + +//Set a color based on the layer +uint32_t layer_state_set_user(uint32_t state) { + switch(biton32(state)) { + case _LYFK: + rgblight_setrgb_user_LYFK(); + break; + case _LYMED: + rgblight_setrgb_user_LYMED(); + break; + case _LYNUM: + rgblight_setrgb_user_LYNUM(); + break; + case _LYNAV: + rgblight_setrgb_user_LYNAV(); + break; + case _LYMOS: + rgblight_setrgb_user_LYMOS(); + break; + case _LYSYS: + rgblight_setrgb_user_LYSYS(); + break; + case _LYLT: + rgblight_setrgb_user_LYLT(); + break; + case _LYMD: + rgblight_setrgb_user_LYMD(); + break; + default: + rgblight_setrgb_user_base(); + break; + } + return state; +} + + +//Const for shift +const uint8_t shift = MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT); + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + switch(keycode) { + case KC_LYDEF: + layer_clear(); + return false; + break; + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case KC_BSDEL: + if (record->event.pressed) { + if (keyboard_report->mods & shift) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT)) { + unregister_code(KC_LSHIFT); + } + else { + unregister_code(KC_RSHIFT); + } + register_code(KC_DEL); + } + else { + register_code(KC_BSPC); + } + } + else { + unregister_code(KC_DEL); + unregister_code (KC_BSPC); + } + return false; + break; + case KC_FBSLH: + if (record->event.pressed) { + if (keyboard_report->mods & shift) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT)) { + unregister_code(KC_LSHIFT); + } + else { + unregister_code(KC_RSHIFT); + } + register_code(KC_BSLASH); + } + else { + register_code(KC_SLSH); + } + } + else { + unregister_code(KC_BSLASH); + unregister_code (KC_SLSH); + } + return false; + break; + case KC_DOTQ: + if (record->event.pressed) { + if (keyboard_report->mods & shift) { + register_code(KC_SLSH); // shifted slash = ? + } + else { + register_code(KC_DOT); + } + } + else { + unregister_code(KC_SLSH); // shifted slash = ? + unregister_code (KC_DOT); + } + return false; + break; + case KC_CPIPE: + if (record->event.pressed) { + if (keyboard_report->mods & shift) { + register_code(KC_BSLS); + } + else { + register_code(KC_COMM); + } + } + else { + unregister_code(KC_BSLS); + unregister_code (KC_COMM); + } + return false; + break; + } + return true; +}; diff --git a/keyboards/xd75/keymaps/tdl-jturner/readme.md b/keyboards/xd75/keymaps/tdl-jturner/readme.md new file mode 100644 index 000000000000..835ef09fb23e --- /dev/null +++ b/keyboards/xd75/keymaps/tdl-jturner/readme.md @@ -0,0 +1,12 @@ +/u/tdl-jturner - XD75 Layout +=== + +Keyboard Layout Editor: [Link](http://www.keyboard-layout-editor.com/#/gists/b2b23097ef70fd9170e266e4cbc06c02) + +Make Command: make xd75:tdl-jturner + +Notes: +* Based on Qwerty +* Tweaks for DBA & Programming including tap dance braces on lower right, custom shift codes, and F5 access on Nav layer +* Layers are all based on layer control on the left and the right is a 10 key pattern +* Layers include Functions, Media, Numpad, Navigation, Mouse, System, and Lighting diff --git a/keyboards/xd75/keymaps/tdl-jturner/rules.mk b/keyboards/xd75/keymaps/tdl-jturner/rules.mk new file mode 100644 index 000000000000..186b452fc634 --- /dev/null +++ b/keyboards/xd75/keymaps/tdl-jturner/rules.mk @@ -0,0 +1,23 @@ +# Copyright 2018 Josh Turner (/u/tdl-jturner) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif + +TAP_DANCE_ENABLE = yes +MOUSEKEY_ENABLE = yes +BACKLIGHT_ENABLE = yes +RGBLIGHT_ENABLE = yes From b51ad39047aec2538063a3ca9d35e2fe77e80a45 Mon Sep 17 00:00:00 2001 From: zwnk Date: Wed, 2 May 2018 11:56:00 -0300 Subject: [PATCH 323/578] iris impstyle keymap, mouse layer added (#2875) * impstyle keymap added * impstyle keymap updated * mouse layer added to impstyle keymap * keymap updated * fixes * impsytle layout: mouse layer added * comments added * comments added * bugfix * typo fixed --- keyboards/iris/keymaps/impstyle/config.h | 42 +++++++ keyboards/iris/keymaps/impstyle/keymap.c | 138 ++++++++++------------- keyboards/iris/keymaps/impstyle/rules.mk | 8 ++ 3 files changed, 110 insertions(+), 78 deletions(-) create mode 100644 keyboards/iris/keymaps/impstyle/config.h create mode 100644 keyboards/iris/keymaps/impstyle/rules.mk diff --git a/keyboards/iris/keymaps/impstyle/config.h b/keyboards/iris/keymaps/impstyle/config.h new file mode 100644 index 000000000000..0e01f5d562f5 --- /dev/null +++ b/keyboards/iris/keymaps/impstyle/config.h @@ -0,0 +1,42 @@ +/* +Copyright 2017 Danny Nguyen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +/* Use I2C or Serial, not both */ + +//#define USE_SERIAL +#define USE_I2C + +/* Select hand configuration */ +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#define MOUSEKEY_DELAY 300 +#define MOUSEKEY_INTERVAL 50 +#define MOUSEKEY_MAX_SPEED 10 +#define MOUSEKEY_TIME_TO_MAX 20 +#define MOUSEKEY_WHEEL_MAX_SPEED 8 +#define MOUSEKEY_WHEEL_TIME_TO_MAX 40 + +#include "../../config.h" + +#endif diff --git a/keyboards/iris/keymaps/impstyle/keymap.c b/keyboards/iris/keymaps/impstyle/keymap.c index 84f89c9c09b0..be5ee8c758c9 100644 --- a/keyboards/iris/keymaps/impstyle/keymap.c +++ b/keyboards/iris/keymaps/impstyle/keymap.c @@ -1,3 +1,6 @@ +// iris qwerty layout with mouse layer. +// double tab to toggle is not working atm + #include QMK_KEYBOARD_H extern keymap_config_t keymap_config; @@ -5,43 +8,80 @@ extern keymap_config_t keymap_config; #define _QWERTY 0 #define _LOWER 1 #define _RAISE 2 -#define _ADJUST 16 +#define _MOUSE 3 +#define TAPPING_TOGGLE 2 // double tab enum custom_keycodes { QWERTY = SAFE_RANGE, LOWER, RAISE, - ADJUST, + MOUSE, }; #define KC_ KC_TRNS #define _______ KC_TRNS - -#define KC_LOWR LOWER -#define KC_RASE RAISE -#define KC_RST RESET -#define KC_BL_S BL_STEP -#define KC_TGLW TG(_LOWER) -#define KC_TGRS TG(_RAISE) +#define KC_LOWR MO(_LOWER) // Lower layer +#define KC_RASE MO(_RAISE) // Raise layer +#define KC_TGLW TG(_LOWER) // toggle lower +#define KC_TGRS TG(_RAISE) // toggle raise +#define KC_MOUS TT(_MOUSE) // double tab toggle mouse layer const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // QUERTY LAYER + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + // ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + // TAB , Q , W , E , R , T , Y , U , I , O , P ,MINS , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + // LSFT, A , S , D , F , G , H , J , K , L ,SCLN,QUOT, + //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + // LCTL, Z , X , C , V , B ,PLUS , MOUS , N , M ,COMM,DOT ,SLSH,BSLASH, + //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + // LGUI,RASE,SPC , ENT ,LOWR,LALT + // `----+----+----' `----+----+----' + [_QWERTY] = LAYOUT( KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,KC_BSPC, KC_TAB , KC_Q , KC_W ,KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_MINS , KC_LSFT, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L ,KC_SCLN,KC_QUOT, - KC_LCTL, KC_Z , KC_X , KC_C , KC_V , KC_B ,KC_TGRS, KC_TGLW , KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_BSLASH, + KC_LCTL, KC_Z , KC_X , KC_C , KC_V , KC_B ,KC_PLUS, KC_MOUS , KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_BSLASH, KC_LGUI,KC_RASE,KC_SPC , KC_ENT ,KC_LOWR,KC_LALT ), + + // LOWER Layer + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + // TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,BSPC, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + // , ,PGUP, , ,LBRC, RBRC, P7 , P8 , P9 ,PLUS, , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + // ,HOME,PGDN,END, ,LPRN, RPRN, P4 , P5 , P6 ,MINS,PIPE, + //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + // , , , , , , , , , P1 , P2 , P3 ,EQL ,UNDS , + //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + // , ,DEL , BSPC , , P0 + // `----+----+----' `----+----+----' [_LOWER] = LAYOUT( KC_TILD,KC_EXLM, KC_AT ,KC_HASH,KC_DLR ,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSPC, _______,_______,KC_PGUP,_______,_______,KC_LBRC, KC_RBRC, KC_P7 , KC_P8 , KC_P9 ,KC_PLUS,_______, _______ ,KC_HOME,KC_PGDN,KC_END,_______,KC_LPRN, KC_RPRN, KC_P4 , KC_P5 , KC_P6 ,KC_MINS,KC_PIPE, _______,_______,_______,_______,_______,_______,_______, _______ ,_______, KC_P1 , KC_P2 , KC_P3 ,KC_EQL ,KC_UNDS , - _______ ,_______,KC_DEL , KC_BSPC ,_______, KC_P0 - + _______ ,_______,KC_PSCR , KC_DEL ,_______, KC_P0 ), + // RAISE LAYER + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + // F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + // , , UP , , ,LBRC, RBRC, ,NLCK,INS ,SLCK,MUTE, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + // ,LEFT,DOWN,RGHT, ,LPRN, RPRN,MPRV,MPLY,MNXT, ,VOLU, + //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + // , , , , , , , PLUS , , , , , ,VOLD, + //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + // , , , EQL, , + // `----+----+----' `----+----+----' + [_RAISE] = LAYOUT( KC_F12 , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 ,KC_F10 ,KC_F11 , _______ ,_______, KC_UP ,_______,_______,KC_LBRC, KC_RBRC,_______,KC_NLCK,KC_INS ,KC_SLCK,KC_MUTE, @@ -50,70 +90,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______ ,_______,_______, KC_EQL,_______,_______ ), - [_ADJUST] = LAYOUT( - //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RESET , DEBUG , RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, - //|--------+--------+--------+--------+--------+--------+--------. ,--------|--------+--------+--------+--------+--------+--------| - BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - //`--------+--------+--------+----+---+--------+--------+--------/ \--------+--------+--------+---+----+--------+--------+--------' - _______, _______, _______, _______, _______, _______ - // `--------+--------+--------' `--------+--------+--------' - ) - -}; - -#ifdef AUDIO_ENABLE -float tone_qwerty[][2] = SONG(QWERTY_SOUND); -#endif - -void persistent_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); -} + [_MOUSE] = LAYOUT( + KC_F12 , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 ,KC_F10 ,KC_F11 , + _______ ,_______, KC_MS_UP ,_______,_______,_______, KC_MS_WH_UP,_______,_______,_______ ,_______,_______, + _______ ,KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT,_______,_______, KC_MS_WH_DOWN,KC_MS_BTN1,KC_MS_BTN2,KC_MS_BTN3,_______,_______, + _______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,KC_MS_ACCEL0,KC_MS_ACCEL1,KC_MS_ACCEL2, + _______ ,_______,_______, _______,_______,_______ + ), -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_SONG(tone_qwerty); - #endif - persistent_default_layer_set(1UL<<_QWERTY); - } - return false; - break; - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case ADJUST: - if (record->event.pressed) { - layer_on(_ADJUST); - } else { - layer_off(_ADJUST); - } - return false; - break; - } - return true; -} +}; \ No newline at end of file diff --git a/keyboards/iris/keymaps/impstyle/rules.mk b/keyboards/iris/keymaps/impstyle/rules.mk new file mode 100644 index 000000000000..4db5ef00d26d --- /dev/null +++ b/keyboards/iris/keymaps/impstyle/rules.mk @@ -0,0 +1,8 @@ +RGBLIGHT_ENABLE = no +BACKLIGHT_ENABLE = no +TAP_DANCE_ENABLE = no +MOUSEKEY_ENABLE = yes + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif From 0495bf44911032f027e2f7846892637dcd56c013 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 2 May 2018 08:02:35 -0700 Subject: [PATCH 324/578] QMK Configurator updates for Alpha 28-key, AMJ40 and AMJ Pad (#2873) * QMK Configurator update for Alpha 28-key * QMK Configurator update for AMJ40 * QMK Configurator update for AMJ Pad * QMK Configurator update for Atom47 * QMK Configurator update for OLKB Atomic --- keyboards/alpha/info.json | 13 +++++++++++++ keyboards/amj40/info.json | 13 +++++++++++++ keyboards/amjpad/info.json | 13 +++++++++++++ keyboards/atom47/info.json | 13 +++++++++++++ keyboards/atom47/readme.md | 2 +- keyboards/atom47/rev2/info.json | 13 +++++++++++++ keyboards/atom47/rev2/readme.md | 2 +- keyboards/atomic/info.json | 13 +++++++++++++ 8 files changed, 80 insertions(+), 2 deletions(-) create mode 100644 keyboards/alpha/info.json create mode 100644 keyboards/amj40/info.json create mode 100644 keyboards/amjpad/info.json create mode 100644 keyboards/atom47/info.json create mode 100644 keyboards/atom47/rev2/info.json create mode 100644 keyboards/atomic/info.json diff --git a/keyboards/alpha/info.json b/keyboards/alpha/info.json new file mode 100644 index 000000000000..b08e6d9a4198 --- /dev/null +++ b/keyboards/alpha/info.json @@ -0,0 +1,13 @@ +{ + "keyboard_name": "Alpha", + "url": "", + "maintainer": "qmk", + "bootloader": "", + "width": 10, + "height": 3, + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":0.5, "y":2}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2, "w":2}, {"x":6.5, "y":2}, {"x":7.5, "y":2}, {"x":8.5, "y":2}] + } + } +} diff --git a/keyboards/amj40/info.json b/keyboards/amj40/info.json new file mode 100644 index 000000000000..ddbd34a7c4f9 --- /dev/null +++ b/keyboards/amj40/info.json @@ -0,0 +1,13 @@ +{ + "keyboard_name": "AMJ40", + "url": "", + "maintainer": "qmk", + "bootloader": "", + "width": 12, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":0, "y":1, "w":1.25}, {"x":1.25, "y":1}, {"x":2.25, "y":1}, {"x":3.25, "y":1}, {"x":4.25, "y":1}, {"x":5.25, "y":1}, {"x":6.25, "y":1}, {"x":7.25, "y":1}, {"x":8.25, "y":1}, {"x":9.25, "y":1}, {"x":10.25, "y":1, "w":1.75}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2, "w":1.25}, {"x":11, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3, "w":1.25}, {"x":3.5, "y":3, "w":2.25}, {"x":5.75, "y":3, "w":2.75}, {"x":8.5, "y":3, "w":1.25}, {"x":9.75, "y":3}, {"x":10.75, "y":3, "w":1.25}] + } + } +} diff --git a/keyboards/amjpad/info.json b/keyboards/amjpad/info.json new file mode 100644 index 000000000000..3873d548f07e --- /dev/null +++ b/keyboards/amjpad/info.json @@ -0,0 +1,13 @@ +{ + "keyboard_name": "AMJ Pad", + "url": "", + "maintainer": "qmk", + "bootloader": "", + "width": 4, + "height": 6, + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2, "h":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4, "h":2}, {"x":0, "y":5, "w":2}, {"x":2, "y":5}] + } + } +} diff --git a/keyboards/atom47/info.json b/keyboards/atom47/info.json new file mode 100644 index 000000000000..219e0f27189c --- /dev/null +++ b/keyboards/atom47/info.json @@ -0,0 +1,13 @@ +{ + "keyboard_name": "Atom47", + "url": "", + "maintainer": "qmk", + "bootloader": "", + "width": 13, + "height": 4, + "layouts": { + "LAYOUT_ansi": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":0, "y":1, "w":1.25}, {"x":1.25, "y":1}, {"x":2.25, "y":1}, {"x":3.25, "y":1}, {"x":4.25, "y":1}, {"x":5.25, "y":1}, {"x":6.25, "y":1}, {"x":7.25, "y":1}, {"x":8.25, "y":1}, {"x":9.25, "y":1}, {"x":10.25, "y":1}, {"x":11.25, "y":1, "w":1.75}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2, "w":1.25}, {"x":12, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3, "w":1.75}, {"x":6, "y":3, "w":2.75}, {"x":8.75, "y":3}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3, "w":1.25}] + } + } +} diff --git a/keyboards/atom47/readme.md b/keyboards/atom47/readme.md index f2ec08500e1a..1e96d42e9d2a 100644 --- a/keyboards/atom47/readme.md +++ b/keyboards/atom47/readme.md @@ -3,7 +3,7 @@ ![Atom47](https://i.imgur.com/Wwflqvt.png) ## Support -Keyboard Maintainer: [Maarten Dekkers(https://github.com/maartenwut) +Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut) Hardware Supported: Atom47 rev3 Hardware Availability: [GeekHack.com Group Buy](https://geekhack.org/index.php?topic=93447.msg2545221) diff --git a/keyboards/atom47/rev2/info.json b/keyboards/atom47/rev2/info.json new file mode 100644 index 000000000000..219e0f27189c --- /dev/null +++ b/keyboards/atom47/rev2/info.json @@ -0,0 +1,13 @@ +{ + "keyboard_name": "Atom47", + "url": "", + "maintainer": "qmk", + "bootloader": "", + "width": 13, + "height": 4, + "layouts": { + "LAYOUT_ansi": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":0, "y":1, "w":1.25}, {"x":1.25, "y":1}, {"x":2.25, "y":1}, {"x":3.25, "y":1}, {"x":4.25, "y":1}, {"x":5.25, "y":1}, {"x":6.25, "y":1}, {"x":7.25, "y":1}, {"x":8.25, "y":1}, {"x":9.25, "y":1}, {"x":10.25, "y":1}, {"x":11.25, "y":1, "w":1.75}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2, "w":1.25}, {"x":12, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3, "w":1.75}, {"x":6, "y":3, "w":2.75}, {"x":8.75, "y":3}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3, "w":1.25}] + } + } +} diff --git a/keyboards/atom47/rev2/readme.md b/keyboards/atom47/rev2/readme.md index 18ee85d54f32..30f44df1dc6c 100644 --- a/keyboards/atom47/rev2/readme.md +++ b/keyboards/atom47/rev2/readme.md @@ -3,7 +3,7 @@ This is the keymap for rev2 of the Atom47. Only 9 of those have been sold for testing purposes. It had a slightly misaligned usb port and the pcb was too thick (should've been 1.2mm instead of 1.6mm). The pcb only supports the default hardware layout, although /u/ChrisSwires has [modified his](https://www.reddit.com/r/MechanicalKeyboards/comments/7n2dua/not_your_average_core_with_honeywell/) and put a big spacebar in it. ## Support -Keyboard Maintainer: [Matthew Kerfoot(https://github.com/mkerfoot) +Keyboard Maintainer: [Matthew Kerfoot](https://github.com/mkerfoot) Hardware Supported: Atom47 rev2 Hardware Availability: None diff --git a/keyboards/atomic/info.json b/keyboards/atomic/info.json new file mode 100644 index 000000000000..b07a070253aa --- /dev/null +++ b/keyboards/atomic/info.json @@ -0,0 +1,13 @@ +{ + "keyboard_name": "Atomic", + "url": "", + "maintainer": "qmk", + "bootloader": "", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_semi_standard": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2, "w":2}, {"x":14, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3, "w":2}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}] + } + } +} From 3d96359f71c634788a52b997585fd955c9a7039e Mon Sep 17 00:00:00 2001 From: krasmaralde Date: Wed, 2 May 2018 17:05:36 +0200 Subject: [PATCH 325/578] Addkeymap/satan fakb (#2833) * edited keymap and fitted for tada68 * edited rules to make mouse work * filled config.h to make mouse cursor move smooth * added descriptive readme * added layout with split backspace and steamlined naming * added layout with split shift, split backspace and split # * changed keymap to fit the new layout * removed duplicate layout KEYMAP_FAKB and pointed keymap.c to default on * further cleanup from layout duplicate --- keyboards/satan/keymaps/fakb/config.h | 92 ++++++++++++++++++++++++++ keyboards/satan/keymaps/fakb/keymap.c | 35 ++++++++++ keyboards/satan/keymaps/fakb/readme.md | 58 ++++++++++++++++ keyboards/satan/keymaps/fakb/rules.mk | 16 +++++ 4 files changed, 201 insertions(+) create mode 100644 keyboards/satan/keymaps/fakb/config.h create mode 100644 keyboards/satan/keymaps/fakb/keymap.c create mode 100644 keyboards/satan/keymaps/fakb/readme.md create mode 100644 keyboards/satan/keymaps/fakb/rules.mk diff --git a/keyboards/satan/keymaps/fakb/config.h b/keyboards/satan/keymaps/fakb/config.h new file mode 100644 index 000000000000..a8df7ecef93c --- /dev/null +++ b/keyboards/satan/keymaps/fakb/config.h @@ -0,0 +1,92 @@ +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0003 +#define MANUFACTURER SATAN +#define PRODUCT GH60 +#define DESCRIPTION QMK keyboard firmware for Satan GH60 with WS2812 support + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +// ROWS: Top to bottom, COLS: Left to right + +#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 } +#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3 } +#define UNUSED_PINS + +#define BACKLIGHT_PIN B6 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +//#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +//#define LOCKING_RESYNC_ENABLE +/* key combination for command +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) +*/ +/* Backlight configuration + */ +#define BACKLIGHT_LEVELS 8 + +/* Underlight configuration + */ + +#define RGB_DI_PIN E2 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 8 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +#define NO_ACTION_ONESHOT +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +#endif + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_INTERVAL 1 +#define MOUSEKEY_MAX_SPEED 4 +#define MOUSEKEY_TIME_TO_MAX 77 +#define MOUSEKEY_WHEEL_MAX_SPEED 1 +#define MOUSEKEY_WHEEL_TIME_TO_MAX 255 + +// only change +#undef RGB_DI_PIN +#define RGB_DI_PIN B2 + +#endif diff --git a/keyboards/satan/keymaps/fakb/keymap.c b/keyboards/satan/keymaps/fakb/keymap.c new file mode 100644 index 000000000000..f6a9461957d8 --- /dev/null +++ b/keyboards/satan/keymaps/fakb/keymap.c @@ -0,0 +1,35 @@ +#include "satan.h" + +#define _______ KC_TRNS +#define XXXXXXX KC_NO +#define LCTL_MA LCTL_T(KC_UP) +#define LSFT_MA LSFT_T(KC_DOWN) +#define RSFT_MA SFT_T(KC_DOWN) +#define TABS_MA LT(1,KC_TAB) +#define SPCE_MA LT(2,KC_SPC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = KEYMAP( + KC_GESC,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,KC_NUBS,\ + TABS_MA,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,\ + LCTL_MA,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN,KC_QUOT,XXXXXXX,KC_ENT ,\ + LSFT_MA,KC_NUBS,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,RSFT_MA,MO(1) ,\ + XXXXXXX,KC_LALT,KC_LGUI, SPCE_MA, KC_RGUI,KC_RALT,XXXXXXX,XXXXXXX), + +[1] = KEYMAP( + KC_PSCR,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_PGUP,KC_PGDN,KC_HOME,KC_END ,KC_PGDN,KC_PGUP,_______,_______,_______,_______,KC_DEL ,\ + KC_CAPS,KC_NUBS,KC_LEFT,KC_UP ,KC_DOWN,KC_RGHT,KC_LEFT,KC_DOWN,KC_UP ,KC_RGHT,_______,_______,_______,_______,\ + _______,_______,BL_TOGG,BL_INC ,BL_DEC ,_______,_______,KC_VOLD,KC_VOLU,KC_MUTE,_______,_______,_______,_______,\ + _______,_______,_______, _______, _______,_______,_______,_______), + +[2] = KEYMAP( + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,RESET ,\ + KC_BTN5,KC_BTN4,KC_BTN3,KC_BTN2,KC_BTN1,KC_HOME,KC_END ,_______,_______,_______,_______,_______,_______,_______,\ + _______,_______,KC_WH_L,KC_WH_U,KC_WH_D,KC_WH_R,KC_MS_L,KC_MS_D,KC_MS_U,KC_MS_R,_______,_______,_______,_______,\ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,\ + _______,_______,_______, _______, _______,_______,_______,_______), + + +}; diff --git a/keyboards/satan/keymaps/fakb/readme.md b/keyboards/satan/keymaps/fakb/readme.md new file mode 100644 index 000000000000..b02b41816c78 --- /dev/null +++ b/keyboards/satan/keymaps/fakb/readme.md @@ -0,0 +1,58 @@ +# FabulousAnomalyKeyBoard + +This layout features an efficient layout for people without +a mouse. + +## layers + +Layer Base: complete basic keyboard +Layer Fn-Tab: F1-F12, Arrow Keys, Home, End, Backlight, Media +Layer Fn-Space: mouse keys in a vim like manner + +For detailed info check out keymap.c + +## the CTRL key + +It is where you would suspect CAPSLOCK to be. +WHO NEEDS CAPSLOCK ANYWAYS? +For those rare cases you need to shout at somebody in a comment +section you can still do a capslock by using TABCTRL + +## the SUPER key + +There are two super keys. They are next to the space bar. +The intention is easing the use of tiling window mangers + +## emergency mouse + +Without a mouse you will find yourself in a situation where all +your tiling goodness will just not be able to click onto that +"close ads" button. +This keymap integrates a basic mouse pointer directly into the keyboard. +Mouse is accessible via holding SPACE and tapping keys: +``` +SPACE +h Move cursor left +j Move cursor down +k Move cursor up +l Move cursor right + +w Middle Mouse Click +r Right click +e Left click + +s Scroll wheel left +d Scroll wheel down +f Scroll wheel up +g Scroll wheel right +``` + +## shell focused + +Working in a shell the up and down arrow keys are often needed to +look at old commands or reuse some. +When held, the left ctrl and left shift will act as expected, +but when tapped they will become UP and DOWN arrow-keys. + +## krautfriend +The keys <|> are accessible even without a 102nd key diff --git a/keyboards/satan/keymaps/fakb/rules.mk b/keyboards/satan/keymaps/fakb/rules.mk new file mode 100644 index 000000000000..c2b5df6cdd95 --- /dev/null +++ b/keyboards/satan/keymaps/fakb/rules.mk @@ -0,0 +1,16 @@ +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality (+4870) +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality (+1150) +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif From 9b8fc6f1c0129ee119965a2a4d025b0f5c9c613b Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Wed, 2 May 2018 08:07:08 -0700 Subject: [PATCH 326/578] QMK Configurator Support for NIU Mini (#2874) * QMK Configurator support for niu mini * Fix naming * looks like I messed up the include --- keyboards/niu_mini/info.json | 16 ++++++++++++++++ keyboards/niu_mini/keymaps/default/keymap.c | 2 +- keyboards/niu_mini/keymaps/mason/keymap.c | 2 +- keyboards/niu_mini/keymaps/planck/keymap.c | 2 +- keyboards/niu_mini/niu_mini.h | 8 ++++---- 5 files changed, 23 insertions(+), 7 deletions(-) create mode 100644 keyboards/niu_mini/info.json diff --git a/keyboards/niu_mini/info.json b/keyboards/niu_mini/info.json new file mode 100644 index 000000000000..1ff16a91c83d --- /dev/null +++ b/keyboards/niu_mini/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "NIU Mini", + "url": "", + "maintainer": "qmk", + "width": 12, + "height": 4, + "layouts": { + "LAYOUT_ortho_4x12": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}] + }, + + "LAYOUT_mit": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3, "w":2}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}] + } + } +} \ No newline at end of file diff --git a/keyboards/niu_mini/keymaps/default/keymap.c b/keyboards/niu_mini/keymaps/default/keymap.c index a0bfef73f56c..39aa01090a63 100644 --- a/keyboards/niu_mini/keymaps/default/keymap.c +++ b/keyboards/niu_mini/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -#include "niu_mini.h" +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/niu_mini/keymaps/mason/keymap.c b/keyboards/niu_mini/keymaps/mason/keymap.c index 3d05bf7b0230..c6185f7ec77c 100644 --- a/keyboards/niu_mini/keymaps/mason/keymap.c +++ b/keyboards/niu_mini/keymaps/mason/keymap.c @@ -1,4 +1,4 @@ -#include "niu_mini.h" +#include QMK_KEYBOARD_H enum layers { _QWERTY, diff --git a/keyboards/niu_mini/keymaps/planck/keymap.c b/keyboards/niu_mini/keymaps/planck/keymap.c index a4ffad9c952b..b4661bfd2d39 100644 --- a/keyboards/niu_mini/keymaps/planck/keymap.c +++ b/keyboards/niu_mini/keymaps/planck/keymap.c @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -#include "niu_mini.h" +#include QMK_KEYBOARD_H #include "action_layer.h" extern keymap_config_t keymap_config; diff --git a/keyboards/niu_mini/niu_mini.h b/keyboards/niu_mini/niu_mini.h index 88c5af11b096..2dd707ede62f 100644 --- a/keyboards/niu_mini/niu_mini.h +++ b/keyboards/niu_mini/niu_mini.h @@ -10,10 +10,10 @@ k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \ ) \ { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ - { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { k30, k31, k32, k33, k34, k35, KC_NO, k37, k38, k39, k3a, k3b } \ } #define LAYOUT_grid( \ From e5540dd055b16eaebb28e25e0cb9b314e397e854 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Wed, 2 May 2018 08:39:46 -0700 Subject: [PATCH 327/578] Update to drashna keymaps and userspace (#2876) * Fix Unicode sample * Add irony mark * Remove unpretty keymaps * Add QMK DFU and Conditional Music Mode * Unicode fixes * Unicode fixes * Make layer indication more modular * Finish removing Faux Click * Cleanup of UserSpace and addition of 'update_tri_layer_state' function * Add modifier status indicators to Orthodox * Remove tri layer function * Minor tweaks * Remove the Orthodox's Indicator's reliance on layer_state_set * Add custom EEPROM settings * Make EEPROM config more efficient * Viterbi Config * Add Iris Keyboard layout and Userspace cleanup * Iris keyboard tweaks * Use Grave Escape on Iris * Update Readmes --- keyboards/iris/keymaps/drashna/config.h | 59 ++++ keyboards/iris/keymaps/drashna/keymap.c | 141 ++++++++ keyboards/iris/keymaps/drashna/rules.mk | 11 + keyboards/orthodox/keymaps/drashna/README.md | 4 +- keyboards/orthodox/keymaps/drashna/config.h | 9 +- keyboards/orthodox/keymaps/drashna/keymap.c | 71 ++++- keyboards/viterbi/keymaps/drashna/keymap.c | 2 +- keyboards/viterbi/keymaps/drashna/rules.mk | 9 +- layouts/community/ergodox/drashna/keymap.c | 30 +- layouts/community/ergodox/drashna/rules.mk | 2 + quantum/process_keycode/process_clicky.c | 1 - users/drashna/config.h | 8 +- users/drashna/drashna.c | 318 ++++++++++--------- users/drashna/drashna.h | 125 +++----- users/drashna/drashna_unicode.h | 71 +++++ users/drashna/readme.md | 28 ++ 16 files changed, 622 insertions(+), 267 deletions(-) create mode 100644 keyboards/iris/keymaps/drashna/config.h create mode 100644 keyboards/iris/keymaps/drashna/keymap.c create mode 100644 keyboards/iris/keymaps/drashna/rules.mk create mode 100644 users/drashna/drashna_unicode.h diff --git a/keyboards/iris/keymaps/drashna/config.h b/keyboards/iris/keymaps/drashna/config.h new file mode 100644 index 000000000000..2a451e7c7721 --- /dev/null +++ b/keyboards/iris/keymaps/drashna/config.h @@ -0,0 +1,59 @@ +/* +Copyright 2017 Danny Nguyen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +#undef USE_I2C + +/* Select hand configuration */ + +// #define MASTER_LEFT +// #define MASTER_RIGHT +#define EE_HANDS + +#ifdef RGBLIGHT_ENABLE +#undef RGBLED_NUM +#define RGBLED_NUM 16 // Number of LEDs +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_HUE_STEP 12 +#define RGBLIGHT_SAT_STEP 12 +#define RGBLIGHT_VAL_STEP 12 +#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 +#define RGBLIGHT_EFFECT_SNAKE_LENGTH 2 +#define RGBLIGHT_EFFECT_BREATHE_CENTER 1 +#endif // RGBLIGHT_ENABLE + +#ifdef AUDIO_ENABLE +#define C6_AUDIO +#ifdef RGBLIGHT_ENABLE +#define NO_MUSIC_MODE +#endif //RGBLIGHT_ENABLE +#endif //AUDIO_ENABLE + + +#undef PRODUCT +#ifdef KEYBOARD_iris_rev2 +#define PRODUCT Drashna Hacked Iris Rev.2 +#endif + +#endif diff --git a/keyboards/iris/keymaps/drashna/keymap.c b/keyboards/iris/keymaps/drashna/keymap.c new file mode 100644 index 000000000000..64d074fc9f13 --- /dev/null +++ b/keyboards/iris/keymaps/drashna/keymap.c @@ -0,0 +1,141 @@ + +#include QMK_KEYBOARD_H +#include "drashna.h" + + +#define KC_ALAP ALT_T(KC_APP) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = LAYOUT_wrapper( + KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, + KC_TAB , _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSLS, + KC_C1R3, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT, + KC_MLSF, _________________QWERTY_L3_________________, KC_ALAP, KC_LGUI, _________________QWERTY_R3_________________, KC_MRSF, + LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE + ), + [_COLEMAK] = LAYOUT_wrapper( + KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, + KC_TAB , _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, KC_BSLS, + KC_C1R3, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT, + KC_MLSF, _________________COLEMAK_L3________________, KC_ALAP, KC_LGUI, _________________COLEMAK_R3________________, KC_MRSF, + LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE + ), + [_DVORAK] = LAYOUT_wrapper( + KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, + KC_TAB , _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, KC_BSLS, + KC_C1R3, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_QUOT, + KC_MLSF, _________________DVORAK_L3_________________, KC_ALAP, KC_LGUI, _________________DVORAK_R3_________________, KC_MRSF, + LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE + ), + [_WORKMAN] = LAYOUT_wrapper( + KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, + KC_TAB , _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, KC_BSLS, + KC_C1R3, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT, + KC_MLSF, _________________WORKMAN_L3________________, KC_ALAP, KC_LGUI, _________________WORKMAN_R3________________, KC_MRSF, + LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE + ), + + [_MODS] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + ), + + + [_LOWER] = LAYOUT( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_RBRC, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_LPRN, KC_RPRN, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, + _______, _______, KC_DEL, _______, _______, _______ + ), + + [_RAISE] = LAYOUT( + KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_UNDS, KC_EQL , KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, _______, KC_PLUS, KC_END, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + ), + + [_ADJUST] = LAYOUT( + KC_MAKE, KC_RST, EPRM, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, + RGB_SMOD,RGB_HUI, CK_TOGG, AU_ON, AU_OFF, AG_NORM, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, TG(_MODS), + KC_RGB_T,RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, + _______, _______, _______, _______, _______, _______ + ) + +}; + + + +#ifdef INDICATOR_LIGHT +uint32_t layer_state_set_keymap (uint32_t state) { + uint8_t modifiders = get_mods(); + uint8_t led_usb_state = host_keyboard_leds(); + uint8_t one_shot = get_oneshot_mods(); + + + if (modifiders & MODS_SHIFT_MASK || led_usb_state & (1<. #ifdef AUDIO_ENABLE #define C6_AUDIO +#ifdef RGBLIGHT_ENABLE #define NO_MUSIC_MODE -#endif +#endif //RGBLIGHT_ENABLE +#endif //AUDIO_ENABLE #undef PRODUCT #ifdef KEYBOARD_orthodox_rev1 @@ -69,4 +71,9 @@ along with this program. If not, see . #define PRODUCT Drashna Hacked Orthodox Rev.3 #endif +#define QMK_ESC_OUTPUT D7 // usually COL +#define QMK_ESC_INPUT D4 // usually ROW +#define QMK_LED B0 +#define QMK_SPEAKER C6 + #endif diff --git a/keyboards/orthodox/keymaps/drashna/keymap.c b/keyboards/orthodox/keymaps/drashna/keymap.c index ed5f32b98710..fd10faa5ee43 100644 --- a/keyboards/orthodox/keymaps/drashna/keymap.c +++ b/keyboards/orthodox/keymaps/drashna/keymap.c @@ -32,7 +32,6 @@ along with this program. If not, see . #define _______ KC_TRNS #define XXXXXXX KC_NO -#define MG_NKRO MAGIC_TOGGLE_NKRO const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -67,21 +66,85 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LOWER] = LAYOUT(\ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_PGUP, KC_PGDN, KC_HOME, KC_END, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, KC_COMM, KC_DOT, _______, _______ + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, KC_COMM, KC_DOT, _______, _______ ), [_RAISE] = LAYOUT(\ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_GRV, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_BSPC, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_COMM, KC_DOT, _______, _______ ), [_ADJUST] = LAYOUT(\ KC_MAKE,KC_RESET, EPRM, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RGB_SMOD,RGB_HUI, CK_TOGG, AUD_ON, AUD_OFF, AG_NORM, _______, _______, _______, _______, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, TG(_MODS), + RGB_SMOD,RGB_HUI, CK_TOGG, AU_ON, AU_OFF, AG_NORM, _______, _______, _______, _______, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, TG(_MODS), KC_RGB_T,RGB_HUD, MU_ON, MU_OFF, MU_TOG, MU_MOD, _______, _______, _______, _______, _______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY ) }; +#ifdef RGBLIGHT_ENABLE +uint32_t layer_state_set_keymap (uint32_t state) { + uint8_t modifiders = get_mods(); + uint8_t led_usb_state = host_keyboard_leds(); + uint8_t one_shot = get_oneshot_mods(); + + + if (modifiders & MODS_SHIFT_MASK || led_usb_state & (1<. #include QMK_KEYBOARD_H #include "drashna.h" +#ifdef UNICODEMAP_ENABLE +#include "drashna_unicode.h" +#endif // UNICODEMAP_ENABLE + //enum more_custom_keycodes { // KC_P00 = NEW_SAFE_RANGE //}; - //define layer change stuff for underglow indicator bool skip_leds = false; -#ifdef KEYBOARD_ergodox_ez + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: QWERTY Layer * @@ -54,9 +57,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_QWERTY] = LAYOUT_ergodox_pretty_wrapper( // left hand // right hand - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_EQL, ________________NUMBER_LEFT________________, OSL(_MOUS), OSL(_MOUS), ________________NUMBER_RIGHT_______________, KC_MINS, KC_TAB, _________________QWERTY_L1_________________, TG(_DIABLO), TG(_DIABLO), _________________QWERTY_R1_________________, KC_BSLS, - SH_TT, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT, + KC_C1R3, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT, KC_MLSF, _________________QWERTY_L3_________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________QWERTY_R3_________________, KC_MRSF, LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), __________________ERGODOX_THUMB_CLUSTER_____________________ @@ -88,7 +91,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand // right hand KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TAB, _________________COLEMAK_L1________________, TG(_DIABLO), TG(_DIABLO), _________________COLEMAK_R1________________, KC_BSLS, - SH_TT, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT, + KC_C1R3, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT, KC_MLSF, _________________COLEMAK_L3________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________COLEMAK_R3________________, KC_MRSF, LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), __________________ERGODOX_THUMB_CLUSTER_____________________ @@ -120,7 +123,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand // right hand KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, KC_TAB, _________________DVORAK_L1_________________, TG(_DIABLO), TG(_DIABLO), _________________DVORAK_R1_________________, KC_SLSH, - SH_TT, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_MINS, + KC_C1R3, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_MINS, KC_MLSF, _________________DVORAK_L3_________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________DVORAK_R3_________________, KC_MRSF, LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), __________________ERGODOX_THUMB_CLUSTER_____________________ @@ -152,7 +155,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TAB, _________________WORKMAN_L1________________, TG(_DIABLO), TG(_DIABLO), _________________WORKMAN_R1________________, KC_BSLS, - SH_TT, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT, + KC_C1R3, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT, KC_MLSF, _________________WORKMAN_L3________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________WORKMAN_R3________________, KC_MRSF, LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), __________________ERGODOX_THUMB_CLUSTER_____________________ @@ -299,19 +302,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; -#else // KEYBOARD_ergodox_ez -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_ergodox_wrapper(KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), KC_TAB, _________________QWERTY_L1_________________, TG(_DIABLO), KC_BSPC, _________________QWERTY_L2_________________, KC_MLSF, _________________QWERTY_L3_________________, TG(_GAMEPAD), LT(_SYMB, KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ALT_T(KC_APP), KC_LGUI, KC_HOME, KC_SPACE, KC_BSPC, KC_END, OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TG(_DIABLO), _________________QWERTY_R1_________________, KC_BSLS, _________________QWERTY_R2_________________, GUI_T(KC_QUOT), TG(_GAMEPAD), _________________QWERTY_R3_________________, KC_MRSF, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), KC_RGUI, CTL_T(KC_ESCAPE), KC_PGUP, KC_PGDOWN, KC_DELETE, KC_ENTER), - [_COLEMAK] = LAYOUT_ergodox_wrapper(KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), KC_TAB, _________________COLEMAK_L1________________, TG(_DIABLO), KC_BSPC, _________________COLEMAK_L2________________, KC_MLSF, _________________COLEMAK_L3________________, TG(_GAMEPAD), LT(_SYMB, KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ALT_T(KC_APP), KC_LGUI, KC_HOME, KC_SPACE, KC_BSPC, KC_END, OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TG(_DIABLO), _________________COLEMAK_R1________________, KC_BSLS, _________________COLEMAK_R2________________, GUI_T(KC_QUOT), TG(_GAMEPAD), _________________COLEMAK_R3________________, KC_MRSF, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), KC_RGUI, CTL_T(KC_ESCAPE), KC_PGUP, KC_PGDOWN, KC_DELETE, KC_ENTER), - [_DVORAK] = LAYOUT_ergodox_wrapper(KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), KC_TAB, _________________DVORAK_L1_________________, TG(_DIABLO), KC_BSPC, _________________DVORAK_L2_________________, KC_MLSF, _________________DVORAK_L3_________________, TG(_GAMEPAD), LT(_SYMB, KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ALT_T(KC_APP), KC_LGUI, KC_HOME, KC_SPACE, KC_BSPC, KC_END, OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, TG(_DIABLO), _________________DVORAK_R1_________________, KC_SLSH, _________________DVORAK_R2_________________, GUI_T(KC_MINS), TG(_GAMEPAD), _________________DVORAK_R3_________________, KC_MRSF, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), KC_RGUI, CTL_T(KC_ESCAPE), KC_PGUP, KC_PGDOWN, KC_DELETE, KC_ENTER), - [_WORKMAN] = LAYOUT_ergodox_wrapper(KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), KC_TAB, _________________WORKMAN_L1________________, TG(_DIABLO), KC_BSPC, _________________WORKMAN_L2________________, KC_MLSF, _________________WORKMAN_L3________________, TG(_GAMEPAD), LT(_SYMB, KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ALT_T(KC_APP), KC_LGUI, KC_HOME, KC_SPACE, KC_BSPC, KC_END, OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TG(_DIABLO), _________________WORKMAN_R1________________, KC_BSLS, _________________WORKMAN_R2________________, GUI_T(KC_QUOT), TG(_GAMEPAD), _________________WORKMAN_R3________________, KC_MRSF, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), KC_RGUI, CTL_T(KC_ESCAPE), KC_PGUP, KC_PGDOWN, KC_DELETE, KC_ENTER), - [_MODS] = LAYOUT_ergodox(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - [_SYMB] = LAYOUT_ergodox(EPRM, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, TG(_MODS), KC_RESET, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_WORKMAN, KC_MAKE, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRAVE, VRSN, KC_PERC, KC_CIRC, KC_LBRACKET, KC_RBRACKET, KC_TILD, KC_COLEMAK, KC_TRNS, KC_AMPR, KC_ASTR, KC_COLN, KC_SCOLON, RGB_SMOD, KC_RGB_T, RGB_HUI, RGB_M_R, RGB_M_SW, RGB_HUD, KC_QWERTY, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_DVORAK, KC_KP_PLUS, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_ASTERISK, KC_F12, KC_KP_MINUS, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_SLASH, KC_PSCREEN, KC_COLEMAK, KC_NUMLOCK, KC_KP_1, KC_KP_2, KC_KP_3, KC_EQUAL, KC_PAUSE, KC_KP_0, KC_KP_0, KC_KP_DOT, KC_KP_ENTER, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_DOT, KC_KP_0, KC_KP_ENTER), - [_GAMEPAD] = LAYOUT_ergodox(KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, HYPR(KC_D), HYPR(KC_Q), HYPR(KC_GRV), KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, KC_I, KC_O, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_TRNS, TG(_GAMEPAD), KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO, KC_GRV, KC_U, KC_I, KC_Y, KC_T, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_O, KC_P, KC_HYPR, MAGIC_TOGGLE_NKRO, KC_LGUI, KC_NO, KC_V, KC_SPC, KC_H, KC_PGDN, KC_DEL, KC_ENTER), - [_DIABLO] = LAYOUT_ergodox(KC_ESC, KC_V, KC_D, KC_LALT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_TAB, KC_S, KC_I, KC_F, KC_M, KC_T, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL, KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, KC_Z, KC_NO, KC_NO, KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_L, KC_J, KC_NO, KC_NO, KC_F, KC_NO, SFT_T(KC_SPACE), ALT_T(KC_Q), KC_DIABLO_CLEAR, KC_PGDN, KC_DEL, KC_ENT), - [_MOUS] = LAYOUT_ergodox(KC_NO, KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_U, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO, KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_NO, KC_NO, KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_NO, KC_BTN1, KC_BTN2, KC_WH_D, KC_BTN3, KC_BTN4, KC_BTN5), -}; -#endif // KEYBOARD_ergodox_ez bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { diff --git a/layouts/community/ergodox/drashna/rules.mk b/layouts/community/ergodox/drashna/rules.mk index 536d5308af0b..e5bf2d4b36a8 100644 --- a/layouts/community/ergodox/drashna/rules.mk +++ b/layouts/community/ergodox/drashna/rules.mk @@ -7,3 +7,5 @@ endif CONSOLE_ENABLE = no BOOTMAGIC_ENABLE = yes +UNICODE_ENABLE = no +UNICDOEMAP_ENABLE = yes diff --git a/quantum/process_keycode/process_clicky.c b/quantum/process_keycode/process_clicky.c index f445751e0f15..1e950d111377 100644 --- a/quantum/process_keycode/process_clicky.c +++ b/quantum/process_keycode/process_clicky.c @@ -62,7 +62,6 @@ bool process_clicky(uint16_t keycode, keyrecord_t *record) { if ( clicky_enable ) { if (record->event.pressed) { - stop_all_notes(); clicky_play();; } } diff --git a/users/drashna/config.h b/users/drashna/config.h index e48f72355b26..0a59ad02610a 100644 --- a/users/drashna/config.h +++ b/users/drashna/config.h @@ -58,10 +58,16 @@ // Disable action_get_macro and fn_actions, since we don't use these // and it saves on space in the firmware. +#ifndef NO_DEBUG +#define NO_DEBUG +#endif // !NO_DEBUG +#ifndef NO_PRINT +#define NO_PRINT +#endif // !NO_PRINT #define NO_ACTION_MACRO #define NO_ACTION_FUNCTION - +#define DISABLE_LEADER #endif // !USERSPACE_CONFIG_H diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c index d9d412b086d3..86c16b826d3f 100644 --- a/users/drashna/drashna.c +++ b/users/drashna/drashna.c @@ -33,35 +33,52 @@ PROGMEM const char secret[][64] = { #endif -#ifdef FAUXCLICKY_ENABLE -float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_A6, 2); // (_D4, 0.25); -float fauxclicky_released_note[2] = MUSICAL_NOTE(_A6, 2); // (_C4, 0.125); -#else // FAUXCLICKY_ENABLE -float fauxclicky_pressed[][2] = SONG(S__NOTE(_A6)); // change to your tastes -float fauxclicky_released[][2] = SONG(S__NOTE(_A6)); // change to your tastes -#endif // FAUXCLICKY_ENABLE - float tone_copy[][2] = SONG(SCROLL_LOCK_ON_SOUND); float tone_paste[][2] = SONG(SCROLL_LOCK_OFF_SOUND); -bool faux_click_enabled = false; -bool is_overwatch = false; static uint16_t copy_paste_timer; #ifdef RGBLIGHT_ENABLE bool rgb_layer_change = true; #endif +userspace_config_t userspace_config; + +// Helper Functions +void tap(uint16_t keycode){ register_code(keycode); unregister_code(keycode); }; + +#ifdef RGBLIGHT_ENABLE +void rgblight_sethsv_default_helper(uint8_t index) { + uint8_t default_layer = eeconfig_read_default_layer(); + if (default_layer & (1UL << _COLEMAK)) { + rgblight_sethsv_at(300, 255, 255, index); + rgblight_sethsv_at(300, 255, 255, index); + } + else if (default_layer & (1UL << _DVORAK)) { + rgblight_sethsv_at(120, 255, 255, index); + rgblight_sethsv_at(120, 255, 255, index); + } + else if (default_layer & (1UL << _WORKMAN)) { + rgblight_sethsv_at(43, 255, 255, index); + rgblight_sethsv_at(43, 255, 255, index); + } + else { + rgblight_sethsv_at(180, 255, 255, index); + rgblight_sethsv_at(180, 255, 255, index); + } +} +#endif // RGBLIGHT_ENABLE + + +// ========================================= TAP DANCE ========================================= #ifdef TAP_DANCE_ENABLE //define diablo macro timer variables static uint16_t diablo_timer[4]; static uint8_t diablo_times[] = { 0, 1, 3, 5, 10, 30 }; static uint8_t diablo_key_time[4]; -bool check_dtimer(uint8_t dtimer) { - // has the correct number of seconds elapsed (as defined by diablo_times) - return (timer_elapsed(diablo_timer[dtimer]) < (diablo_key_time[dtimer] * 1000)) ? false : true; -}; +// has the correct number of seconds elapsed (as defined by diablo_times) +bool check_dtimer(uint8_t dtimer) { return (timer_elapsed(diablo_timer[dtimer]) < (diablo_key_time[dtimer] * 1000)) ? false : true; }; // Cycle through the times for the macro, starting at 0, for disabled. // Max of six values, so don't exceed @@ -69,25 +86,16 @@ void diablo_tapdance_master(qk_tap_dance_state_t *state, void *user_data, uint8_ if (state->count >= 7) { diablo_key_time[diablo_key] = diablo_times[0]; reset_tap_dance(state); - } - else { + } else { diablo_key_time[diablo_key] = diablo_times[state->count - 1]; } } // Would rather have one function for all of this, but no idea how to do that... -void diablo_tapdance1(qk_tap_dance_state_t *state, void *user_data) { - diablo_tapdance_master(state, user_data, 0); -} -void diablo_tapdance2(qk_tap_dance_state_t *state, void *user_data) { - diablo_tapdance_master(state, user_data, 1); -} -void diablo_tapdance3(qk_tap_dance_state_t *state, void *user_data) { - diablo_tapdance_master(state, user_data, 2); -} -void diablo_tapdance4(qk_tap_dance_state_t *state, void *user_data) { - diablo_tapdance_master(state, user_data, 3); -} +void diablo_tapdance1(qk_tap_dance_state_t *state, void *user_data) { diablo_tapdance_master(state, user_data, 0); } +void diablo_tapdance2(qk_tap_dance_state_t *state, void *user_data) { diablo_tapdance_master(state, user_data, 1); } +void diablo_tapdance3(qk_tap_dance_state_t *state, void *user_data) { diablo_tapdance_master(state, user_data, 2); } +void diablo_tapdance4(qk_tap_dance_state_t *state, void *user_data) { diablo_tapdance_master(state, user_data, 3); } //Tap Dance Definitions qk_tap_dance_action_t tap_dance_actions[] = { @@ -96,7 +104,6 @@ qk_tap_dance_action_t tap_dance_actions[] = { [TD_D3_2] = ACTION_TAP_DANCE_FN(diablo_tapdance2), [TD_D3_3] = ACTION_TAP_DANCE_FN(diablo_tapdance3), [TD_D3_4] = ACTION_TAP_DANCE_FN(diablo_tapdance4), - }; // Sends the key press to system, but only if on the Diablo layer @@ -104,17 +111,13 @@ void send_diablo_keystroke(uint8_t diablo_key) { if (biton32(layer_state) == _DIABLO) { switch (diablo_key) { case 0: - SEND_STRING("1"); - break; + tap(KC_1); break; case 1: - SEND_STRING("2"); - break; + tap(KC_2); break; case 2: - SEND_STRING("3"); - break; + tap(KC_3); break; case 3: - SEND_STRING("4"); - break; + tap(KC_4); break; } } } @@ -123,7 +126,6 @@ void send_diablo_keystroke(uint8_t diablo_key) { // Runs the "send string" command if enough time has passed, and resets the timer. void run_diablo_macro_check(void) { uint8_t dtime; - for (dtime = 0; dtime < 4; dtime++) { if (check_dtimer(dtime) && diablo_key_time[dtime]) { diablo_timer[dtime] = timer_read(); @@ -131,7 +133,6 @@ void run_diablo_macro_check(void) { } } } - #endif // TAP_DANCE_ENABLE @@ -162,31 +163,32 @@ void led_set_keymap(uint8_t usb_led) {} // Call user matrix init, set default RGB colors and then // call the keymap's init function void matrix_init_user(void) { -#ifdef RGBLIGHT_ENABLE uint8_t default_layer = eeconfig_read_default_layer(); +#ifdef RGBLIGHT_ENABLE rgblight_enable(); +#endif // RGBLIGHT_ENABLE - if (true) { - if (default_layer & (1UL << _COLEMAK)) { - rgblight_sethsv_magenta(); - } - else if (default_layer & (1UL << _DVORAK)) { - rgblight_sethsv_green(); - } - else if (default_layer & (1UL << _WORKMAN)) { - rgblight_sethsv_goldenrod(); - } - else { - rgblight_sethsv_teal(); - } - } - else - { - rgblight_setrgb_red(); - rgblight_mode(5); - } + if (default_layer & (1UL << _COLEMAK)) { +#ifdef RGBLIGHT_ENABLE + rgblight_sethsv_magenta(); #endif // RGBLIGHT_ENABLE + } else if (default_layer & (1UL << _DVORAK)) { +#ifdef RGBLIGHT_ENABLE + rgblight_sethsv_green(); +#endif // RGBLIGHT_ENABLE + } else if (default_layer & (1UL << _WORKMAN)) { +#ifdef RGBLIGHT_ENABLE + rgblight_sethsv_goldenrod(); +#endif // RGBLIGHT_ENABLE + } else { +#ifdef RGBLIGHT_ENABLE + rgblight_sethsv_teal(); +#endif // RGBLIGHT_ENABLE + } + + userspace_config.raw = eeprom_read_byte(EECONFIG_USERSPACE); + clicky_enable = userspace_config.clicky_enable; #if ( defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE) ) set_unicode_input_mode(UC_WINC); @@ -197,23 +199,21 @@ void matrix_init_user(void) { // No global matrix scan code, so just run keymap's matrix // scan function void matrix_scan_user(void) { + #ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code. run_diablo_macro_check(); #endif // TAP_DANCE_ENABLE + matrix_scan_keymap(); } -void tap(uint16_t keycode){ - register_code(keycode); - unregister_code(keycode); -}; // This block is for all of the gaming macros, as they were all doing // the same thing, but with differring text sent. bool send_game_macro(const char *str, keyrecord_t *record, bool override) { if (!record->event.pressed || override) { clear_keyboard(); - tap(is_overwatch ? KC_BSPC : KC_ENTER); + tap(userspace_config.is_overwatch ? KC_BSPC : KC_ENTER); wait_ms(50); send_string(str); wait_ms(50); @@ -261,39 +261,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - else { - layer_off(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case ADJUST: - if (record->event.pressed) { - layer_on(_ADJUST); - } - else { - layer_off(_ADJUST); - } - return false; - break; - - case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader if (!record->event.pressed) { SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP @@ -349,11 +316,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { // These are a serious of gaming macros. // Only enables for the viterbi, basically, // to save on firmware space, since it's limited. -#if !(defined(KEYBOARD_orthodox_rev1) || defined(KEYBOARD_orthodox_rev3) || defined(KEYBOARD_ergodox_ez)) +#if !(defined(KEYBOARD_orthodox_rev1) || defined(KEYBOARD_orthodox_rev3) || defined(KEYBOARD_ergodox_ez) || defined(KEYBOARD_iris_rev2)) case KC_OVERWATCH: // Toggle's if we hit "ENTER" or "BACKSPACE" to input macros - if (record->event.pressed) { is_overwatch = !is_overwatch; } + if (record->event.pressed) { userspace_config.is_overwatch ^= 1; eeprom_update_byte(EECONFIG_USERSPACE, userspace_config.raw); } #ifdef RGBLIGHT_ENABLE - is_overwatch ? rgblight_mode(17) : rgblight_mode(18); + userspace_config.is_overwatch ? rgblight_mode(17) : rgblight_mode(18); #endif //RGBLIGHT_ENABLE return false; break; case KC_SALT: @@ -435,7 +402,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; - + case CLICKY_TOGGLE: + userspace_config.clicky_enable = clicky_enable; + eeprom_update_byte(EECONFIG_USERSPACE, userspace_config.raw); + break; #ifdef UNICODE_ENABLE case UC_FLIP: // (╯°□°)╯ ︵ ┻━┻ if (record->event.pressed) { @@ -466,81 +436,135 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } + // Runs state check and changes underglow color and animation // on layer change, no matter where the change was initiated // Then runs keymap's layer change check uint32_t layer_state_set_user(uint32_t state) { -#ifdef RGBLIGHT_ENABLE uint8_t default_layer = eeconfig_read_default_layer(); + state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); - if (rgb_layer_change) { - switch (biton32(state)) { - case _NAV: + switch (biton32(state)) { + case _NAV: +#ifdef RGBLIGHT_ENABLE + if (rgb_layer_change) { rgblight_sethsv_blue(); rgblight_mode(1); - break; - case _SYMB: + } +#endif // RGBLIGHT_ENABLE + break; + case _SYMB: +#ifdef RGBLIGHT_ENABLE + if (rgb_layer_change) { rgblight_sethsv_blue(); rgblight_mode(2); - break; - case _MOUS: + } +#endif // RGBLIGHT_ENABLE + break; + case _MOUS: +#ifdef RGBLIGHT_ENABLE + if (rgb_layer_change) { rgblight_sethsv_yellow(); rgblight_mode(1); - break; - case _MACROS: + } +#endif // RGBLIGHT_ENABLE + break; + case _MACROS: +#ifdef RGBLIGHT_ENABLE + if (rgb_layer_change) { rgblight_sethsv_orange(); - is_overwatch ? rgblight_mode(17) : rgblight_mode(18); - break; - case _MEDIA: + userspace_config.is_overwatch ? rgblight_mode(17) : rgblight_mode(18); + } +#endif // RGBLIGHT_ENABLE + break; + case _MEDIA: +#ifdef RGBLIGHT_ENABLE + if (rgb_layer_change) { rgblight_sethsv_chartreuse(); rgblight_mode(22); - break; - case _GAMEPAD: + } +#endif // RGBLIGHT_ENABLE + break; + case _GAMEPAD: +#ifdef RGBLIGHT_ENABLE + if (rgb_layer_change) { rgblight_sethsv_orange(); rgblight_mode(17); - break; - case _DIABLO: + } +#endif // RGBLIGHT_ENABLE + break; + case _DIABLO: +#ifdef RGBLIGHT_ENABLE + if (rgb_layer_change) { rgblight_sethsv_red(); rgblight_mode(5); - break; - case _RAISE: + } +#endif // RGBLIGHT_ENABLE + break; + case _RAISE: +#ifdef RGBLIGHT_ENABLE + if (rgb_layer_change) { rgblight_sethsv_yellow(); rgblight_mode(5); - break; - case _LOWER: + } +#endif // RGBLIGHT_ENABLE + break; + case _LOWER: +#ifdef RGBLIGHT_ENABLE + if (rgb_layer_change) { rgblight_sethsv_orange(); rgblight_mode(5); - break; - case _ADJUST: + } +#endif // RGBLIGHT_ENABLE + break; + case _ADJUST: +#ifdef RGBLIGHT_ENABLE + if (rgb_layer_change) { rgblight_sethsv_red(); rgblight_mode(23); - break; - case _COVECUBE: + } +#endif // RGBLIGHT_ENABLE + break; + case _COVECUBE: +#ifdef RGBLIGHT_ENABLE + if (rgb_layer_change) { rgblight_sethsv_green(); rgblight_mode(2); - break; - default: // for any other layers, or the default layer - if (default_layer & (1UL << _COLEMAK)) { - rgblight_sethsv_magenta(); - } - else if (default_layer & (1UL << _DVORAK)) { - rgblight_sethsv_green(); - } - else if (default_layer & (1UL << _WORKMAN)) { - rgblight_sethsv_goldenrod(); - } - else { - rgblight_sethsv_teal(); - } - if (biton32(state) == _MODS) { // If the non-OSM layer is enabled, then breathe - rgblight_mode(2); - } else { // otherwise, stay solid - rgblight_mode(1); - } - break; } - } #endif // RGBLIGHT_ENABLE + break; + default: // for any other layers, or the default layer + if (default_layer & (1UL << _COLEMAK)) { +#ifdef RGBLIGHT_ENABLE + if (rgb_layer_change) { rgblight_sethsv_magenta(); } +#endif // RGBLIGHT_ENABLE + } + else if (default_layer & (1UL << _DVORAK)) { +#ifdef RGBLIGHT_ENABLE + if (rgb_layer_change) { rgblight_sethsv_green(); } +#endif // RGBLIGHT_ENABLE + } + else if (default_layer & (1UL << _WORKMAN)) { +#ifdef RGBLIGHT_ENABLE + if (rgb_layer_change) { rgblight_sethsv_goldenrod(); } +#endif // RGBLIGHT_ENABLE + } + else { +#ifdef RGBLIGHT_ENABLE + if (rgb_layer_change) { rgblight_sethsv_teal(); } +#endif // RGBLIGHT_ENABLE + } + if (biton32(state) == _MODS) { // If the non-OSM layer is enabled, then breathe +#ifdef RGBLIGHT_ENABLE + if (rgb_layer_change) { rgblight_mode(2); } +#endif // RGBLIGHT_ENABLE + } else { // otherwise, stay solid +#ifdef RGBLIGHT_ENABLE + if (rgb_layer_change) { rgblight_mode(1); } +#endif // RGBLIGHT_ENABLE + } + break; + } return layer_state_set_keymap (state); } diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h index 746c7e20a0cd..5ef25333b13f 100644 --- a/users/drashna/drashna.h +++ b/users/drashna/drashna.h @@ -49,8 +49,22 @@ enum userspace_layers { // RGB color codes are no longer located here anymore. Instead, you will want to // head to https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight_list.h -extern bool is_overwatch; extern bool rgb_layer_change; +extern bool clicky_enable; + +#ifdef RGBLIGHT_ENABLE +void rgblight_sethsv_default_helper(uint8_t index); +#endif // RGBLIGHT_ENABLE + +#define EECONFIG_USERSPACE (uint8_t *)20 + +typedef union { + uint32_t raw; + struct { + bool clicky_enable :1; + bool is_overwatch :1; + }; +} userspace_config_t; enum userspace_custom_keycodes { EPRM = SAFE_RANGE, // can always be here @@ -59,9 +73,6 @@ enum userspace_custom_keycodes { KC_COLEMAK, KC_DVORAK, KC_WORKMAN, - LOWER, - RAISE, - ADJUST, KC_DIABLO_CLEAR, KC_OVERWATCH, KC_SALT, @@ -90,6 +101,11 @@ enum userspace_custom_keycodes { NEW_SAFE_RANGE //use "NEWPLACEHOLDER for keymap specific codes }; +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define ADJUST MO(_ADJUST) + + #define KC_SEC1 KC_SECRET_1 #define KC_SEC2 KC_SECRET_2 #define KC_SEC3 KC_SECRET_3 @@ -102,6 +118,20 @@ enum userspace_custom_keycodes { #define WORKMAN KC_WORKMAN #define KC_RST KC_RESET + +#ifdef SWAP_HANDS_ENABLE +#define KC_C1R3 SH_TT +#else // SWAP_HANDS_ENABLE +#define KC_C1R3 KC_BSPC +#endif // SWAP_HANDS_ENABLE + +// OSM keycodes, to keep things clean and easy to change +#define KC_MLSF OSM(MOD_LSFT) +#define KC_MRSF OSM(MOD_RSFT) + +#define MG_NKRO MAGIC_TOGGLE_NKRO + + #ifdef TAP_DANCE_ENABLE enum { TD_D3_1 = 0, @@ -111,72 +141,6 @@ enum { }; #endif // TAP_DANCE_ENABLE -#ifdef UNICODEMAP_ENABLE - -/* use X(n) to call the */ - - -enum unicode_name { - THINK, // thinking face 🤔 - GRIN, // grinning face 😊 - SMRK, // smirk 😏 - WEARY, // good shit 😩 - UNAMU, // unamused 😒 - - SNEK, // snke 🐍 - PENGUIN, // 🐧 - DRAGON, // 🐉 - MONKEY, // 🐒 - CHICK, // 🐥 - - OKOK, // 👌 - EFFU, // 🖕 - INUP, // 👆 - THUP, // 👍 - THDN, // 👎 - - BBB, // dat B 🅱 - POO, // poop 💩 - HUNDR, // 100 💯 - EGGPL, // EGGPLANT 🍆 - WATER, // wet 💦 - TUMBLER, // 🥃 - - LIT, // fire 🔥 - IRONY, // ‽ - DEGREE, // ° -}; - - -const uint32_t PROGMEM unicode_map[] = { - [THINK] = 0x1F914, - [GRIN] = 0x1F600, - [BBB] = 0x1F171, - [POO] = 0x1F4A9, - [HUNDR] = 0x1F4AF, - [SMRK] = 0x1F60F, - [WEARY] = 0x1F629, - [EGGPL] = 0x1F346, - [WATER] = 0x1F4A6, - [LIT] = 0x1F525, - [UNAMU] = 0x1F612, - [SNEK] = 0x1F40D, - [PENGUIN] = 0x1F427, - [BOAR] = 0x1F417, - [MONKEY] = 0x1F412, - [CHICK] = 0x1F425, - [DRAGON] = 0x1F409, - [OKOK] = 0x1F44C, - [EFFU] = 0x1F595, - [INUP] = 0x1F446, - [THDN] = 0x1F44E, - [THUP] = 0x1F44D, - [TUMBLER] = 0x1F943, - [IRONY] = 0x0203D, - [DEGREE] = 0x000B0, - }; - -#endif //UNICODEMAP_ENABLE // Custom Keycodes for Diablo 3 layer // But since TD() doesn't work when tap dance is disabled @@ -193,22 +157,6 @@ const uint32_t PROGMEM unicode_map[] = { #define KC_D3_4 KC_4 #endif // TAP_DANCE_ENABLE -// OSM keycodes, to keep things clean and easy to change -#define KC_MLSF OSM(MOD_LSFT) -#define KC_MRSF OSM(MOD_RSFT) - - - -// If we're still using the official Faux Clicky feature, substitute codes -// so that we don't have any unused/blank keys. -#ifdef FAUXCLICKY_ENABLE -#define AUD_ON FC_ON -#define AUD_OFF FC_OFF -#else // FAUXCLICKY_ENABLE -#define AUD_ON AU_ON -#define AUD_OFF AU_OFF -#endif // FAUXCLICKY_ENABLE - // Since our quirky block definitions are basically a list of comma separated @@ -286,7 +234,8 @@ const uint32_t PROGMEM unicode_map[] = { #define _________________NORMAN_R2_________________ KC_J, KC_N, KC_I, KC_O, KC_U #define _________________NORMAN_R3_________________ KC_P, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLASH) - +#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5 +#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0 // Since we have 4 default layouts (QWERTY, DVORAK, COLEMAK and WORKMAN), // this allows us to quickly modify the bottom row for all of the layouts @@ -301,4 +250,4 @@ const uint32_t PROGMEM unicode_map[] = { KC_SPACE,KC_BSPC, KC_END, KC_PGDN, KC_DEL, KC_ENTER -#endif +#endif // !USERSPACE diff --git a/users/drashna/drashna_unicode.h b/users/drashna/drashna_unicode.h new file mode 100644 index 000000000000..3d1bc03f9b60 --- /dev/null +++ b/users/drashna/drashna_unicode.h @@ -0,0 +1,71 @@ +#ifndef UNICODE_USERSPACE_H +#define UNICODE_USERSPACE_H + + + +/* use X(n) to call the */ + +enum unicode_name { + THINK, // thinking face 🤔 + GRIN, // grinning face 😊 + SMRK, // smirk 😏 + WEARY, // good shit 😩 + UNAMU, // unamused 😒 + + SNEK, // snke 🐍 + PENGUIN, // 🐧 + DRAGON, // 🐉 + MONKEY, // 🐒 + CHICK, // 🐥 + BOAR, // 🐗 + + OKOK, // 👌 + EFFU, // 🖕 + INUP, // 👆 + THUP, // 👍 + THDN, // 👎 + + BBB, // dat B 🅱 + POO, // poop 💩 + HUNDR, // 100 💯 + EGGPL, // EGGPLANT 🍆 + WATER, // wet 💦 + TUMBLER, // 🥃 + + LIT, // fire 🔥 + BANG, // ‽ + IRONY, // ⸮ + DEGREE // ° +}; + + +const uint32_t PROGMEM unicode_map[] = { + [THINK] = 0x1F914, + [GRIN] = 0x1F600, + [BBB] = 0x1F171, + [POO] = 0x1F4A9, + [HUNDR] = 0x1F4AF, + [SMRK] = 0x1F60F, + [WEARY] = 0x1F629, + [EGGPL] = 0x1F346, + [WATER] = 0x1F4A6, + [LIT] = 0x1F525, + [UNAMU] = 0x1F612, + [SNEK] = 0x1F40D, + [PENGUIN] = 0x1F427, + [BOAR] = 0x1F417, + [MONKEY] = 0x1F412, + [CHICK] = 0x1F425, + [DRAGON] = 0x1F409, + [OKOK] = 0x1F44C, + [EFFU] = 0x1F595, + [INUP] = 0x1F446, + [THDN] = 0x1F44E, + [THUP] = 0x1F44D, + [TUMBLER] = 0x1F943, + [BANG] = 0x0203D, + [IRONY] = 0x02E2E, + [DEGREE] = 0x000B0 + }; + + #endif diff --git a/users/drashna/readme.md b/users/drashna/readme.md index c4e305e15bb2..79758e7e5696 100644 --- a/users/drashna/readme.md +++ b/users/drashna/readme.md @@ -146,3 +146,31 @@ endif ``` Then, if you run `make keyboard:name NO_SECRETS=yes`, it will default to the test strings in your `.c` file, rather than reading from your file. + + +Userspace EEPROM config +----------------------- + +This adds EEPROM support fo the userspace, so that certain values are configurable in such a way that persists when power is lost. Namely, just the clicky feature and the Overwatch macro option ("is_overwatch"). This is done by reading and saving the structure from EEPROM. + +To implement this, first you need to specify the location: + +```c +#define EECONFIG_USERSPACE (uint8_t *)20 +``` +This tells us where in the EEPROM that the data structure is located, and this specifies that it's a byte (8 bits). However, to maximize it's usage, we want to specify a data structure here, so that we can use multiple settings. To do that: + +```c +typedef union { + uint32_t raw; + struct { + bool clicky_enable :1; + bool is_overwatch :1; + }; +} userspace_config_t; +``` +Then, in your C file, you want to add: `userspace_config_t userspace_config;`, and in your `matrix_init_*` function, you want to add `userspace_config.raw = eeprom_read_byte(EECONFIG_USERSPACE);` + +From there, you'd want to use the data structure (such as `userspace_config.is_overwatch`) when you want to check this value. + +And if you want to update it, update directly and then use `eeprom_update_byte(EECONFIG_USERSPACE, userspace_config.raw);` to write the value back to the EEPROM. From ddb1c83695008bbf87d6bebc836b408ed70a8abb Mon Sep 17 00:00:00 2001 From: Florens Pauwels Date: Tue, 1 May 2018 17:08:48 +0200 Subject: [PATCH 328/578] Added archlinux support to linux_install.sh --- util/linux_install.sh | 9 +++++++++ 1 file changed, 9 insertions(+) mode change 100644 => 100755 util/linux_install.sh diff --git a/util/linux_install.sh b/util/linux_install.sh old mode 100644 new mode 100755 index ef9de5b19f59..e071b8ad30fe --- a/util/linux_install.sh +++ b/util/linux_install.sh @@ -10,6 +10,15 @@ elif grep ID /etc/os-release | grep -q debian; then sudo apt-get install gcc unzip wget zip gcc-avr binutils-avr avr-libc \ dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi \ libnewlib-arm-none-eabi +elif grep ID /etc/os-release | grep -q arch; then + sudo pacman -S gcc unzip wget zip avr-gcc avr-binutils avr-libc \ + dfu-util arm-none-eabi-gcc arm-none-eabi-binutils \ + arm-none-eabi-newlib + git clone https://aur.archlinux.org/dfu-programmer.git /tmp/dfu-programmer + cd /tmp/dfu-programmer + makepkg -sic + rm -rf /tmp/dfu-programmer/ + else echo "Sorry, we don't recognize your OS. Help us by contributing support!" echo From d1dfefc8971be50f85da4084a78de00a163c6482 Mon Sep 17 00:00:00 2001 From: christopherjanzen Date: Wed, 2 May 2018 12:57:33 -0500 Subject: [PATCH 329/578] Add cijanzen Pearl 40% keymap (#2878) * Add personal keymap for Pearl 40% * Updating readme and adding keymap image * Updated readme * Force make to use Python 3 * cleanup keymap * updated keymap image * update readme for new keymap image * reverting atmega32a_program * removed redundant sections of user config and rules * fixed user config file * fixed led indicators to properly show layer 4 --- keyboards/pearl/keymaps/cijanzen/README.md | 29 +++++++ keyboards/pearl/keymaps/cijanzen/config.h | 27 ++++++ keyboards/pearl/keymaps/cijanzen/keymap.c | 77 ++++++++++++++++++ .../cijanzen/pearl-cijanzen-keymap.jpg | Bin 0 -> 424673 bytes keyboards/pearl/keymaps/cijanzen/rules.mk | 11 +++ 5 files changed, 144 insertions(+) create mode 100644 keyboards/pearl/keymaps/cijanzen/README.md create mode 100644 keyboards/pearl/keymaps/cijanzen/config.h create mode 100644 keyboards/pearl/keymaps/cijanzen/keymap.c create mode 100644 keyboards/pearl/keymaps/cijanzen/pearl-cijanzen-keymap.jpg create mode 100644 keyboards/pearl/keymaps/cijanzen/rules.mk diff --git a/keyboards/pearl/keymaps/cijanzen/README.md b/keyboards/pearl/keymaps/cijanzen/README.md new file mode 100644 index 000000000000..745442955fa6 --- /dev/null +++ b/keyboards/pearl/keymaps/cijanzen/README.md @@ -0,0 +1,29 @@ +# cijanzen's Pearl 40% + +## Layout + +The firmware offers five layers: + +1. Base layer +2. Numbers and arrows (Fn1) +3. F-row and navigation (Fn2) +4. Media and RGB controls (Fn3) +5. Utils (Fn2+Fn3) + +A few specifics worth mentioning: +- Autoshift has been enabled to allow for easier access of shifted keys +- Tab will operate as tab key on tap and fn layer on hold +- Indicator LEDs indicate the current layer + + +![cijanzen's Pearl 40% layout](https://raw.githubusercontent.com/christopherjanzen/qmk_firmware/bab090ee24866e6c38892ffc5ffa53813aec3832/keyboards/pearl/keymaps/cijanzen/pearl-cijanzen-keymap.jpg) + +Base for this firmware copied from jetpacktuxedo's and rask's QMK firmware + +--- + +## Compiling and flashing + +To compile and flash the HEX follow the [Pearl 40% instructions](https://gist.github.com/clee/a43f198a70de0e6dae22d7638b41440a). + +You might need to check the comments at the bottom of the gist as well. diff --git a/keyboards/pearl/keymaps/cijanzen/config.h b/keyboards/pearl/keymaps/cijanzen/config.h new file mode 100644 index 000000000000..b34fdad90a0a --- /dev/null +++ b/keyboards/pearl/keymaps/cijanzen/config.h @@ -0,0 +1,27 @@ +/* +Copyright 2017 Luiz Ribeiro + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include QMK_KEYBOARD_CONFIG_H + +#undef BACKLIGHT_LEVELS +#define BACKLIGHT_LEVELS 3 + + +#endif diff --git a/keyboards/pearl/keymaps/cijanzen/keymap.c b/keyboards/pearl/keymaps/cijanzen/keymap.c new file mode 100644 index 000000000000..896e157fd630 --- /dev/null +++ b/keyboards/pearl/keymaps/cijanzen/keymap.c @@ -0,0 +1,77 @@ +#include QMK_KEYBOARD_H + +#define ____ KC_TRNS +// Tab on tap or Function layer 1 on hold +#define FN_TAB LT(1, KC_TAB) +#define KC_SLP KC_SYSTEM_SLEEP + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // BASE LAYER + [0] = LAYOUT_all( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + FN_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(2), + KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, KC_BSPC, KC_SPC, MO(3), MO(1) + ), + // BASE LAYER TWO (Fn1) + [1] = LAYOUT_all( + KC_GRV, 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_UP, KC_QUOT, KC_BSLS, + ____, ____, ____, ____, ____, ____, ____, ____, KC_LEFT, KC_DOWN, KC_RGHT, KC_RSFT, + ____, ____, ____, KC_DEL, KC_DEL, ____, KC_RGUI, ____ + ), + // FROW LAYER AND ARROWS (Fn2) + [2] = LAYOUT_all( + KC_ESC, 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_PGUP, ____, ____, + ____, ____, ____, ____, ____, ____, ____, ____, KC_HOME, KC_PGDN, KC_END, ____, + MO(4), ____, ____, ____, ____, ____, ____, ____ + ), + // MEDIA AND RGB (Fn3) + [3] = LAYOUT_all( + ____, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, KC_MPRV, KC_MPLY, KC_MNXT, KC_DEL, + ____, ____, ____, RGB_HUI, RGB_SAI, RGB_VAI, ____, ____, ____, ____, ____, ____, + ____, RGB_MOD, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, BL_TOGG, BL_STEP, ____, ____, ____, ____, + ____, ____, ____, ____, ____, ____, ____, ____ + ), + // UTIL (Fn1+Fn3) + [4] = LAYOUT_all( + KC_SLP, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, KC_PSCR, RESET, + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, + ____, ____, ____, ____, ____, ____, ____, ____ + ), +}; + +/** + * Status LED layer indicators courtesy of jetpacktuxedo's firmware + */ +uint32_t layer_state_set_kb(uint32_t state) +{ + if (state & (1<<1)) { // if we are on layer 1 + PORTD |= (1 << PD0); // light num lock led + } else if (state & (1<<2)) { // if we are on layer 2 + + if (state & (1<<4)) { + PORTD |= (1 << PD0); // light all indicator leds + PORTD |= (1 << PD1); + PORTD |= (1 << PD6); + } else { + PORTD &= ~(1 << PD0); + PORTD |= (1 << PD1); // light caps lock led + PORTD &= ~(1 << PD6); + } + } else if (state & (1<<3)) { // if we are on layer 3 + PORTD |= (1 << PD6); // light scroll lock led + } else if (state & (1<<4)) { // if we are stuck on layer 4 + PORTD |= (1 << PD0); // light all indicator leds + PORTD |= (1 << PD1); + PORTD |= (1 << PD6); + } else { + PORTD &= ~(1 << PD0); + PORTD &= ~(1 << PD1); + PORTD &= ~(1 << PD6); + } + + return state; +} diff --git a/keyboards/pearl/keymaps/cijanzen/pearl-cijanzen-keymap.jpg b/keyboards/pearl/keymaps/cijanzen/pearl-cijanzen-keymap.jpg new file mode 100644 index 0000000000000000000000000000000000000000..60e5c4746400bc6a51f8845ed8167086b804bd93 GIT binary patch literal 424673 zcmeFa2UHZ>wk}+Xpkxq{Oez7*wxbRkfMMVIpBFxL$*45tc zijBRav&RjNZ*Mv|t~lG>;4qfb6xH;)W$)yC=b?|i{zEMT+lQ{Ua&{bw3Rj>od6>JG zyS<Ht>dkFakdiYtxggksX|7Q!g z?R{;1oW1;w|6~G^C-5&gO z0PF3+KQ|!or~JX=z~!%U^>vUC|4Y>w3MBv_ULp|oz6a@f`b6(ay)_*w<5x73<-~a%- zB>+Ha3IKHP0f5Z>51E16er^YfW&yz95qPUc03bUD0C>RtsVxW#po~Bp{{LwC*~tG< z13wQYyai}4oWT+=5}lz1&eEPCqCG?C0U+SRL;OeEKRfYrIdhii95KoH3#4S^;0_Hm zz}YiIL}$+t5fh&~2W|}pw*%*Bi7#FiyGcT)Yki)>`;z$Y$y4wiBy4;_ zNy#oVFfuW7^YHRrQr2y#ujaGTgNmz+E7RB3K@V~J1K{+loEj2sGZbDo<%|G*szyfD3*5$la9z^Mk#mS z9tP>P1EF~*cD6|=ca=%)tfb04A?g%UnaDs^|l&{3bqRvi4Yux9Dp(V`S~1zxbwv)kwUG*?+5F>!GZtr&*z-1(I<<0x3ZN&eMnV zK7PWDsR8n6SA-s&dl?+aX88p zYCr&<3g!|3YFRk`wl+4p;y{o96ck7kfNt`81mIJ-A}R->u6T6G%M;JT2*K+?FoFgA z@b{NB2|!eyA_3rlU}%kZObNgZs5=1&zx;*(3>d(BB^A=(`+O_QxVxf?xEG4Qo=FkK zQT?F~{}8r704@jx5P%d==&?@0d<5XLZdWHZ>puMO4!oxpRz?7RGnK)!dl3L!G`vUI zs>Ttwk7>fwn0+Gv+`0td()%ND{k|v+juCxJ0Ct}cfEYWBKK^m7Ck~1v0EaXLAUd|w zX6$ft)f0E6VHvMpgunJ|zlZ=lQzan)DC^$|z}i&;aB%=ta&pFQ85@WIn*l3mL6H{j zP4+EgZ@PBk(p7Q#w>DJ?fKnnQ0q8*x5rDy4c<$6*?W3~;o#?$NP*}I{9Q-G7iW?;f zo#@b6_#uB1_GQ#W5GXX% z)qAJo)9LthYDb*f5vTUvsa<|*m!JAir~cEapL>c&oZ=CuxX~$Ybc*kt;;^SU>?vM; z%4?kR8u;6%c=;(_eu|f$;^n7!`6*t0ikF|_<)?W0|G)9_tu`>A=R8RW!jf}F$gf?a z=V&&vs5Sel1_7Xf$@CsD`#`hFHbO{bkBdhN&o@$= zH+glqW==XFW3@JDS+HliYhBLLF}(WsVNuyu@wJM`-W81Grj6+L%>gsN^2u=2k2|m{9W^Y+qxBuQzf$Ptd5svZQpN?$#wq`&PhG0 zh~-!Oq91(Bg&zP#*TL=7h_-}9E^9{iBMt(tjFRjFdo?)xBB& zM`a>XY}$Hl$;HjBt<7nf0Re9O@mx-q`I0$qD-(e7%BZUY%~m`^vH?*(!|a;LpFYSl zg&3!=?O%=RT6qm~;`ejXDbnQY6N{bRzBVxEn^tm7jQ~_&DM-i#x~zS6-jJ&j|K6or z64j0L+F#X5Ad_4jBJ)GCaHUw*2BhVty6=78X0!f{7`O!JoH_mY4~pQ-aVG&dCvZ{^ zbw;}$JQ)XHrsEU!Z5^yX#{RpSq`UOiR-jOu*s3O{>XcNSbUrylBDn~IbF2SST!q=~ z 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%0AEB z%9NusjuvF<=($$)aj90K$QJvTDzWf7(cTaewNfb3?;PUoDQqY|B%@^0p^7C91pXW` z;eP4bt~Mf6XQ?SHeiv_V@jzFmGSz&9c$*NNYphRMRd0AXERn6{6}Kgsf@K5Klu`?W)a5*rBGt!gDT^EF)ikF`|^JLYVS*g zRu{2_EvXH6v1DZwiv7J23vE^~-|xIy=4llZ`&d3@2Qe_`vY2=0p0-7LT;U_|(dycg~8m z17f&Jzm&^nD?5r*rk~!m>(OA~-4bYLsObkOSB%n58(q3%6JuSq=%Qrs<__O zhNB=GeOi*dpZ^C(-(@QlOKPI$iGjt*D-Q|OA&GajE^d(yy@$1lQSY6>e!*?IaEO=0 zD)~gio6e@YD0pwVaPmqD5A6q~;8;X z%TgpUtg7Dh%Pl#$>b+@%lVHY*w)BvSWHB~2Fsw^s%yMVPyGC3fECAcXsHA0D`Jf_W ztd*_Q@}#>P&^ojE8xJq(_Daz;Iehx=*L2uep_h(&{Hm>byV- zW4TL&DCnpuLci|=e%_u#ixwZURS}yf+2Gh8tUXGHpM&mvSzA8dMJPe5)PUvEU@O|> zRH8lERp~LgvThGUG0`|6(h#KdfNnSne#hwj^C=9M`0at=CHK3o=2H)iy&g3!H|zL$ zQr-B&*3dM3t&RO*i2uEMs?Z*ET@2qjqRz@FJ9Y!@bHP1=0dE*{c~6}YZ6z+@Q||t1 ziz{ipE;O^g>Ep*XmCWL>kSme_3YbJ`TIyw7vIve(e%y~_*l*b?r#`-~^PtcncXhqe zk>HPZaC=z)t9jb7bkjk4TKM*aIZBtlY;18*X3*u!@KH4Acq9!v+FZA1jm@jDs)|xF zj?7(p$#-|&JkjRSOujRxz|;qqkZ723mrVy}Y_Az+gd0!l0I( zTjz5>7A4&LjYpGHx4^<~GSdA=u)_Wz?Td3~EzX&rk$nlKy_asSJXgAc*QC}j&-Id@ z(pQzAttfBNSI>#T)?I*m_U5t`U{h#_NKJfQbaSlLvJUV&F@YTt?3z@ucJk1sn)zV zi89D7@Mua!(caRqD9waifO~(%C@x91;VB6;@xS$D2k%aI>R-%qX6t$Dw(#hWqSceM zuxbJNx3=!B?22t!Z02%{>MhlOf@RT{)%N6=`miN&6^Y4wFZ_bsO^RWxTn{Yb(?xUx z%77Xi#9hU7!`L5XVC?q-rO1+BFr2d#U@hE-CqMowTlI3quRVX{Z0hu&qiZ@=j>k(> zUM8D#!&bD8?hbbX;NG9W;3|xgLJ!^=p^W{LgoW`D>O=;-98qcJKKr4i0J{hW^bwnvc>!WdXe8kL zG)zJTkUc?|jG4NQShl9p-$~W+d$Z5ZX;ek2nG)ol`6_ibJqL0biExM)%d7GcuKfEJkkzxkTRxKR6p&|H6Gh`h^qiZBgkLmlK^hsl6GaS)gCCAwA&ou2qpad)+enTDcf+ z@_>0EKWjW@Hm$&FX4^C!WnB9G*P7son82%}5yG8;B77ly&}hyv=}rAsv{u+HnDsweSEhd*$eqX@$mnX{4@P?M=z05MX!&Y0YS|8f+{xp-3pY~ zJrow(+`~c)-31!Xos4hQs?L>_FZCa)8*n~McJp?g_^q_aB+e}R#)e)8#V&G<(K7}f zqkUJuc7jsAW-Kn?T>s$%*d9KNhLYo2r$MI)>uBCr#*B18OC z#~t;lk)(NFP?g#)Q;aVD&Cx%L506l~Ey|XAWBHTmw$1KxU**54jA&0)%NN}ECL#Y* za(K?5z9q3Cd0}{%_GgXP=ML5MXxfq_y(XFSiZaSVqy3Hz96RPh+(66YOSRp#RxxHP z9T78(qo{6;N2-xge1>jXdTzY#?%m87b)B*54dc>$aFg=C|4Cn8EEDpQ{OWTjjR?4W zKNPVc6alP02IIqE0dGRvf7Re4Fdk}^dY`SI1+ukY;A!aG*c(&U!;WJ#wT>3ogD)$*|duw~t66Z<|pNQiV zfZ%gvjJe%~kO)=ESMX>@81U7o5D}W^(@N~3Lgmav%uCGk{+a5VCb}AwUI#OL;{;=! zeBbz~3U#Zh4mT8xK3d7~O^h3|Dkg`M6&Y%3bk& z-_7??vw02yA;EsGPU`5d*7^Z{;xhcB{EE1VKCIJ!clEcUY)suv{=?Oqp#IC%uPG0+ ztO;@G`uph&Ee}={x|%g2q!`Ud_f_7Vqu~Vua?9)YpNNJSFv|`Ym)v1bK|4=Y;sa&c zE0sc7{5UF2o$OjfeTnOVN&9PX;ZZ9_ISkKx3 zAV;??Yz8GUrhPMIDqnaaxB}3t(is3`nk$wzxVu5bgllsqQQD zo52i0<+oNL7k*H#>8oJ-s+%m39#%Fjd7t9>^S@@3h%p&Ah`PrHz9IIxXm z(>{mmqVjIjnap&$i5qv$qke}M~xy=hKf#I z13el~0`f4Mh%L8+>){{+*AxVfQxCVTGd_ag-`ywf@nTh_bQP zj-USxz1%We-uly1{1s`LZpE*$B9Cyi7J z?d!>m$9n$p>4D^gL2p6qmW4MpKJQt;W4?giZVo(&KW=Pq=-nF0Y>=dPLBn&PQ}cFJ zln73`zF$r9PNr_Bt0)IgfmW2xgX+Aa6Z=_7wL7&Q$3GV;Z9I;X)=R|QK27w^1$6e& zCZtkK&*L~EFW+@5X$gNt+Kcc53K`Jv=m=HhH)$|Y9>VYS{O^##yoDY0-av;QzN%Xg z4ol*H(9&}+fkmgkvvSY+-WI($OopZ{{jJc*tABqD;aSt;+-7jnZfxE^9EHRAl z)e2)1N0`zG=d=@0DZ>HxrJ9b%XgGDZ3a_QKMCnFM@{DH;U)I_7EPdiUAFU`d=nx>@ z#tfrL`7j$T^q&!NdkQhVHI-(V=^NVrRl9QfH@%)-7`>h~w^Am(o*3Lq;-PWBLt9&t z!}IInmhm8yI{nF-I@M5Nb*=`+Y}I)^v?kNy~Wav7L1YF=EI3Gm@o^FFumN69roDIv0fm^c+JXJcTP?bz5kCxCIR zuS~0eiH_kF8W+EwmGU$w4Nq1*6kdo<(}!U=Czh2O>bL_bz@SgG+})qFpL zP_M|#XzXgo|LQ7-7v0S@aaV8o5UyxH(cERcI4JA5K79Ek&0h{{Ac503H(rl0>Km*`qRd?=6O={zNoCn< z@XB^^FAf+=k6E+K7evcK6g;2*hn~ zYJ876=ZuE8+PLsNy`!*JpX&`Bxi$^!>uWZ%YwL~cYh6b^U3E3B-Q|U|b&ZD_lctYaE}L3Dwi@=wetDTd&tD=x_kXxhd;`tbq)*O zzY^l8!$&8RBFpA1s5r>|vdSrOMrlA_SyPc6-kRnYK64o1HpW^xm2__k^vgU3Q>z`6 zZ!26SwXj&3r2KIX`W}MBjK_uwp;H)_XaySWFWKFanP`ST7jOJ#D_3`zG}?JZ))Fn1 z9&4y_vtfDO)C*i+YW)$j&GYYzgYnuaY(mDXC^iAVHrr}(jV4vpad5Z zjdjHyHR}$p*T^ysLWmNBq}(}l&xzC$7w|B_gxft+Me}-qbcA}K=g?Jdne5e0MJfId zcncupc%VBXq~NtyFuM1G_O>{Im`Ie)22AHa^93XmT+ZUC;OLcj-OTv;^AvHNGy zl^o>=J=htyCBjx6R-`z-cm@niZcdiwdRNENrMu6iFlD;kJk#0Q*nf7RKV|vo9Mwe5 z-MDog)VDvBb3_M%5C+MhA-eSASTSBr8$Ymtd0&K7Me|%rb zkh91EUc{OTX2=;$BsOa1Ob0pT9@n3R*P^L8OK^=v1h3Z3 z_w+`H6S5K%^a?yN-GXyIon~*hxn?V#tn2Jb?Ru--+&2_sZaL-k5>s(Ogh%F$)XqEh zN%STYnp4se-Kmbt3{QJxDS0uIT6EZdN5e4s!-{m^wGxA9Zbn1#2dFa{YtEy}?@aU3 z*F>PTAK*Y{7xoQzhkkTtm$~bP_SS)i6(Rruy?#A*& z(V6a32wrkN0^+yA_?++bL^lsnW!t8UAaH!{#a#J-et=O+ePh?O;n!cgf|kF)vK(zG zy=Z^JqifRr^F30lyO)(#`^A41U4}oyz<&vk3$Go>R)%Cgtlwth>7fT{92$$9fBQKS zrQ0gStkg!MI+N<}XQa2jKXzrTJ&UV}=R_6*2A*1loQ@6tCRIBky8bA`9N{JDAi>pe zm>jGn25dnx-~(2l|Ii`$V3(siBMLdgwe(LRG#~k}>xSD{B}s*M_-$6h1yO^xro-Cv#{nmzh;K(s2P8Tm-Q3MFBA-R& z7ZKFwKUNZ%>?vNv{M$7-*^Xd%rmEXgSzK-aS0HAcF;^6>5W$Op5KZv$!@Gt=Tl_|^ zJ!6dmO|q>Pl$PkD^V!-slXd>W`}BpNYUZuWm=~q~b~>s9rBM&*YWx@Tgolb%Ld>n7 zjT9SIm|3VP@PMhcS$gGr-^5D!W&>~iKqVzKMnjE2!yMC380R2JvEiis@}&cC7d9Zd z)hwbTg=K2IYR;j}^)G=4p)a~G{n4bq!N&@M-bz*RkV{X&`A1>&keq#Et1z$4_x54B~}YT}TS{(#1SCoOrt5AD27F zM1m)L@;}DcJpCjx8IV`T%NmFWf!71NUQ3fS24O_*8gpUU^m%T4)Px+duo>|z2Lt`S1SC``Wn)771m zg#E>@iT>4gw#mayq$fAZ5Kk=QhW#E4tfh|R_XIshJ?rmv^qrQTu5j3#Td(4>+0V<$ zLAVm?q7lq1;Ap`0A7k^~pJ?zV=+^sskrc2U+-?%Z&96**GWfsTVTdYAPrPoe!?kt0 zvYtLgH;Kz4RKEVefh*9>B#O&)wbXsGjP<;4{3b`AsMrwXYPJi<;#cWGmz+$&aygk# z4cYlYWvI@H_boSvPM zugJ|R)4HE2<-w#k%SrZ!+U9^zhD3J~lLX!KATCodEzkopHCZaq=ZJdK{*a;JFV&<) z6~&TqFMsm&>8IzZgsG1X|58Q9Bfk%?gYYx=0eT$KUI*B{=1V{v(@8_l^A13cpWUOp zIFm#e%=L3mn4y(B8vWNY6=@;3i3xV z0ZCzb4^Xj!pHKazqNf?`IZ!3`0D@CnS70wUVCJaE)#YPel0EpJWE1!{%~Z&~UcxT< zB1H-i8)R7m#O(qV6#J0)hZ2Ki2gLGv)qt1Ti%MH6Ma@smi-jUbu$fR=AdKK7?Cve{ z6~Ed&U$60k=_XH=oT{80o6Gf_?9@+~?@i39Izj@4I^RE^en5j8C$VHv44HvGE-*%( zA$Y4L_=ukA@z;Z-5~(Q^Wi$e`gn*&qTz}g?gY0>d;DFc8s)y3Fct2tacI1K-Jxk^7 z-YrCsOkj%9CR}`1+K0(Z(4VQ>xh9aG>eSL6rz4blZ%FO)xuX9cOasB!Bf|bt-RVjA zONB3+MIPOFD!K$8AK*%4^n44i!?Ybvp5|NHx1EuE?W;u#cYP24!qj{A-nFO7mH(W* z{l8TCd&r_=IS)WO4c&NPKSvfIkSqRDDFu^}6BE$afUS*V99RGPV(Q3%oz&DrJzLd& zJAwMvo2RYkJ#!1HX{kQYU0^pFczu!TJQc6->E(Y98^{GovB0w|WA9YM6KrQ3&M>i+ zRoO4!rByzo9poo^n(@kN0gU>%EkXcx+;Ff02umLv zGlHAg@e%s_tFJQIX|;%yYflZ`$sYmG@7#|mU#-9$9siCsi+?$++xT*L_@3ykk5`g! z(Y(~Y@|nhrF`4A&!-b|v?1Y`Uce?ZeF$R__PyO0duiuQi9+)fbfA_ule>ohC|9Yc2 z-WPV%Y~N3*-sY;UCXfd~HQI4#AhV}1J(;nZOpALe`<9yi|L7j5zK@@ur+hG5)2Npp zvv+)0h#lvf$4u{)oty(7UzV-DNcZ~UYs5_g?rGJk54-47Dr!vbN2-fYPlY|Dc_@4e za3}xI4&;B$5dWXLwo_xvTUN;x%I~LlcZ0YyITRKDm@FA+>GbB}bOiVX^4SJ-UY|ET z_0J7F`vCYy2I9}ZRDoau4iiETQ^v@E`*JU9i3$0Q3`ktjNrnsE$>1mOb|~c+BiXsB z9zacDz=cMW=>Af@F9I$;4aW;<=BF5+^e>;(BY%JKeGq;P`kmkxL;ea5^~j@`9}53; zK(ZbON!-!Pw{_3@^FHV!w`PCR^kLdl-+Ro~o&Hq!XihbJczrS9-{WA?MqGgto|zNc z5_0ZciNxtYdd~RZR#z`gyZotk0n^26Lxt+@(ruGqaolN_KXRPt-MnJ$icav++jr5gVCcp5`uiKH09D0CgbVFup<@w5T|zGnvd zdYAO3Z7Pj2+6v5GyOA=!wF?rG@6-RB>qld9KoqF^D%5kER1HnP{ZvtYnVFcS728`v zjIo(?5JrlLWht>6 zG-|v>L-U-E^H*uoGoDMPkvDn1QL&sN0es(B2y~px*@A2;+J7sxO-Y4Qra_cdrS$yx zQS{jvndnNectE4$yeh@MS%1B@0M~Qb!dipzE4)5@;&{Q>cQE6 zlLXAg!w%#>O_w4qK>ky8oAw&7o_SAq>?MEN` zn2+w8xoDZ2iw@rr6Sq7q?*@ujRdVtkzfxv7~l8HHdzu~v~?O)_6^(X&C)NusUP0qkm!^Hpd zGvPGrMH?%9-u~)+Yn!`Y-xMyvqTRlpOpI`gm4sDM-{ieXe74$u3O2ALX+}jw6Q}T! zikIs2AF7KV9)OGdzm%x|Z;rFn1>Ms@48{RL70XLoiUJQ8?QIQ%l{tmZdB&vPmeuKf z{3w^I>?WiLiZ^3Cl3q?;{&OGt+aIA;x3fFH3sSXkEIWC5`FKZZnq2h*{6Hun@-Njd zkm$`?t1=R=BT3mlABs*u_IvzJHVJMqt&-@&M)bm#!@zB+LPrfO8YGCKld8!{h{}veu6<7^P z;b8UQhQCXHPOBj>d+*BcGu(@p!hrAU{KNbWgwsz`{~1n0_}ojq^GY+dT%UZP7RL~7 zUiwV4nnGe*rRaNNm&sYX49KkxVzK?^_)Zx}lb@~HpUCCxQd$?OkPpbr$nV$<#vMw%b%`5usm{4x&tOI2ZJxSkk%@=K1=*8n+w;?f@y zBT`lF`F<&W?D$4g<))O-@xYVkh=8l-A%bze!a+mck`-3u3=X=_aJXQKB5*FDTfc*YC zV*D@Fp%5J8D2AaD$aZ9-3FY26Cv*pewI`do#Qf2oV5Z#dbO%If_fbG2NJjeu5adH1 zY4ps497es3lG~z7`Eu-v9F`!0-J?fAATRk))DE8lHF#YTXn5Gim^2t1k{DDg2U{S^J-Gga(_BXum1S zxDmZR@9msrRwZsuf2o9GKx{#CjIj{t<7IaY7*^_uiC=kh*O+u8`damJoMbo>-vh+k zU#cX70ui+}iJ(+*3@<0B=xXw*EUv#3^3zlq)@wGmu zJgtIbV|E4#xu?sTOf3Vq8RJ{+WPMmY7fk2y%!kWOUpD#ZrxaqZg6TqIi#0DyC;L{# zg2yFo%2C94%4tw*V`_*|dWo`~-uFnMg<(%oap?tW-csmA`wNnML;L3~bbEeve`U|{ zGf6QD#ofxed<5D#EYB)!Z4e^ReBng60?-Cc`&-0+L@UXrJsfp^K zpVa29mQKn0`qNh|SAw78l)S5dm0WP>s_%NfbYj>UAI81y8P*X}oI;YsEwSJ(p2a=> z6WLxRQIkf1Ft}uQ7AcQ-4(D$~4L+h}TUrTvqH)fY8yt}-6G%UuWs z4>MQN)x0(3Xw6)wy~ke})cBk;9jhJ^vOSU|O{+fVy_n4BshB~D1x(iH29#K(7n>(; z==$buRc)jw{mW}PBS57C=$Zubsb~aJ;Zzp^dZjtltL;%{OG=oALsa<8pJDS>VHuA7uaOD4<1$(N_S|PULfC(2!I&PDt=e^#l6} zB?40k2BY%7_0_pT%aH{&@(b?e1-YT}vzxU^^!IN455&s<$*&v$fc7cT-F!qtOoTEa zv&N?w4(qeJQCvriguSyYjYsQFNtC|tC>m-__N>aeYn0K})bt#8xQBhy($rSC?pBNp ziz2$JuNv@wB3@j?)Q-HYH1vYvH8rtDjAtqz_%{zsq0F)O}n!h!Z zFJk;WL$@hPX;|+Fobu-ml*!`&%HlFh3zFNTwVSP#jIthpv8g<2yea=K;`%m4rIip9 zeULd_%SO%8Xte~dy7hT3(A6B&V2XP23!W$29CPF^#|R>GQp$uFn$#BMe@wb#|3S0w zz%S&5$PDE(>O&5c4u;L&mq|YNqH-V*8;kZm^vl!Bd^6(zse?DAAk;!lP|}~W4}96v z2Kqip-o7=Z(3~U#DoYzNSfUGo>7%cu`u!$Ioaxo^QI6@dEGHT7QHT2WP-2{cyxYtx zG89I`JD*vL_zNN^tmBNP#x!`BentLO!a;wd+wg6=}!oIt#xqCs*kd5>Nzx)EPtnheS z9M#V$8P|bpN1nW|+Sp)D33YOEQ1m$v7$&vag_~H|`0>jS; zaV!GHPS|B|mX|gez&howG#p{r<=u^jq?O*Y?yIzHYc2I%Mx$a-ioz<{l|+QP;PzY@ zXM_Q=_fmws+vm+5Hqc5W8&d{GEZb)vQ$*k@!}jVv3O{}Yb{H}c=dY&sA6{D!P!Wp! z<=A*~b6WECbc@(XnC0Vxn%iOa2lj_`MC)9$LAc+lpgo{*YaCX#6GQ(J>^C`-?OS6m zPQke5i>Nfu7}i|RGaH5HM%{bnEy_3<8D0;Z*QrxoUDuT}OCJk^CPW|9^!6 z#^G_II8DC~JzVZkXSSQi1E#wqO6;$LyWYbOWHD=bTaEWFi2)T$AU~tW{4s@`gVHQ@ zKeok8h}Y((#LCAeM%YY_FdqN&idAtJg^#t@Z2X>~+wp&*Ew#dPT<4?iO`Ea_#Sw#5 zu{L?4C}Zh#WV1|*oVd4xR))5L?1%638HVmZMNGj!UPtHAQQ85Jc|C_BEbu*vAWi6kU|S0U zD{ys@xqspUi!N`bHY43n7!y0qa1d@d(mGl`*k@<-R#3Q}&U4E%{x?dnKg}-O7RF|V zlFKN(t|Y00q))^R?ihdUE^{LyLFQw_!79|@cQ*%iCo3u-zr1vfV{n@&;@r+NP@|;W z`>?6{J>pmC)>N6j&KUP6*}BVq%D+Rs))tK-!9oc~ENX|`3d?%fnD2er*j=jH2=2j= zGoTn>oP_T7c2z?Ew(1$@Kl=PH-v6J(1xzI*{tSe3*@^-2>AzIvcJp@IM%%$iRyA99 z&Vo954lntR8f0_X6|is}d}JDp=F~g3e3L-@`}uT84e_MZ0Fq>*67hKT)+jv@P4^6cG$N0uuwXFhSpI%W}3hnz~jP~d<~x8 z!Ks^ah@23M@-xB^q_`YK%*vuNFK1m`%W(c!;Ur|jqzB1uul4by42la{(oP>n43st~ zRP>crI&9yDR24P&3`nrArtFO1V+KNfVy_Y|)_Jb= z5hGu?>wPut!x5#_NBzG1;_iPa6BN?jal7!G-$;XkgLxBrz5T*Ju)pJ9G_15pWnxty zv72d?A~@W@A@Z<(M$YDmQ`+EihUmN?l-;h|62@p1e0YGpRjmMWr$czBh7g0X-9nUU zcWK?m>i&oSDRKJe{!kwFth}{v?ndFD4u>Q{5FUx5A-MY{89}-Qw^)lYCrvrLC*+osO53*UI~7HxrTwu9khgT_{d&j0uD~wNkJITE+_SYSuretSonG{q%-%~^(wC)sf+G6CUsiBrCPNv4M}e7H5P$% z3i$Zvtw^-ijZ&Jv)zx+UQ-UB-qnG>&O#7-ymkqf%KlRc?kB%*~=YHPV z0rki2MvzNwk@KO1Gv;Tzp*B428Q&2t-S5btjAWvN*GRINW(X-3RszD7TT+huRYn#m zRXx>3Khir@#^?S?qD;AQkR9h7^6ja^WiT(a$YN8gO3P?V`QB~2Gx;69>}Pt2?1WZ6 zyhAm7>&$5|@8P?3#`hM_bCo&LZ}}+zaQ2d)$ps{Zq2+}@yH%B|HASo0{ebP||1CuE z-}ER(;L8Ku>_k5-<7N2%!27Q5NGz20$J{Zcr)sgfQQNuP{j+*MCgE&nfUWJKEGom@ z$@y&mZ}Q^Hd5f=$w&NG14tPZR=KoT06C^eJcqB4sM~Mk>a`*WR)0~@ml?+)^2F;VW zE@gP^m&Krs63c$dD0P}yDcuL!w|*Ay4}7ORW@1YIp|c9hS&@BQ#h~WmoP&G2Qg7h~ z_`@-xYU*Wz#lDvonrA~%iGfLMBG*$+tj(tbM@5A=V}LMMc`R?9OA<)07x|P{S*eLMQ|FkU9#5&Y5)*XXQisa9LFMM9ZnomR?oJ za&8xoa566wzsSyMhJ=S-g`a>RBARKPgi*QF(`;0A zM+}4eULsZH@YYdAHeJ}bj{i8U4ln(e3i|y2QHT9UIHq3n`RcTKF$S-F=s@hnkxej6 zaHRRP8Y>RKMc8bmzr@=1 z3dJ7!yX-KdoM=D5)Q3oEs3Y-%4vO97cIzh{Cqau=-@f&Cl`L$+_R*B62vGaeH(9!L z^T3Cmqj3$Ew}-`uAs7WLmmxzMPC6%A6^hN7vHQ9$b>ezrAN%9|2;=Yj3iqoRv|6tz zC8BAx>JGFgr=t9P*wG00+XYtb3Xw$@UF1@PntEr-Vlgh9k4oQ>tB!Z)51U-(ujI;)B9?Ky3g&_@7WHV3At!PqEerG^b*ITqjiUZ)eX)tnj~B@WDE`y9CjZT`AgNh%I2KyVp<|;g)|xRo6OKO zGD2A&%l+s_!%1@(ghselUb1c97x5?j+_9;MR#I9F_7#v-jeW@&C>Tqhd1f2@!H<&;6pN*tGADLM>h z#>$cmY-8iInlkR!NqlftS`;tEWz7m3GU$Q*E`Ouqq`uMN-#kvo#r7NTNWcEY-JiM% z8Sf#nova$X@^i(ft(;4%_+q!!n%nZ1s-KZ-lOV7gR(xdjXo(juI_l57b8n%)wP{r~ z=io1uLJO_L&OzRGLRgr(p<(VHat;ttWm`A((-43UWv|F&+jKBzJtR^``L$fv;;{L; z;8fv?uoX4s>26V4%h(%ZF9!VCCC_W@S+lXivo-M_oZKCd&E0VbvA8I^>#J%8d@bS% z_Z9dc!&O7QMgswk{K=z>50_g~`=Bw)7ZtR`xG+uwavW9p6q;9s{x31{=sALMLsmce>XB*&@@vSSaV8FZL*V z(adAs)s6v=$QqgoK^Bn&BhdXA&}A9?NC&LgqQbzLYJpY#pd&ujs0AS?nJg#=vX5N66j88;RAj$13TB0TApg_1DvS7e z0I;~})`Tj`$F1e#qGuW>14Ty)2p<5$vMM@`ct**3uSj}!P~S0H4l4eSqSbWVULmJapoB(E}(Z*W(pmW^hvanlKQ z)BO1^$$ZLs()*z2lI7Q~(TwsM20)GF6-4w&hH4w0r@VZ}AfAP}A2-{-5>l2*&@xg{ zMzVfq&P{#W*tuYV(1lwq{<27{l0mz0-Vkhdb8O%Yvaw^Pv1i1024M%!!{f3BsWEUG zm1b_Z_#BO}!~WxLgDrd00hJ(RkcJC@p34(BM4L>vX3z#LT&yCLd7=>Iywl0!tq9I3 z1>QS{rwD_Iw%U{VT~{HL^WCDz{n9!xV~^uHmPSqn5W$Eb2EvFub}9@e z-K;zRm+Hp}zK6o`sDwAXY#xf;eW- zBPNs(Bhhx}$Y~To1Y}a7!?`KO3cuT1l(5i)Q5RjXcmdmVz>VI~kJM>y?=a7~IwQYJ zySXry-Y9TvUgBC|-TM}`v&2DW(RfN?&iOvS%SOINWX5!kh}IGm{5yC185#VS=s$@~ zz1@h+l#B7T*m{?FEtv}_1Fy(*>LiWG(cLy};$ah_wyHgkbnl}uheI0G%;_O{#8)r< zG=%7kW-^(1`)y>Rhh$j!B|Ritt+hG{3JyAN-(f*2h;Pr#mys9!oc{wlR5d>D0~CLJ zB!4s9ISeGfk=ot;<=WZZ-AU9Wh;Hre?QNMCuK)VAj$~AuV^;*EJZk%@Bl5MA_df0D z{H43!Jgg*Tyz?EMTHt`5@O0(eOXLloL!b0Fh_249r;7R%cQ#k!Zu zw339i3RL_O0YRUL)aH4+t3BUzMCqMPmzs?jB81)*q=h2AqZEMz>7WVCh#~%#-}5_j&fPk9es|{l?%8+d z`ky1kSy^j6&*%NTp7&dg9lH8-ZM4vk{pBdObDBlXtQbh1QG2*f;4NSTyd%Q})124~ z*;8(QlR3CY1wMENnWJ>cPkS=QXbjYGk`aS#k7`sK_&gAKYWc2N6l*_sC%D`Iem%;t zZlo@OaYy$>lRG|G!m4)6U)8Hzdf!8yPM45qGFtwAOrVi%?ebn!m&0zNEG4XCE-Ch< zVJyB|orlyDWd&n(fvRz%@uvMXvCp=&Ju+OV_e~>tp^v{N!ea(1*~w|%(~n@M!}29q zVrUIXJ2JniYvGM}aw(aNcNN@xqm=zpd;(Y&cO?zDO%IF-PFL)T6qw?H7*xPY*pRbG z6vQiwjqEfogw$??#8{!*Z^Ar~Tid3YxSU~*qE|2)=CoN?G6qmxb2#@{FBKOPq&_B{j$uS^0MKZB?JcnPq;73pjA0_v+Sb z^5=Np_p9ncdl>|Zg|S*q0sp%wsH@Ph{Io?;AtcQyu^&1P>{KI)+lR7CRym-rgkMzb zWqFM{MegRxci*Fnj1N|N8ZvQZEH^Sg;u%u*4Xub6DjD;QMKtc-xpT)Y(TNVmk?aqZ zw?V+0*8c|#F1!C3-6bq9bEsj}K)(cq(c?gx^earj%k%jr&-Y`Ij4;}P;zJBoYBjO$ zNUvXeq}92}z}<2J2e7evVId^>VM|ELYE#U+j#63>#D9u(V zb| zHS;bf^&9x`j*+lpd$yQf?^-cq95@zhJ?V!W$1zNqro?Uxdw|I%Mzdm1bZBhuOROjF zv0_nXm%>KEfGU;wr~6Lk9#D5h#t;3d_p%=$Rs;l!vOg#R!VB2%Bj%|crxZAmCY?Qs zizR-5?cU@1-a@x0S>mayP3WDs1l9Te)+> zA3KkZj~~Xh+yB<`B!roA&c6FRg+M6RAmvuwrSNzvBmnpGJD&7=(=D9xzJoiqanfa( z4&shS&4tlz6GIT!XSw+;;Ipy)a+au&i%zbGn3LXIqhCU6_%(bRHzTQG${pW$pILuh zV9)R2GsCS50uj}U)`}5$gyJ^z~3WuZyd4&a|^_+4-@0O{>X45ero+X`mbga^Pihd z&Ca?cs?@tA^=rlRYrs9fRpVZ;srF#o{pC7uPbZ7(t%)sZQ-^BBS735fuz3k)lkgfYJNoiTQD?b%u|c|D~;MFANaFfBCfZGe8b1K|@Gr(j+P~4+;Whe0npMbwmmT&4pKNg(t_j3giSTx*U3Z=U1 zdvWaNrd|@ul&v|-g;E*uTdM$u2~HZhcKq-T?J|{^!pI?%YKJ3a#Kf>njk}~dH~|-h zhuSG_nsqoj7#bLwL0&9=!aNOOEBVtOINg?{rI9u|@~=j&o8>72dBGM|NB75b3;lWe z63n>}YJU3Z^Z@#}Jsa@k7QyN)FdoDO0Tcsun20&4d9msh8AKQcj(;3`V8%_AgG`r$ zi-5?xVe$H)rrfqm&8pYKwRlrSO&X(-=Nepuu&~aYsqjSCp-wG=|3Z(h^4VV{g1FVC zha1aFH%npM6kMFZMOS{!bfO%$b2vWp<9HiMKE6V%z$A@wyCSB|`JsZX2md3{vq=L! zmS8*)I8QcspS!*YjxyhHst%DS+J<{Zph{ITWn+{a{iGP4RkVs(Kva6Y&L5J>xXMA7Ue2{SWednd%t6$ClM3{ia@?o<9_G zIZrKZCD-+Ahvh0@00Tt0rJ4ZtU9Ov4?U-42I%5!dR+|iTHR@j9#8HM+LgD>CgH!If zc78v0szqiU!>V)@diVT$LJ;W)W|(Qv+*o&(3xju?X9E(U;THz+Zt%?AUbOwHPApgp z_LmI*O4d+t2j*ttaq_Ujpxcp4KKxH=0kH@cTFG6Ko@aZgGNE}`=$CD z29*h)z{`v)$VaaiQa+Xt~;<1bXXY&)nPpwA|8H0I%@v#GW!BB>! ziaT~Z0ir18ggjp6Rwwe+!7v>XBBbXpDl!%?#3inBFGm{lgw6#JHDkaLqr@yX&A~8V zC<>?A+a%V(N>UNmeRDy#{y_aQ@EpDt5Q~{tg}J=pR26d36+*|n4pmdTP?}h_=-t=X zhL<>Y{p9&G74ICr3GXoenV=V<=92m&4cmKBoxK363xorvA*+hDb#Xi*;|7Xb!J&tO z&SQGUOU<^0!nyaVd07-E#|>PjfanHmMU`K)-1Zb*<~Vv%h6f<#oC8|%=YUkxSpcXT zdv}~*(OlM{d^nesiK_%G8EhTv&x^vKMRet z@GZP4>93;I=Uxg%bV7+)u7{Un)T`Zy484zr*8u37ETgISP zD>T2bL_xE!OGCw~jea`W@8FbOuR`#dd*`vH*C;lpQ#zW`?i(q$FK0cJfZAl4WGJXV zFM;mrWL>W>uW&CM{aJIWi223gEFb(|D~xV zbVuuYcIZ7XsbTFH?q&n*^%(a4gFHS%vQGGC=`WoZg?8#TWu&#O_y*18V8yAyXEdT~ z6?i$2QR`K0uZm0s(4~vjo?_&F!2x%>3uZ@=h(ywm5W(S~ zo5e|Gr#{Z#Kct6|@g&cj62uo4_KY2+Hyxn}ET-F;FW zFC0vAOL2y!mrZgDO;}ToP*mW7V>kiaC@IL0p(z3hwxzR#iSBpBT3fN$8&I!O{MuRs zC-(Us-dvgTf3^KkDu|FWjN&M2tQi4pP&c_h-E*mloO*xd`S)Ylxn6q;hs>+cTy2G? z^z`N{?H4*%xZ_Rxeda}|UR~27Cl~;JL9zydjUL=V?c_-cr6EQ-SLQVH99M6!T4vX6 zz9Ko(`ty-8i`vR%deh)ID{bu!lAHNqU5FSlci}`-f%2Se<4v=!MapOd-^-42Aavd$ z9g4N^ho~4IM*TwOO(*{>E&BoL%0EQ{?WUZjaqu0Kkn@v+DyVq++0PUSg4($}Hd{B| zh3M0r9(*?|pZ?~W{l#P=gk#ofrZe^|LNtr@cj3z8Z*JurppOI^ljJ)-&RyFZS+xD8 z(qo>$&uN~jab{3K(iu@(sL%AYjT!-%mEuLl64cB9vlU%s|HYQ1eEt>7Y)i?e?&dgf ze8m+;=q>hYNehwM`BChRsPhwe6QdUnoC{9fXyReW6+lb(908=_RX`Wt1=+v+Ti*{V z2HuA^0C|1wHSqPJNdV9q_H!-R``dS&_`CRWO|!j~Y+*E`LXyrt9435zui2e{bxbI4 z`^6-R?Ayii_IE!XK#QgxqD{)N+f~&nI9NhPOigEIG25(X zizItVe&ITcThFMU+Ohj!x1qwMT!;<|@S!Iooq@($^YdvWoT)vZpNd@!VEG7rTqkEP zMr<}*oO$2e1GZKq+A9q1@*ARUz}YM2#bbrqmIEPzZ|*yIQ*BvzOxhh}8y~~Q=4A4z zD($ZfBr_wa6;I^{T5^{yZezPtB{xWNY{m(F}V(B)TpuPB7jHCjdO}( zW4M#lYviSaJ?hyd8(1{#Yzq^8OyfM|+KUU*`hL!2znt)fy}(zX^xAyPP zPK|XrQxD~e8F})JpAl;gp){O)p<&(Q^WBSb+>duUNOG2t>S7@5ymCKLbhw#+NwTP1 zzcUx!mX&XB;)Cb)N8+yhkOH#P5Twdy*;e6l+_%hx)Y6vhK_+=Rfcqw!Z=rRWD!q}a zPiF+AUWSv^wT($V_GF_4eq_eiB2!mCqEX}mZ!?z%OJ#zlj=wAZzJPklCnA=aMB?k` zPCt{h6<(a&Iyf(Ucp;d%$}*dc2rhCx`w^+7r_ZJt-MHG(B3@z9l;cwz)w%qt=Zq$c zw&K^jYmxEyP5>|g6oUP{kGbU$ImzQLy5~AA|$(sfSt|ZXbS~4SHuCP#kkHidkJ4SzqleE>x zj;$d_O1A_?g+S(!bY5SlC;?`uiqXUc~oZBx7X@z5^qb1y2V z%_T9i6}&#wqBWwz;Uqhk6?EF)6_^GQ_GtRREb2o6Fl-!Z{eEmkpasw<#V;qLM|TEW zDZc?-{GMenh^EI0R0ORlh406h+0kFOz~m#?1z--@a34+es{nM$sKUR06PO}qg+Ai4 z9Hz+vLz&g8trlPk8d^x7)Q}pJY`#u3qKdY5V%YAh#Y_0$HbVr!taW9A^wYnk1WD-| zP~m>A{!GOT_d;E@PoD3DFMoZvML)deJ?|Xb+ZeZwX?u0f=V>tnI)_(7v8JzBs*QT+ zWk{Szq%cNGfJ~&6#LTg0MY7#i`<+^nLM}Q#%WjnH?=Fp#>AsyBff7;uXnD(kr;Hym zQqifnF`lx?)2=khXaDmc7Yqi$+UHKhWT(ciO2^A2wv) z`H<>1liB_`u0@S&II+r=r}o4gTCH zy5_pa(_5t|hw|AgCrT@4@W~QL8F!viR0y7|y*}?D^6?wXS!EEOdY`-rY}|4>`6 zm_<$e#^NqN%l!@mlRUK;Gy6Y7WU0S>yHC4LQLb2$;Ya;wtl^}xkTpAZHF^^nM{+4F zabqhrp6&FME=OtXaBr76gbs}{NHFB3zj>2adV8jwS(lzp9*)OowJ^V}p64dQIB92z z^8&qV>dIEB&H|Uo0;gr#jnj3fUcMx*xypv-p|q^u=Nh==JurmSJ+KhO+G@GgT{%+7 z@WDk`NuOXzUsiW$vwCzV47XL;C<$i$$S%8gX<5AYMxMG`Y}$sQzncM0tuO2LfR1bYi7qy~(c z?s(m79;^Fy|KyacTQSaVgEJGIN?isOz{dClv4GhzX*diZk)(V*A-yz{MaiZ(dCs{H zH=SQK?@F4vhLvqY)U{2s9Q>H`-?-{?!DaGQn8G@Vbp6D4Pw9e-m%~UJ(u=+Df^sJ1 zb_yIstU;Zs$c8>}>M}P>Fhm615)sJ|I&Ffg!$tY88{>`knFv7BXFNPxKdVK{YHV?x*$0EDGD}>M4~uuU9KR_i6eC5u8Xh$X&ZGps-d@cnzA(N}8H0XOgDE&Y z%Gu&%R{;uEqH;;}Irr{A;PmU#;BlQ!khl)XUr=lV!oM7<_$O7dAlEd9z)KTXw)yYq zqG3)b7V_gF5#Ro1ueX(rI{jN~PJW(TJtT)u<(?>W=66z9lbxm{>2sNq)^RKDS=+xN zAMEUZMjt-@BU-c}8X$-;Jf$v^$84Y)Li8UQq=c_^9LalBlm`jKMK!V6i}K2z^4V-< z*%DZHoX>aqonK^sPMe6SCmKx`5LGUYcbPAuvD!x6W|b!4K6Ox25n{O@EPNMWuoBp!7c(_OkF!%-PHAqFiO@AD3HapIMRFPl4u4NE{g zZ7b3Zing|EphnaXObmK$wiZTHeFxY<5#GJ~Tkj5X`g`-vk0IXyvEN+hN7uN-38%ACBIt%4PMY=;UC?&btiNUjFok92H^ z|4Vo`8R#uauFsflj1`j&eHaJXXx2?5m$5w*dQz6^Xe@dRSHHP~I&a&<*dD z(QfZdRzM3|8`mv=vG8+Qu=x2z;QNm$313&2WVRcC%Xf{MT!;)KXq-7pYZ0M=N9!6j zdd}4lF<~&SeWU2?JGmo)DikYZ)9vx+fQdx1LJl6|c?H8#Zo;yA7_T zI_v?9Ro)tiRM$E9Ud*Bln}T{tP3J`4?q_y&#WrsX7@J{5U58nh_dJNt6dY3+<%8Sy z-Rg!Fw}t~C(pDTt=zxM3>&`jRE(g(V*N6cqK2r9ph+wJf zptiYhAIEYu-Y~CVII?raGFSRau@2jfva@|pzg`XaCP|;-`T|#Zw@`!G1_cHM`Y3%^ zUS8+`$Ea|@1K<}F0mep!4H>wcPYS%VoQ=5iukCjiN25cTsKe{Q7rl{>xo?Rk&>4x| zjn;~l)CbDo&hk?QQ3T@J4aJuu1=<<@fIZzPj(Z%dm+Qpn9q(}F<%^`X!w^BF7l7R; zB3DDjO|WNxf5ouflf?l61cgAzGQV5=er&Uq16iK|YI*isRVhKa?Xgi9uX9kJ3?Lav=i!fBCp(~4MZPb0)K7BGP~sZ$r=0>M1iz0 zPz?dgMASp#>xZ@<*Khm)Y|Q=xun`3S8=pd5-47++M(I|+Lij3wq2T^=@S1r^;9?Hb zEXbVYbTH-JR)qiJo5xV6##F!`H6Eo)9JGU8k*+d4^sFKu3{f1C3;)y+y2089wYXvk z(^Uohyfs`s)%=q}+V0?r5YtAy*-JHSocvsjOS2;qPKUq4n=&Lhℑa*6jT`!)#{~EMahbY@rOIvrxA=Gp_FS?pceEwvARcfnL zl6G2Ya^iDXHMd}jc6&!I{G9VQF{-9W8-OD$tusXTRS&QLSplySo!hfqPX88Gz~pDq zsI#4CUvKwM`}q8I z%`D)5lzPy2i4|D0nV|x{H~)#TNoj?kuU8Zv_kiJGk-9jSd(DdkXs<#z2kwt((2si@ccx#Y-M0 zic0iQT4U+FOTJr4DjnjwD_?aO zdf}vo^agKF)WfSH{vJ$(7NIeZ+8nB6$iO-RcfCS1daIVtMxRfLw{O^>{@Y0mp+$+x zx_5$tiT0s6m;#d3xkjeg8dy2W?^eJ`WCgLFNpffxWfGs^mG?0)0o8xjhHF21m@N^X zIxN)X${lYg!;uXnkpKv`Z4?pZ)n>0VuQVXX(+MC*jcBE=Ah%~FU%>!r!!Lc6%VKyF zxphvYNF;tUNDGp_8iwR;>`Mpo_RR5iAv3W1AgVY({VveY0+jMK$_ttq7)OJcCJh|9 zfA#vseG>xzX9y>uVBloCo%Wk3{cIg2`k4HGB5m~B*x!w~ueHtS1FTJ|$MltF$j7r@ z_cCdJ1h*qOh)$!(&mG%uE?Aad1R7gq0JuT_>vaSJfScD}fY;G;cisn|0p3QfwezBr z0l?ch^<;SjIRq|3JOC3jzrU^|-;o&+0OU?qH0zVkgT_OP-?0-~K#*zATrfU@Y zo|)J81sIP0^lU~{=rYZT#1Lh;k*S@Jo7!2mG9HdUL`OAbCNO&lO1!-+7BQl5oS*?> zrT15yqh6KD@atO8wS_S`pT{#Q3?h>vebtks65L`H#6KHnaRyu=!o;O5&o(y^++zerJfDK2V} z$82tQt;d95kt@UNUvign8z+L3yk?dwkk-sZ&ND08M6MJ3f#N(FAsN78T&#vDM~>sw z>CK2C81o^y*O0*7MPxn zXdg>+Ha9Dd>KN~WC%C0mL1QPJ^wMGRWiaQ8nI5C2y4K1gVB_b0ki@1$wC7fZhXyN3 zx4x;isXp1I0XPFj5qg#0bTz+CAt)NAXbDOtS67F^Ui!dp$`lr~f3Y1d^Ef5LT~_cLEFX2NIQvCvf67e0)5>#gh~^!sCez-NsDRU`Nq>5Gi*mu-`K3?9 zHafATIBe+IPGWVWD(s-Kw_ncX%2H8%kz62uW+g_m%e)e6M!(Y3DZilODE|aH?)txz zH)ShL&HvH|Y-{W46IL2uy#n-s>s}}2LdWzK$7muqNeS$n0gudYpA}}DiW)Im8;%7+ z?IRDpsU9(%@LYs(fhJ!Y2i~Gs<-RF!vWp(e)9tM-JfqcT^v4hOW}a&baI^Wr-b@r< z;WouZ6W51)AO8n?(=bBL1b+P*GGFEX$D3|2QUr#-oT zk~RD25v*GOQmzvext?vv7MtcQaH3sLK0Y0Y?(%UmiBB~E41hj>@3uq-2I-bx?W&y| zw_-V!9i#|sKi1vyqQQ(hTlYL>z;ymiK%aNmX#IPM2>WR=o4DH!BU^$K?b(FiL=k(o zj7gwqHbjT=gdo`{THT)XN|Muqu5VWqL7qP<`=bfmuMiHZI#@;Yy!El)8YO2wAx7W< z*d{k846&5E6k6OBsKVmCC6|Kh-{#~DY~^2EihlUD@ZVV*our oJ}1o71tiNzhu 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

+ + + + + + + + + + diff --git a/docs/qmk.css b/docs/qmk.css new file mode 100644 index 000000000000..591dd291aefa --- /dev/null +++ b/docs/qmk.css @@ -0,0 +1,862 @@ +* { + -webkit-font-smoothing: antialiased; + -webkit-overflow-scrolling: touch; + -webkit-tap-highlight-color: rgba(0,0,0,0); + -webkit-text-size-adjust: none; + -webkit-touch-callout: none; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +body:not(.ready) { + overflow: hidden; +} +body:not(.ready) [data-cloak], +body:not(.ready) .app-nav, +body:not(.ready) > nav { + display: none; +} +div#app { + font-size: 30px; + font-weight: lighter; + margin: 40vh auto; + text-align: center; +} +div#app:empty::before { + content: 'Loading...'; +} +.emoji { + height: 1.2rem; + vertical-align: middle; +} +.progress { + background-color: var(--theme-color, #ea6f5a); + height: 2px; + left: 0px; + position: fixed; + right: 0px; + top: 0px; + -webkit-transition: width 0.2s, opacity 0.4s; + transition: width 0.2s, opacity 0.4s; + width: 0%; + z-index: 999999; +} +.search a:hover { + color: var(--theme-color, #ea6f5a); +} +.search .search-keyword { + color: var(--theme-color, #ea6f5a); + font-style: normal; + font-weight: bold; +} +html, +body { + height: 100%; +} +body { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + color: #efefef; + font-family: 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif; + font-size: 15px; + letter-spacing: 0; + margin: 0; + overflow-x: hidden; +} +img { + max-width: 100%; +} +a[disabled] { + cursor: not-allowed; + opacity: 0.6; +} +kbd { + border: solid 1px #ccc; + border-radius: 3px; + display: inline-block; + font-size: 12px !important; + line-height: 12px; + margin-bottom: 3px; + padding: 3px 5px; + vertical-align: middle; +} +.task-list-item { + list-style-type: none; +} +li input[type='checkbox'] { + margin: 0 0.2em 0.25em -1.6em; + vertical-align: middle; +} +.app-nav { + margin: 25px 60px 0 0; + position: absolute; + right: 0; + text-align: right; + z-index: 10; +/* navbar dropdown */ +} +.app-nav.no-badge { + margin-right: 25px; +} +.app-nav p { + margin: 0; +} +.app-nav > a { + margin: 0 1rem; + padding: 5px 0; +} +.app-nav ul, +.app-nav li { + display: inline-block; + list-style: none; + margin: 0; +} +.app-nav a { + color: inherit; + font-size: 16px; + text-decoration: none; + -webkit-transition: color 0.3s; + transition: color 0.3s; +} +.app-nav a:hover { + color: var(--theme-color, #ea6f5a); +} +.app-nav a.active { + border-bottom: 2px solid var(--theme-color, #ea6f5a); + color: var(--theme-color, #ea6f5a); +} +.app-nav li { + display: inline-block; + margin: 0 1rem; + padding: 5px 0; + position: relative; +} +.app-nav li ul { + background-color: #fff; + border: 1px solid #ddd; + border-bottom-color: #ccc; + border-radius: 4px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + display: none; + max-height: calc(100vh - 61px); + overflow-y: auto; + padding: 10px 0; + position: absolute; + right: -15px; + text-align: left; + top: 100%; + white-space: nowrap; +} +.app-nav li ul li { + display: block; + font-size: 14px; + line-height: 1rem; + margin: 0; + margin: 8px 14px; + white-space: nowrap; +} +.app-nav li ul a { + display: block; + font-size: inherit; + margin: 0; + padding: 0; +} +.app-nav li ul a.active { + border-bottom: 0; +} +.app-nav li:hover ul { + display: block; +} +.github-corner { + border-bottom: 0; + position: fixed; + right: 0; + text-decoration: none; + top: 0; + z-index: 1; +} +.github-corner:hover .octo-arm { + -webkit-animation: octocat-wave 560ms ease-in-out; + animation: octocat-wave 560ms ease-in-out; +} +.github-corner svg { + color: #3f3f3f; + fill: var(--theme-color, #ea6f5a); + height: 80px; + width: 80px; +} +main { + display: block; + position: relative; + width: 100vw; + height: 100%; + z-index: 0; +} +main.hidden { + display: none; +} +.anchor { + display: inline-block; + text-decoration: none; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.anchor span { + color: #c8c8c8; +} +.anchor:hover { + text-decoration: underline; +} +.sidebar { + border-right: 1px solid rgba(0,0,0,0.07); + overflow-y: auto; + padding: 40px 0 0; + position: absolute; + top: 0; + bottom: 0; + left: 0; + -webkit-transition: -webkit-transform 250ms ease-out; + transition: -webkit-transform 250ms ease-out; + transition: transform 250ms ease-out; + transition: transform 250ms ease-out, -webkit-transform 250ms ease-out; + width: 300px; + z-index: 20; +} +.sidebar > h1 { + margin: 0 auto 1rem; + font-size: 1.5rem; + font-weight: 300; + text-align: center; +} +.sidebar > h1 a { + color: inherit; + text-decoration: none; +} +.sidebar > h1 .app-nav { + display: block; + position: static; +} +.sidebar .sidebar-nav { + line-height: 2em; + padding-bottom: 40px; +} +.sidebar li.collapse .app-sub-sidebar { + display: none; +} +.sidebar ul { + margin: 0; + padding: 0; +} +.sidebar li > p { + font-weight: 700; + margin: 0; +} +.sidebar ul, +.sidebar ul li { + list-style: none; +} +.sidebar ul li a { + border-bottom: none; + display: block; +} +.sidebar ul li ul { + padding-left: 20px; +} +.sidebar::-webkit-scrollbar { + width: 4px; +} +.sidebar::-webkit-scrollbar-thumb { + background: transparent; + border-radius: 4px; +} +.sidebar:hover::-webkit-scrollbar-thumb { + background: rgba(136,136,136,0.4); +} +.sidebar:hover::-webkit-scrollbar-track { + background: rgba(136,136,136,0.1); +} +.sidebar-toggle { + background-color: transparent; + background-color: rgba(63,63,63,0.8); + border: 0; + outline: none; + padding: 10px; + position: absolute; + bottom: 0; + left: 0; + text-align: center; + -webkit-transition: opacity 0.3s; + transition: opacity 0.3s; + width: 284px; + z-index: 30; +} +.sidebar-toggle .sidebar-toggle-button:hover { + opacity: 0.4; +} +.sidebar-toggle span { + background-color: var(--theme-color, #ea6f5a); + display: block; + margin-bottom: 4px; + width: 16px; + height: 2px; +} +body.sticky .sidebar, +body.sticky .sidebar-toggle { + position: fixed; +} +.content { + padding-top: 60px; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 300px; + -webkit-transition: left 250ms ease; + transition: left 250ms ease; +} +.markdown-section { + margin: 0 auto; + max-width: 800px; + padding: 30px 15px 40px 15px; + position: relative; +} +.markdown-section > * { + -webkit-box-sizing: border-box; + box-sizing: border-box; + font-size: inherit; +} +.markdown-section > :first-child { + margin-top: 0 !important; +} +.markdown-section hr { + border: none; + border-bottom: 1px solid #eee; + margin: 2em 0; +} +.markdown-section iframe { + border: 1px solid #eee; +} +.markdown-section table { + border-collapse: collapse; + border-spacing: 0; + display: block; + margin-bottom: 1rem; + overflow: auto; + width: 100%; +} +.markdown-section th { + border: 1px solid #ddd; + font-weight: bold; + padding: 6px 13px; +} +.markdown-section td { + border: 1px solid #ddd; + padding: 6px 13px; +} +.markdown-section tr { + border-top: 1px solid #ccc; +} +.markdown-section tr:nth-child(2n) { + background-color: #f8f8f8; +} +.markdown-section p.tip { + background-color: #f8f8f8; + border-bottom-right-radius: 2px; + border-left: 4px solid #f66; + border-top-right-radius: 2px; + margin: 2em 0; + padding: 12px 24px 12px 30px; + position: relative; +} +.markdown-section p.tip:before { + background-color: #f66; + border-radius: 100%; + color: #3f3f3f; + content: '!'; + font-family: 'Dosis', 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif; + font-size: 14px; + font-weight: bold; + left: -12px; + line-height: 20px; + position: absolute; + height: 20px; + width: 20px; + text-align: center; + top: 14px; +} +.markdown-section p.tip code { + background-color: #efefef; +} +.markdown-section p.tip em { + color: #c8c8c8; +} +.markdown-section p.warn { + background: rgba(234,111,90,0.1); + border-radius: 2px; + padding: 1rem; +} +body.close .sidebar { + -webkit-transform: translateX(-300px); + transform: translateX(-300px); +} +body.close .sidebar-toggle { + width: auto; +} +body.close .content { + left: 0; +} +@media print { + .github-corner, + .sidebar-toggle, + .sidebar, + .app-nav { + display: none; + } +} +@media screen and (max-width: 768px) { + .github-corner, + .sidebar-toggle, + .sidebar { + position: fixed; + } + .app-nav { + margin-top: 16px; + } + .app-nav li ul { + top: 30px; + } + main { + height: auto; + overflow-x: hidden; + } + .sidebar { + left: -300px; + -webkit-transition: -webkit-transform 250ms ease-out; + transition: -webkit-transform 250ms ease-out; + transition: transform 250ms ease-out; + transition: transform 250ms ease-out, -webkit-transform 250ms ease-out; + } + .content { + left: 0; + max-width: 100vw; + position: static; + padding-top: 20px; + -webkit-transition: -webkit-transform 250ms ease; + transition: -webkit-transform 250ms ease; + transition: transform 250ms ease; + transition: transform 250ms ease, -webkit-transform 250ms ease; + } + .app-nav, + .github-corner { + -webkit-transition: -webkit-transform 250ms ease-out; + transition: -webkit-transform 250ms ease-out; + transition: transform 250ms ease-out; + transition: transform 250ms ease-out, -webkit-transform 250ms ease-out; + } + .sidebar-toggle { + background-color: transparent; + width: auto; + padding: 30px 30px 10px 10px; + } + body.close .sidebar { + -webkit-transform: translateX(300px); + transform: translateX(300px); + } + body.close .sidebar-toggle { + background-color: rgba(63,63,63,0.8); + -webkit-transition: 1s background-color; + transition: 1s background-color; + width: 284px; + padding: 10px; + } + body.close .content { + -webkit-transform: translateX(300px); + transform: translateX(300px); + } + body.close .app-nav, + body.close .github-corner { + display: none; + } + .github-corner:hover .octo-arm { + -webkit-animation: none; + animation: none; + } + .github-corner .octo-arm { + -webkit-animation: octocat-wave 560ms ease-in-out; + animation: octocat-wave 560ms ease-in-out; + } +} +@-webkit-keyframes octocat-wave { + 0%, 100% { + -webkit-transform: rotate(0); + transform: rotate(0); + } + 20%, 60% { + -webkit-transform: rotate(-25deg); + transform: rotate(-25deg); + } + 40%, 80% { + -webkit-transform: rotate(10deg); + transform: rotate(10deg); + } +} +@keyframes octocat-wave { + 0%, 100% { + -webkit-transform: rotate(0); + transform: rotate(0); + } + 20%, 60% { + -webkit-transform: rotate(-25deg); + transform: rotate(-25deg); + } + 40%, 80% { + -webkit-transform: rotate(10deg); + transform: rotate(10deg); + } +} +section.cover { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + background-position: center center; + background-repeat: no-repeat; + background-size: cover; + height: 100vh; + display: none; +} +section.cover.show { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} +section.cover.has-mask .mask { + background-color: #3f3f3f; + opacity: 0.8; + position: absolute; + top: 0; + height: 100%; + width: 100%; +} +section.cover .cover-main { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + margin: -20px 16px 0; + text-align: center; + z-index: 1; +} +section.cover a { + color: inherit; + text-decoration: none; +} +section.cover a:hover { + text-decoration: none; +} +section.cover p { + line-height: 1.5rem; + margin: 1em 0; +} +section.cover h1 { + color: inherit; + font-size: 2.5rem; + font-weight: 300; + margin: 0.625rem 0 2.5rem; + position: relative; + text-align: center; +} +section.cover h1 a { + display: block; +} +section.cover h1 small { + bottom: -0.4375rem; + font-size: 1rem; + position: absolute; +} +section.cover blockquote { + font-size: 1.5rem; + text-align: center; +} +section.cover ul { + line-height: 1.8; + list-style-type: none; + margin: 1em auto; + max-width: 500px; + padding: 0; +} +section.cover .cover-main > p:last-child a { + border-color: var(--theme-color, #ea6f5a); + border-radius: 2rem; + border-style: solid; + border-width: 1px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: var(--theme-color, #ea6f5a); + display: inline-block; + font-size: 1.05rem; + letter-spacing: 0.1rem; + margin: 0.5rem 1rem; + padding: 0.75em 2rem; + text-decoration: none; + -webkit-transition: all 0.15s ease; + transition: all 0.15s ease; +} +section.cover .cover-main > p:last-child a:last-child { + background-color: var(--theme-color, #ea6f5a); + color: #fff; +} +section.cover .cover-main > p:last-child a:last-child:hover { + color: inherit; + opacity: 0.8; +} +section.cover .cover-main > p:last-child a:hover { + color: inherit; +} +section.cover blockquote > p > a { + border-bottom: 2px solid var(--theme-color, #ea6f5a); + -webkit-transition: color 0.3s; + transition: color 0.3s; +} +section.cover blockquote > p > a:hover { + color: var(--theme-color, #ea6f5a); +} +body { + background-color: #3f3f3f; +} +/* sidebar */ +.sidebar { + background-color: #3f3f3f; + color: #c8c8c8; +} +.sidebar li { + margin: 6px 15px; +} +.sidebar ul li a { + color: #c8c8c8; + font-size: 14px; + overflow: hidden; + text-decoration: none; + text-overflow: ellipsis; + white-space: nowrap; +} +.sidebar ul li a:hover { + text-decoration: underline; +} +.sidebar ul li ul { + padding: 0; +} +.sidebar ul li.active > a { + color: var(--theme-color, #ea6f5a); + font-weight: 600; +} +/* markdown content found on pages */ +.markdown-section h1, +.markdown-section h2, +.markdown-section h3, +.markdown-section h4, +.markdown-section strong { + color: #657b83; + font-weight: 600; +} +.markdown-section a { + color: var(--theme-color, #ea6f5a); + font-weight: 600; +} +.markdown-section h1 { + font-size: 2rem; + margin: 0 0 1rem; +} +.markdown-section h2 { + font-size: 1.75rem; + margin: 45px 0 0.8rem; +} +.markdown-section h3 { + font-size: 1.5rem; + margin: 40px 0 0.6rem; +} +.markdown-section h4 { + font-size: 1.25rem; +} +.markdown-section h5 { + font-size: 1rem; +} +.markdown-section h6 { + color: #777; + font-size: 1rem; +} +.markdown-section figure, +.markdown-section p, +.markdown-section ul, +.markdown-section ol { + margin: 1.2em 0; +} +.markdown-section p, +.markdown-section ul, +.markdown-section ol { + line-height: 1.6rem; + word-spacing: 0.05rem; +} +.markdown-section ul, +.markdown-section ol { + padding-left: 1.5rem; +} +.markdown-section blockquote { + border-left: 4px solid var(--theme-color, #ea6f5a); + color: #858585; + margin: 2em 0; + padding-left: 20px; +} +.markdown-section blockquote p { + font-weight: 600; + margin-left: 0; +} +.markdown-section iframe { + margin: 1em 0; +} +.markdown-section em { + color: #7f8c8d; +} +.markdown-section code { + background-color: #282828; + border-radius: 2px; + color: #aaaaaa; + font-family: 'Roboto Mono', Monaco, courier, monospace; + font-size: 0.8rem; + margin: 0 2px; + padding: 3px 5px; + white-space: pre-wrap; +} +.markdown-section pre { + -moz-osx-font-smoothing: initial; + -webkit-font-smoothing: initial; + background-color: #282828; + font-family: 'Roboto Mono', Monaco, courier, monospace; + line-height: 1.5rem; + margin: 1.2em 0; + overflow: auto; + padding: 0 1.4rem; + position: relative; + word-wrap: normal; +} +/* code highlight */ +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: #8e908c; +} +.token.namespace { + opacity: 0.7; +} +.token.boolean, +.token.number { + color: #c76b29; +} +.token.punctuation { + color: #525252; +} +.token.property { + color: #c08b30; +} +.token.tag { + color: #2973b7; +} +.token.string { + color: var(--theme-color, #ea6f5a); +} +.token.selector { + color: #6679cc; +} +.token.attr-name { + color: #2973b7; +} +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #22a2c9; +} +.token.attr-value, +.token.control, +.token.directive, +.token.unit { + color: var(--theme-color, #ea6f5a); +} +.token.keyword { + color: #e96900; +} +.token.statement, +.token.regex, +.token.atrule { + color: #22a2c9; +} +.token.placeholder, +.token.variable { + color: #3d8fd1; +} +.token.deleted { + text-decoration: line-through; +} +.token.inserted { + border-bottom: 1px dotted #202746; + text-decoration: none; +} +.token.italic { + font-style: italic; +} +.token.important, +.token.bold { + font-weight: bold; +} +.token.important { + color: #c94922; +} +.token.entity { + cursor: help; +} +.markdown-section pre > code { + -moz-osx-font-smoothing: initial; + -webkit-font-smoothing: initial; + background-color: #282828; + border-radius: 2px; + color: #657b83; + display: block; + font-family: 'Roboto Mono', Monaco, courier, monospace; + font-size: 0.8rem; + line-height: inherit; + margin: 0 2px; + max-width: inherit; + overflow: inherit; + padding: 2.2em 5px; + white-space: inherit; +} +.markdown-section code::after, +.markdown-section code::before { + letter-spacing: 0.05rem; +} +code .token { + -moz-osx-font-smoothing: initial; + -webkit-font-smoothing: initial; + min-height: 1.5rem; +} +pre::after { + color: #ccc; + content: attr(data-lang); + font-size: 0.6rem; + font-weight: 600; + height: 15px; + line-height: 15px; + padding: 5px 10px 0; + position: absolute; + right: 0; + text-align: right; + top: 0; +} +.markdown-section p.tip { + background-color: #282828; + color: #657b83; +} +input[type='search'] { + background: #4f4f4f; + border-color: #4f4f4f; + color: #c8c8c8; +} From 303f425c6b4f9ab6056f863e515c71c9325f2bfa Mon Sep 17 00:00:00 2001 From: skullY Date: Mon, 7 May 2018 22:40:57 -0700 Subject: [PATCH 350/578] Fix up info boxes. --- docs/documentation_best_practices.md | 55 ++++-------------- docs/feature_advanced_keycodes.md | 6 +- docs/feature_auto_shift.md | 5 +- docs/feature_macros.md | 8 +-- docs/getting_started_github.md | 4 +- docs/hardware_avr.md | 4 +- docs/index.html | 5 ++ docs/newbs_building_firmware.md | 16 ++---- docs/newbs_flashing.md | 8 +-- docs/newbs_getting_started.md | 16 ++---- docs/sw.js | 83 ++++++++++++++++++++++++++++ 11 files changed, 119 insertions(+), 91 deletions(-) create mode 100644 docs/sw.js diff --git a/docs/documentation_best_practices.md b/docs/documentation_best_practices.md index 80de8c039a95..77c226117c2d 100644 --- a/docs/documentation_best_practices.md +++ b/docs/documentation_best_practices.md @@ -22,59 +22,26 @@ Your page should generally have multiple "H1" headings. Only H1 and H2 headings You can have styled hint blocks drawn around text to draw attention to it. +### Important + ``` -{% hint style='info' %} -This uses `hint style='info'` -{% endhint %} +!> This is important ``` -### Examples: - -{% hint style='info' %} -This uses `hint style='info'` -{% endhint %} - -{% hint style='tip' %} -This uses `hint style='tip'` -{% endhint %} - -{% hint style='danger' %} -This uses `hint style='danger'` -{% endhint %} +Renders as: -{% hint style='working' %} -This uses `hint style='working'` -{% endhint %} +!> This is important -# Styled Terminal Blocks - -You can present styled terminal blocks by including special tokens inside your text block. +### General Tips ``` -\`\`\` -**[terminal] -**[prompt foo@joe]**[path ~]**[delimiter $ ]**[command ./myscript] -Normal output line. Nothing special here... -But... -You can add some colors. What about a warning message? -**[warning [WARNING] The color depends on the theme. Could look normal too] -What about an error message? -**[error [ERROR] This is not the error you are looking for] -\`\`\` +?> This is a helpful tip. ``` -### Example +Renders as: + +?> This is a helpful tip. -``` -**[terminal] -**[prompt foo@joe]**[path ~]**[delimiter $ ]**[command ./myscript] -Normal output line. Nothing special here... -But... -You can add some colors. What about a warning message? -**[warning [WARNING] The color depends on the theme. Could look normal too] -What about an error message? -**[error [ERROR] This is not the error you are looking for] -``` # Documenting Features @@ -94,4 +61,4 @@ This page describes my cool feature. You can use my cool feature to make coffee |KC_SUGAR||Order Sugar| ``` -Place your documentation into `docs/feature_.md`, and add that file to the appropriate place in `docs/_summary.md`. If you have added any keycodes be sure to add them to `docs/keycodes.md` with a link back to your feature page. +Place your documentation into `docs/feature_.md`, and add that file to the appropriate place in `docs/_sidebar.md`. If you have added any keycodes be sure to add them to `docs/keycodes.md` with a link back to your feature page. diff --git a/docs/feature_advanced_keycodes.md b/docs/feature_advanced_keycodes.md index 89d0ae8fcf5e..aeb7ce1bf48a 100644 --- a/docs/feature_advanced_keycodes.md +++ b/docs/feature_advanced_keycodes.md @@ -131,11 +131,9 @@ We've added shortcuts to make common modifier/tap (mod-tap) mappings more compac * `LCAG_T(kc)` - is CtrlAltGui when held and *kc* when tapped * `MEH_T(kc)` - is like Hyper, but not as cool -- does not include the Cmd/Win key, so just sends Alt+Ctrl+Shift. -{% hint style='info' %} -Due to the way that keycodes are structured, any modifiers specified as part of `kc`, such as `LCTL()` or `KC_LPRN`, will only activate when held instead of tapped. +?> Due to the way that keycodes are structured, any modifiers specified as part of `kc`, such as `LCTL()` or `KC_LPRN`, will only activate when held instead of tapped. -Additionally, if there is at least one right modifier, any other modifiers will turn into their right equivalents, so it is not possible to "mix and match" the two. -{% endhint %} +?> Additionally, if there is at least one right modifier, any other modifiers will turn into their right equivalents, so it is not possible to "mix and match" the two. # One Shot Keys diff --git a/docs/feature_auto_shift.md b/docs/feature_auto_shift.md index 484c506f13cf..9b4b29624901 100644 --- a/docs/feature_auto_shift.md +++ b/docs/feature_auto_shift.md @@ -88,10 +88,7 @@ occasion. This is simply due to habit and holding some keys a little longer than others. Once you find this value, work on tapping your problem keys a little quicker than normal and you will be set. -{% hint style='info' %} -Auto Shift has three special keys that can help you get this value right very -quick. See "Auto Shift Setup" for more details! -{% endhint %} +?> Auto Shift has three special keys that can help you get this value right very quick. See "Auto Shift Setup" for more details! ### NO_AUTO_SHIFT_SPECIAL (simple define) diff --git a/docs/feature_macros.md b/docs/feature_macros.md index 006fa04bca97..67315308127f 100644 --- a/docs/feature_macros.md +++ b/docs/feature_macros.md @@ -2,9 +2,7 @@ Macros allow you to send multiple keystrokes when pressing just one key. QMK has a number of ways to define and use macros. These can do anything you want: type common phrases for you, copypasta, repetitive game movements, or even help you code. -{% hint style='danger' %} -**Security Note**: While it is possible to use macros to send passwords, credit card numbers, and other sensitive information it is a supremely bad idea to do so. Anyone who gets a hold of your keyboard will be able to access that information by opening a text editor. -{% endhint %} +!> **Security Note**: While it is possible to use macros to send passwords, credit card numbers, and other sensitive information it is a supremely bad idea to do so. Anyone who gets a hold of your keyboard will be able to access that information by opening a text editor. ## The New Way: `SEND_STRING()` & `process_record_user` @@ -132,9 +130,7 @@ SEND_STRING(".."SS_TAP(X_END)); ## The Old Way: `MACRO()` & `action_get_macro` -{% hint style='info' %} -This is inherited from TMK, and hasn't been updated - it's recommend that you use `SEND_STRING` and `process_record_user` instead. -{% endhint %} +?> This is inherited from TMK, and hasn't been updated - it's recommend that you use `SEND_STRING` and `process_record_user` instead. By default QMK assumes you don't have any macros. To define your macros you create an `action_get_macro()` function. For example: diff --git a/docs/getting_started_github.md b/docs/getting_started_github.md index f01ae6d011a3..7ce65e210eb7 100644 --- a/docs/getting_started_github.md +++ b/docs/getting_started_github.md @@ -2,9 +2,7 @@ Github can be a little tricky to those that aren't familiar with it - this guide will walk through each step of forking, cloning, and submitting a pull request with QMK. -{% hint style='info' %} -This guide assumes you're somewhat comfortable with running things at the command line, and have git installed on your system. -{% endhint %} +?> This guide assumes you're somewhat comfortable with running things at the command line, and have git installed on your system. Start on the [QMK Github page](https://github.com/qmk/qmk_firmware), and you'll see a button in the upper right that says "Fork": diff --git a/docs/hardware_avr.md b/docs/hardware_avr.md index 770817045048..be6932406204 100644 --- a/docs/hardware_avr.md +++ b/docs/hardware_avr.md @@ -66,9 +66,7 @@ Do change the `MANUFACTURER`, `PRODUCT`, and `DESCRIPTION` lines to accurately r #define DESCRIPTION A custom keyboard ``` -{% hint style='info' %} -Note: On Windows and macOS the `MANUFACTURER`, `PRODUCT`, and `DESCRIPTION` fields will be displayed in the list of USB devices. On Linux these values will not be visible in `lsusb`, since Linux takes that information from the list published by the USB-IF. -{% endhint %} +?> Note: On Windows and macOS the `MANUFACTURER`, `PRODUCT`, and `DESCRIPTION` fields will be displayed in the list of USB devices. On Linux these values will not be visible in `lsusb`, since Linux takes that information from the list published by the USB-IF. ### Keyboard Matrix Configuration diff --git a/docs/index.html b/docs/index.html index c890b95ae7fb..7955e47c2921 100644 --- a/docs/index.html +++ b/docs/index.html @@ -28,5 +28,10 @@ + diff --git a/docs/newbs_building_firmware.md b/docs/newbs_building_firmware.md index ea01a1a6266a..f227d623f01a 100644 --- a/docs/newbs_building_firmware.md +++ b/docs/newbs_building_firmware.md @@ -8,17 +8,15 @@ If you have closed and reopened your terminal window since following the first p Start by navigating to the `keymaps` folder for your keyboard. -{% hint style='info' %} -If you are on macOS or Windows there are commands you can use to easily open the keymaps folder. +?> If you are on macOS or Windows there are commands you can use to easily open the keymaps folder. -macOS: +?> macOS: open keyboards//keymaps -Windows: +?> Windows: start keyboards//keymaps -{% endhint %} ## Create a Copy Of The `default` Keymap @@ -32,9 +30,7 @@ Open up your `keymap.c`. Inside this file you'll find the structure that control This line indicates the start of the list of Layers. Below that you'll find lines containing either `LAYOUT` or `KEYMAP`, and these lines indicate the start of a layer. Below that line is the list of keys that comprise a that particular layer. -{% hint style='danger' %} -When editing your keymap file be careful not to add or remove any commas. If you do you will prevent your firmware from compiling and it may not be easy to figure out where the extra, or missing, comma is. -{% endhint %} +!> When editing your keymap file be careful not to add or remove any commas. If you do you will prevent your firmware from compiling and it may not be easy to figure out where the extra, or missing, comma is. ## Customize The Layout To Your Liking @@ -44,9 +40,7 @@ How to complete this step is entirely up to you. Make the one change that's been * [Features](features.md) * [FAQ](faq.md) -{% hint style='info' %} -While you get a feel for how keymaps work, keep each change small. Bigger changes make it harder to debug any problems that arise. -{% endhint %} +?> While you get a feel for how keymaps work, keep each change small. Bigger changes make it harder to debug any problems that arise. ## Build Your Firmware diff --git a/docs/newbs_flashing.md b/docs/newbs_flashing.md index 4cd7c5c44a1f..0b0ede37c4e0 100644 --- a/docs/newbs_flashing.md +++ b/docs/newbs_flashing.md @@ -12,17 +12,15 @@ However, the QMK Toolbox is only available for Windows and macOS currently. If Begin by opening the QMK Toolbox application. You'll want to locate the firmware file in Finder or Explorer. Your keyboard firmware may be in one of two formats- `.hex` or `.bin`. QMK tries to copy the appropriate one for your keyboard into the root `qmk_firmware` directory. -{% hint style='info' %} -If you are on Windows or macOS there are commands you can use to easily open the current firmware folder in Explorer or Finder. +?> If you are on Windows or macOS there are commands you can use to easily open the current firmware folder in Explorer or Finder. -Windows: +?> Windows: start . -macOS: +?> macOS: open . -{% endhint %} The firmware file always follows this naming format: diff --git a/docs/newbs_getting_started.md b/docs/newbs_getting_started.md index 60b94b012364..8ada417eacb9 100644 --- a/docs/newbs_getting_started.md +++ b/docs/newbs_getting_started.md @@ -14,9 +14,7 @@ Before you can build keymaps you need to install some software and setup your bu You'll need a program that can edit and save **plain text** files. If you are on Windows you can make due with Notepad, and on Linux you can use Gedit, both of which are simple but functional text editors. On macOS you can not use TextEdit.app, it will not save plain text files. You will need to install another program such as Sublime Text. -{% hint style='info' %} -Not sure which text editor to use? Laurence Bradford wrote [a great introduction](https://learntocodewith.me/programming/basics/text-editors/) to the subject. -{% endhint %} +?> Not sure which text editor to use? Laurence Bradford wrote [a great introduction](https://learntocodewith.me/programming/basics/text-editors/) to the subject. ### QMK Toolbox @@ -29,12 +27,10 @@ QMK Toolbox is a Windows and macOS program that allows you to both program and d We've tried to make QMK as easy to setup as possible. You only have to prepare your Linux or Unix environment and let QMK install the rest. -{% hint style="info" %} -If you haven't worked with the Linux/Unix command line before there are a few basic concepts and commands you should learn. These resources will teach you enough to work with QMK: +?> If you haven't worked with the Linux/Unix command line before there are a few basic concepts and commands you should learn. These resources will teach you enough to work with QMK: -* [Must Know Linux Commands](https://www.guru99.com/must-know-linux-commands.html) -* [Some Basic Unix Commands](https://www.tjhsst.edu/~dhyatt/superap/unixcmd.html) -{% endhint %} +?> * [Must Know Linux Commands](https://www.guru99.com/must-know-linux-commands.html) +?> * [Some Basic Unix Commands](https://www.tjhsst.edu/~dhyatt/superap/unixcmd.html) ### Windows @@ -63,9 +59,7 @@ Once you have setup your Linux/Unix environment you are ready to download QMK. W git clone https://github.com/qmk/qmk_firmware.git cd qmk_firmware -{% hint style='info' %} -If you already know [how to use GitHub](getting_started_github.md) we recommend you create and clone your own fork instead. If you don't know what that means you can safely ignore this message. -{% endhint %} +?> If you already know [how to use GitHub](getting_started_github.md) we recommend you create and clone your own fork instead. If you don't know what that means you can safely ignore this message. ## Setup QMK diff --git a/docs/sw.js b/docs/sw.js new file mode 100644 index 000000000000..1e4aaeb76213 --- /dev/null +++ b/docs/sw.js @@ -0,0 +1,83 @@ +/* =========================================================== + * docsify sw.js + * =========================================================== + * Copyright 2016 @huxpro + * Licensed under Apache 2.0 + * Register service worker. + * ========================================================== */ + +const RUNTIME = 'docsify' +const HOSTNAME_WHITELIST = [ + self.location.hostname, + 'fonts.gstatic.com', + 'fonts.googleapis.com', + 'unpkg.com' +] + +// The Util Function to hack URLs of intercepted requests +const getFixedUrl = (req) => { + var now = Date.now() + var url = new URL(req.url) + + // 1. fixed http URL + // Just keep syncing with location.protocol + // fetch(httpURL) belongs to active mixed content. + // And fetch(httpRequest) is not supported yet. + url.protocol = self.location.protocol + + // 2. add query for caching-busting. + // Github Pages served with Cache-Control: max-age=600 + // max-age on mutable content is error-prone, with SW life of bugs can even extend. + // Until cache mode of Fetch API landed, we have to workaround cache-busting with query string. + // Cache-Control-Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=453190 + if (url.hostname === self.location.hostname) { + url.search += (url.search ? '&' : '?') + 'cache-bust=' + now + } + return url.href +} + +/** + * @Lifecycle Activate + * New one activated when old isnt being used. + * + * waitUntil(): activating ====> activated + */ +self.addEventListener('activate', event => { + event.waitUntil(self.clients.claim()) +}) + +/** + * @Functional Fetch + * All network requests are being intercepted here. + * + * void respondWith(Promise r) + */ +self.addEventListener('fetch', event => { + // Skip some of cross-origin requests, like those for Google Analytics. + if (HOSTNAME_WHITELIST.indexOf(new URL(event.request.url).hostname) > -1) { + // Stale-while-revalidate + // similar to HTTP's stale-while-revalidate: https://www.mnot.net/blog/2007/12/12/stale + // Upgrade from Jake's to Surma's: https://gist.github.com/surma/eb441223daaedf880801ad80006389f1 + const cached = caches.match(event.request) + const fixedUrl = getFixedUrl(event.request) + const fetched = fetch(fixedUrl, { cache: 'no-store' }) + const fetchedCopy = fetched.then(resp => resp.clone()) + + // Call respondWith() with whatever we get first. + // If the fetch fails (e.g disconnected), wait for the cache. + // If there’s nothing in cache, wait for the fetch. + // If neither yields a response, return offline pages. + event.respondWith( + Promise.race([fetched.catch(_ => cached), cached]) + .then(resp => resp || fetched) + .catch(_ => { /* eat any errors */ }) + ) + + // Update the cache with the version we fetched (only for ok status) + event.waitUntil( + Promise.all([fetchedCopy, caches.open(RUNTIME)]) + .then(([response, cache]) => response.ok && cache.put(event.request, response)) + .catch(_ => { /* eat any errors */ }) + ) + } +}) From ccc87421e77f554cac08d2f8b2c3cbcb04f6181c Mon Sep 17 00:00:00 2001 From: skullY Date: Mon, 7 May 2018 23:37:21 -0700 Subject: [PATCH 351/578] Some more tweaks to make everything look nice --- docs/_sidebar.md | 3 ++- docs/index.html | 1 - docs/newbs_getting_started.md | 7 +++---- docs/qmk.css | 4 ++-- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/docs/_sidebar.md b/docs/_sidebar.md index 318c526a8540..00aeb8057776 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -43,7 +43,8 @@ * [Pointing Device](feature_pointing_device.md) * [PS/2 Mouse](feature_ps2_mouse.md) * [RGB Lighting](feature_rgblight.md) - * [Space Cadet](feature_space_cadet.md) + * [Space Cadet Shift](feature_space_cadet.md) + * [Space Cadet Shift Enter](feature_space_shift_cadet.md) * [Stenography](feature_stenography.md) * [Swap Hands](feature_swap_hands.md) * [Tap Dance](feature_tap_dance.md) diff --git a/docs/index.html b/docs/index.html index 7955e47c2921..9fddda840d79 100644 --- a/docs/index.html +++ b/docs/index.html @@ -16,7 +16,6 @@ nameLink: 'https://qmk.fm/', repo: 'qmk/qmk_firmware', loadSidebar: true, - subMaxLevel: 2, auto2top: true, formatUpdated: '{YYYY}/{MM}/{DD} {HH}:{mm}', } diff --git a/docs/newbs_getting_started.md b/docs/newbs_getting_started.md index 8ada417eacb9..162d7066b529 100644 --- a/docs/newbs_getting_started.md +++ b/docs/newbs_getting_started.md @@ -27,10 +27,9 @@ QMK Toolbox is a Windows and macOS program that allows you to both program and d We've tried to make QMK as easy to setup as possible. You only have to prepare your Linux or Unix environment and let QMK install the rest. -?> If you haven't worked with the Linux/Unix command line before there are a few basic concepts and commands you should learn. These resources will teach you enough to work with QMK: - -?> * [Must Know Linux Commands](https://www.guru99.com/must-know-linux-commands.html) -?> * [Some Basic Unix Commands](https://www.tjhsst.edu/~dhyatt/superap/unixcmd.html) +?> If you haven't worked with the Linux/Unix command line before there are a few basic concepts and commands you should learn. These resources will teach you enough to work with QMK:
+[Must Know Linux Commands](https://www.guru99.com/must-know-linux-commands.html)
+[Some Basic Unix Commands](https://www.tjhsst.edu/~dhyatt/superap/unixcmd.html) ### Windows diff --git a/docs/qmk.css b/docs/qmk.css index 591dd291aefa..543cd7f28d4d 100644 --- a/docs/qmk.css +++ b/docs/qmk.css @@ -357,10 +357,10 @@ body.sticky .sidebar-toggle { border-top: 1px solid #ccc; } .markdown-section tr:nth-child(2n) { - background-color: #f8f8f8; + background-color: #555555; } .markdown-section p.tip { - background-color: #f8f8f8; + background-color: #555555; border-bottom-right-radius: 2px; border-left: 4px solid #f66; border-top-right-radius: 2px; From 1b4ad6b4ae55a873cbe13ffde87544bae88f2b19 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Tue, 8 May 2018 11:38:11 -0700 Subject: [PATCH 352/578] KBD8X QMK Support (#2915) * initial commit * add row/column and pin info * Add first part of switch matrix * documentation and additional config items * map out the non confusing part of the matrix * map out the top row * ok I think I got it * fix some stupid compile errors * put in a default keymap * rename LAYOUT to LAYOUT_all * add a standard layout and info.json file * Fix up readme for default keymap * Add toggle key LED functionality * changes based on review feedback --- keyboards/kbd8x/config.h | 199 ++++++++++++++++++++++ keyboards/kbd8x/info.json | 16 ++ keyboards/kbd8x/kbd8x.c | 43 +++++ keyboards/kbd8x/kbd8x.h | 71 ++++++++ keyboards/kbd8x/keymaps/default/config.h | 24 +++ keyboards/kbd8x/keymaps/default/keymap.c | 64 +++++++ keyboards/kbd8x/keymaps/default/readme.md | 3 + keyboards/kbd8x/readme.md | 15 ++ keyboards/kbd8x/rules.mk | 69 ++++++++ 9 files changed, 504 insertions(+) create mode 100644 keyboards/kbd8x/config.h create mode 100644 keyboards/kbd8x/info.json create mode 100644 keyboards/kbd8x/kbd8x.c create mode 100644 keyboards/kbd8x/kbd8x.h create mode 100644 keyboards/kbd8x/keymaps/default/config.h create mode 100644 keyboards/kbd8x/keymaps/default/keymap.c create mode 100644 keyboards/kbd8x/keymaps/default/readme.md create mode 100644 keyboards/kbd8x/readme.md create mode 100644 keyboards/kbd8x/rules.mk diff --git a/keyboards/kbd8x/config.h b/keyboards/kbd8x/config.h new file mode 100644 index 000000000000..c021fb40b507 --- /dev/null +++ b/keyboards/kbd8x/config.h @@ -0,0 +1,199 @@ +/* +Copyright 2017 MechMerlin + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER KBDFans +#define PRODUCT kbd8x +#define DESCRIPTION Custom TKL Keyboard + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 15 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { E6, B7, D4, F0, D6, D7 } +#define MATRIX_COL_PINS { D1, D0, F7, F6, F5, D5, D3, D2, C7, C6, B5, F4, F1, B4, B0 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN B6 +#define BACKLIGHT_BREATHING +#define BACKLIGHT_LEVELS 3 + +#define RGB_DI_PIN E2 +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 20 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +//#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 1 + +#endif diff --git a/keyboards/kbd8x/info.json b/keyboards/kbd8x/info.json new file mode 100644 index 000000000000..fe94f1b3ac35 --- /dev/null +++ b/keyboards/kbd8x/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "KBD 8X", + "url": "", + "maintainer": "qmk", + "width": 18.25, + "height": 6.5, + "layouts": { + "LAYOUT_all": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"x":13, "y":1.5}, {"x":14, "y":1.5}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, {"x":14, "y":4.5}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] + }, + + "LAYOUT_tkl_ansi": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] + } + } +} diff --git a/keyboards/kbd8x/kbd8x.c b/keyboards/kbd8x/kbd8x.c new file mode 100644 index 000000000000..51e7852412f4 --- /dev/null +++ b/keyboards/kbd8x/kbd8x.c @@ -0,0 +1,43 @@ +/* Copyright 2017 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "kbd8x.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} diff --git a/keyboards/kbd8x/kbd8x.h b/keyboards/kbd8x/kbd8x.h new file mode 100644 index 000000000000..02a7436446af --- /dev/null +++ b/keyboards/kbd8x/kbd8x.h @@ -0,0 +1,71 @@ +/* Copyright 2017 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#ifndef KBD8X_H +#define KBD8X_H + +#include "quantum.h" +#include "led.h" + +// Functions for setting LEDs on toggle keys +inline void caps_led_on(void) { DDRB |= (1<<3); PORTB &= ~(1<<3); } +inline void caps_led_off(void) { DDRB &= ~(1<<3); PORTB &= ~(1<<3); } + +inline void num_led_on(void) { DDRB |= (1<<1); PORTB &= ~(1<<1); } +inline void num_led_off(void) { DDRB &= ~(1<<1); PORTB &= ~(1<<1); } + +inline void scroll_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); } +inline void scroll_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); } + + +// LAYOUT depicting all possible switch positions. +// LAYOUT_all supports ISO, split backspace and split left/right shift. +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K3D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K5B, K5C, K3E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K5D, K5E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, \ + K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E }, \ + { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, K5B, K5C, K5D, K5E } \ +} + +// LAYOUT depicting only switch positions for a standard TKL ANSI keyboard. +// TODO: Double check location of backspace key for 2u layout (It's either K1D or K1C). +#define LAYOUT_tkl_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K3D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K5B, K5C, K3E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K5D, K5E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4E, \ + K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, K4E }, \ + { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, K5B, K5C, K5D, K5E } \ +} + +#endif diff --git a/keyboards/kbd8x/keymaps/default/config.h b/keyboards/kbd8x/keymaps/default/config.h new file mode 100644 index 000000000000..63bef2a735bb --- /dev/null +++ b/keyboards/kbd8x/keymaps/default/config.h @@ -0,0 +1,24 @@ +/* Copyright 2017 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +// place overrides here + +#endif diff --git a/keyboards/kbd8x/keymaps/default/keymap.c b/keyboards/kbd8x/keymaps/default/keymap.c new file mode 100644 index 000000000000..bfbc841d58fb --- /dev/null +++ b/keyboards/kbd8x/keymaps/default/keymap.c @@ -0,0 +1,64 @@ +/* Copyright 2017 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_all( + KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS, \ + KC_GRV, 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, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \ + 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_BSLS, KC_DEL, KC_END, KC_PGDN, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/kbd8x/keymaps/default/readme.md b/keyboards/kbd8x/keymaps/default/readme.md new file mode 100644 index 000000000000..773a3dfbaee2 --- /dev/null +++ b/keyboards/kbd8x/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# The default keymap for kbd8x + +This keymap uses the LAYOUT_all macro when creating its keymap. \ No newline at end of file diff --git a/keyboards/kbd8x/readme.md b/keyboards/kbd8x/readme.md new file mode 100644 index 000000000000..fe49819753bc --- /dev/null +++ b/keyboards/kbd8x/readme.md @@ -0,0 +1,15 @@ +# KBD 8X + +![kbd8x](imgur.com image replace me!) + +TKL Keyboard from KBDFans + +Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) +Hardware Supported: kbd8x +Hardware Availability: [KBDFans](https://kbdfans.cn/blogs/updates/kbd-8x-update-40) + +Make example for this keyboard (after setting up your build environment): + + make kbd8x:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/kbd8x/rules.mk b/keyboards/kbd8x/rules.mk new file mode 100644 index 000000000000..3bb473ba8f0f --- /dev/null +++ b/keyboards/kbd8x/rules.mk @@ -0,0 +1,69 @@ +# MCU name +#MCU = at90usb1286 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 +BOOTLOADER = atmel-dfu + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches From 46dca121fd2f51c4f5b87e48af37f43340591433 Mon Sep 17 00:00:00 2001 From: Hannes Egler Date: Tue, 8 May 2018 20:39:18 +0200 Subject: [PATCH 353/578] kbd75 fixes for the configurator (#2908) fixed the info.json --- keyboards/kbd75/info.json | 179 +++++++++++++++++++------------------- 1 file changed, 90 insertions(+), 89 deletions(-) diff --git a/keyboards/kbd75/info.json b/keyboards/kbd75/info.json index 2eb1412f2ab4..e1d578f63785 100644 --- a/keyboards/kbd75/info.json +++ b/keyboards/kbd75/info.json @@ -178,7 +178,7 @@ {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, - {"x":3.75, "y":5, "w":6.75}, + {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, @@ -188,92 +188,93 @@ }, "LAYOUT_iso_1u": { - "key_count": 85, - "layout": [ - {"label":"Esc", "x":0, "y":0}, - {"label":"F1", "x":1, "y":0}, - {"label":"F2", "x":2, "y":0}, - {"label":"F3", "x":3, "y":0}, - {"label":"F4", "x":4, "y":0}, - {"label":"F5", "x":5, "y":0}, - {"label":"F6", "x":6, "y":0}, - {"label":"F7", "x":7, "y":0}, - {"label":"F8", "x":8, "y":0}, - {"label":"F9", "x":9, "y":0}, - {"label":"F10", "x":10, "y":0}, - {"label":"F11", "x":11, "y":0}, - {"label":"F12", "x":12, "y":0}, - {"label":"PrtSc", "x":13, "y":0}, - {"label":"Pause", "x":14, "y":0}, - {"label":"Delete", "x":15, "y":0}, - {"label":"~", "x":0, "y":1}, - {"label":"1", "x":1, "y":1}, - {"label":"2", "x":2, "y":1}, - {"label":"3", "x":3, "y":1}, - {"label":"4", "x":4, "y":1}, - {"label":"5", "x":5, "y":1}, - {"label":"6", "x":6, "y":1}, - {"label":"7", "x":7, "y":1}, - {"label":"8", "x":8, "y":1}, - {"label":"9", "x":9, "y":1}, - {"label":"0", "x":10, "y":1}, - {"label":"_", "x":11, "y":1}, - {"label":"+", "x":12, "y":1}, - {"label":"delete", "x":13, "y":1, "w":2}, - {"label":"Home", "x":15, "y":1}, - {"label":"Tab", "x":0, "y":2, "w":1.5}, - {"label":"Q", "x":1.5, "y":2}, - {"label":"W", "x":2.5, "y":2}, - {"label":"E", "x":3.5, "y":2}, - {"label":"R", "x":4.5, "y":2}, - {"label":"T", "x":5.5, "y":2}, - {"label":"Y", "x":6.5, "y":2}, - {"label":"U", "x":7.5, "y":2}, - {"label":"I", "x":8.5, "y":2}, - {"label":"O", "x":9.5, "y":2}, - {"label":"P", "x":10.5, "y":2}, - {"label":"{", "x":11.5, "y":2}, - {"label":"}", "x":12.5, "y":2}, - {"label":"Enter", "x":13.75, "y":2, "KS":[ [0,0], [1.5,0], [1.5,2], [0.25,2], [0.25,1], [0,1], [0,0] ]}, - {"label":"Page Up", "x":15, "y":2}, - {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, - {"label":"A", "x":1.75, "y":3}, - {"label":"S", "x":2.75, "y":3}, - {"label":"D", "x":3.75, "y":3}, - {"label":"F", "x":4.75, "y":3}, - {"label":"G", "x":5.75, "y":3}, - {"label":"H", "x":6.75, "y":3}, - {"label":"J", "x":7.75, "y":3}, - {"label":"K", "x":8.75, "y":3}, - {"label":"L", "x":9.75, "y":3}, - {"label":":", "x":10.75, "y":3}, - {"label":"@", "x":11.75, "y":3}, - {"label":"~", "x":12.75, "y":3}, - {"label":"Page Down", "x":15, "y":3}, - {"label":"Shift", "x":0, "y":4, "w":1.25}, - {"x":1.25, "y":4}, - {"label":"Z", "x":2.25, "y":4}, - {"label":"X", "x":3.25, "y":4}, - {"label":"C", "x":4.25, "y":4}, - {"label":"V", "x":5.25, "y":4}, - {"label":"B", "x":6.25, "y":4}, - {"label":"N", "x":7.25, "y":4}, - {"label":"M", "x":8.25, "y":4}, - {"label":"<", "x":9.25, "y":4}, - {"label":">", "x":10.25, "y":4}, - {"label":"?", "x":11.25, "y":4}, - {"label":"Shift", "x":12.25, "y":4, "w":1.75}, - {"label":"\u2191", "x":14, "y":4}, - {"label":"End", "x":15, "y":4}, - {"label":"Ctrl", "x":0, "y":5, "w":1.25}, - {"label":"Win", "x":1.25, "y":5, "w":1.25}, - {"label":"Alt", "x":2.5, "y":5, "w":1.25},{"x":3.75, "y":5, "w":2.25}, {"x":6, "y":5}, {"x":7, "y":5, "w":3}, - {"label":"Alt", "x":10, "y":5}, - {"label":"Fn", "x":11, "y":5}, - {"label":"Ctrl", "x":12, "y":5}, - {"label":"\u2190", "x":13, "y":5}, - {"label":"\u2193", "x":14, "y":5}, - {"label":"\u2192", "x":15, "y":5}] + "key_count": 84, + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1, "y":0}, + {"label":"F2", "x":2, "y":0}, + {"label":"F3", "x":3, "y":0}, + {"label":"F4", "x":4, "y":0}, + {"label":"F5", "x":5, "y":0}, + {"label":"F6", "x":6, "y":0}, + {"label":"F7", "x":7, "y":0}, + {"label":"F8", "x":8, "y":0}, + {"label":"F9", "x":9, "y":0}, + {"label":"F10", "x":10, "y":0}, + {"label":"F11", "x":11, "y":0}, + {"label":"F12", "x":12, "y":0}, + {"label":"PrtSc", "x":13, "y":0}, + {"label":"Pause", "x":14, "y":0}, + {"label":"Delete", "x":15, "y":0}, + {"label":"~", "x":0, "y":1}, + {"label":"1", "x":1, "y":1}, + {"label":"2", "x":2, "y":1}, + {"label":"3", "x":3, "y":1}, + {"label":"4", "x":4, "y":1}, + {"label":"5", "x":5, "y":1}, + {"label":"6", "x":6, "y":1}, + {"label":"7", "x":7, "y":1}, + {"label":"8", "x":8, "y":1}, + {"label":"9", "x":9, "y":1}, + {"label":"0", "x":10, "y":1}, + {"label":"_", "x":11, "y":1}, + {"label":"+", "x":12, "y":1}, + {"label":"delete", "x":13, "y":1, "w":2}, + {"label":"Home", "x":15, "y":1}, + {"label":"Tab", "x":0, "y":2, "w":1.5}, + {"label":"Q", "x":1.5, "y":2}, + {"label":"W", "x":2.5, "y":2}, + {"label":"E", "x":3.5, "y":2}, + {"label":"R", "x":4.5, "y":2}, + {"label":"T", "x":5.5, "y":2}, + {"label":"Y", "x":6.5, "y":2}, + {"label":"U", "x":7.5, "y":2}, + {"label":"I", "x":8.5, "y":2}, + {"label":"O", "x":9.5, "y":2}, + {"label":"P", "x":10.5, "y":2}, + {"label":"{", "x":11.5, "y":2}, + {"label":"}", "x":12.5, "y":2}, + {"label":"Enter", "x":13.75, "y":2, "KS":[ [0,0], [1.5,0], [1.5,2], [0.25,2], [0.25,1], [0,1], [0,0] ]}, + {"label":"Page Up", "x":15, "y":2}, + {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, + {"label":"A", "x":1.75, "y":3}, + {"label":"S", "x":2.75, "y":3}, + {"label":"D", "x":3.75, "y":3}, + {"label":"F", "x":4.75, "y":3}, + {"label":"G", "x":5.75, "y":3}, + {"label":"H", "x":6.75, "y":3}, + {"label":"J", "x":7.75, "y":3}, + {"label":"K", "x":8.75, "y":3}, + {"label":"L", "x":9.75, "y":3}, + {"label":":", "x":10.75, "y":3}, + {"label":"@", "x":11.75, "y":3}, + {"label":"~", "x":12.75, "y":3}, + {"label":"Page Down", "x":15, "y":3}, + {"label":"Shift", "x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4}, + {"label":"Z", "x":2.25, "y":4}, + {"label":"X", "x":3.25, "y":4}, + {"label":"C", "x":4.25, "y":4}, + {"label":"V", "x":5.25, "y":4}, + {"label":"B", "x":6.25, "y":4}, + {"label":"N", "x":7.25, "y":4}, + {"label":"M", "x":8.25, "y":4}, + {"label":"<", "x":9.25, "y":4}, + {"label":">", "x":10.25, "y":4}, + {"label":"?", "x":11.25, "y":4}, + {"label":"Shift", "x":12.25, "y":4, "w":1.75}, + {"label":"\u2191", "x":14, "y":4}, + {"label":"End", "x":15, "y":4}, + {"label":"Ctrl", "x":0, "y":5, "w":1.25}, + {"label":"Win", "x":1.25, "y":5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5, "w":1.25}, + {"x":3.75, "y":5, "w":6.25}, + {"label":"Alt", "x":10, "y":5}, + {"label":"Fn", "x":11, "y":5}, + {"label":"Ctrl", "x":12, "y":5}, + {"label":"\u2190", "x":13, "y":5}, + {"label":"\u2193", "x":14, "y":5}, + {"label":"\u2192", "x":15, "y":5}] }, "LAYOUT_ansi": { @@ -356,7 +357,7 @@ {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, - {"x":3.75, "y":5, "w":6.75}, + {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.5}, {"label":"Ctrl", "x":11.5, "y":5, "w":1.5}, {"label":"\u2190", "x":13, "y":5}, @@ -445,7 +446,7 @@ {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, - {"x":3.75, "y":5, "w":6.75}, + {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.5}, {"label":"Ctrl", "x":11.5, "y":5, "w":1.5}, {"label":"\u2190", "x":13, "y":5}, From 14b7602a65dedaf51db1c9288144765d43a83a15 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 8 May 2018 15:24:18 -0400 Subject: [PATCH 354/578] Adds IS31FL3731 RGB Matrix Implementation (#2910) * adds is31fl3731 rgb matrix implementation * fix build script for force pushes * allow bootloader size to be overwritten * adds planck light implementation * split led config into 2 arrays * idk * betterize register handling * update planck implementation * update planck * refine rgb interface * cleanup names, rgb matrix * start documentation * finish up docs * add effects list * clean-up merge * add RGB_MATRIX_SKIP_FRAMES * add support for at90usb1286 to bootloader options --- bootloader.mk | 23 +- common_features.mk | 9 + docs/feature_rgb_matrix.md | 141 ++++++ drivers/avr/TWIlib.c | 232 +++++++++ drivers/avr/TWIlib.h | 82 +++ drivers/avr/is31fl3731.c | 258 ++++++++++ drivers/avr/is31fl3731.h | 214 ++++++++ keyboards/planck/light/config.h | 19 +- keyboards/planck/light/light.c | 141 +++++- keyboards/planck/light/light.h | 4 +- keyboards/planck/light/rules.mk | 4 +- keyboards/planck/rules.mk | 2 +- quantum/color.c | 87 ++++ quantum/color.h | 55 ++ quantum/quantum.c | 23 +- quantum/quantum.h | 6 + quantum/rgb.h | 47 ++ quantum/rgb_matrix.c | 873 ++++++++++++++++++++++++++++++++ quantum/rgb_matrix.h | 135 +++++ 19 files changed, 2336 insertions(+), 19 deletions(-) create mode 100644 docs/feature_rgb_matrix.md create mode 100644 drivers/avr/TWIlib.c create mode 100644 drivers/avr/TWIlib.h create mode 100644 drivers/avr/is31fl3731.c create mode 100644 drivers/avr/is31fl3731.h create mode 100644 quantum/color.c create mode 100644 quantum/color.h create mode 100644 quantum/rgb.h create mode 100644 quantum/rgb_matrix.c create mode 100644 quantum/rgb_matrix.h diff --git a/bootloader.mk b/bootloader.mk index 55352f3d4265..f30e38dd05b5 100644 --- a/bootloader.mk +++ b/bootloader.mk @@ -32,17 +32,32 @@ ifeq ($(strip $(BOOTLOADER)), atmel-dfu) OPT_DEFS += -DBOOTLOADER_ATMEL_DFU OPT_DEFS += -DBOOTLOADER_DFU - BOOTLOADER_SIZE = 4096 + ifeq ($(strip $(MCU)), atmega32u4) + BOOTLOADER_SIZE = 4096 + endif + ifeq ($(strip $(MCU)), at90usb1286) + BOOTLOADER_SIZE = 8192 + endif endif ifeq ($(strip $(BOOTLOADER)), lufa-dfu) OPT_DEFS += -DBOOTLOADER_LUFA_DFU OPT_DEFS += -DBOOTLOADER_DFU - BOOTLOADER_SIZE = 4096 + ifeq ($(strip $(MCU)), atmega32u4) + BOOTLOADER_SIZE = 4096 + endif + ifeq ($(strip $(MCU)), at90usb1286) + BOOTLOADER_SIZE = 8192 + endif endif ifeq ($(strip $(BOOTLOADER)), qmk-dfu) OPT_DEFS += -DBOOTLOADER_QMK_DFU OPT_DEFS += -DBOOTLOADER_DFU - BOOTLOADER_SIZE = 4096 + ifeq ($(strip $(MCU)), atmega32u4) + BOOTLOADER_SIZE = 4096 + endif + ifeq ($(strip $(MCU)), at90usb1286) + BOOTLOADER_SIZE = 8192 + endif endif ifeq ($(strip $(BOOTLOADER)), halfkay) OPT_DEFS += -DBOOTLOADER_HALFKAY @@ -59,4 +74,4 @@ endif ifdef BOOTLOADER_SIZE OPT_DEFS += -DBOOTLOADER_SIZE=$(strip $(BOOTLOADER_SIZE)) -endif \ No newline at end of file +endif diff --git a/common_features.mk b/common_features.mk index 7bd43afdbaf8..7ba7d48154dd 100644 --- a/common_features.mk +++ b/common_features.mk @@ -114,6 +114,15 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) endif endif +ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) + OPT_DEFS += -DRGB_MATRIX_ENABLE + SRC += is31fl3731.c + SRC += TWIlib.c + SRC += $(QUANTUM_DIR)/color.c + SRC += $(QUANTUM_DIR)/rgb_matrix.c + CIE1931_CURVE = yes +endif + ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) OPT_DEFS += -DTAP_DANCE_ENABLE SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md new file mode 100644 index 000000000000..dfc103247acb --- /dev/null +++ b/docs/feature_rgb_matrix.md @@ -0,0 +1,141 @@ +# RGB Matrix Lighting + +There is basic support for addressable RGB matrix lighting with the I2C IS31FL3731 RGB controller. To enable it, add this to your `rules.mk`: + + RGB_MATRIX_ENABLE = yes + +Configure the hardware via your `config.h`: + + // This is a 7-bit address, that gets left-shifted and bit 0 + // set to 0 for write, 1 for read (as per I2C protocol) + // The address will vary depending on your wiring: + // 0b1110100 AD <-> GND + // 0b1110111 AD <-> VCC + // 0b1110101 AD <-> SCL + // 0b1110110 AD <-> SDA + #define DRIVER_ADDR_1 0b1110100 + #define DRIVER_ADDR_2 0b1110110 + + #define DRIVER_COUNT 2 + #define DRIVER_1_LED_TOTAL 25 + #define DRIVER_2_LED_TOTAL 24 + #define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + +Currently only 2 drivers are supported, but it would be trivial to support all 4 combinations. + +Define these arrays listing all the LEDs in your `.c`: + + const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { + /* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C1_3, C2_3, C3_3}, + .... + } + +Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet](http://www.issi.com/WW/pdf/31FL3731.pdf). The `driver` is the index of the driver you defined in your `config.h` (`0` or `1` right now). + + const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { + /* {row | col << 4} + * | {x=0..224, y=0..64} + * | | modifier + * | | | */ + {{0|(0<<4)}, {20.36*0, 21.33*0}, 1}, + {{0|(1<<4)}, {20.36*1, 21.33*0}, 1}, + .... + } + +The format for the matrix position used in this array is `{row | (col << 4)}`. The `x` is between (inclusive) 0-224, and `y` is between (inclusive) 0-64. The easiest way to calculate these positions is: + + x = 224 / ( NUMBER_OF_ROWS - 1 ) * ROW_POSITION + y = 64 / (NUMBER_OF_COLS - 1 ) * COL_POSITION + +Where all variables are decimels/floats. + +`modifier` is a boolean, whether or not a certain key is considered a modifier (used in some effects). + +## Keycodes + +All RGB keycodes are currently shared with the RGBLIGHT system: + + * `RGB_TOG` - toggle + * `RGB_MOD` - cycle through modes + * `RGB_HUI` - increase hue + * `RGB_HUD` - decrease hue + * `RGB_SAI` - increase saturation + * `RGB_SAD` - decrease saturation + * `RGB_VAI` - increase value + * `RGB_VAD` - decrease value + + + * `RGB_MODE_*` keycodes will generally work, but are not currently mapped to the correct effects for the RGB Matrix system + +## RGB Matrix Effects + +These are the effects that are currently available: + + enum rgb_matrix_effects { + RGB_MATRIX_SOLID_COLOR = 1, + RGB_MATRIX_SOLID_REACTIVE, + RGB_MATRIX_ALPHAS_MODS, + RGB_MATRIX_DUAL_BEACON, + RGB_MATRIX_GRADIENT_UP_DOWN, + RGB_MATRIX_RAINDROPS, + RGB_MATRIX_CYCLE_ALL, + RGB_MATRIX_CYCLE_LEFT_RIGHT, + RGB_MATRIX_CYCLE_UP_DOWN, + RGB_MATRIX_RAINBOW_BEACON, + RGB_MATRIX_RAINBOW_PINWHEELS, + RGB_MATRIX_RAINBOW_MOVING_CHEVRON, + RGB_MATRIX_JELLYBEAN_RAINDROPS, + #ifdef RGB_MATRIX_KEYPRESSES + RGB_MATRIX_SPLASH, + RGB_MATRIX_MULTISPLASH, + RGB_MATRIX_SOLID_SPLASH, + RGB_MATRIX_SOLID_MULTISPLASH, + #endif + RGB_MATRIX_EFFECT_MAX + }; + +## Custom layer effects + +Custom layer effects can be done by defining this in your `.c`: + + void rgb_matrix_indicators_kb(void) { + // rgb_matrix_set_color(index, red, green, blue); + } + +A similar function works in the keymap as `rgb_matrix_indicators_user`. + +## Additional `config.h` Options + + #define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot) + #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened) + #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects + #define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended + #define RGB_MATRIX_SKIP_FRAMES 1 // number of frames to skip when displaying animations (0 is full effect) + +## EEPROM storage + +The EEPROM for it is currently shared with the RGBLIGHT system (it's generally assumed only one RGB would be used at a time), but could be configured to use its own 32bit address with: + + #define EECONFIG_RGB_MATRIX (uint32_t *)16 + +Where `16` is an unused index from `eeconfig.h`. + +## Suspended state + +To use the suspend feature, add this to your `.c`: + + void suspend_power_down_kb(void) + { + rgb_matrix_set_suspend_state(true); + } + + void suspend_wakeup_init_kb(void) + { + rgb_matrix_set_suspend_state(false); + } diff --git a/drivers/avr/TWIlib.c b/drivers/avr/TWIlib.c new file mode 100644 index 000000000000..b39e3054a5c7 --- /dev/null +++ b/drivers/avr/TWIlib.c @@ -0,0 +1,232 @@ +/* + * TWIlib.c + * + * Created: 6/01/2014 10:41:33 PM + * Author: Chris Herring + * http://www.chrisherring.net/all/tutorial-interrupt-driven-twi-interface-for-avr-part1/ + */ + +#include +#include +#include "TWIlib.h" +#include "util/delay.h" + +void TWIInit() +{ + TWIInfo.mode = Ready; + TWIInfo.errorCode = 0xFF; + TWIInfo.repStart = 0; + // Set pre-scalers (no pre-scaling) + TWSR = 0; + // Set bit rate + TWBR = ((F_CPU / TWI_FREQ) - 16) / 2; + // Enable TWI and interrupt + TWCR = (1 << TWIE) | (1 << TWEN); +} + +uint8_t isTWIReady() +{ + if ( (TWIInfo.mode == Ready) | (TWIInfo.mode == RepeatedStartSent) ) + { + return 1; + } + else + { + return 0; + } +} + +uint8_t TWITransmitData(void *const TXdata, uint8_t dataLen, uint8_t repStart) +{ + if (dataLen <= TXMAXBUFLEN) + { + // Wait until ready + while (!isTWIReady()) {_delay_us(1);} + // Set repeated start mode + TWIInfo.repStart = repStart; + // Copy data into the transmit buffer + uint8_t *data = (uint8_t *)TXdata; + for (int i = 0; i < dataLen; i++) + { + TWITransmitBuffer[i] = data[i]; + } + // Copy transmit info to global variables + TXBuffLen = dataLen; + TXBuffIndex = 0; + + // If a repeated start has been sent, then devices are already listening for an address + // and another start does not need to be sent. + if (TWIInfo.mode == RepeatedStartSent) + { + TWIInfo.mode = Initializing; + TWDR = TWITransmitBuffer[TXBuffIndex++]; // Load data to transmit buffer + TWISendTransmit(); // Send the data + } + else // Otherwise, just send the normal start signal to begin transmission. + { + TWIInfo.mode = Initializing; + TWISendStart(); + } + + } + else + { + return 1; // return an error if data length is longer than buffer + } + return 0; +} + +uint8_t TWIReadData(uint8_t TWIaddr, uint8_t bytesToRead, uint8_t repStart) +{ + // Check if number of bytes to read can fit in the RXbuffer + if (bytesToRead < RXMAXBUFLEN) + { + // Reset buffer index and set RXBuffLen to the number of bytes to read + RXBuffIndex = 0; + RXBuffLen = bytesToRead; + // Create the one value array for the address to be transmitted + uint8_t TXdata[1]; + // Shift the address and AND a 1 into the read write bit (set to write mode) + TXdata[0] = (TWIaddr << 1) | 0x01; + // Use the TWITransmitData function to initialize the transfer and address the slave + TWITransmitData(TXdata, 1, repStart); + } + else + { + return 0; + } + return 1; +} + +ISR (TWI_vect) +{ + switch (TWI_STATUS) + { + // ----\/ ---- MASTER TRANSMITTER OR WRITING ADDRESS ----\/ ---- // + case TWI_MT_SLAW_ACK: // SLA+W transmitted and ACK received + // Set mode to Master Transmitter + TWIInfo.mode = MasterTransmitter; + case TWI_START_SENT: // Start condition has been transmitted + case TWI_MT_DATA_ACK: // Data byte has been transmitted, ACK received + if (TXBuffIndex < TXBuffLen) // If there is more data to send + { + TWDR = TWITransmitBuffer[TXBuffIndex++]; // Load data to transmit buffer + TWIInfo.errorCode = TWI_NO_RELEVANT_INFO; + TWISendTransmit(); // Send the data + } + // This transmission is complete however do not release bus yet + else if (TWIInfo.repStart) + { + TWIInfo.errorCode = 0xFF; + TWISendStart(); + } + // All transmissions are complete, exit + else + { + TWIInfo.mode = Ready; + TWIInfo.errorCode = 0xFF; + TWISendStop(); + } + break; + + // ----\/ ---- MASTER RECEIVER ----\/ ---- // + + case TWI_MR_SLAR_ACK: // SLA+R has been transmitted, ACK has been received + // Switch to Master Receiver mode + TWIInfo.mode = MasterReceiver; + // If there is more than one byte to be read, receive data byte and return an ACK + if (RXBuffIndex < RXBuffLen-1) + { + TWIInfo.errorCode = TWI_NO_RELEVANT_INFO; + TWISendACK(); + } + // Otherwise when a data byte (the only data byte) is received, return NACK + else + { + TWIInfo.errorCode = TWI_NO_RELEVANT_INFO; + TWISendNACK(); + } + break; + + case TWI_MR_DATA_ACK: // Data has been received, ACK has been transmitted. + + /// -- HANDLE DATA BYTE --- /// + TWIReceiveBuffer[RXBuffIndex++] = TWDR; + // If there is more than one byte to be read, receive data byte and return an ACK + if (RXBuffIndex < RXBuffLen-1) + { + TWIInfo.errorCode = TWI_NO_RELEVANT_INFO; + TWISendACK(); + } + // Otherwise when a data byte (the only data byte) is received, return NACK + else + { + TWIInfo.errorCode = TWI_NO_RELEVANT_INFO; + TWISendNACK(); + } + break; + + case TWI_MR_DATA_NACK: // Data byte has been received, NACK has been transmitted. End of transmission. + + /// -- HANDLE DATA BYTE --- /// + TWIReceiveBuffer[RXBuffIndex++] = TWDR; + // This transmission is complete however do not release bus yet + if (TWIInfo.repStart) + { + TWIInfo.errorCode = 0xFF; + TWISendStart(); + } + // All transmissions are complete, exit + else + { + TWIInfo.mode = Ready; + TWIInfo.errorCode = 0xFF; + TWISendStop(); + } + break; + + // ----\/ ---- MT and MR common ----\/ ---- // + + case TWI_MR_SLAR_NACK: // SLA+R transmitted, NACK received + case TWI_MT_SLAW_NACK: // SLA+W transmitted, NACK received + case TWI_MT_DATA_NACK: // Data byte has been transmitted, NACK received + case TWI_LOST_ARBIT: // Arbitration has been lost + // Return error and send stop and set mode to ready + if (TWIInfo.repStart) + { + TWIInfo.errorCode = TWI_STATUS; + TWISendStart(); + } + // All transmissions are complete, exit + else + { + TWIInfo.mode = Ready; + TWIInfo.errorCode = TWI_STATUS; + TWISendStop(); + } + break; + case TWI_REP_START_SENT: // Repeated start has been transmitted + // Set the mode but DO NOT clear TWINT as the next data is not yet ready + TWIInfo.mode = RepeatedStartSent; + break; + + // ----\/ ---- SLAVE RECEIVER ----\/ ---- // + + // TODO IMPLEMENT SLAVE RECEIVER FUNCTIONALITY + + // ----\/ ---- SLAVE TRANSMITTER ----\/ ---- // + + // TODO IMPLEMENT SLAVE TRANSMITTER FUNCTIONALITY + + // ----\/ ---- MISCELLANEOUS STATES ----\/ ---- // + case TWI_NO_RELEVANT_INFO: // It is not really possible to get into this ISR on this condition + // Rather, it is there to be manually set between operations + break; + case TWI_ILLEGAL_START_STOP: // Illegal START/STOP, abort and return error + TWIInfo.errorCode = TWI_ILLEGAL_START_STOP; + TWIInfo.mode = Ready; + TWISendStop(); + break; + } + +} diff --git a/drivers/avr/TWIlib.h b/drivers/avr/TWIlib.h new file mode 100644 index 000000000000..23fd1f09aa9f --- /dev/null +++ b/drivers/avr/TWIlib.h @@ -0,0 +1,82 @@ +/* + * TWIlib.h + * + * Created: 6/01/2014 10:38:42 PM + * Author: Chris Herring + * http://www.chrisherring.net/all/tutorial-interrupt-driven-twi-interface-for-avr-part1/ + */ + + +#ifndef TWILIB_H_ +#define TWILIB_H_ +// TWI bit rate (was 100000) +#define TWI_FREQ 400000 +// Get TWI status +#define TWI_STATUS (TWSR & 0xF8) +// Transmit buffer length +#define TXMAXBUFLEN 20 +// Receive buffer length +#define RXMAXBUFLEN 20 +// Global transmit buffer +uint8_t TWITransmitBuffer[TXMAXBUFLEN]; +// Global receive buffer +volatile uint8_t TWIReceiveBuffer[RXMAXBUFLEN]; +// Buffer indexes +volatile int TXBuffIndex; // Index of the transmit buffer. Is volatile, can change at any time. +int RXBuffIndex; // Current index in the receive buffer +// Buffer lengths +int TXBuffLen; // The total length of the transmit buffer +int RXBuffLen; // The total number of bytes to read (should be less than RXMAXBUFFLEN) + +typedef enum { + Ready, + Initializing, + RepeatedStartSent, + MasterTransmitter, + MasterReceiver, + SlaceTransmitter, + SlaveReciever + } TWIMode; + + typedef struct TWIInfoStruct{ + TWIMode mode; + uint8_t errorCode; + uint8_t repStart; + }TWIInfoStruct; +TWIInfoStruct TWIInfo; + + +// TWI Status Codes +#define TWI_START_SENT 0x08 // Start sent +#define TWI_REP_START_SENT 0x10 // Repeated Start sent +// Master Transmitter Mode +#define TWI_MT_SLAW_ACK 0x18 // SLA+W sent and ACK received +#define TWI_MT_SLAW_NACK 0x20 // SLA+W sent and NACK received +#define TWI_MT_DATA_ACK 0x28 // DATA sent and ACK received +#define TWI_MT_DATA_NACK 0x30 // DATA sent and NACK received +// Master Receiver Mode +#define TWI_MR_SLAR_ACK 0x40 // SLA+R sent, ACK received +#define TWI_MR_SLAR_NACK 0x48 // SLA+R sent, NACK received +#define TWI_MR_DATA_ACK 0x50 // Data received, ACK returned +#define TWI_MR_DATA_NACK 0x58 // Data received, NACK returned + +// Miscellaneous States +#define TWI_LOST_ARBIT 0x38 // Arbitration has been lost +#define TWI_NO_RELEVANT_INFO 0xF8 // No relevant information available +#define TWI_ILLEGAL_START_STOP 0x00 // Illegal START or STOP condition has been detected +#define TWI_SUCCESS 0xFF // Successful transfer, this state is impossible from TWSR as bit2 is 0 and read only + + +#define TWISendStart() (TWCR = (1<. + */ + +#include "is31fl3731.h" +#include +#include +#include +#include +#include "TWIlib.h" +#include "progmem.h" + +// This is a 7-bit address, that gets left-shifted and bit 0 +// set to 0 for write, 1 for read (as per I2C protocol) +// The address will vary depending on your wiring: +// 0b1110100 AD <-> GND +// 0b1110111 AD <-> VCC +// 0b1110101 AD <-> SCL +// 0b1110110 AD <-> SDA +#define ISSI_ADDR_DEFAULT 0x74 + +#define ISSI_REG_CONFIG 0x00 +#define ISSI_REG_CONFIG_PICTUREMODE 0x00 +#define ISSI_REG_CONFIG_AUTOPLAYMODE 0x08 +#define ISSI_REG_CONFIG_AUDIOPLAYMODE 0x18 + +#define ISSI_CONF_PICTUREMODE 0x00 +#define ISSI_CONF_AUTOFRAMEMODE 0x04 +#define ISSI_CONF_AUDIOMODE 0x08 + +#define ISSI_REG_PICTUREFRAME 0x01 + +#define ISSI_REG_SHUTDOWN 0x0A +#define ISSI_REG_AUDIOSYNC 0x06 + +#define ISSI_COMMANDREGISTER 0xFD +#define ISSI_BANK_FUNCTIONREG 0x0B // helpfully called 'page nine' + +// Transfer buffer for TWITransmitData() +uint8_t g_twi_transfer_buffer[TXMAXBUFLEN]; + +// These buffers match the IS31FL3731 PWM registers 0x24-0xB3. +// Storing them like this is optimal for I2C transfers to the registers. +// We could optimize this and take out the unused registers from these +// buffers and the transfers in IS31FL3731_write_pwm_buffer() but it's +// probably not worth the extra complexity. +uint8_t g_pwm_buffer[DRIVER_COUNT][144]; +bool g_pwm_buffer_update_required = false; + +uint8_t g_led_control_registers[DRIVER_COUNT][18] = { { 0 }, { 0 } }; +bool g_led_control_registers_update_required = false; + +// This is the bit pattern in the LED control registers +// (for matrix A, add one to register for matrix B) +// +// reg - b7 b6 b5 b4 b3 b2 b1 b0 +// 0x00 - R08,R07,R06,R05,R04,R03,R02,R01 +// 0x02 - G08,G07,G06,G05,G04,G03,G02,R00 +// 0x04 - B08,B07,B06,B05,B04,B03,G01,G00 +// 0x06 - - , - , - , - , - ,B02,B01,B00 +// 0x08 - - , - , - , - , - , - , - , - +// 0x0A - B17,B16,B15, - , - , - , - , - +// 0x0C - G17,G16,B14,B13,B12,B11,B10,B09 +// 0x0E - R17,G15,G14,G13,G12,G11,G10,G09 +// 0x10 - R16,R15,R14,R13,R12,R11,R10,R09 + + +void IS31FL3731_write_register( uint8_t addr, uint8_t reg, uint8_t data ) +{ + g_twi_transfer_buffer[0] = (addr << 1) | 0x00; + g_twi_transfer_buffer[1] = reg; + g_twi_transfer_buffer[2] = data; + + // Set the error code to have no relevant information + TWIInfo.errorCode = TWI_NO_RELEVANT_INFO; + // Continuously attempt to transmit data until a successful transmission occurs + //while ( TWIInfo.errorCode != 0xFF ) + //{ + TWITransmitData( g_twi_transfer_buffer, 3, 0 ); + //} +} + +void IS31FL3731_write_pwm_buffer( uint8_t addr, uint8_t *pwm_buffer ) +{ + // assumes bank is already selected + + // transmit PWM registers in 9 transfers of 16 bytes + // g_twi_transfer_buffer[] is 20 bytes + + // set the I2C address + g_twi_transfer_buffer[0] = (addr << 1) | 0x00; + + // iterate over the pwm_buffer contents at 16 byte intervals + for ( int i = 0; i < 144; i += 16 ) + { + // set the first register, e.g. 0x24, 0x34, 0x44, etc. + g_twi_transfer_buffer[1] = 0x24 + i; + // copy the data from i to i+15 + // device will auto-increment register for data after the first byte + // thus this sets registers 0x24-0x33, 0x34-0x43, etc. in one transfer + for ( int j = 0; j < 16; j++ ) + { + g_twi_transfer_buffer[2 + j] = pwm_buffer[i + j]; + } + + // Set the error code to have no relevant information + TWIInfo.errorCode = TWI_NO_RELEVANT_INFO; + // Continuously attempt to transmit data until a successful transmission occurs + while ( TWIInfo.errorCode != 0xFF ) + { + TWITransmitData( g_twi_transfer_buffer, 16 + 2, 0 ); + } + } +} + +void IS31FL3731_init( uint8_t addr ) +{ + // In order to avoid the LEDs being driven with garbage data + // in the LED driver's PWM registers, first enable software shutdown, + // then set up the mode and other settings, clear the PWM registers, + // then disable software shutdown. + + // select "function register" bank + IS31FL3731_write_register( addr, ISSI_COMMANDREGISTER, ISSI_BANK_FUNCTIONREG ); + + // enable software shutdown + IS31FL3731_write_register( addr, ISSI_REG_SHUTDOWN, 0x00 ); + // this delay was copied from other drivers, might not be needed + _delay_ms( 10 ); + + // picture mode + IS31FL3731_write_register( addr, ISSI_REG_CONFIG, ISSI_REG_CONFIG_PICTUREMODE ); + // display frame 0 + IS31FL3731_write_register( addr, ISSI_REG_PICTUREFRAME, 0x00 ); + // audio sync off + IS31FL3731_write_register( addr, ISSI_REG_AUDIOSYNC, 0x00 ); + + // select bank 0 + IS31FL3731_write_register( addr, ISSI_COMMANDREGISTER, 0 ); + + // turn off all LEDs in the LED control register + for ( int i = 0x00; i <= 0x11; i++ ) + { + IS31FL3731_write_register( addr, i, 0x00 ); + } + + // turn off all LEDs in the blink control register (not really needed) + for ( int i = 0x12; i <= 0x23; i++ ) + { + IS31FL3731_write_register( addr, i, 0x00 ); + } + + // set PWM on all LEDs to 0 + for ( int i = 0x24; i <= 0xB3; i++ ) + { + IS31FL3731_write_register( addr, i, 0x00 ); + } + + // select "function register" bank + IS31FL3731_write_register( addr, ISSI_COMMANDREGISTER, ISSI_BANK_FUNCTIONREG ); + + // disable software shutdown + IS31FL3731_write_register( addr, ISSI_REG_SHUTDOWN, 0x01 ); + + // select bank 0 and leave it selected. + // most usage after initialization is just writing PWM buffers in bank 0 + // as there's not much point in double-buffering + IS31FL3731_write_register( addr, ISSI_COMMANDREGISTER, 0 ); +} + +void IS31FL3731_set_color( int index, uint8_t red, uint8_t green, uint8_t blue ) +{ + if ( index >= 0 && index < DRIVER_LED_TOTAL ) { + is31_led led = g_is31_leds[index]; + + // Subtract 0x24 to get the second index of g_pwm_buffer + g_pwm_buffer[led.driver][led.r - 0x24] = red; + g_pwm_buffer[led.driver][led.g - 0x24] = green; + g_pwm_buffer[led.driver][led.b - 0x24] = blue; + g_pwm_buffer_update_required = true; + } +} + +void IS31FL3731_set_color_all( uint8_t red, uint8_t green, uint8_t blue ) +{ + for ( int i = 0; i < DRIVER_LED_TOTAL; i++ ) + { + IS31FL3731_set_color( i, red, green, blue ); + } +} + +void IS31FL3731_set_led_control_register( uint8_t index, bool red, bool green, bool blue ) +{ + is31_led led = g_is31_leds[index]; + + uint8_t control_register_r = (led.r - 0x24) / 8; + uint8_t control_register_g = (led.g - 0x24) / 8; + uint8_t control_register_b = (led.b - 0x24) / 8; + uint8_t bit_r = (led.r - 0x24) % 8; + uint8_t bit_g = (led.g - 0x24) % 8; + uint8_t bit_b = (led.b - 0x24) % 8; + + if ( red ) { + g_led_control_registers[led.driver][control_register_r] |= (1 << bit_r); + } else { + g_led_control_registers[led.driver][control_register_r] &= ~(1 << bit_r); + } + if ( green ) { + g_led_control_registers[led.driver][control_register_g] |= (1 << bit_g); + } else { + g_led_control_registers[led.driver][control_register_g] &= ~(1 << bit_g); + } + if ( blue ) { + g_led_control_registers[led.driver][control_register_b] |= (1 << bit_b); + } else { + g_led_control_registers[led.driver][control_register_b] &= ~(1 << bit_b); + } + + g_led_control_registers_update_required = true; + + +} + +void IS31FL3731_update_pwm_buffers( uint8_t addr1, uint8_t addr2 ) +{ + if ( g_pwm_buffer_update_required ) + { + IS31FL3731_write_pwm_buffer( addr1, g_pwm_buffer[0] ); + IS31FL3731_write_pwm_buffer( addr2, g_pwm_buffer[1] ); + } + g_pwm_buffer_update_required = false; +} + +void IS31FL3731_update_led_control_registers( uint8_t addr1, uint8_t addr2 ) +{ + if ( g_led_control_registers_update_required ) + { + for ( int i=0; i<18; i++ ) + { + IS31FL3731_write_register(addr1, i, g_led_control_registers[0][i] ); + IS31FL3731_write_register(addr2, i, g_led_control_registers[1][i] ); + } + } +} + diff --git a/drivers/avr/is31fl3731.h b/drivers/avr/is31fl3731.h new file mode 100644 index 000000000000..3d30fc67b754 --- /dev/null +++ b/drivers/avr/is31fl3731.h @@ -0,0 +1,214 @@ +/* Copyright 2017 Jason Williams + * Copyright 2018 Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#ifndef IS31FL3731_DRIVER_H +#define IS31FL3731_DRIVER_H + +#include +#include + +typedef struct is31_led { + uint8_t driver:2; + uint8_t r; + uint8_t g; + uint8_t b; +} __attribute__((packed)) is31_led; + +extern const is31_led g_is31_leds[DRIVER_LED_TOTAL]; + +void IS31FL3731_init( uint8_t addr ); +void IS31FL3731_write_register( uint8_t addr, uint8_t reg, uint8_t data ); +void IS31FL3731_write_pwm_buffer( uint8_t addr, uint8_t *pwm_buffer ); + +void IS31FL3731_set_color( int index, uint8_t red, uint8_t green, uint8_t blue ); +void IS31FL3731_set_color_all( uint8_t red, uint8_t green, uint8_t blue ); + +void IS31FL3731_set_led_control_register( uint8_t index, bool red, bool green, bool blue ); + +// This should not be called from an interrupt +// (eg. from a timer interrupt). +// Call this while idle (in between matrix scans). +// If the buffer is dirty, it will update the driver with the buffer. +void IS31FL3731_update_pwm_buffers( uint8_t addr1, uint8_t addr2 ); +void IS31FL3731_update_led_control_registers( uint8_t addr1, uint8_t addr2 ); + +#define C1_1 0x24 +#define C1_2 0x25 +#define C1_3 0x26 +#define C1_4 0x27 +#define C1_5 0x28 +#define C1_6 0x29 +#define C1_7 0x2A +#define C1_8 0x2B + +#define C1_9 0x2C +#define C1_10 0x2D +#define C1_11 0x2E +#define C1_12 0x2F +#define C1_13 0x30 +#define C1_14 0x31 +#define C1_15 0x32 +#define C1_16 0x33 + +#define C2_1 0x34 +#define C2_2 0x35 +#define C2_3 0x36 +#define C2_4 0x37 +#define C2_5 0x38 +#define C2_6 0x39 +#define C2_7 0x3A +#define C2_8 0x3B + +#define C2_9 0x3C +#define C2_10 0x3D +#define C2_11 0x3E +#define C2_12 0x3F +#define C2_13 0x40 +#define C2_14 0x41 +#define C2_15 0x42 +#define C2_16 0x43 + +#define C3_1 0x44 +#define C3_2 0x45 +#define C3_3 0x46 +#define C3_4 0x47 +#define C3_5 0x48 +#define C3_6 0x49 +#define C3_7 0x4A +#define C3_8 0x4B + +#define C3_9 0x4C +#define C3_10 0x4D +#define C3_11 0x4E +#define C3_12 0x4F +#define C3_13 0x50 +#define C3_14 0x51 +#define C3_15 0x52 +#define C3_16 0x53 + +#define C4_1 0x54 +#define C4_2 0x55 +#define C4_3 0x56 +#define C4_4 0x57 +#define C4_5 0x58 +#define C4_6 0x59 +#define C4_7 0x5A +#define C4_8 0x5B + +#define C4_9 0x5C +#define C4_10 0x5D +#define C4_11 0x5E +#define C4_12 0x5F +#define C4_13 0x60 +#define C4_14 0x61 +#define C4_15 0x62 +#define C4_16 0x63 + +#define C5_1 0x64 +#define C5_2 0x65 +#define C5_3 0x66 +#define C5_4 0x67 +#define C5_5 0x68 +#define C5_6 0x69 +#define C5_7 0x6A +#define C5_8 0x6B + +#define C5_9 0x6C +#define C5_10 0x6D +#define C5_11 0x6E +#define C5_12 0x6F +#define C5_13 0x70 +#define C5_14 0x71 +#define C5_15 0x72 +#define C5_16 0x73 + +#define C6_1 0x74 +#define C6_2 0x75 +#define C6_3 0x76 +#define C6_4 0x77 +#define C6_5 0x78 +#define C6_6 0x79 +#define C6_7 0x7A +#define C6_8 0x7B + +#define C6_9 0x7C +#define C6_10 0x7D +#define C6_11 0x7E +#define C6_12 0x7F +#define C6_13 0x80 +#define C6_14 0x81 +#define C6_15 0x82 +#define C6_16 0x83 + +#define C7_1 0x84 +#define C7_2 0x85 +#define C7_3 0x86 +#define C7_4 0x87 +#define C7_5 0x88 +#define C7_6 0x89 +#define C7_7 0x8A +#define C7_8 0x8B + +#define C7_9 0x8C +#define C7_10 0x8D +#define C7_11 0x8E +#define C7_12 0x8F +#define C7_13 0x90 +#define C7_14 0x91 +#define C7_15 0x92 +#define C7_16 0x93 + +#define C8_1 0x94 +#define C8_2 0x95 +#define C8_3 0x96 +#define C8_4 0x97 +#define C8_5 0x98 +#define C8_6 0x99 +#define C8_7 0x9A +#define C8_8 0x9B + +#define C8_9 0x9C +#define C8_10 0x9D +#define C8_11 0x9E +#define C8_12 0x9F +#define C8_13 0xA0 +#define C8_14 0xA1 +#define C8_15 0xA2 +#define C8_16 0xA3 + +#define C9_1 0xA4 +#define C9_2 0xA5 +#define C9_3 0xA6 +#define C9_4 0xA7 +#define C9_5 0xA8 +#define C9_6 0xA9 +#define C9_7 0xAA +#define C9_8 0xAB + +#define C9_9 0xAC +#define C9_10 0xAD +#define C9_11 0xAE +#define C9_12 0xAF +#define C9_13 0xB0 +#define C9_14 0xB1 +#define C9_15 0xB2 +#define C9_16 0xB3 + + + +#endif // IS31FL3731_DRIVER_H diff --git a/keyboards/planck/light/config.h b/keyboards/planck/light/config.h index 71c924904d69..17c015ed0fdf 100644 --- a/keyboards/planck/light/config.h +++ b/keyboards/planck/light/config.h @@ -24,5 +24,22 @@ #define NO_USB_STARTUP_CHECK +#define PLANCK_MIT_LAYOUT -#endif \ No newline at end of file +// This is a 7-bit address, that gets left-shifted and bit 0 +// set to 0 for write, 1 for read (as per I2C protocol) +// The address will vary depending on your wiring: +// 0b1110100 AD <-> GND +// 0b1110111 AD <-> VCC +// 0b1110101 AD <-> SCL +// 0b1110110 AD <-> SDA +#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_2 0b1110110 + +#define DRIVER_COUNT 2 +#define DRIVER_1_LED_TOTAL 25 +#define DRIVER_2_LED_TOTAL 24 +#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + + +#endif diff --git a/keyboards/planck/light/light.c b/keyboards/planck/light/light.c index 96261616c3c1..cef57c5e69ff 100644 --- a/keyboards/planck/light/light.c +++ b/keyboards/planck/light/light.c @@ -1,5 +1,4 @@ -/* Copyright 2017 Jason Williams - * Copyright 2017 Jack Humbert +/* Copyright 2017 Jack Humbert * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,6 +16,127 @@ #include "light.h" +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C1_3, C2_3, C3_3}, + {0, C1_4, C2_4, C3_4}, + {0, C1_5, C2_5, C3_5}, + {0, C1_11, C2_11, C3_11}, + {0, C1_12, C2_12, C3_12}, + {0, C1_13, C2_13, C3_13}, + {1, C1_3, C2_3, C3_3}, + {1, C1_4, C2_4, C3_4}, + {1, C1_5, C2_5, C3_5}, + {1, C1_11, C2_11, C3_11}, + {1, C1_12, C2_12, C3_12}, + {1, C1_13, C2_13, C3_13}, + + {0, C1_6, C2_6, C3_6}, + {0, C1_7, C2_7, C3_7}, + {0, C1_8, C2_8, C3_8}, + {0, C1_14, C2_14, C3_14}, + {0, C1_15, C2_15, C3_15}, + {0, C1_16, C2_16, C3_16}, + {1, C1_6, C2_6, C3_6}, + {1, C1_7, C2_7, C3_7}, + {1, C1_8, C2_8, C3_8}, + {1, C1_14, C2_14, C3_14}, + {1, C1_15, C2_15, C3_15}, + {1, C1_16, C2_16, C3_16}, + + {0, C9_1, C8_1, C7_1}, + {0, C9_2, C8_2, C7_2}, + {0, C9_3, C8_3, C7_3}, + {0, C9_9, C8_9, C7_9}, + {0, C9_10, C8_10, C7_10}, + {0, C9_11, C8_11, C7_11}, + {1, C9_1, C8_1, C7_1}, + {1, C9_2, C8_2, C7_2}, + {1, C9_3, C8_3, C7_3}, + {1, C9_9, C8_9, C7_9}, + {1, C9_10, C8_10, C7_10}, + {1, C9_11, C8_11, C7_11}, + + {0, C9_4, C8_4, C7_4}, + {0, C9_5, C8_5, C7_5}, + {0, C9_6, C8_6, C7_6}, + {0, C9_12, C8_12, C7_12}, + {0, C9_13, C8_13, C7_13}, + {0, C9_14, C8_14, C7_14}, + {0, C9_15, C8_15, C6_14}, // middle 2u switch + {1, C9_4, C8_4, C7_4}, + {1, C9_5, C8_5, C7_5}, + {1, C9_6, C8_6, C7_6}, + {1, C9_12, C8_12, C7_12}, + {1, C9_13, C8_13, C7_13}, + {1, C9_14, C8_14, C7_14} +}; + +const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { + + /*{row | col << 4} + | {x=0..224, y=0..64} + | | modifier + | | | */ + {{0|(0<<4)}, {20.36*0, 21.33*0}, 1}, + {{0|(1<<4)}, {20.36*1, 21.33*0}, 0}, + {{0|(2<<4)}, {20.36*2, 21.33*0}, 0}, + {{0|(3<<4)}, {20.36*3, 21.33*0}, 0}, + {{0|(4<<4)}, {20.36*4, 21.33*0}, 0}, + {{0|(5<<4)}, {20.36*5, 21.33*0}, 0}, + {{0|(6<<4)}, {20.36*6, 21.33*0}, 0}, + {{0|(7<<4)}, {20.36*7, 21.33*0}, 0}, + {{0|(8<<4)}, {20.36*8, 21.33*0}, 0}, + {{0|(9<<4)}, {20.36*9, 21.33*0}, 0}, + {{0|(10<<4)}, {20.36*10,21.33*0}, 0}, + {{0|(11<<4)}, {20.36*11,21.33*0}, 1}, + + {{1|(0<<4)}, {20.36*0, 21.33*1}, 1}, + {{1|(1<<4)}, {20.36*1, 21.33*1}, 0}, + {{1|(2<<4)}, {20.36*2, 21.33*1}, 0}, + {{1|(3<<4)}, {20.36*3, 21.33*1}, 0}, + {{1|(4<<4)}, {20.36*4, 21.33*1}, 0}, + {{1|(5<<4)}, {20.36*5, 21.33*1}, 0}, + {{1|(6<<4)}, {20.36*6, 21.33*1}, 0}, + {{1|(7<<4)}, {20.36*7, 21.33*1}, 0}, + {{1|(8<<4)}, {20.36*8, 21.33*1}, 0}, + {{1|(9<<4)}, {20.36*9, 21.33*1}, 0}, + {{1|(10<<4)}, {20.36*10,21.33*1}, 0}, + {{1|(11<<4)}, {20.36*11,21.33*1}, 1}, + + {{2|(0<<4)}, {20.36*0, 21.33*2}, 1}, + {{2|(1<<4)}, {20.36*1, 21.33*2}, 0}, + {{2|(2<<4)}, {20.36*2, 21.33*2}, 0}, + {{2|(3<<4)}, {20.36*3, 21.33*2}, 0}, + {{2|(4<<4)}, {20.36*4, 21.33*2}, 0}, + {{2|(5<<4)}, {20.36*5, 21.33*2}, 0}, + {{2|(6<<4)}, {20.36*6, 21.33*2}, 0}, + {{2|(7<<4)}, {20.36*7, 21.33*2}, 0}, + {{2|(8<<4)}, {20.36*8, 21.33*2}, 0}, + {{2|(9<<4)}, {20.36*9, 21.33*2}, 0}, + {{2|(10<<4)}, {20.36*10,21.33*2}, 0}, + {{2|(11<<4)}, {20.36*11,21.33*2}, 1}, + + {{3|(0<<4)}, {20.36*0, 21.33*3}, 1}, + {{3|(1<<4)}, {20.36*1, 21.33*3}, 1}, + {{3|(2<<4)}, {20.36*2, 21.33*3}, 1}, + {{3|(3<<4)}, {20.36*3, 21.33*3}, 1}, + {{3|(4<<4)}, {20.36*4, 21.33*3}, 1}, + {{3|(5<<4)}, {20.36*5, 21.33*3}, 0}, + {{3|(5<<4)}, {20.36*5.5,21.33*3}, 0}, + {{3|(6<<4)}, {20.36*6, 21.33*3}, 0}, + {{3|(7<<4)}, {20.36*7, 21.33*3}, 1}, + {{3|(8<<4)}, {20.36*8, 21.33*3}, 1}, + {{3|(9<<4)}, {20.36*9, 21.33*3}, 1}, + {{3|(10<<4)}, {20.36*10,21.33*3}, 1}, + {{3|(11<<4)}, {20.36*11,21.33*3}, 1} +}; + void matrix_init_kb(void) { // Turn status LED on @@ -27,13 +147,22 @@ void matrix_init_kb(void) { } bool process_record_kb(uint16_t keycode, keyrecord_t *record) -{ +{ return process_record_user(keycode, record); } -uint16_t backlight_task_counter = 0; - void matrix_scan_kb(void) { matrix_scan_user(); -} \ No newline at end of file +} + +void suspend_power_down_kb(void) +{ + rgb_matrix_set_suspend_state(true); +} + +void suspend_wakeup_init_kb(void) +{ + rgb_matrix_set_suspend_state(false); +} + diff --git a/keyboards/planck/light/light.h b/keyboards/planck/light/light.h index 111f19865433..a395f30e8877 100644 --- a/keyboards/planck/light/light.h +++ b/keyboards/planck/light/light.h @@ -1,5 +1,4 @@ -/* Copyright 2017 Jason Williams - * Copyright 2017 Jack Humbert +/* Copyright 2017 Jack Humbert * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,5 +18,6 @@ #define LIGHT_H #include "planck.h" +#include "rgb_matrix.h" #endif \ No newline at end of file diff --git a/keyboards/planck/light/rules.mk b/keyboards/planck/light/rules.mk index 3d7006b526cf..c10b8fd1da5e 100644 --- a/keyboards/planck/light/rules.mk +++ b/keyboards/planck/light/rules.mk @@ -1,7 +1,5 @@ MIDI_ENABLE = yes AUDIO_ENABLE = yes # Audio output on port C6 -MOUSEKEY_ENABLE = no # Mouse keys(+4700) -NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGB_MATRIX_ENABLE = yes MCU = at90usb1286 \ No newline at end of file diff --git a/keyboards/planck/rules.mk b/keyboards/planck/rules.mk index 511c06d70865..e194dcd5111d 100644 --- a/keyboards/planck/rules.mk +++ b/keyboards/planck/rules.mk @@ -48,7 +48,7 @@ ifeq ($(strip $(KEYBOARD)), planck/rev5) BOOTLOADER = qmk-dfu endif ifeq ($(strip $(KEYBOARD)), planck/light) - BOOTLOADER = qmk-dfu + BOOTLOADER = atmel-dfu endif # Interrupt driven control endpoint task(+60) diff --git a/quantum/color.c b/quantum/color.c new file mode 100644 index 000000000000..8ede053e7119 --- /dev/null +++ b/quantum/color.c @@ -0,0 +1,87 @@ +/* Copyright 2017 Jason Williams + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#include "color.h" +#include "led_tables.h" +#include "progmem.h" + +RGB hsv_to_rgb( HSV hsv ) +{ + RGB rgb; + uint8_t region, p, q, t; + uint16_t h, s, v, remainder; + + if ( hsv.s == 0 ) + { + rgb.r = hsv.v; + rgb.g = hsv.v; + rgb.b = hsv.v; + return rgb; + } + + h = hsv.h; + s = hsv.s; + v = hsv.v; + + region = h / 43; + remainder = (h - (region * 43)) * 6; + + p = (v * (255 - s)) >> 8; + q = (v * (255 - ((s * remainder) >> 8))) >> 8; + t = (v * (255 - ((s * (255 - remainder)) >> 8))) >> 8; + + switch ( region ) + { + case 0: + rgb.r = v; + rgb.g = t; + rgb.b = p; + break; + case 1: + rgb.r = q; + rgb.g = v; + rgb.b = p; + break; + case 2: + rgb.r = p; + rgb.g = v; + rgb.b = t; + break; + case 3: + rgb.r = p; + rgb.g = q; + rgb.b = v; + break; + case 4: + rgb.r = t; + rgb.g = p; + rgb.b = v; + break; + default: + rgb.r = v; + rgb.g = p; + rgb.b = q; + break; + } + + rgb.r = pgm_read_byte( &CIE1931_CURVE[rgb.r] ); + rgb.g = pgm_read_byte( &CIE1931_CURVE[rgb.g] ); + rgb.b = pgm_read_byte( &CIE1931_CURVE[rgb.b] ); + + return rgb; +} + diff --git a/quantum/color.h b/quantum/color.h new file mode 100644 index 000000000000..9d51d45adb29 --- /dev/null +++ b/quantum/color.h @@ -0,0 +1,55 @@ +/* Copyright 2017 Jason Williams + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#ifndef COLOR_H +#define COLOR_H + +#include +#include + + +#if defined(__GNUC__) +#define PACKED __attribute__ ((__packed__)) +#else +#define PACKED +#endif + +#if defined(_MSC_VER) +#pragma pack( push, 1 ) +#endif + +typedef struct PACKED +{ + uint8_t r; + uint8_t g; + uint8_t b; +} RGB; + +typedef struct PACKED +{ + uint8_t h; + uint8_t s; + uint8_t v; +} HSV; + +#if defined(_MSC_VER) +#pragma pack( pop ) +#endif + +RGB hsv_to_rgb( HSV hsv ); + +#endif // COLOR_H diff --git a/quantum/quantum.c b/quantum/quantum.c index 2662e5ef1c53..e1bc8b242eba 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -230,6 +230,9 @@ bool process_record_quantum(keyrecord_t *record) { process_clicky(keycode, record) && #endif //AUDIO_CLICKY process_record_kb(keycode, record) && + #if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_KEYPRESSES) + process_rgb_matrix(keycode, record) && + #endif #if defined(MIDI_ENABLE) && defined(MIDI_ADVANCED) process_midi(keycode, record) && #endif @@ -307,7 +310,7 @@ bool process_record_quantum(keyrecord_t *record) { } return false; #endif - #ifdef RGBLIGHT_ENABLE + #if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) case RGB_TOG: if (record->event.pressed) { rgblight_toggle(); @@ -835,9 +838,18 @@ void matrix_init_quantum() { #ifdef AUDIO_ENABLE audio_init(); #endif + #ifdef RGB_MATRIX_ENABLE + rgb_matrix_init_drivers(); + #endif matrix_init_kb(); } +uint8_t rgb_matrix_task_counter = 0; + +#ifndef RGB_MATRIX_SKIP_FRAMES + #define RGB_MATRIX_SKIP_FRAMES 1 +#endif + void matrix_scan_quantum() { #if defined(AUDIO_ENABLE) matrix_scan_music(); @@ -855,9 +867,16 @@ void matrix_scan_quantum() { backlight_task(); #endif + #ifdef RGB_MATRIX_ENABLE + rgb_matrix_task(); + if (rgb_matrix_task_counter == 0) { + rgb_matrix_update_pwm_buffers(); + } + rgb_matrix_task_counter = ((rgb_matrix_task_counter + 1) % (RGB_MATRIX_SKIP_FRAMES + 1)); + #endif + matrix_scan_kb(); } - #if defined(BACKLIGHT_ENABLE) && defined(BACKLIGHT_PIN) static const uint8_t backlight_pin = BACKLIGHT_PIN; diff --git a/quantum/quantum.h b/quantum/quantum.h index 195f578de9dd..2958a0abd091 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -27,9 +27,15 @@ #ifdef BACKLIGHT_ENABLE #include "backlight.h" #endif +#if !defined(RGBLIGHT_ENABLE) && !defined(RGB_MATRIX_ENABLE) + #include "rgb.h" +#endif #ifdef RGBLIGHT_ENABLE #include "rgblight.h" #endif +#ifdef RGB_MATRIX_ENABLE + #include "rgb_matrix.h" +#endif #include "action_layer.h" #include "eeconfig.h" #include diff --git a/quantum/rgb.h b/quantum/rgb.h new file mode 100644 index 000000000000..fbdda293f470 --- /dev/null +++ b/quantum/rgb.h @@ -0,0 +1,47 @@ +/* Copyright 2017 Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef RGB_H +#define RGB_H + +__attribute__((weak)) +void rgblight_toggle(void) {}; + +__attribute__((weak)) +void rgblight_step(void) {}; + +__attribute__((weak)) +void rgblight_step_reverse(void) {}; + +__attribute__((weak)) +void rgblight_increase_hue(void) {}; + +__attribute__((weak)) +void rgblight_decrease_hue(void) {}; + +__attribute__((weak)) +void rgblight_increase_sat(void) {}; + +__attribute__((weak)) +void rgblight_decrease_sat(void) {}; + +__attribute__((weak)) +void rgblight_increase_val(void) {}; + +__attribute__((weak)) +void rgblight_decrease_val(void) {}; + +#endif \ No newline at end of file diff --git a/quantum/rgb_matrix.c b/quantum/rgb_matrix.c new file mode 100644 index 000000000000..6cb0478f71ef --- /dev/null +++ b/quantum/rgb_matrix.c @@ -0,0 +1,873 @@ +/* Copyright 2017 Jason Williams + * Copyright 2017 Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#include "rgb_matrix.h" +#include +#include "TWIlib.h" +#include +#include +#include "progmem.h" +#include "config.h" +#include "eeprom.h" +#include "lufa.h" +#include + +rgb_config_t rgb_matrix_config; + +#ifndef RGB_DISABLE_AFTER_TIMEOUT + #define RGB_DISABLE_AFTER_TIMEOUT 0 +#endif + +#ifndef RGB_DISABLE_WHEN_USB_SUSPENDED + #define RGB_DISABLE_WHEN_USB_SUSPENDED false +#endif + +#ifndef EECONFIG_RGB_MATRIX + #define EECONFIG_RGB_MATRIX EECONFIG_RGBLIGHT +#endif + +bool g_suspend_state = false; + +// Global tick at 20 Hz +uint32_t g_tick = 0; + +// Ticks since this key was last hit. +uint8_t g_key_hit[DRIVER_LED_TOTAL]; + +// Ticks since any key was last hit. +uint32_t g_any_key_hit = 0; + +#ifndef PI +#define PI 3.14159265 +#endif + +uint32_t eeconfig_read_rgb_matrix(void) { + return eeprom_read_dword(EECONFIG_RGB_MATRIX); +} +void eeconfig_update_rgb_matrix(uint32_t val) { + eeprom_update_dword(EECONFIG_RGB_MATRIX, val); +} +void eeconfig_update_rgb_matrix_default(void) { + dprintf("eeconfig_update_rgb_matrix_default\n"); + rgb_matrix_config.enable = 1; + rgb_matrix_config.mode = RGB_MATRIX_CYCLE_LEFT_RIGHT; + rgb_matrix_config.hue = 0; + rgb_matrix_config.sat = 255; + rgb_matrix_config.val = 255; + eeconfig_update_rgb_matrix(rgb_matrix_config.raw); +} +void eeconfig_debug_rgb_matrix(void) { + dprintf("rgb_matrix_config eprom\n"); + dprintf("rgb_matrix_config.enable = %d\n", rgb_matrix_config.enable); + dprintf("rgb_matrix_config.mode = %d\n", rgb_matrix_config.mode); + dprintf("rgb_matrix_config.hue = %d\n", rgb_matrix_config.hue); + dprintf("rgb_matrix_config.sat = %d\n", rgb_matrix_config.sat); + dprintf("rgb_matrix_config.val = %d\n", rgb_matrix_config.val); +} + +// Last led hit +#define LED_HITS_TO_REMEMBER 8 +uint8_t g_last_led_hit[LED_HITS_TO_REMEMBER] = {255}; +uint8_t g_last_led_count = 0; + +void map_row_column_to_led( uint8_t row, uint8_t column, uint8_t *led_i, uint8_t *led_count) { + rgb_led led; + *led_count = 0; + + for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { + // map_index_to_led(i, &led); + led = g_rgb_leds[i]; + if (row == led.matrix_co.row && column == led.matrix_co.col) { + led_i[*led_count] = i; + (*led_count)++; + } + } +} + + +void rgb_matrix_update_pwm_buffers(void) { + IS31FL3731_update_pwm_buffers( DRIVER_ADDR_1, DRIVER_ADDR_2 ); + IS31FL3731_update_led_control_registers( DRIVER_ADDR_1, DRIVER_ADDR_2 ); +} + +void rgb_matrix_set_color( int index, uint8_t red, uint8_t green, uint8_t blue ) { + IS31FL3731_set_color( index, red, green, blue ); +} + +void rgb_matrix_set_color_all( uint8_t red, uint8_t green, uint8_t blue ) { + IS31FL3731_set_color_all( red, green, blue ); +} + + +bool process_rgb_matrix(uint16_t keycode, keyrecord_t *record) { + if ( record->event.pressed ) { + uint8_t led[8], led_count; + map_row_column_to_led(record->event.key.row, record->event.key.col, led, &led_count); + if (led_count > 0) { + for (uint8_t i = LED_HITS_TO_REMEMBER; i > 1; i--) { + g_last_led_hit[i - 1] = g_last_led_hit[i - 2]; + } + g_last_led_hit[0] = led[0]; + g_last_led_count = MIN(LED_HITS_TO_REMEMBER, g_last_led_count + 1); + } + for(uint8_t i = 0; i < led_count; i++) + g_key_hit[led[i]] = 0; + g_any_key_hit = 0; + } else { + #ifdef RGB_MATRIX_KEYRELEASES + uint8_t led[8], led_count; + map_row_column_to_led(record->event.key.row, record->event.key.col, led, &led_count); + for(uint8_t i = 0; i < led_count; i++) + g_key_hit[led[i]] = 255; + + g_any_key_hit = 255; + #endif + } + return true; +} + +void rgb_matrix_set_suspend_state(bool state) { + g_suspend_state = state; +} + +void rgb_matrix_test(void) { + // Mask out bits 4 and 5 + // This 2-bit value will stay the same for 16 ticks. + switch ( (g_tick & 0x30) >> 4 ) + { + case 0: + { + rgb_matrix_set_color_all( 20, 0, 0 ); + break; + } + case 1: + { + rgb_matrix_set_color_all( 0, 20, 0 ); + break; + } + case 2: + { + rgb_matrix_set_color_all( 0, 0, 20 ); + break; + } + case 3: + { + rgb_matrix_set_color_all( 20, 20, 20 ); + break; + } + } +} + +// This tests the LEDs +// Note that it will change the LED control registers +// in the LED drivers, and leave them in an invalid +// state for other backlight effects. +// ONLY USE THIS FOR TESTING LEDS! +void rgb_matrix_single_LED_test(void) { + static uint8_t color = 0; // 0,1,2 for R,G,B + static uint8_t row = 0; + static uint8_t column = 0; + + static uint8_t tick = 0; + tick++; + + if ( tick > 2 ) + { + tick = 0; + column++; + } + if ( column > MATRIX_COLS ) + { + column = 0; + row++; + } + if ( row > MATRIX_ROWS ) + { + row = 0; + color++; + } + if ( color > 2 ) + { + color = 0; + } + + uint8_t led[8], led_count; + map_row_column_to_led(row,column,led,&led_count); + for(uint8_t i = 0; i < led_count; i++) { + rgb_matrix_set_color_all( 40, 40, 40 ); + rgb_matrix_test_led( led[i], color==0, color==1, color==2 ); + } +} + +// All LEDs off +void rgb_matrix_all_off(void) { + rgb_matrix_set_color_all( 0, 0, 0 ); +} + +// Solid color +void rgb_matrix_solid_color(void) { + HSV hsv = { .h = rgb_matrix_config.hue, .s = rgb_matrix_config.sat, .v = rgb_matrix_config.val }; + RGB rgb = hsv_to_rgb( hsv ); + rgb_matrix_set_color_all( rgb.r, rgb.g, rgb.b ); +} + +void rgb_matrix_solid_reactive(void) { + // Relies on hue being 8-bit and wrapping + for ( int i=0; i 127 ) + { + deltaH -= 256; + } + else if ( deltaH < -127 ) + { + deltaH += 256; + } + // Divide delta by 4, this gives the delta per row + deltaH /= 4; + + int16_t s1 = rgb_matrix_config.sat; + int16_t s2 = rgb_matrix_config.hue; + int16_t deltaS = ( s2 - s1 ) / 4; + + HSV hsv = { .h = 0, .s = 255, .v = rgb_matrix_config.val }; + RGB rgb; + Point point; + for ( int i=0; i>4); + // Relies on hue being 8-bit and wrapping + hsv.h = rgb_matrix_config.hue + ( deltaH * y ); + hsv.s = rgb_matrix_config.sat + ( deltaS * y ); + rgb = hsv_to_rgb( hsv ); + rgb_matrix_set_color( i, rgb.r, rgb.g, rgb.b ); + } +} + +void rgb_matrix_raindrops(bool initialize) { + int16_t h1 = rgb_matrix_config.hue; + int16_t h2 = (rgb_matrix_config.hue + 180) % 360; + int16_t deltaH = h2 - h1; + deltaH /= 4; + + // Take the shortest path between hues + if ( deltaH > 127 ) + { + deltaH -= 256; + } + else if ( deltaH < -127 ) + { + deltaH += 256; + } + + int16_t s1 = rgb_matrix_config.sat; + int16_t s2 = rgb_matrix_config.sat; + int16_t deltaS = ( s2 - s1 ) / 4; + + HSV hsv; + RGB rgb; + + // Change one LED every tick + uint8_t led_to_change = ( g_tick & 0x000 ) == 0 ? rand() % DRIVER_LED_TOTAL : 255; + + for ( int i=0; i 0 && g_any_key_hit > RGB_DISABLE_AFTER_TIMEOUT * 60 * 20)); + uint8_t effect = suspend_backlight ? 0 : rgb_matrix_config.mode; + + // Keep track of the effect used last time, + // detect change in effect, so each effect can + // have an optional initialization. + static uint8_t effect_last = 255; + bool initialize = effect != effect_last; + effect_last = effect; + + // this gets ticked at 20 Hz. + // each effect can opt to do calculations + // and/or request PWM buffer updates. + switch ( effect ) { + case RGB_MATRIX_SOLID_COLOR: + rgb_matrix_solid_color(); + break; + case RGB_MATRIX_SOLID_REACTIVE: + rgb_matrix_solid_reactive(); + break; + case RGB_MATRIX_ALPHAS_MODS: + rgb_matrix_alphas_mods(); + break; + case RGB_MATRIX_DUAL_BEACON: + rgb_matrix_dual_beacon(); + break; + case RGB_MATRIX_GRADIENT_UP_DOWN: + rgb_matrix_gradient_up_down(); + break; + case RGB_MATRIX_RAINDROPS: + rgb_matrix_raindrops( initialize ); + break; + case RGB_MATRIX_CYCLE_ALL: + rgb_matrix_cycle_all(); + break; + case RGB_MATRIX_CYCLE_LEFT_RIGHT: + rgb_matrix_cycle_left_right(); + break; + case RGB_MATRIX_CYCLE_UP_DOWN: + rgb_matrix_cycle_up_down(); + break; + case RGB_MATRIX_RAINBOW_BEACON: + rgb_matrix_rainbow_beacon(); + break; + case RGB_MATRIX_RAINBOW_PINWHEELS: + rgb_matrix_rainbow_pinwheels(); + break; + case RGB_MATRIX_RAINBOW_MOVING_CHEVRON: + rgb_matrix_rainbow_moving_chevron(); + break; + case RGB_MATRIX_JELLYBEAN_RAINDROPS: + rgb_matrix_jellybean_raindrops( initialize ); + break; + #ifdef RGB_MATRIX_KEYPRESSES + case RGB_MATRIX_SPLASH: + rgb_matrix_splash(); + break; + case RGB_MATRIX_MULTISPLASH: + rgb_matrix_multisplash(); + break; + case RGB_MATRIX_SOLID_SPLASH: + rgb_matrix_solid_splash(); + break; + case RGB_MATRIX_SOLID_MULTISPLASH: + rgb_matrix_solid_multisplash(); + break; + #endif + default: + rgb_matrix_custom(); + break; + } + + if ( ! suspend_backlight ) { + rgb_matrix_indicators(); + } + +} + +void rgb_matrix_indicators(void) { + rgb_matrix_indicators_kb(); + rgb_matrix_indicators_user(); +} + +__attribute__((weak)) +void rgb_matrix_indicators_kb(void) {} + +__attribute__((weak)) +void rgb_matrix_indicators_user(void) {} + + +// void rgb_matrix_set_indicator_index( uint8_t *index, uint8_t row, uint8_t column ) +// { +// if ( row >= MATRIX_ROWS ) +// { +// // Special value, 255=none, 254=all +// *index = row; +// } +// else +// { +// // This needs updated to something like +// // uint8_t led[8], led_count; +// // map_row_column_to_led(row,column,led,&led_count); +// // for(uint8_t i = 0; i < led_count; i++) +// map_row_column_to_led( row, column, index ); +// } +// } + +void rgb_matrix_init_drivers(void) { + //sei(); + + // Initialize TWI + TWIInit(); + IS31FL3731_init( DRIVER_ADDR_1 ); + IS31FL3731_init( DRIVER_ADDR_2 ); + + for ( int index = 0; index < DRIVER_LED_TOTAL; index++ ) { + bool enabled = true; + // This only caches it for later + IS31FL3731_set_led_control_register( index, enabled, enabled, enabled ); + } + // This actually updates the LED drivers + IS31FL3731_update_led_control_registers( DRIVER_ADDR_1, DRIVER_ADDR_2 ); + + // TODO: put the 1 second startup delay here? + + // clear the key hits + for ( int led=0; ledh = eeprom_read_byte(address); +// hsv->s = eeprom_read_byte(address+1); +// hsv->v = eeprom_read_byte(address+2); +// } + +// void backlight_set_key_color( uint8_t row, uint8_t column, HSV hsv ) +// { +// uint8_t led[8], led_count; +// map_row_column_to_led(row,column,led,&led_count); +// for(uint8_t i = 0; i < led_count; i++) { +// if ( led[i] < DRIVER_LED_TOTAL ) +// { +// void *address = backlight_get_custom_key_color_eeprom_address(led[i]); +// eeprom_update_byte(address, hsv.h); +// eeprom_update_byte(address+1, hsv.s); +// eeprom_update_byte(address+2, hsv.v); +// } +// } +// } + +void rgb_matrix_test_led( uint8_t index, bool red, bool green, bool blue ) { + for ( int i=0; i= RGB_MATRIX_EFFECT_MAX) + rgb_matrix_config.mode = 1; + eeconfig_update_rgb_matrix(rgb_matrix_config.raw); +} + +void rgblight_step_reverse(void) { + rgb_matrix_config.mode--; + if (rgb_matrix_config.mode <= 1) + rgb_matrix_config.mode = (RGB_MATRIX_EFFECT_MAX - 1); + eeconfig_update_rgb_matrix(rgb_matrix_config.raw); +} + +void rgblight_increase_hue(void) { + rgb_matrix_config.hue = increment( rgb_matrix_config.hue, 8, 0, 255 ); + eeconfig_update_rgb_matrix(rgb_matrix_config.raw); +} + +void rgblight_decrease_hue(void) { + rgb_matrix_config.hue = decrement( rgb_matrix_config.hue, 8, 0, 255 ); + eeconfig_update_rgb_matrix(rgb_matrix_config.raw); +} + +void rgblight_increase_sat(void) { + rgb_matrix_config.sat = increment( rgb_matrix_config.sat, 8, 0, 255 ); + eeconfig_update_rgb_matrix(rgb_matrix_config.raw); +} + +void rgblight_decrease_sat(void) { + rgb_matrix_config.sat = decrement( rgb_matrix_config.sat, 8, 0, 255 ); + eeconfig_update_rgb_matrix(rgb_matrix_config.raw); +} + +void rgblight_increase_val(void) { + rgb_matrix_config.val = increment( rgb_matrix_config.val, 8, 0, 255 ); + eeconfig_update_rgb_matrix(rgb_matrix_config.raw); +} + +void rgblight_decrease_val(void) { + rgb_matrix_config.val = decrement( rgb_matrix_config.val, 8, 0, 255 ); + eeconfig_update_rgb_matrix(rgb_matrix_config.raw); +} + +void rgblight_mode(uint8_t mode) { + rgb_matrix_config.mode = mode; + eeconfig_update_rgb_matrix(rgb_matrix_config.raw); +} + +uint32_t rgblight_get_mode(void) { + return rgb_matrix_config.mode; +} diff --git a/quantum/rgb_matrix.h b/quantum/rgb_matrix.h new file mode 100644 index 000000000000..ef93c6d5cb8a --- /dev/null +++ b/quantum/rgb_matrix.h @@ -0,0 +1,135 @@ +/* Copyright 2017 Jason Williams + * Copyright 2017 Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef RGB_MATRIX_H +#define RGB_MATRIX_H + +#include +#include +#include "color.h" +#include "is31fl3731.h" +#include "quantum.h" + +typedef struct Point { + uint8_t x; + uint8_t y; +} __attribute__((packed)) Point; + +typedef struct rgb_led { + union { + uint8_t raw; + struct { + uint8_t row:4; // 16 max + uint8_t col:4; // 16 max + }; + } matrix_co; + Point point; + uint8_t modifier:1; +} __attribute__((packed)) rgb_led; + + +extern const rgb_led g_rgb_leds[DRIVER_LED_TOTAL]; + +typedef struct +{ + HSV color; + uint8_t index; +} rgb_indicator; + +typedef union { + uint32_t raw; + struct { + bool enable :1; + uint8_t mode :6; + uint16_t hue :9; + uint8_t sat :8; + uint8_t val :8; + }; +} rgb_config_t; + +enum rgb_matrix_effects { + RGB_MATRIX_SOLID_COLOR = 1, + RGB_MATRIX_SOLID_REACTIVE, + RGB_MATRIX_ALPHAS_MODS, + RGB_MATRIX_DUAL_BEACON, + RGB_MATRIX_GRADIENT_UP_DOWN, + RGB_MATRIX_RAINDROPS, + RGB_MATRIX_CYCLE_ALL, + RGB_MATRIX_CYCLE_LEFT_RIGHT, + RGB_MATRIX_CYCLE_UP_DOWN, + RGB_MATRIX_RAINBOW_BEACON, + RGB_MATRIX_RAINBOW_PINWHEELS, + RGB_MATRIX_RAINBOW_MOVING_CHEVRON, + RGB_MATRIX_JELLYBEAN_RAINDROPS, +#ifdef RGB_MATRIX_KEYPRESSES + RGB_MATRIX_SPLASH, + RGB_MATRIX_MULTISPLASH, + RGB_MATRIX_SOLID_SPLASH, + RGB_MATRIX_SOLID_MULTISPLASH, +#endif + RGB_MATRIX_EFFECT_MAX +}; + +void rgb_matrix_set_color( int index, uint8_t red, uint8_t green, uint8_t blue ); + +// This runs after another backlight effect and replaces +// colors already set +void rgb_matrix_indicators(void); +void rgb_matrix_indicators_kb(void); +void rgb_matrix_indicators_user(void); + +void rgb_matrix_single_LED_test(void); + +void rgb_matrix_init_drivers(void); + +void rgb_matrix_set_suspend_state(bool state); +void rgb_matrix_set_indicator_state(uint8_t state); + + +void rgb_matrix_task(void); + +// This should not be called from an interrupt +// (eg. from a timer interrupt). +// Call this while idle (in between matrix scans). +// If the buffer is dirty, it will update the driver with the buffer. +void rgb_matrix_update_pwm_buffers(void); + +bool process_rgb_matrix(uint16_t keycode, keyrecord_t *record); + +void rgb_matrix_increase(void); +void rgb_matrix_decrease(void); + +// void *backlight_get_key_color_eeprom_address(uint8_t led); +// void backlight_get_key_color( uint8_t led, HSV *hsv ); +// void backlight_set_key_color( uint8_t row, uint8_t column, HSV hsv ); + +void rgb_matrix_test_led( uint8_t index, bool red, bool green, bool blue ); +uint32_t rgb_matrix_get_tick(void); + +void rgblight_toggle(void); +void rgblight_step(void); +void rgblight_step_reverse(void); +void rgblight_increase_hue(void); +void rgblight_decrease_hue(void); +void rgblight_increase_sat(void); +void rgblight_decrease_sat(void); +void rgblight_increase_val(void); +void rgblight_decrease_val(void); +void rgblight_mode(uint8_t mode); +uint32_t rgblight_get_mode(void); + +#endif From d678724ca8978b4d0ad981d11be4171e6315caca Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 4 May 2018 11:06:04 -0700 Subject: [PATCH 355/578] Fix Atom47 Keyboard --- .../{rev2 => }/keymaps/LEdiodes/keymap.c | 0 .../{rev2 => }/keymaps/LEdiodes/rules.mk | 0 keyboards/atom47/{ => rev1}/config.h | 6 +- keyboards/atom47/{ => rev1}/info.json | 0 keyboards/atom47/{atom47.c => rev1/rev1.c} | 2 +- keyboards/atom47/{atom47.h => rev1/rev1.h} | 8 +- keyboards/atom47/rev1/rules.mk | 2 + keyboards/atom47/rev2/atom47.c | 31 -------- keyboards/atom47/rev2/atom47.h | 25 ------- keyboards/atom47/rev2/config.h | 6 +- .../atom47/rev2/keymaps/LEdiodes/config.h | 74 ------------------- .../atom47/rev2/keymaps/default/keymap.c | 39 ---------- .../atom47/rev2/keymaps/default/readme.md | 1 - .../{keymaps/LEdiodes/atom47.c => rev2.c} | 2 +- .../{keymaps/LEdiodes/atom47.h => rev2.h} | 2 +- keyboards/atom47/rev2/rules.mk | 62 ---------------- keyboards/atom47/rules.mk | 9 ++- 17 files changed, 19 insertions(+), 250 deletions(-) rename keyboards/atom47/{rev2 => }/keymaps/LEdiodes/keymap.c (100%) rename keyboards/atom47/{rev2 => }/keymaps/LEdiodes/rules.mk (100%) rename keyboards/atom47/{ => rev1}/config.h (94%) rename keyboards/atom47/{ => rev1}/info.json (100%) rename keyboards/atom47/{atom47.c => rev1/rev1.c} (95%) rename keyboards/atom47/{atom47.h => rev1/rev1.h} (84%) create mode 100644 keyboards/atom47/rev1/rules.mk delete mode 100644 keyboards/atom47/rev2/atom47.c delete mode 100644 keyboards/atom47/rev2/atom47.h delete mode 100644 keyboards/atom47/rev2/keymaps/LEdiodes/config.h delete mode 100644 keyboards/atom47/rev2/keymaps/default/keymap.c delete mode 100644 keyboards/atom47/rev2/keymaps/default/readme.md rename keyboards/atom47/rev2/{keymaps/LEdiodes/atom47.c => rev2.c} (96%) rename keyboards/atom47/rev2/{keymaps/LEdiodes/atom47.h => rev2.h} (96%) diff --git a/keyboards/atom47/rev2/keymaps/LEdiodes/keymap.c b/keyboards/atom47/keymaps/LEdiodes/keymap.c similarity index 100% rename from keyboards/atom47/rev2/keymaps/LEdiodes/keymap.c rename to keyboards/atom47/keymaps/LEdiodes/keymap.c diff --git a/keyboards/atom47/rev2/keymaps/LEdiodes/rules.mk b/keyboards/atom47/keymaps/LEdiodes/rules.mk similarity index 100% rename from keyboards/atom47/rev2/keymaps/LEdiodes/rules.mk rename to keyboards/atom47/keymaps/LEdiodes/rules.mk diff --git a/keyboards/atom47/config.h b/keyboards/atom47/rev1/config.h similarity index 94% rename from keyboards/atom47/config.h rename to keyboards/atom47/rev1/config.h index 5743a9eb53c3..d21d8ce34d9a 100644 --- a/keyboards/atom47/config.h +++ b/keyboards/atom47/rev1/config.h @@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef CONFIG_H -#define CONFIG_H +#ifndef REV1_CONFIG_H +#define REV1_CONFIG_H #include "config_common.h" @@ -26,7 +26,7 @@ along with this program. If not, see . #define DEVICE_VER 0x0003 #define MANUFACTURER Vortex #define PRODUCT Core -#define DESCRIPTION Atom47 PCB for the Vortex Core +#define DESCRIPTION Atom47 PCB for the Vortex Core Rev.1 /* key matrix size */ #define MATRIX_ROWS 4 diff --git a/keyboards/atom47/info.json b/keyboards/atom47/rev1/info.json similarity index 100% rename from keyboards/atom47/info.json rename to keyboards/atom47/rev1/info.json diff --git a/keyboards/atom47/atom47.c b/keyboards/atom47/rev1/rev1.c similarity index 95% rename from keyboards/atom47/atom47.c rename to keyboards/atom47/rev1/rev1.c index fac22f778689..816b43b9ab9e 100644 --- a/keyboards/atom47/atom47.c +++ b/keyboards/atom47/rev1/rev1.c @@ -1,4 +1,4 @@ -#include "atom47.h" +#include "rev1.h" #include "led.h" void matrix_init_kb(void) { diff --git a/keyboards/atom47/atom47.h b/keyboards/atom47/rev1/rev1.h similarity index 84% rename from keyboards/atom47/atom47.h rename to keyboards/atom47/rev1/rev1.h index eddc5c8f87a8..f8329a7842a4 100644 --- a/keyboards/atom47/atom47.h +++ b/keyboards/atom47/rev1/rev1.h @@ -1,12 +1,12 @@ -#ifndef ATOM47_H -#define ATOM47_H +#ifndef ATOM47_REV1_H +#define ATOM47_REV1_H #include "quantum.h" // readability #define XXX KC_NO -#define KEYMAP_ANSI( \ +#define LAYOUT_ansi( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1c, \ k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ @@ -19,7 +19,5 @@ {k30, k31, k32, k33, XXX, k35, XXX, k37, XXX, k39, k3a, k3b, k3c} \ } -void matrix_init_user(void); -void matrix_scan_user(void); #endif diff --git a/keyboards/atom47/rev1/rules.mk b/keyboards/atom47/rev1/rules.mk new file mode 100644 index 000000000000..13e553b56285 --- /dev/null +++ b/keyboards/atom47/rev1/rules.mk @@ -0,0 +1,2 @@ +NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality (+4870) diff --git a/keyboards/atom47/rev2/atom47.c b/keyboards/atom47/rev2/atom47.c deleted file mode 100644 index 7b839e796755..000000000000 --- a/keyboards/atom47/rev2/atom47.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "atom47.h" -#include "led.h" - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - matrix_init_user(); - led_init_ports(); -}; - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - matrix_scan_user(); -}; - -void led_init_ports(void) { - // * Set our LED pins as output - DDRB &= ~(1<<5); -} - -void led_set_kb(uint8_t usb_led) { - if (usb_led & (1<. */ -#ifndef CONFIG_H -#define CONFIG_H +#ifndef REV2_CONFIG_H +#define REV2_CONFIG_H #include "config_common.h" @@ -26,7 +26,7 @@ along with this program. If not, see . #define DEVICE_VER 0x0003 #define MANUFACTURER Vortex #define PRODUCT Core -#define DESCRIPTION Atom47 PCB for the Vortex Core +#define DESCRIPTION Atom47 PCB for the Vortex Core Rev.2 /* key matrix size */ #define MATRIX_ROWS 4 diff --git a/keyboards/atom47/rev2/keymaps/LEdiodes/config.h b/keyboards/atom47/rev2/keymaps/LEdiodes/config.h deleted file mode 100644 index e054f277599a..000000000000 --- a/keyboards/atom47/rev2/keymaps/LEdiodes/config.h +++ /dev/null @@ -1,74 +0,0 @@ -/* -Copyright 2012 Maarten Dekkers . -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0003 -#define MANUFACTURER Vortex -#define PRODUCT Core -#define DESCRIPTION Atom47 PCB for the Vortex Core - -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 13 - -// ROWS: Top to bottom, COLS: Left to right - -#define MATRIX_ROW_PINS {B1,B2,B3,B7} -#define MATRIX_COL_PINS {D7,D5,F0,F1,F4,F6,F7,D4,C7,C6,D6,B5,B4} -#define UNUSED_PINS - -#define BACKLIGHT_PIN B6 - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCING_DELAY 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - -/* Backlight configuration - */ -#define BACKLIGHT_LEVELS 4 - -#define RGB_DI_PIN D0 // The pin the LED strip is connected to -#define RGBLED_NUM 1 // Number of LEDs in your strip - -#define QMK_ESC_OUTPUT D7 // usually COL -#define QMK_ESC_INPUT B1 // usually ROW -#define QMK_LED B6 - -#endif - diff --git a/keyboards/atom47/rev2/keymaps/default/keymap.c b/keyboards/atom47/rev2/keymaps/default/keymap.c deleted file mode 100644 index 5f74416ce065..000000000000 --- a/keyboards/atom47/rev2/keymaps/default/keymap.c +++ /dev/null @@ -1,39 +0,0 @@ -#include QMK_KEYBOARD_H - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. - -#define _MA 0 //Main layer -#define _FN 1 //Fn -#define _FN1 2 //Fn1 -#define _PN 3 //Pn - -#define _______ KC_TRNS - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_MA] = LAYOUT_ansi( - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, \ - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, MO(_FN1), \ - KC_LCTL, KC_LGUI, KC_LALT, MO(_PN), KC_SPC, KC_SPC, MO(_FN), KC_RALT, KC_APP, KC_RCTRL), \ - -[_FN] = LAYOUT_ansi( - _______, KC_VOLD, KC_VOLU, KC_MUTE, RESET, _______, KC_CALC, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, \ - KC_CAPS, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_INS, _______, \ - _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \ - -[_FN1] = LAYOUT_ansi( - KC_GRV, 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, \ - _______, _______, _______, _______, _______, KC_QUOT, KC_SLSH, KC_LBRC, KC_RBRC, KC_BSLS, KC_RSFT, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \ - -[_PN] = LAYOUT_ansi( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET), -}; diff --git a/keyboards/atom47/rev2/keymaps/default/readme.md b/keyboards/atom47/rev2/keymaps/default/readme.md deleted file mode 100644 index ab86b4f128c3..000000000000 --- a/keyboards/atom47/rev2/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -This is the default keymap as found on the Vortex Core, with some added buttons for backlight control. diff --git a/keyboards/atom47/rev2/keymaps/LEdiodes/atom47.c b/keyboards/atom47/rev2/rev2.c similarity index 96% rename from keyboards/atom47/rev2/keymaps/LEdiodes/atom47.c rename to keyboards/atom47/rev2/rev2.c index 7b839e796755..31a8561f0c5e 100644 --- a/keyboards/atom47/rev2/keymaps/LEdiodes/atom47.c +++ b/keyboards/atom47/rev2/rev2.c @@ -1,4 +1,4 @@ -#include "atom47.h" +#include "rev2.h" #include "led.h" void matrix_init_kb(void) { diff --git a/keyboards/atom47/rev2/keymaps/LEdiodes/atom47.h b/keyboards/atom47/rev2/rev2.h similarity index 96% rename from keyboards/atom47/rev2/keymaps/LEdiodes/atom47.h rename to keyboards/atom47/rev2/rev2.h index 2c19a20cc5d4..f0134511da62 100644 --- a/keyboards/atom47/rev2/keymaps/LEdiodes/atom47.h +++ b/keyboards/atom47/rev2/rev2.h @@ -6,7 +6,7 @@ // readability #define XXX KC_NO -#define KEYMAP_ANSI( \ +#define LAYOUT_ansi( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1c, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2c, \ diff --git a/keyboards/atom47/rev2/rules.mk b/keyboards/atom47/rev2/rules.mk index d446d3a69956..a3a258ed820b 100644 --- a/keyboards/atom47/rev2/rules.mk +++ b/keyboards/atom47/rev2/rules.mk @@ -1,65 +1,3 @@ -# MCU name -#MCU = at90usb1287 -MCU = atmega32u4 -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - - -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -# USBaspLoader 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=4096 - - -# Build Options -# comment out to disable the options. -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = no # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality (+4870) -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality (+1150) -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID diff --git a/keyboards/atom47/rules.mk b/keyboards/atom47/rules.mk index 9b3263afd696..bebdb98d6255 100644 --- a/keyboards/atom47/rules.mk +++ b/keyboards/atom47/rules.mk @@ -45,8 +45,8 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # Atmel DFU loader 4096 # LUFA bootloader 4096 # USBaspLoader 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=4096 - +# OPT_DEFS += -DBOOTLOADER_SIZE=4096 +BOOTLOADER= qmk-dfu # Build Options # comment out to disable the options. @@ -56,10 +56,11 @@ MOUSEKEY_ENABLE = no # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality (+4870) BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality (+1150) MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID + +DEFAULT_FOLDER = atom47/rev2 + From 466ee7642317b701181f156f54fa1439bfba2d01 Mon Sep 17 00:00:00 2001 From: skullY Date: Tue, 8 May 2018 12:20:13 -0700 Subject: [PATCH 356/578] switch to the vue theme and add search --- docs/index.html | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/index.html b/docs/index.html index 9fddda840d79..0617e1f5c1b4 100644 --- a/docs/index.html +++ b/docs/index.html @@ -6,7 +6,8 @@ - + +
@@ -18,9 +19,16 @@ loadSidebar: true, auto2top: true, formatUpdated: '{YYYY}/{MM}/{DD} {HH}:{mm}', + search: { + paths: 'auto', + placeholder: 'Search Documentation...', + noData: 'We could not find any documents matching your search.', + depth: 6 + } } + @@ -28,6 +36,7 @@

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 TAL>V+H2zgd`(HN_Kj;1jS25B1 literal 0 HcmV?d00001 diff --git a/keyboards/pearl/keymaps/cijanzen/rules.mk b/keyboards/pearl/keymaps/cijanzen/rules.mk new file mode 100644 index 000000000000..863b9419ad66 --- /dev/null +++ b/keyboards/pearl/keymaps/cijanzen/rules.mk @@ -0,0 +1,11 @@ +# build options +BOOTMAGIC_ENABLE = yes +MOUSEKEY_ENABLE = no +EXTRAKEY_ENABLE = yes +CONSOLE_ENABLE = no +COMMAND_ENABLE = yes +BACKLIGHT_ENABLE = yes +RGBLIGHT_ENABLE = yes +RGBLIGHT_CUSTOM_DRIVER = yes +# TAP_DANCE_ENABLE = yes +AUTO_SHIFT_ENABLE = yes From 9b9178919388fc8e10167794ae719be23901b2fc Mon Sep 17 00:00:00 2001 From: Charles Pletcher Date: Wed, 2 May 2018 21:35:16 -0400 Subject: [PATCH 330/578] Add dilly/pletcher layout (#2880) * Add pletcher keymap to dilly/keymaps For the moment, this keymap just removes unneeded RGB keycodes, since an iPad will cut the keyboard off if LEDs are turned on. * Drop support for A_RSFT, add media and autoshift * Lower USB_MAX_POWER_CONSUMPTION for dilly on iPad * Document USB_MAX_POWER_CONSUMPTION This config option is useful for limiting the requested power by, e.g., an iOS device. While the default value is 500, a much lower value--say, 50--can sufficiently power a small keyboard without LEDs. --- docs/config_options.md | 2 + keyboards/dilly/keymaps/pletcher/config.h | 11 +++ keyboards/dilly/keymaps/pletcher/keymap.c | 97 +++++++++++++++++++++++ keyboards/dilly/keymaps/pletcher/rules.mk | 2 + 4 files changed, 112 insertions(+) create mode 100644 keyboards/dilly/keymaps/pletcher/config.h create mode 100644 keyboards/dilly/keymaps/pletcher/keymap.c create mode 100644 keyboards/dilly/keymaps/pletcher/rules.mk diff --git a/docs/config_options.md b/docs/config_options.md index acc402665b75..8cdcc97e4959 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -89,6 +89,8 @@ This is a C header file that is one of the first things included, and will persi * tries to keep switch state consistent with keyboard LED state * `#define IS_COMMAND() ( keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) )` * key combination that allows the use of magic commands (useful for debugging) +* `#define USB_MAX_POWER_CONSUMPTION` + * sets the maximum power (in mA) over USB for the device (default: 500) ## Features That Can Be Disabled diff --git a/keyboards/dilly/keymaps/pletcher/config.h b/keyboards/dilly/keymaps/pletcher/config.h new file mode 100644 index 000000000000..805bef41881a --- /dev/null +++ b/keyboards/dilly/keymaps/pletcher/config.h @@ -0,0 +1,11 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +#define AUTO_SHIFT_TIMEOUT 150 +#define NO_AUTO_SHIFT_SPECIAL +#define NO_AUTO_SHIFT_NUMERIC +#define USB_MAX_POWER_CONSUMPTION 50 + +#endif diff --git a/keyboards/dilly/keymaps/pletcher/keymap.c b/keyboards/dilly/keymaps/pletcher/keymap.c new file mode 100644 index 000000000000..f91dabee76ad --- /dev/null +++ b/keyboards/dilly/keymaps/pletcher/keymap.c @@ -0,0 +1,97 @@ +#include "dilly.h" +#include "action_layer.h" + +extern keymap_config_t keymap_config; + +#define _BASE 0 +#define _FN1 1 +#define _FN2 2 +#define _FN3 3 +#define _FN4 4 +#define _FN5 5 + +#define KC_ KC_TRNS +#define _______ KC_TRNS + +// Tap-Hold keys +#define KC_F_L3 LT(_FN3, KC_F) +#define KC_ZCTL MT(MOD_LCTL, KC_Z) +#define KC_XALT MT(MOD_LALT, KC_X) +#define KC_CGUI MT(MOD_LGUI, KC_C) +#define KC_V_L4 LT(_FN4, KC_V) +#define KC_SPL2 LT(_FN2, KC_SPC) +#define KC_B_L1 LT(_FN1, KC_B) +#define KC_N_L5 LT(_FN5, KC_N) +#define KC_MALT MT(MOD_RALT, KC_M) +#define KC_BSCT MT(MOD_RCTL, KC_BSPC) +#define KC_ENTS MT(MOD_RSFT, KC_ENT) +#define KC_ESCS MT(MOD_RSFT, KC_ESC) + +#define KC_GUIC LGUI(KC_C) + +#define KC_RST RESET +#define KC_DBUG DEBUG + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + Q , W , E , R , T , Y , U , I , O , P , + //|----+----+----+----+----+----+----+----+----+----| + A , S , D ,F_L3, G , H , J , K , L ,ESCS, + //|----+----+----+----+----+----+----+----+----+----| + ZCTL,XALT,CGUI,V_L4,SPL2,B_L1,N_L5,MALT,BSCT,ENTS + //`----+----+----+----+----+----+----+----+----+----' + ), + + [_FN1] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , + //|----+----+----+----+----+----+----+----+----+----| + F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 , + //|----+----+----+----+----+----+----+----+----+----| + , , , ,BSPC, , , , , + //`----+----+----+----+----+----+----+----+----+----' + ), + + [_FN2] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + EXLM, AT ,HASH,DLR ,PERC,CIRC,AMPR,ASTR,LPRN,RPRN, + //|----+----+----+----+----+----+----+----+----+----| + F11 ,F12 , , , , , , , ,GRV , + //|----+----+----+----+----+----+----+----+----+----| + , , , ,TAB , DEL, , , , + //`----+----+----+----+----+----+----+----+----+----' + ), + + [_FN3] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + , , , , ,MINS,EQL ,LBRC,RBRC,BSLS, + //|----+----+----+----+----+----+----+----+----+----| + TAB , , , , ,COMM,DOT ,SLSH,SCLN,QUOT, + //|----+----+----+----+----+----+----+----+----+----| + , , , ,BSPC, ,LEFT,DOWN, UP ,RGHT + //`----+----+----+----+----+----+----+----+----+----' + ), + + [_FN4] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + , , , , ,UNDS,PLUS,LCBR,RCBR,PIPE, + //|----+----+----+----+----+----+----+----+----+----| + TAB , , , , , LT , GT ,QUES,COLN,DQUO, + //|----+----+----+----+----+----+----+----+----+----| + , ,GUIC, ,BSPC, ,HOME,PGDN,PGUP,END + //`----+----+----+----+----+----+----+----+----+----' + ), + + [_FN5] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + , , ,RST , , ,MSTP,VOLD,VOLU,MPLY, + //|----+----+----+----+----+----+----+----+----+----| + , ,DBUG, , , , ,ASDN,ASUP,ASRP, + //|----+----+----+----+----+----+----+----+----+----| + , ,GUIC, , , , , , ,ASTG + //`----+----+----+----+----+----+----+----+----+----' + ) + +}; diff --git a/keyboards/dilly/keymaps/pletcher/rules.mk b/keyboards/dilly/keymaps/pletcher/rules.mk new file mode 100644 index 000000000000..9b9dd8341b6c --- /dev/null +++ b/keyboards/dilly/keymaps/pletcher/rules.mk @@ -0,0 +1,2 @@ +AUTO_SHIFT_ENABLE = yes +RGBLIGHT_ENABLE = no From c52b3c6126228b571891d2ad6553913a6cc7ebf4 Mon Sep 17 00:00:00 2001 From: ajp10304 Date: Thu, 3 May 2018 02:36:15 +0100 Subject: [PATCH 331/578] AJP10304 Planck and JJ40 layouts. Added fn2 layer (#2879) --- keyboards/jj40/keymaps/ajp10304/keymap.c | 118 ++++++++++++++++---- keyboards/jj40/keymaps/ajp10304/readme.md | 52 ++++++--- keyboards/planck/keymaps/ajp10304/keymap.c | 114 ++++++++++++++++--- keyboards/planck/keymaps/ajp10304/readme.md | 49 +++++--- 4 files changed, 262 insertions(+), 71 deletions(-) diff --git a/keyboards/jj40/keymaps/ajp10304/keymap.c b/keyboards/jj40/keymaps/ajp10304/keymap.c index 1da57c444fd3..b6d4d7b55e5d 100644 --- a/keyboards/jj40/keymaps/ajp10304/keymap.c +++ b/keyboards/jj40/keymaps/ajp10304/keymap.c @@ -14,6 +14,8 @@ enum jj40_layers { _MRSE, _FUNC, _MFNC, + _FUNC2, + _MFNC2, _ADJUST, _MOUSE }; @@ -23,6 +25,8 @@ enum jj40_keycodes { MAC, FUNC, MFNC, + FUNC2, + MFNC2, LOWER, MLWR, RAISE, @@ -47,14 +51,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn | + * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 | * `-----------------------------------------------------------------------------------' */ [_QWERTY] = KEYMAP(\ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC ,\ MT(MOD_LSFT, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MT(MOD_RSFT, KC_ENT) ,\ KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSHIFT ,\ - MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LSHIFT, KC_BTN2, KC_RCTL, MO(_FUNC) \ + MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LSHIFT, KC_BTN2, KC_RCTL, MO(_FUNC2) \ ), /* Function @@ -117,15 +121,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | CAPS | | | | | PLAY1| PLAY2| Mute | Vol+ | Play | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | STOP | STOP | Prev | Vol- | Next | | | + * | PC/MC| | | | | STOP | STOP | Prev | Vol- | Next | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_ADJUST] = KEYMAP(\ - M(0), RESET, QWERTY, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, KC_DEL ,\ - KC_CAPS, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ ,\ - TG(_MAC), _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ ,\ + M(0), RESET, QWERTY, BL_ON, BL_OFF, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, KC_DEL ,\ + KC_CAPS, RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ ,\ + TG(_MAC), RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, DYN_REC_STOP, DYN_REC_STOP, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ ,\ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ ), @@ -147,32 +151,57 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______\ ), +/* Function 2 (Right hand side) + * ,-----------------------------------------------------------------------------------. + * | | |WRDSEL| | | | LNDEL| | | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | LNSEL| DUP | | | | |LNJOIN| | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | UNDO | CUT | COPY | PASTE| | | | | | | MODE | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_FUNC2] = KEYMAP(\ + _______, _______, M(1), _______, _______, _______, M(5), _______, _______, _______, _______, _______,\ + _______, _______, M(3), M(7), _______, _______, _______, M(10), _______, _______, _______, _______,\ + _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______, _______, _______, _______, _______, M(98), \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +), + [_MAC]= KEYMAP(\ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\ - _______, _______, _______, _______, MLWR, _______, _______, MRSE, _______, _______, _______, _______\ + MFNC, _______, _______, _______, MLWR, _______, _______, MRSE, _______, _______, _______, MFNC2 \ ), [_MLWR] = KEYMAP(\ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\ - _______, KC_GRAVE, KC_NONUS_BSLASH, _______, _______, _______, _______, _______, _______, _______, _______, _______,\ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______\ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ ), [_MRSE] = KEYMAP(\ - _______, _______, M(2), _______, _______, _______, _______, _______, _______, _______, _______, _______ ,\ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_EQL) ,\ - _______, _______, _______, _______, _______, _______, LALT(KC_LEFT), _______, _______, _______, LALT(KC_RIGHT), LGUI(KC_MINS) ,\ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + _______, _______, M(2), _______, _______, _______, _______, _______, _______, _______, _______, _______ ,\ + _______, _______, _______, _______, _______, _______, _______, LCTL(KC_A), _______, LCTL(KC_E), _______, LGUI(KC_EQL) ,\ + _______, _______, _______, _______, _______, _______, LALT(KC_LEFT), _______, _______, _______, LALT(KC_RIGHT), LGUI(KC_MINS) ,\ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ ), [_MFNC]= KEYMAP(\ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,\ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT) ,\ - _______, KC_GRAVE, KC_NONUS_BSLASH, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,\ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,\ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT) ,\ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,\ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +), + +[_MFNC2] = KEYMAP(\ + _______, _______, M(2), _______, _______, _______, M(6), _______, _______, _______, _______, _______,\ + _______, _______, M(4), M(8), _______, _______, _______, M(10), _______, _______, _______, _______,\ + _______, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), _______, _______, _______, _______, _______, _______, M(99), \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ ) }; @@ -243,6 +272,15 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { layer_off(_MFNC); } return false; + case MFNC2: + if (record->event.pressed) { + layer_on(_FUNC2); + layer_on(_MFNC2); + } else { + layer_off(_FUNC2); + layer_off(_MFNC2); + } + return false; } return true; } @@ -262,6 +300,48 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t keycode, uint8_t op case 2: // Word Select Mac SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_RIGHT) SS_DOWN(X_LSHIFT) SS_TAP(X_LEFT) SS_UP(X_LSHIFT) SS_UP(X_LALT)); return false; + + case 3: // Line Select + SEND_STRING(SS_TAP(X_HOME) SS_DOWN(X_LSHIFT) SS_TAP(X_END) SS_UP(X_LSHIFT)); + return false; + + case 4: // Line Select Mac + SEND_STRING(SS_LCTRL("a") SS_DOWN(X_LSHIFT) SS_LCTRL("e") SS_UP(X_LSHIFT)); + return false; + + case 5: // Line Delete + SEND_STRING(SS_TAP(X_HOME) SS_DOWN(X_LSHIFT) SS_TAP(X_END) SS_UP(X_LSHIFT)); + SEND_STRING(SS_TAP(X_BSPACE)); + return false; + + case 6: // Line Delete Mac + SEND_STRING(SS_LCTRL("a") SS_DOWN(X_LSHIFT) SS_LCTRL("e") SS_UP(X_LSHIFT)); + SEND_STRING(SS_TAP(X_BSPACE)); + return false; + + case 7: // Duplicate Selection + SEND_STRING(SS_LCTRL("c") SS_TAP(X_RIGHT) SS_LCTRL("v")); + return false; + + case 8: // Duplicate Selection Mac + SEND_STRING(SS_LGUI("c") SS_TAP(X_RIGHT) SS_LGUI("v")); + return false; + + case 9: // Join line + SEND_STRING(SS_TAP(X_END) SS_TAP(X_DELETE)); + return false; + + case 10: // Join line Mac + SEND_STRING(SS_LCTRL("e") SS_TAP(X_DELETE)); + return false; + + case 98: // Print mode + SEND_STRING("PC"); + return false; + + case 99: // Print mode + SEND_STRING("OSX"); + return false; } } return MACRO_NONE; diff --git a/keyboards/jj40/keymaps/ajp10304/readme.md b/keyboards/jj40/keymaps/ajp10304/readme.md index eaaacd05b3e5..7ed6adec7435 100644 --- a/keyboards/jj40/keymaps/ajp10304/readme.md +++ b/keyboards/jj40/keymaps/ajp10304/readme.md @@ -17,7 +17,7 @@ the second is the output when shift is applied. | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | | Tab | A | S | D | F | G | H | J | K | L | ;: | Enter| | Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft | -| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn | +| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 | ##### Function Layer Activated when `fn` held in the above `qwerty` layer. @@ -27,7 +27,7 @@ Activated when `fn` held in the above `qwerty` layer. | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT| | Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift | -| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn | +| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn2 | ##### Lower Layer Activated when `Lower` is held in the above `qwerty` layer. @@ -65,28 +65,44 @@ Activated when `Lower` and `Raise` are held together in the above `qwerty` layer * ????: Runs a macro for outputting a text string. Do not use this store passwords. * Reset: Enter bootloader for flashing firmware to the keyboard. * CAPS: Toggle caps lock. +* Macro functions: Allows recording of macros. To start recording the macro, press either REC1 or REC2. +To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2. * MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER, -MRSE with RAISE and MFNC with FUNC respectively. -* REC1, REC2: Start recording macro. -* PLAY1, PLAY2: Playback macro. -* STOP1, STOP2: Stop recording macro. +MRSE with RAISE, MFNC with FUNC and MFNC2 with FUNC2 respectively. | | | | | | | | | | | | | | :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| | ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del | -| CAPS | | | | | PLAY1| PLAY | Mute | Vol+ | Play | | | -| MAC | | | | | STOP | STOP | Prev | Vol- | Next | | | +| CAPS | | | | | PLAY1|PLAY2 | Mute | Vol+ | Play | | | +| MAC | | | | | STOP1|STOP2 | Prev | Vol- | Next | | | +| | | | | | | | | DYN | | | | + +##### Function 2 Layer +Activated when `fn` held in the above `qwerty` layer. +* WRDSEL: Select the word where the cursor is. +* LNDEL: Delete the line where the cursor is. +* LNSEL: Select the line where the cursor is. +* DUP: Duplicate the selected text. +* LNJOIN: Join the line where the cursor is with the following line. +* MODE: Print either `PC` or `OSX` depending on what layer mode is active. + +| | | | | | | | | | | | | +| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| +| | |WRDSEL| | | | LNDEL| | | | | | +| | | LNSEL| DUP | | | | |LNJOIN| | | | +| | UNDO | CUT | COPY | PASTE| | | | | | | MODE | | | | | | | | | | | | | | - -##### Mouse -Activated when `fn` and `Raise` are held together. -| | | | | | | | | | | | | -| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:| -| | | | | | | | | | | | | -| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | | -| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN |RIGHT | | | -| | | | | | | | | | | | | +##### Mouse Layer +Activated when `fn` and `raise` held together. + +| | | | | | | | | | | | | +| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| +| ESC | | | | | | | | | | | | +| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | | +| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | | +| | | | | | | | | | | | | ####Manual Flashing of hex file -`bootloadHID -r .build/jj40_ajp10304.hex` +Use sleep to get a chance to get into boot mode. +`sleep 5; bootloadHID -r .build/jj40_ajp10304.hex` diff --git a/keyboards/planck/keymaps/ajp10304/keymap.c b/keyboards/planck/keymaps/ajp10304/keymap.c index 02ba8fff7661..10c0307330a7 100644 --- a/keyboards/planck/keymaps/ajp10304/keymap.c +++ b/keyboards/planck/keymaps/ajp10304/keymap.c @@ -14,6 +14,8 @@ enum planck_layers { _MRSE, _FUNC, _MFNC, + _FUNC2, + _MFNC2, _ADJUST, _MOUSE }; @@ -23,6 +25,8 @@ enum planck_keycodes { MAC, FUNC, MFNC, + FUNC2, + MFNC2, LOWER, MLWR, RAISE, @@ -47,14 +51,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn | + * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 | * `-----------------------------------------------------------------------------------' */ [_QWERTY] = { {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, {MT(MOD_LSFT, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MT(MOD_RSFT, KC_ENT) }, {KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSHIFT }, - {MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LSHIFT, KC_BTN2, KC_RCTL, MO(_FUNC) } + {MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LSHIFT, KC_BTN2, KC_RCTL, MO(_FUNC2) } }, /* Function @@ -117,7 +121,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | CAPS | | | | | PLAY1| PLAY2| Mute | Vol+ | Play | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | STOP | STOP | Prev | Vol- | Next | | | + * | PC/MC| | | | | STOP | STOP | Prev | Vol- | Next | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' @@ -147,32 +151,57 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ } }, -[_MAC]= { +/* Function 2 (Right hand side) + * ,-----------------------------------------------------------------------------------. + * | | |WRDSEL| | | | LNDEL| | | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | LNSEL| DUP | | | | |LNJOIN| | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | UNDO | CUT | COPY | PASTE| | | | | | | MODE | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_FUNC2] = { + {_______, _______, M(1), _______, _______, _______, M(5), _______, _______, _______, _______, _______}, + {_______, _______, M(3), M(7), _______, _______, _______, M(10), _______, _______, _______, _______}, + {_______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______, _______, _______, _______, _______, M(98) }, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +}, + +[_MAC] = { {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, MLWR, _______, _______, MRSE, _______, _______, _______, _______} + {MFNC, _______, _______, _______, MLWR, _______, _______, MRSE, _______, _______, _______, MFNC2 } }, [_MLWR] = { - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, KC_GRAVE, KC_NONUS_BSLASH, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, [_MRSE] = { - {_______, _______, M(2), _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_EQL) }, - {_______, _______, _______, _______, _______, _______, LALT(KC_LEFT), _______, _______, _______, LALT(KC_RIGHT), LGUI(KC_MINS) }, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ } + {_______, _______, M(2), _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + {_______, _______, _______, _______, _______, _______, _______, LCTL(KC_A), _______, LCTL(KC_E), _______, LGUI(KC_EQL) }, + {_______, _______, _______, _______, _______, _______, LALT(KC_LEFT), _______, _______, _______, LALT(KC_RIGHT), LGUI(KC_MINS) }, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ } }, [_MFNC]= { - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT) }, - {_______, KC_GRAVE, KC_NONUS_BSLASH, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ } + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT) }, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ } +}, + +[_MFNC2] = { + {_______, _______, M(2), _______, _______, _______, M(6), _______, _______, _______, _______, _______}, + {_______, _______, M(4), M(8), _______, _______, _______, M(10), _______, _______, _______, _______}, + {_______, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), _______, _______, _______, _______, _______, _______, M(99) }, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, }, }; @@ -243,6 +272,15 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { layer_off(_MFNC); } return false; + case MFNC2: + if (record->event.pressed) { + layer_on(_FUNC2); + layer_on(_MFNC2); + } else { + layer_off(_FUNC2); + layer_off(_MFNC2); + } + return false; } return true; } @@ -262,6 +300,48 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t keycode, uint8_t op case 2: // Word Select Mac SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_RIGHT) SS_DOWN(X_LSHIFT) SS_TAP(X_LEFT) SS_UP(X_LSHIFT) SS_UP(X_LALT)); return false; + + case 3: // Line Select + SEND_STRING(SS_TAP(X_HOME) SS_DOWN(X_LSHIFT) SS_TAP(X_END) SS_UP(X_LSHIFT)); + return false; + + case 4: // Line Select Mac + SEND_STRING(SS_LCTRL("a") SS_DOWN(X_LSHIFT) SS_LCTRL("e") SS_UP(X_LSHIFT)); + return false; + + case 5: // Line Delete + SEND_STRING(SS_TAP(X_HOME) SS_DOWN(X_LSHIFT) SS_TAP(X_END) SS_UP(X_LSHIFT)); + SEND_STRING(SS_TAP(X_BSPACE)); + return false; + + case 6: // Line Delete Mac + SEND_STRING(SS_LCTRL("a") SS_DOWN(X_LSHIFT) SS_LCTRL("e") SS_UP(X_LSHIFT)); + SEND_STRING(SS_TAP(X_BSPACE)); + return false; + + case 7: // Duplicate Selection + SEND_STRING(SS_LCTRL("c") SS_TAP(X_RIGHT) SS_LCTRL("v")); + return false; + + case 8: // Duplicate Selection Mac + SEND_STRING(SS_LGUI("c") SS_TAP(X_RIGHT) SS_LGUI("v")); + return false; + + case 9: // Join line + SEND_STRING(SS_TAP(X_END) SS_TAP(X_DELETE)); + return false; + + case 10: // Join line Mac + SEND_STRING(SS_LCTRL("e") SS_TAP(X_DELETE)); + return false; + + case 98: // Print mode + SEND_STRING("PC"); + return false; + + case 99: // Print mode + SEND_STRING("OSX"); + return false; } } return MACRO_NONE; diff --git a/keyboards/planck/keymaps/ajp10304/readme.md b/keyboards/planck/keymaps/ajp10304/readme.md index 3f92d76383a9..8bf490285857 100644 --- a/keyboards/planck/keymaps/ajp10304/readme.md +++ b/keyboards/planck/keymaps/ajp10304/readme.md @@ -17,7 +17,7 @@ the second is the output when shift is applied. | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | | Tab | A | S | D | F | G | H | J | K | L | ;: | Enter| | Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft | -| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn | +| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 | ##### Function Layer Activated when `fn` held in the above `qwerty` layer. @@ -27,7 +27,7 @@ Activated when `fn` held in the above `qwerty` layer. | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT| | Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift | -| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn | +| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn2 | ##### Lower Layer Activated when `Lower` is held in the above `qwerty` layer. @@ -65,25 +65,40 @@ Activated when `Lower` and `Raise` are held together in the above `qwerty` layer * ????: Runs a macro for outputting a text string. Do not use this store passwords. * Reset: Enter bootloader for flashing firmware to the keyboard. * CAPS: Toggle caps lock. +* Macro functions: Allows recording of macros. To start recording the macro, press either REC1 or REC2. +To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2. * MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER, -MRSE with RAISE and MFNC with FUNC respectively. -* REC1, REC2: Start recording macro. -* PLAY1, PLAY2: Playback macro. -* STOP1, STOP2: Stop recording macro. +MRSE with RAISE, MFNC with FUNC and MFNC2 with FUNC2 respectively. | | | | | | | | | | | | | | :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| | ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del | -| CAPS | | | | | PLAY1| PLAY | Mute | Vol+ | Play | | | -| MAC | | | | | STOP | STOP | Prev | Vol- | Next | | | +| CAPS | | | | | PLAY1|PLAY2 | Mute | Vol+ | Play | | | +| MAC | | | | | STOP1|STOP2 | Prev | Vol- | Next | | | +| | | | | | | | | DYN | | | | + +##### Function 2 Layer +Activated when `fn` held in the above `qwerty` layer. +* WRDSEL: Select the word where the cursor is. +* LNDEL: Delete the line where the cursor is. +* LNSEL: Select the line where the cursor is. +* DUP: Duplicate the selected text. +* LNJOIN: Join the line where the cursor is with the following line. +* MODE: Print either `PC` or `OSX` depending on what layer mode is active. + +| | | | | | | | | | | | | +| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| +| | |WRDSEL| | | | LNDEL| | | | | | +| | | LNSEL| DUP | | | | |LNJOIN| | | | +| | UNDO | CUT | COPY | PASTE| | | | | | | MODE | | | | | | | | | | | | | | - -##### Mouse -Activated when `fn` and `Raise` are held together. -| | | | | | | | | | | | | -| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:| -| | | | | | | | | | | | | -| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | | -| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN |RIGHT | | | -| | | | | | | | | | | | | +##### Mouse Layer +Activated when `fn` and `raise` held together. + +| | | | | | | | | | | | | +| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| +| ESC | | | | | | | | | | | | +| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | | +| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | | +| | | | | | | | | | | | | From 72b276bd8f94ac5fb2a91a01d2351d853a1e6ee3 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 3 May 2018 07:56:12 -0700 Subject: [PATCH 332/578] QMK Configurator updates: Atom47, Atomic and Atreus (#2883) * QMK Configurator update for Alpha 28-key * QMK Configurator update for AMJ40 * QMK Configurator update for AMJ Pad * QMK Configurator update for Atom47 * QMK Configurator update for OLKB Atomic * QMK Configurator updates: Atom47 and Atreus * QMK Configurator updates: Atom47 and Atreus * QMK Configurator update for OLKB Atomic and Atreus * QMK C10R: Attempting fixes for Atreus keymap errors * QMK C10R: Attempting fixes for Atreus keymap errors * QMK Configurator: Bug fixes for Atreus keymaps --- keyboards/atom47/keymaps/default/keymap.c | 10 +- keyboards/atom47/keymaps/maartenwut/keymap.c | 8 +- .../atom47/rev2/keymaps/LEdiodes/keymap.c | 10 +- .../atom47/rev2/keymaps/default/keymap.c | 10 +- keyboards/atomic/atomic.h | 6 +- keyboards/atomic/keymaps/abienz.c | 49 ++- keyboards/atomic/keymaps/default/keymap.c | 295 ++++++++------- keyboards/atomic/keymaps/michelle.c | 345 +++++++++-------- keyboards/atomic/keymaps/pvc/keymap.c | 259 +++++++------ keyboards/atomic/keymaps/twolayer.c | 116 +++--- keyboards/atreus/atreus.h | 2 +- keyboards/atreus/info.json | 13 + keyboards/atreus/keymaps/alphadox/keymap.c | 15 +- keyboards/atreus/keymaps/classic/keymap.c | 35 +- keyboards/atreus/keymaps/default/keymap.c | 79 ++-- .../atreus/keymaps/dvorak_42_key/keymap.c | 105 +++--- keyboards/atreus/keymaps/erlandsona/keymap.c | 60 +-- keyboards/atreus/keymaps/gerb/keymap.c | 83 ++-- keyboards/atreus/keymaps/henxing/keymap.c | 152 ++++---- keyboards/atreus/keymaps/jeremy/keymap.c | 70 ++-- keyboards/atreus/keymaps/khitsule/keymap.c | 49 ++- .../atreus/keymaps/replicaJunction/keymap.c | 283 +++++++------- keyboards/atreus/keymaps/xk/keymap.c | 357 +++++++++--------- keyboards/atreus/keymaps/xyverz/keymap.c | 203 +++++----- 24 files changed, 1307 insertions(+), 1307 deletions(-) create mode 100644 keyboards/atreus/info.json diff --git a/keyboards/atom47/keymaps/default/keymap.c b/keyboards/atom47/keymaps/default/keymap.c index 233ff2b8b7fb..945e66ab7b8a 100644 --- a/keyboards/atom47/keymaps/default/keymap.c +++ b/keyboards/atom47/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -#include "atom47.h" +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -13,25 +13,25 @@ #define _______ KC_TRNS const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_MA] = KEYMAP_ANSI( +[_MA] = LAYOUT_ansi( KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, \ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, MO(_FN1), \ KC_LCTL, KC_LGUI, KC_LALT, MO(_PN), KC_SPC, KC_SPC, MO(_FN), KC_RALT, KC_APP, KC_RCTRL), \ -[_FN] = KEYMAP_ANSI( +[_FN] = LAYOUT_ansi( _______, KC_VOLD, KC_VOLU, KC_MUTE, RESET, _______, KC_CALC, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, \ KC_CAPS, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_INS, _______, \ _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \ -[_FN1] = KEYMAP_ANSI( +[_FN1] = LAYOUT_ansi( KC_GRV, 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, \ _______, _______, _______, _______, _______, KC_QUOT, KC_SLSH, KC_LBRC, KC_RBRC, KC_BSLS, KC_RSFT, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \ -[_PN] = KEYMAP_ANSI( +[_PN] = LAYOUT_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, \ RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, \ diff --git a/keyboards/atom47/keymaps/maartenwut/keymap.c b/keyboards/atom47/keymaps/maartenwut/keymap.c index d526d836c35d..abe63a41e8ab 100644 --- a/keyboards/atom47/keymaps/maartenwut/keymap.c +++ b/keyboards/atom47/keymaps/maartenwut/keymap.c @@ -1,4 +1,4 @@ -#include "atom47.h" +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -19,19 +19,19 @@ enum custom_keycodes { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_MA] = KEYMAP_ANSI( +[_MA] = LAYOUT_ansi( KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, \ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ KC_LCTL, KC_LGUI, KC_LALT, MO(_LO), KC_SPC, KC_SPC, MO(_RA), KC_RALT, KC_APP, KC_RCTRL), \ -[_LO] = KEYMAP_ANSI( +[_LO] = LAYOUT_ansi( KC_GRV, 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, \ _______, CTRLZ, CTRLX, CTRLC, CTRLV, _______, _______, KC_QUOT, KC_LBRC, KC_RBRC, KC_BSLS, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET), \ -[_RA] = KEYMAP_ANSI( +[_RA] = LAYOUT_ansi( _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, _______, _______, \ KC_CAPS, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY, KC_PSCR, \ diff --git a/keyboards/atom47/rev2/keymaps/LEdiodes/keymap.c b/keyboards/atom47/rev2/keymaps/LEdiodes/keymap.c index 75c8654ba64a..b987c433fef1 100644 --- a/keyboards/atom47/rev2/keymaps/LEdiodes/keymap.c +++ b/keyboards/atom47/rev2/keymaps/LEdiodes/keymap.c @@ -1,4 +1,4 @@ -#include "atom47.h" +#include QMK_KEYBOARD_H // These are all aliases for the function layers. #define _L0 0 @@ -9,25 +9,25 @@ #define _______ KC_TRNS const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_L0] = KEYMAP_ANSI( +[_L0] = LAYOUT_ansi( KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, \ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, MO(_L1), \ KC_LCTL, KC_LGUI, KC_LALT, TG(_L3), KC_SPC, KC_SPC, MO(_L2), KC_RALT, KC_APP, KC_RCTRL), \ -[_L2] = KEYMAP_ANSI( +[_L2] = LAYOUT_ansi( _______, KC_VOLD, KC_VOLU, KC_MUTE, RESET, _______, KC_CALC, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, \ KC_CAPS, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_INS, _______, \ _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \ -[_L1] = KEYMAP_ANSI( +[_L1] = LAYOUT_ansi( KC_GRV, 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, \ _______, _______, _______, _______, _______, KC_QUOT, KC_SLSH, KC_LBRC, KC_RBRC, KC_BSLS, KC_RSFT, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \ -[_L3] = KEYMAP_ANSI( +[_L3] = LAYOUT_ansi( _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, _______, _______, _______, _______, \ diff --git a/keyboards/atom47/rev2/keymaps/default/keymap.c b/keyboards/atom47/rev2/keymaps/default/keymap.c index 1473863c4e0f..5f74416ce065 100644 --- a/keyboards/atom47/rev2/keymaps/default/keymap.c +++ b/keyboards/atom47/rev2/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -#include "atom47.h" +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -13,25 +13,25 @@ #define _______ KC_TRNS const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_MA] = KEYMAP_ANSI( +[_MA] = LAYOUT_ansi( KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, \ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, MO(_FN1), \ KC_LCTL, KC_LGUI, KC_LALT, MO(_PN), KC_SPC, KC_SPC, MO(_FN), KC_RALT, KC_APP, KC_RCTRL), \ -[_FN] = KEYMAP_ANSI( +[_FN] = LAYOUT_ansi( _______, KC_VOLD, KC_VOLU, KC_MUTE, RESET, _______, KC_CALC, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, \ KC_CAPS, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_INS, _______, \ _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \ -[_FN1] = KEYMAP_ANSI( +[_FN1] = LAYOUT_ansi( KC_GRV, 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, \ _______, _______, _______, _______, _______, KC_QUOT, KC_SLSH, KC_LBRC, KC_RBRC, KC_BSLS, KC_RSFT, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \ -[_PN] = KEYMAP_ANSI( +[_PN] = LAYOUT_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ diff --git a/keyboards/atomic/atomic.h b/keyboards/atomic/atomic.h index b7ceb68d07ba..a22029f7695d 100644 --- a/keyboards/atomic/atomic.h +++ b/keyboards/atomic/atomic.h @@ -10,7 +10,7 @@ // The following is an example using the Planck MIT layout // The first section contains all of the arguements // The second converts the arguments into a two-dimensional array -#define KEYMAP_SEMI_STANDARD( \ +#define LAYOUT_semi_standard( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ @@ -24,7 +24,7 @@ { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E } \ } -#define KEYMAP_GRID( \ +#define LAYOUT_grid( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E,\ @@ -38,6 +38,6 @@ { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E } \ } -#define LAYOUT_ortho_5x15 KEYMAP_GRID +#define LAYOUT_ortho_5x15 LAYOUT_grid #endif \ No newline at end of file diff --git a/keyboards/atomic/keymaps/abienz.c b/keyboards/atomic/keymaps/abienz.c index 589a64dc4e2e..2e69165f24ad 100644 --- a/keyboards/atomic/keymaps/abienz.c +++ b/keyboards/atomic/keymaps/abienz.c @@ -1,36 +1,33 @@ -#include "atomic.h" +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = { /* Colemak */ - { 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_BSPC, KC_NO }, - { KC_TAB, CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, CM_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, - { KC_BSPC, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, KC_QUOT, KC_ENT, KC_NO, KC_PGUP }, - { KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, CM_COMM, CM_DOT, CM_SLSH, KC_RSFT, KC_NO, KC_UP, KC_PGDN }, - { KC_LCTL, KC_LGUI, KC_NO, KC_LALT, FUNC(1), KC_SPC, KC_NO, KC_RALT, FUNC(2), KC_RGUI, KC_NO, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, - }, - [1] = { /* function */ - { KC_GRV, 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_BSPC, KC_NO }, - { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }, - { KC_TRNS, KC_TRNS, KC_TRNS, KC_SLEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }, - { KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MPLY }, - { KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, FUNC(1), KC_TRNS, KC_NO, KC_TRNS, FUNC(2), KC_TRNS, KC_NO, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT }, - } + [0] = LAYOUT_grid( /* Colemak */ + 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_BSPC, KC_NO , + KC_TAB, CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, CM_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , + KC_BSPC, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, KC_QUOT, KC_ENT, KC_NO, KC_PGUP, + KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, CM_COMM, CM_DOT, CM_SLSH, KC_RSFT, KC_NO, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_NO, KC_LALT, FUNC(1), KC_SPC, KC_NO, KC_RALT, FUNC(2), KC_RGUI, KC_NO, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, + ), + [1] = LAYOUT_grid( /* function */ + KC_GRV, 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_BSPC, KC_NO , + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_SLEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MPLY, + KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, FUNC(1), KC_TRNS, KC_NO, KC_TRNS, FUNC(2), KC_TRNS, KC_NO, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT, + ), }; const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(1), - [2] = ACTION_LAYER_MOMENTARY(1), - + [1] = ACTION_LAYER_MOMENTARY(1), + [2] = ACTION_LAYER_MOMENTARY(1), }; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ +const macro_t * action_get_macro(keyrecord_t * record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(TYPE(KC_T), END); + switch (id) { + case 0: + return MACRODOWN(TYPE(KC_T), END); break; - } - return MACRO_NONE; + } + return MACRO_NONE; }; - diff --git a/keyboards/atomic/keymaps/default/keymap.c b/keyboards/atomic/keymaps/default/keymap.c index 0ede363a1f34..ae1efb2b6632 100644 --- a/keyboards/atomic/keymaps/default/keymap.c +++ b/keyboards/atomic/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -#include "atomic.h" +#include QMK_KEYBOARD_H // Fillers to make layering more clear #define _______ KC_TRNS @@ -21,7 +21,7 @@ * | KEY . XXXXXX | * '-----------------' */ - + /* ROW 2 OPTIONS * .--------------------------------------------------------------------------------------------------------------------------------------. * | | | | | | | | | | | | | | | | @@ -30,7 +30,7 @@ * | KEY . XXXXXX | | KEY . XXXXXX | * '-----------------' '-----------------' */ - + /* ROW 3 OPTIONS * .--------------------------------------------------------------------------------------------------------------------------------------. * | | | | | | | | | | | | | | | | @@ -42,7 +42,7 @@ * | X | * '-----------------' */ - + /* ROW 4 OPTIONS * .--------------------------------------------------------------------------------------------------------------------------------------. * | | | | | | | | | | | | | | | | @@ -78,157 +78,156 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* QWERTY - MIT ENHANCED / GRID COMPATIBLE - * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| - * | ESC | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| - * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | - * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| - * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT | - * '--------------------------------------------------------------------------------------------------------------------------------------' - */ - - [_QW] = { /* QWERTY */ - { KC_GRV, 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_BSPC, KC_BSPC }, - { 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_BSLS, KC_DEL }, - { KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP }, - { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, - { M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT }, - }, - -/* COLEMAK - MIT ENHANCED / GRID COMPATIBLE - * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | TAB | Q | W | F | P | G | J | L | U | Y | ; | [ | ] | \ | DEL | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| - * | ESC | A | R | S | T | D | H | N | E | I | O | ' | XXXXXX . ENTER | PG UP | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| - * | LSHIFT | Z | X | C | V | B | K | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | - * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| - * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT | - * '--------------------------------------------------------------------------------------------------------------------------------------' - */ - - [_CM] = { /* COLEMAK */ - { KC_GRV, 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_BSPC, KC_BSPC }, - { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, - { KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP }, - { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, - { M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT }, - }, - -/* DVORAK - MIT ENHANCED / GRID COMPATIBLE - * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | TAB | ' | , | . | P | Y | F | G | C | R | L | [ | ] | \ | DEL | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| - * | ESC | A | O | E | U | I | D | H | T | N | S | / | XXXXXX . ENTER | PG UP | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| - * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | XXXXXX . RSHIFT | UP | PG DN | - * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| - * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT | - * '--------------------------------------------------------------------------------------------------------------------------------------' - */ + /* QWERTY - MIT ENHANCED / GRID COMPATIBLE + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | ESC | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ - [_DV] = { /* DVORAK */ - { KC_GRV, 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_BSPC, KC_BSPC }, - { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, - { KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, KC_ENT, KC_ENT, KC_PGUP }, - { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, - { M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT }, - }, - -/* LOWERED - * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. - * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | | INS | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| - * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | XXXXXX . | | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | XXXXXX . | | | - * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| - * | | | | | | XXXXXX . | | | | | | | | | - * '--------------------------------------------------------------------------------------------------------------------------------------' - */ - - [_LW] = { /* LOWERED */ - { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, - { _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS }, - { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, ___T___, ___T___, _______ }, - { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - }, - -/* RAISED - * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. - * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | | INS | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| - * | | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | XXXXXX . | | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | XXXXXX . | | | - * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| - * | | | | | | XXXXXX . | | | | | | | | | - * '--------------------------------------------------------------------------------------------------------------------------------------' - */ - - [_RS] = { /* RAISED */ - { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, - { _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS }, - { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______ }, - { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - }, - -/* FUNCTION - * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. - * | NUM LK | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | SCR LK | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | PAUSE | PR SCR | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| - * | CAP LK | MS BT5 | MS BT4 | MS BT3 | MS BT2 | SLOW M | FAST M | NEXT | VOL+ | VOL- | PLAY | | XXXXXX . | WHEEL+ | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| - * | | | QWERTY | COLEMK | DVORAK | | | | | | | XXXXXX . | MOUS U | WHEEL- | - * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| - * | | | | | | XXXXXX . MS BT1 | | | | | | MOUS L | MOUS D | MOUS R | - * '--------------------------------------------------------------------------------------------------------------------------------------' - */ - - [_FN] = { /* FUNCTION */ - { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, - { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR }, - { KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U }, - { _______, _______, DF(_QW), DF(_CM), DF(_DV), _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, - { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, - }, + [_QW] = LAYOUT_grid( /* QWERTY */ + KC_GRV, 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_BSPC, KC_BSPC, + 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_BSLS, KC_DEL , + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN, + M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* COLEMAK - MIT ENHANCED / GRID COMPATIBLE + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | F | P | G | J | L | U | Y | ; | [ | ] | \ | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | ESC | A | R | S | T | D | H | N | E | I | O | ' | XXXXXX . ENTER | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | LSHIFT | Z | X | C | V | B | K | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_CM] = LAYOUT_grid( /* COLEMAK */ + KC_GRV, 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_BSPC, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN, + M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* DVORAK - MIT ENHANCED / GRID COMPATIBLE + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | ' | , | . | P | Y | F | G | C | R | L | [ | ] | \ | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | ESC | A | O | E | U | I | D | H | T | N | S | / | XXXXXX . ENTER | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | XXXXXX . RSHIFT | UP | PG DN | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_DV] = LAYOUT_grid( /* DVORAK */ + KC_GRV, 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_BSPC, KC_BSPC, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, KC_ENT, KC_ENT, KC_PGUP, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN, + M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* LOWERED + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | | INS | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | XXXXXX . | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | XXXXXX . | | | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | | | | | | XXXXXX . | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_LW] = LAYOUT_grid( /* LOWERED */ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___, + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS , + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, ___T___, ___T___, _______, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* RAISED + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | | INS | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | XXXXXX . | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | XXXXXX . | | | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | | | | | | XXXXXX . | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_RS] = LAYOUT_grid( /* RAISED */ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___, + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS , + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* FUNCTION + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | NUM LK | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | SCR LK | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | PAUSE | PR SCR | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | CAP LK | MS BT5 | MS BT4 | MS BT3 | MS BT2 | SLOW M | FAST M | NEXT | VOL+ | VOL- | PLAY | | XXXXXX . | WHEEL+ | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | | | QWERTY | COLEMK | DVORAK | | | | | | | XXXXXX . | MOUS U | WHEEL- | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | | | | | | XXXXXX . MS BT1 | | | | | | MOUS L | MOUS D | MOUS R | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_FN] = LAYOUT_grid( /* FUNCTION */ + KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___, + KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR, + KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U, + _______, _______, DF(_QW), DF(_CM), DF(_DV), _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D, + _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R + ), }; const uint16_t PROGMEM fn_actions[] = { }; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - break; + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); } - return MACRO_NONE; + break; + } + return MACRO_NONE; }; diff --git a/keyboards/atomic/keymaps/michelle.c b/keyboards/atomic/keymaps/michelle.c index 2364c46a15dd..9c22423d6855 100644 --- a/keyboards/atomic/keymaps/michelle.c +++ b/keyboards/atomic/keymaps/michelle.c @@ -1,183 +1,182 @@ -#include "atomic.h" +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = { /* Dvorak */ - { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_NO }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ - { KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_NO, KC_PGUP }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_NO, KC_UP, KC_PGDN }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { KC_LCTL, MO(1), KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, MO(2), KC_LEFT, KC_DOWN, KC_RGHT }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐ -// │ X │ X │ X │ X │ X │ X │ X │ X │ X │ -// └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ -// ┌───────────────────── 6.25u ────────────────────────────┐ -// │ X │ -// └────────────────────────────────────────────────────────┘ -// ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐ -// │ X │ X │ X │ X │ X │ X │ -// └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ - }, - [1] = { /* Qwerty + F keys */ - { KC_ESC, 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_BSPC, KC_NO }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { 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_INS, KC_DEL }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ - { KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_NO, KC_PGUP }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, KC_UP, KC_PGDN }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { KC_LCTL, KC_TRNS, KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐ -// │ X │ X │ X │ X │ X │ X │ X │ X │ X │ -// └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ -// ┌───────────────────── 6.25u ────────────────────────────┐ -// │ X │ -// └────────────────────────────────────────────────────────┘ -// ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐ -// │ X │ X │ X │ X │ X │ X │ -// └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ - }, - [2] = { /* Numpad + qwerty shortcut keys */ - { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_P7, KC_P8, KC_P9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_NO }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_P4, KC_P5, KC_P6, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ - { KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_P1, KC_P2, KC_P3, KC_S, KC_MINS, KC_ENT, KC_NO, KC_PGUP }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_X, KC_B, KC_P0, KC_P0, KC_PENT, KC_Z, KC_RSFT, KC_NO, KC_UP, KC_PGDN }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { KC_LCTL, KC_TRNS, KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐ -// │ X │ X │ X │ X │ X │ X │ X │ X │ X │ -// └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ -// ┌───────────────────── 6.25u ────────────────────────────┐ -// │ X │ -// └────────────────────────────────────────────────────────┘ -// ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐ -// │ X │ X │ X │ X │ X │ X │ -// └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ - }, + [0] = LAYOUT_grid( /* Dvorak */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_NO , + // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + // ┌─ 2u ────────────┐ + // │ X │ + // └─────────────────┘ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL , + // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ + // │ X │ │ X │ + // └─────────────────┘ └─────────────────┘ + KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_NO, KC_PGUP , + // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ + // │ X │ │ X │ + // └─────────────────┘ └─────────────────┘ + // ┌─ 2u ────────────┐ + // │ X │ + // └─────────────────┘ + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_NO, KC_UP, KC_PGDN , + // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + // ┌─ 2u ────────────┐ + // │ X │ + // └─────────────────┘ + // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ + // │ X │ │ X │ + // └─────────────────┘ └─────────────────┘ + // ┌─ 2u ────────────┐ + // │ X │ + // └─────────────────┘ + KC_LCTL, MO(1), KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, MO(2), KC_LEFT, KC_DOWN, KC_RGHT , + // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + // ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐ + // │ X │ X │ X │ X │ X │ X │ X │ X │ X │ + // └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ + // ┌─ 2u ────────────┐ + // │ X │ + // └─────────────────┘ + // ┌───────────────────── 6.25u ────────────────────────────┐ + // │ X │ + // └────────────────────────────────────────────────────────┘ + // ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐ + // │ X │ X │ X │ X │ X │ X │ + // └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ + ), + [1] = LAYOUT_grid( /* Qwerty + F keys */ + KC_ESC, 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_BSPC, KC_NO , + // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + // ┌─ 2u ────────────┐ + // │ X │ + // └─────────────────┘ + 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_INS, KC_DEL , + // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ + // │ X │ │ X │ + // └─────────────────┘ └─────────────────┘ + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_NO, KC_PGUP , + // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ + // │ X │ │ X │ + // └─────────────────┘ └─────────────────┘ + // ┌─ 2u ────────────┐ + // │ X │ + // └─────────────────┘ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, KC_UP, KC_PGDN , + // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + // ┌─ 2u ────────────┐ + // │ X │ + // └─────────────────┘ + // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ + // │ X │ │ X │ + // └─────────────────┘ └─────────────────┘ + // ┌─ 2u ────────────┐ + // │ X │ + // └─────────────────┘ + KC_LCTL, KC_TRNS, KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT , + // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + // ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐ + // │ X │ X │ X │ X │ X │ X │ X │ X │ X │ + // └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ + // ┌─ 2u ────────────┐ + // │ X │ + // └─────────────────┘ + // ┌───────────────────── 6.25u ────────────────────────────┐ + // │ X │ + // └────────────────────────────────────────────────────────┘ + // ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐ + // │ X │ X │ X │ X │ X │ X │ + // └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ + ), + [2] = LAYOUT_grid( /* Numpad + qwerty shortcut keys */ + { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_P7, KC_P8, KC_P9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_NO , + // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + // ┌─ 2u ────────────┐ + // │ X │ + // └─────────────────┘ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_P4, KC_P5, KC_P6, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL , + // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ + // │ X │ │ X │ + // └─────────────────┘ └─────────────────┘ + KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_P1, KC_P2, KC_P3, KC_S, KC_MINS, KC_ENT, KC_NO, KC_PGUP , + // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ + // │ X │ │ X │ + // └─────────────────┘ └─────────────────┘ + // ┌─ 2u ────────────┐ + // │ X │ + // └─────────────────┘ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_X, KC_B, KC_P0, KC_P0, KC_PENT, KC_Z, KC_RSFT, KC_NO, KC_UP, KC_PGDN , + // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + // ┌─ 2u ────────────┐ + // │ X │ + // └─────────────────┘ + // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ + // │ X │ │ X │ + // └─────────────────┘ └─────────────────┘ + // ┌─ 2u ────────────┐ + // │ X │ + // └─────────────────┘ + KC_LCTL, KC_TRNS, KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT , + // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + // ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐ + // │ X │ X │ X │ X │ X │ X │ X │ X │ X │ + // └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ + // ┌─ 2u ────────────┐ + // │ X │ + // └─────────────────┘ + // ┌───────────────────── 6.25u ────────────────────────────┐ + // │ X │ + // └────────────────────────────────────────────────────────┘ + // ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐ + // │ X │ X │ X │ X │ X │ X │ + // └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ + ), }; const uint16_t PROGMEM fn_actions[] = { }; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(TYPE(KC_T), END); + switch(id) { + case 0: + return MACRODOWN(TYPE(KC_T), END); break; - } - return MACRO_NONE; + } + return MACRO_NONE; }; diff --git a/keyboards/atomic/keymaps/pvc/keymap.c b/keyboards/atomic/keymaps/pvc/keymap.c index 43ec0b23bf2e..4ccac63f6cb1 100644 --- a/keyboards/atomic/keymaps/pvc/keymap.c +++ b/keyboards/atomic/keymaps/pvc/keymap.c @@ -1,4 +1,4 @@ -#include "atomic.h" +#include QMK_KEYBOARD_H #include "action_layer.h" #include "eeconfig.h" #include "led.h" @@ -111,126 +111,126 @@ enum keyboard_macros { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* LAYER = LAYER_QWERTY - .--------------------------------------------------------------------------------------------------------------------------------------. - | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP . BACKSP | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | CAP LK | A | S | D | F | G | H | J | K | L | ; | ' | ENTER . ENTER | PG UP | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT . RSHIFT | UP | PG DN | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | LCTRL | LWIN | FN | LALT | UPPER | SPACE . SPACE | LOWER | OSHIFT | RALT | APP | RCTRL | LEFT | DOWN | RIGHT | - '--------------------------------------------------------------------------------------------------------------------------------------' -*/ -[LAYER_QWERTY] = { - { 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_BSPC, KC_BSPC }, - { 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_BSLS, KC_DEL }, - { KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_ENT , KC_PGUP }, - { KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_RSFT, KC_UP , KC_PGDN }, - { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC , KC_SPC , M_LOWER, OS_SHFT, KC_RALT, KC_APP , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT } -}, -/* LAYER = LAYER_UPPER - .--------------------------------------------------------------------------------------------------------------------------------------. - | PRINT | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | NUM LK | KP / | KP * | KP - | XXXXXX | XXXXXX | ______ . ______ | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | PAUSE | F1 | F2 | F3 | F4 | NUM LK | KP / | KP 7 | KP 8 | KP 9 | KP - | ______ | ______ | ______ | INS | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | ______ | F5 | F6 | F7 | F8 | CAP LK | KP * | KP 4 | KP 5 | KP 6 | KP + | ______ | ______ . ______ | HOME | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | ______ | F9 | F10 | F11 | F12 | SCR LK | KP 0 | KP 1 | KP 2 | KP 3 | KP ENT | ______ . ______ | ______ | END | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | ______ | ______ | ______ | ______ | UPPER | KP 0 . KP 0 | ______ | RALT | KP . | KP ENT | ______ | ______ | ______ | ______ | - '--------------------------------------------------------------------------------------------------------------------------------------' -*/ -[LAYER_UPPER] = { - { KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, XXXXXXX, XXXXXXX, _______, _______ }, - { KC_PAUS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_NLCK, KC_PSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______, _______, _______, KC_INS }, - { _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_CAPS, KC_PAST, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______, _______, _______, KC_HOME }, - { _______, KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_SLCK, KC_KP_0, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, _______, _______, _______, KC_END }, - { _______, _______, _______, _______, M_UPPER, KC_KP_0, KC_KP_0, _______, KC_RALT, KC_PDOT, KC_PENT, _______, _______, _______, _______ } -}, -/* LAYER = LAYER_LOWER - .--------------------------------------------------------------------------------------------------------------------------------------. - | PRINT | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | ______ . ______ | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | ______ | $ | { | [ | ( | % | # | ) | ] | } | @ | ______ | ______ | ______ | INS | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | ______ | ^ | * | + | - | / | \ | _ | ' | " | ` | ______ | ______ . ______ | HOME | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | ______ | | | & | ! | ~ | ; | : | = | < | > | ? | ______ . ______ | ______ | END | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | ______ | ______ | ______ | ______ | ______ | ______ . ______ | LOWER | ______ | ______ | ______ | ______ | ______ | ______ | ______ | - '--------------------------------------------------------------------------------------------------------------------------------------' -*/ -[LAYER_LOWER] = { - { KC_PSCR, 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_DLR , KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT , _______, _______, _______, KC_INS }, - { _______, KC_CIRC, KC_ASTR, KC_PLUS, KC_MINS, KC_SLSH, KC_BSLS, KC_UNDS, KC_QUOT, KC_DQT , KC_GRV , _______, _______, _______, KC_HOME }, - { _______, KC_PIPE, KC_AMPR, KC_EXLM, KC_TILD, KC_SCLN, KC_COLN, KC_EQL , KC_LT , KC_GT , KC_QUES, _______, _______, _______, KC_END }, - { _______, _______, _______, _______, _______, _______, _______, M_LOWER, _______, _______, _______, _______, _______, _______, _______ } -}, -/* LAYER = LAYER_FUNCTION - .--------------------------------------------------------------------------------------------------------------------------------------. - | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | XXXXXX | F13 | F14 | F15 | F16 | NUM LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | XXXXXX | F17 | F18 | F19 | F20 | SCR LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX | XXXXXX | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | ______ | F21 | F22 | F23 | F24 | CAP LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | ______ . ______ | VOL UP | MUTE | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | ______ | ______ | FN | ______ | ______ | PLAY . PLAY | ______ | ______ | ______ | ______ | ______ | PREV | VOL DN | NEXT | - '--------------------------------------------------------------------------------------------------------------------------------------' -*/ -[LAYER_FUNCTION] = { - { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, - { XXXXXXX, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_NLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, - { XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, - { _______, KC_F21 , KC_F22 , KC_F23 , KC_F24 , KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, KC_VOLU, KC_MUTE }, - { _______, _______, M_FUNCT, _______, _______, KC_MPLY, KC_MPLY, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT } -}, -/* LAYER = LAYER_MOUSE - .--------------------------------------------------------------------------------------------------------------------------------------. - | ESC | MS AC0 | MS AC1 | MS AC2 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MS UL | MS U | MS UR | XXXXXX | XXXXXX | XXXXXX | MS WHL | MS WHR | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | XXXXXX | MS BT5 | MS BT4 | MS BT3 | MS BT2 | XXXXXX | XXXXXX | MS L | XXXXXX | MS R | XXXXXX | XXXXXX | XXXXXX . XXXXXX | MS WHU | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | ______ | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MS DL | MS D | MS DR | XXXXXX | ______ . ______ | MS U | MS WHD | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | ______ | ______ | ______ | ______ | ______ | MS BT1 . MS BT1 | ______ | ______ | ______ | ______ | ______ | MS L | MS D | MS R | - '--------------------------------------------------------------------------------------------------------------------------------------' -*/ -[LAYER_MOUSE] = { - { KC_ESC , KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, - { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_MS_UL, KC_MS_U, M_MS_UR, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_R }, - { XXXXXXX, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, KC_MS_L, XXXXXXX, KC_MS_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_U }, - { _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_MS_DL, KC_MS_D, M_MS_DR, XXXXXXX, _______, _______, KC_MS_U, KC_WH_D }, - { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R } -}, -/* LAYER = LAYER_ADJUST - .--------------------------------------------------------------------------------------------------------------------------------------. - | XXXXXX | HELP 1 | HELP 2 | HELP 3 | HELP 4 | HELP 5 | HELP 6 | HELP 7 | HELP 8 | HELP 9 | XXXXXX | MUSIC | AUDIO | XXXXXX . XXXXXX | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | XXXXXX | BRTOG | BRSPD+ | BRSPD- | BRDFLT | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX | XXXXXX | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | XXXXXX | QWERTY | XXXXXX | XXXXXX | BACKLT | RESET | XXXXXX | MOUSE | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX | VOICE+ | XXXXXX | - |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - | XXXXXX | XXXXXX | XXXXXX | XXXXXX | UPPER | XXXXXX . XXXXXX | LOWER | XXXXXX | XXXXXX | XXXXXX | XXXXXX | TEMPO- | VOICE- | TEMPO+ | - '--------------------------------------------------------------------------------------------------------------------------------------' -*/ -[LAYER_ADJUST] = { - { XXXXXXX, M_HELP1, M_HELP2, M_HELP3, M_HELP4, M_HELP5, M_HELP6, M_HELP7, M_HELP8, M_HELP9, XXXXXXX, MU_TOG , AU_TOG , XXXXXXX, XXXXXXX }, - { XXXXXXX, M_BRTOG, M_BSPDU, M_BSPDD, M_BDFLT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, - { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, - { XXXXXXX, M_QWRTY, XXXXXXX, XXXXXXX, M_BACKL, RESET , XXXXXXX, M_MOUSE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MUV_IN , XXXXXXX }, - { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_UPPER, XXXXXXX, XXXXXXX, M_LOWER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TMPO_DN, MUV_DE , TMPO_UP } -}, + /* LAYER = LAYER_QWERTY + .--------------------------------------------------------------------------------------------------------------------------------------. + | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP . BACKSP | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | CAP LK | A | S | D | F | G | H | J | K | L | ; | ' | ENTER . ENTER | PG UP | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT . RSHIFT | UP | PG DN | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | LCTRL | LWIN | FN | LALT | UPPER | SPACE . SPACE | LOWER | OSHIFT | RALT | APP | RCTRL | LEFT | DOWN | RIGHT | + '--------------------------------------------------------------------------------------------------------------------------------------' + */ + [LAYER_QWERTY] = LAYOUT_grid( + 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_BSPC, KC_BSPC, + 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_BSLS, KC_DEL , + KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_ENT , KC_PGUP, + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_RSFT, KC_UP , KC_PGDN, + KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC , KC_SPC , M_LOWER, OS_SHFT, KC_RALT, KC_APP , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + /* LAYER = LAYER_UPPER + .--------------------------------------------------------------------------------------------------------------------------------------. + | PRINT | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | NUM LK | KP / | KP * | KP - | XXXXXX | XXXXXX | ______ . ______ | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | PAUSE | F1 | F2 | F3 | F4 | NUM LK | KP / | KP 7 | KP 8 | KP 9 | KP - | ______ | ______ | ______ | INS | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | ______ | F5 | F6 | F7 | F8 | CAP LK | KP * | KP 4 | KP 5 | KP 6 | KP + | ______ | ______ . ______ | HOME | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | ______ | F9 | F10 | F11 | F12 | SCR LK | KP 0 | KP 1 | KP 2 | KP 3 | KP ENT | ______ . ______ | ______ | END | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | ______ | ______ | ______ | ______ | UPPER | KP 0 . KP 0 | ______ | RALT | KP . | KP ENT | ______ | ______ | ______ | ______ | + '--------------------------------------------------------------------------------------------------------------------------------------' + */ + [LAYER_UPPER] = LAYOUT_grid( + KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, XXXXXXX, XXXXXXX, _______, _______, + KC_PAUS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_NLCK, KC_PSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______, _______, _______, KC_INS , + _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_CAPS, KC_PAST, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______, _______, _______, KC_HOME, + _______, KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_SLCK, KC_KP_0, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, _______, _______, _______, KC_END , + _______, _______, _______, _______, M_UPPER, KC_KP_0, KC_KP_0, _______, KC_RALT, KC_PDOT, KC_PENT, _______, _______, _______, _______ + ), + /* LAYER = LAYER_LOWER + .--------------------------------------------------------------------------------------------------------------------------------------. + | PRINT | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | ______ . ______ | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | ______ | $ | { | [ | ( | % | # | ) | ] | } | @ | ______ | ______ | ______ | INS | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | ______ | ^ | * | + | - | / | \ | _ | ' | " | ` | ______ | ______ . ______ | HOME | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | ______ | | | & | ! | ~ | ; | : | = | < | > | ? | ______ . ______ | ______ | END | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | ______ | ______ | ______ | ______ | ______ | ______ . ______ | LOWER | ______ | ______ | ______ | ______ | ______ | ______ | ______ | + '--------------------------------------------------------------------------------------------------------------------------------------' + */ + [LAYER_LOWER] = LAYOUT_grid( + KC_PSCR, 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_DLR , KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT , _______, _______, _______, KC_INS , + _______, KC_CIRC, KC_ASTR, KC_PLUS, KC_MINS, KC_SLSH, KC_BSLS, KC_UNDS, KC_QUOT, KC_DQT , KC_GRV , _______, _______, _______, KC_HOME, + _______, KC_PIPE, KC_AMPR, KC_EXLM, KC_TILD, KC_SCLN, KC_COLN, KC_EQL , KC_LT , KC_GT , KC_QUES, _______, _______, _______, KC_END , + _______, _______, _______, _______, _______, _______, _______, M_LOWER, _______, _______, _______, _______, _______, _______, _______ + ), + /* LAYER = LAYER_FUNCTION + .--------------------------------------------------------------------------------------------------------------------------------------. + | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | XXXXXX | F13 | F14 | F15 | F16 | NUM LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | XXXXXX | F17 | F18 | F19 | F20 | SCR LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX | XXXXXX | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | ______ | F21 | F22 | F23 | F24 | CAP LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | ______ . ______ | VOL UP | MUTE | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | ______ | ______ | FN | ______ | ______ | PLAY . PLAY | ______ | ______ | ______ | ______ | ______ | PREV | VOL DN | NEXT | + '--------------------------------------------------------------------------------------------------------------------------------------' + */ + [LAYER_FUNCTION] = LAYOUT_grid( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_NLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, KC_F21 , KC_F22 , KC_F23 , KC_F24 , KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, KC_VOLU, KC_MUTE, + _______, _______, M_FUNCT, _______, _______, KC_MPLY, KC_MPLY, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + ), + /* LAYER = LAYER_MOUSE + .--------------------------------------------------------------------------------------------------------------------------------------. + | ESC | MS AC0 | MS AC1 | MS AC2 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MS UL | MS U | MS UR | XXXXXX | XXXXXX | XXXXXX | MS WHL | MS WHR | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | XXXXXX | MS BT5 | MS BT4 | MS BT3 | MS BT2 | XXXXXX | XXXXXX | MS L | XXXXXX | MS R | XXXXXX | XXXXXX | XXXXXX . XXXXXX | MS WHU | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | ______ | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MS DL | MS D | MS DR | XXXXXX | ______ . ______ | MS U | MS WHD | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | ______ | ______ | ______ | ______ | ______ | MS BT1 . MS BT1 | ______ | ______ | ______ | ______ | ______ | MS L | MS D | MS R | + '--------------------------------------------------------------------------------------------------------------------------------------' + */ + [LAYER_MOUSE] = LAYOUT_grid( + KC_ESC , KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_MS_UL, KC_MS_U, M_MS_UR, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_R, + XXXXXXX, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, KC_MS_L, XXXXXXX, KC_MS_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_U, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_MS_DL, KC_MS_D, M_MS_DR, XXXXXXX, _______, _______, KC_MS_U, KC_WH_D, + _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R + ), + /* LAYER = LAYER_ADJUST + .--------------------------------------------------------------------------------------------------------------------------------------. + | XXXXXX | HELP 1 | HELP 2 | HELP 3 | HELP 4 | HELP 5 | HELP 6 | HELP 7 | HELP 8 | HELP 9 | XXXXXX | MUSIC | AUDIO | XXXXXX . XXXXXX | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | XXXXXX | BRTOG | BRSPD+ | BRSPD- | BRDFLT | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX | XXXXXX | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | XXXXXX | QWERTY | XXXXXX | XXXXXX | BACKLT | RESET | XXXXXX | MOUSE | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX | VOICE+ | XXXXXX | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | XXXXXX | XXXXXX | XXXXXX | XXXXXX | UPPER | XXXXXX . XXXXXX | LOWER | XXXXXX | XXXXXX | XXXXXX | XXXXXX | TEMPO- | VOICE- | TEMPO+ | + '--------------------------------------------------------------------------------------------------------------------------------------' + */ + [LAYER_ADJUST] = LAYOUT_grid( + XXXXXXX, M_HELP1, M_HELP2, M_HELP3, M_HELP4, M_HELP5, M_HELP6, M_HELP7, M_HELP8, M_HELP9, XXXXXXX, MU_TOG , AU_TOG , XXXXXXX, XXXXXXX, + XXXXXXX, M_BRTOG, M_BSPDU, M_BSPDD, M_BDFLT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, M_QWRTY, XXXXXXX, XXXXXXX, M_BACKL, RESET , XXXXXXX, M_MOUSE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MUV_IN , XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_UPPER, XXXXXXX, XXXXXXX, M_LOWER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TMPO_DN, MUV_DE , TMPO_UP + ), }; #ifdef AUDIO_ENABLE @@ -255,22 +255,19 @@ float tone_scroll_off[][2] = SONG(SCROLL_LOCK_OFF_SOUND); #endif /* AUDIO_ENABLE */ -void persistent_default_layer_set(uint16_t default_layer) -{ - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); } const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_MODS_ONESHOT(MOD_LSFT), + [0] = ACTION_MODS_ONESHOT(MOD_LSFT), }; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function - switch(id) - { + // MACRODOWN only works in this function + switch(id) { case MACRO_HELP_1: if (record->event.pressed) diff --git a/keyboards/atomic/keymaps/twolayer.c b/keyboards/atomic/keymaps/twolayer.c index 8ea045d806a9..f0ff56467da2 100644 --- a/keyboards/atomic/keymaps/twolayer.c +++ b/keyboards/atomic/keymaps/twolayer.c @@ -1,72 +1,68 @@ -#include "atomic.h" +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* QWERTY - MIT ENHANCED / GRID COMPATIBLE - * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| - * | LCTRL1 | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| - * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | - * |--------+--------+--------+--------+--------+- 6.25u ---------+--------+--------+--------+--------+-----------------+--------+--------| - * | BRITE | LALT | FN | XXXXXX . SPACE | RCTRL | RALT | FN | LEFT | DOWN | RIGHT | - * '--------------------------------------------------------------------------------------------------------------------------------------' - */ - - [0] = { /* QWERTY */ - { 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_BSPC, KC_BSPC }, - { 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_BSLS, KC_DEL }, - { 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_ENT, KC_ENT, KC_PGUP }, - { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, - { M(0), KC_ALT, MO(1), KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RCTL, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT }, - }, + /* QWERTY - MIT ENHANCED / GRID COMPATIBLE + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | LCTRL1 | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | + * |--------+--------+--------+--------+--------+- 6.25u ---------+--------+--------+--------+--------+-----------------+--------+--------| + * | BRITE | LALT | FN | XXXXXX . SPACE | RCTRL | RALT | FN | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_grid( /* QWERTY */ + 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_BSPC, KC_BSPC, + 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_BSLS, KC_DEL, + 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_ENT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN, + M(0), KC_ALT, MO(1), KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RCTL, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, + ), - -/* FUNCTION - * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. - * | GRV | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | SCR LK | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | PAUSE | PR SCR | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| - * | CAP LK | MS BT5 | MS BT4 | MS BT3 | MS BT2 | SLOW M | FAST M | NEXT | VOL+ | VOL- | PLAY | | XXXXXX . | WHEEL+ | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| - * | NUM LK | | | | | | | | INSERT | END1 | HOME | XXXXXX . | MOUS U | WHEEL- | - * |--------+--------+--------+--------+--------+- 6.25 ------------+--------+--------+------+--------+-----------------+--------+--------| - * | | | FN | XXXXXX . MS BT1 | | | FN | MOUS L | MOUS D | MOUS R | - * '--------------------------------------------------------------------------------------------------------------------------------------' - */ - - [1] = { /* FUNCTION LAYER*/ - { KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, - { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR }, - { KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U }, - { KC_NLCK, _______, _______, _______, _______, _______, _______, _______, KC_INSERT, KC_END, KC_HOME, ___T___, ___T___, KC_MS_U, KC_WH_D }, - { _______, _______, MO(1), _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, MO(1), KC_MS_L, KC_MS_D, KC_MS_R }, - }, + /* FUNCTION + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | GRV | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | SCR LK | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | PAUSE | PR SCR | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | CAP LK | MS BT5 | MS BT4 | MS BT3 | MS BT2 | SLOW M | FAST M | NEXT | VOL+ | VOL- | PLAY | | XXXXXX . | WHEEL+ | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | NUM LK | | | | | | | | INSERT | END1 | HOME | XXXXXX . | MOUS U | WHEEL- | + * |--------+--------+--------+--------+--------+- 6.25 ------------+--------+--------+------+--------+-----------------+--------+--------| + * | | | FN | XXXXXX . MS BT1 | | | FN | MOUS L | MOUS D | MOUS R | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_grid( /* FUNCTION LAYER*/ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___, + KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR, + KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U, + KC_NLCK, _______, _______, _______, _______, _______, _______, _______, KC_INSERT, KC_END, KC_HOME, ___T___, ___T___, KC_MS_U, KC_WH_D, + _______, _______, MO(1), _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, MO(1), KC_MS_L, KC_MS_D, KC_MS_R, + ), }; const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(1), - [2] = ACTION_LAYER_MOMENTARY(1), + [1] = ACTION_LAYER_MOMENTARY(1), + [2] = ACTION_LAYER_MOMENTARY(1), }; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - break; + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); } - return MACRO_NONE; + break; + } + return MACRO_NONE; }; diff --git a/keyboards/atreus/atreus.h b/keyboards/atreus/atreus.h index f841c351997a..8e868ecc0e67 100644 --- a/keyboards/atreus/atreus.h +++ b/keyboards/atreus/atreus.h @@ -9,7 +9,7 @@ // This a shortcut to help you visually see your layout. // The first section contains all of the arguements // The second converts the arguments into a two-dimensional array -#define KEYMAP( \ +#define LAYOUT( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \ diff --git a/keyboards/atreus/info.json b/keyboards/atreus/info.json new file mode 100644 index 000000000000..34933672f9bf --- /dev/null +++ b/keyboards/atreus/info.json @@ -0,0 +1,13 @@ +{ + "keyboard_name": "Atreus", + "url": "", + "maintainer": "qmk", + "bootloader": "", + "width": 12.5, + "height": 4.6, + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":7.5, "y":2}, {"x":8.5, "y":2}, {"x":9.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3, "h":1.5}, {"x":6.5, "y":3, "h":1.5}, {"x":7.5, "y":3}, {"x":8.5, "y":3}, {"x":9.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}] + } + } +} \ No newline at end of file diff --git a/keyboards/atreus/keymaps/alphadox/keymap.c b/keyboards/atreus/keymaps/alphadox/keymap.c index b8ec0e032fa6..575a640c4f15 100644 --- a/keyboards/atreus/keymaps/alphadox/keymap.c +++ b/keyboards/atreus/keymaps/alphadox/keymap.c @@ -1,4 +1,4 @@ -#include "atreus.h" +#include QMK_KEYBOARD_H #define BASE 0 #define SYMB 1 @@ -9,27 +9,26 @@ enum macro_id { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -[BASE] = KEYMAP( + [BASE] = LAYOUT( KC_Q, KC_W, KC_D, KC_F, KC_K, KC_J, KC_U, KC_R, KC_L, KC_SCLN, LT(ETC,KC_A), KC_S, KC_E, KC_T, KC_G, KC_Y, KC_N, KC_I, KC_O, KC_H, SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_P, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH), 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) -), + ), -[SYMB] = KEYMAP( + [SYMB] = LAYOUT( KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_EQL, KC_7, KC_8, KC_9, KC_PLUS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_BSLS, KC_MINS, KC_4, KC_5, KC_6, KC_QUOT, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_ASTR, KC_UNDS, KC_1, KC_2, KC_3, KC_DQUO, KC_TILD, KC_AMPR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_NO, KC_DOT, KC_TRNS -), + ), -[ETC] = KEYMAP( + [ETC] = LAYOUT( RESET, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_VOLU, KC_F7, KC_F8, KC_F9, KC_HOME, LT(ETC,KC_A), KC_NO, KC_NO, KC_NO, KC_PGDN, KC_VOLD, KC_F4, KC_F5, KC_F6, KC_END, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, KC_MUTE, KC_F1, KC_F2, KC_F3, KC_INS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO -), + ), }; const uint16_t PROGMEM fn_actions[] = { diff --git a/keyboards/atreus/keymaps/classic/keymap.c b/keyboards/atreus/keymaps/classic/keymap.c index d07411626907..529b58a13b4f 100644 --- a/keyboards/atreus/keymaps/classic/keymap.c +++ b/keyboards/atreus/keymaps/classic/keymap.c @@ -1,4 +1,4 @@ -#include "atreus.h" +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -9,23 +9,26 @@ #define _LW 2 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = KEYMAP( /* Qwerty */ - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P , - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN , - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH , - KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, MO(_RS), KC_MINS, KC_QUOT, KC_ENT ), + [_QW] = LAYOUT( /* Qwerty */ + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P , + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN , + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH , + KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, MO(_RS), KC_MINS, KC_QUOT, KC_ENT + ), - [_RS] = KEYMAP( /* [> RAISE <] */ - KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR , - KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS , - KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS , - TG(_LW), KC_INS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL ), + [_RS] = LAYOUT( /* [> RAISE <] */ + KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR , + KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS , + KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS , + TG(_LW), KC_INS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL + ), - [_LW] = KEYMAP( /* [> LOWER <] */ - KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10 , - KC_DELT, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOWN, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11 , - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12 , - KC_TRNS, KC_TRNS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, DF(_QW), KC_TRNS, KC_TRNS, RESET ) + [_LW] = LAYOUT( /* [> LOWER <] */ + KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10 , + KC_DELT, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOWN, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11 , + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12 , + KC_TRNS, KC_TRNS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, DF(_QW), KC_TRNS, KC_TRNS, RESET + ), }; const uint16_t PROGMEM fn_actions[] = { diff --git a/keyboards/atreus/keymaps/default/keymap.c b/keyboards/atreus/keymaps/default/keymap.c index 9e91233c329d..2e991ac6f27e 100644 --- a/keyboards/atreus/keymaps/default/keymap.c +++ b/keyboards/atreus/keymaps/default/keymap.c @@ -1,7 +1,7 @@ // this is the style you want to emulate. // This is the canonical layout file for the Quantum project. If you want to add another keyboard, -#include "atreus.h" +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -12,50 +12,51 @@ #define _LW 2 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QW] = KEYMAP( /* Qwerty */ - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P , - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN , - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH , - KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, MO(_RS), KC_MINS, KC_QUOT, KC_ENT ), -/* - * ! @ up { } || pgup 7 8 9 * - * # left down right $ || pgdn 4 5 6 + - * [ ] ( ) & || ` 1 2 3 \ - * lower insert super shift bksp ctrl || alt space fn . 0 = - */ -[_RS] = KEYMAP( /* [> RAISE <] */ - KC_EXLM, KC_AT, KC_UP, KC_LCBR, KC_RCBR, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR , - KC_HASH, KC_LEFT, KC_DOWN, KC_RGHT, KC_DLR, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS , - KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_AMPR, KC_GRV, KC_1, KC_2, KC_3, KC_BSLS , - TG(_LW), KC_INS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL ), -/* - * insert home up end pgup || up F7 F8 F9 F10 - * del left down right pgdn || down F4 F5 F6 F11 - * volup reset || F1 F2 F3 F12 - * voldn super shift bksp ctrl || alt space L0 prtsc scroll pause - */ -[_LW] = KEYMAP( /* [> LOWER <] */ - KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10 , - KC_DELT, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOWN, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11 , - KC_NO, KC_VOLU, KC_NO, KC_NO, RESET, KC_NO, KC_F1, KC_F2, KC_F3, KC_F12 , - KC_NO, KC_VOLD, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, TO(_QW), KC_PSCR, KC_SLCK, KC_PAUS ) + [_QW] = LAYOUT( /* Qwerty */ + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P , + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN , + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH , + KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, MO(_RS), KC_MINS, KC_QUOT, KC_ENT + ), + + /* + * ! @ up { } || pgup 7 8 9 * + * # left down right $ || pgdn 4 5 6 + + * [ ] ( ) & || ` 1 2 3 \ + * lower insert super shift bksp ctrl || alt space fn . 0 = + */ + [_RS] = LAYOUT( /* [> RAISE <] */ + KC_EXLM, KC_AT, KC_UP, KC_LCBR, KC_RCBR, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR , + KC_HASH, KC_LEFT, KC_DOWN, KC_RGHT, KC_DLR, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS , + KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_AMPR, KC_GRV, KC_1, KC_2, KC_3, KC_BSLS , + TG(_LW), KC_INS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL ), + /* + * insert home up end pgup || up F7 F8 F9 F10 + * del left down right pgdn || down F4 F5 F6 F11 + * volup reset || F1 F2 F3 F12 + * voldn super shift bksp ctrl || alt space L0 prtsc scroll pause + */ + [_LW] = LAYOUT( /* [> LOWER <] */ + KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10 , + KC_DELT, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOWN, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11 , + KC_NO, KC_VOLU, KC_NO, KC_NO, RESET, KC_NO, KC_F1, KC_F2, KC_F3, KC_F12 , + KC_NO, KC_VOLD, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, TO(_QW), KC_PSCR, KC_SLCK, KC_PAUS ) }; const uint16_t PROGMEM fn_actions[] = { }; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); } - return MACRO_NONE; + break; + } + return MACRO_NONE; }; diff --git a/keyboards/atreus/keymaps/dvorak_42_key/keymap.c b/keyboards/atreus/keymaps/dvorak_42_key/keymap.c index 15064eb8c9ab..ba343ce4dbf1 100644 --- a/keyboards/atreus/keymaps/dvorak_42_key/keymap.c +++ b/keyboards/atreus/keymaps/dvorak_42_key/keymap.c @@ -1,5 +1,5 @@ -#include "atreus.h" +#include QMK_KEYBOARD_H // layers #define BASE 0 @@ -25,7 +25,7 @@ enum custom_keycodes { CLOUD9_GOTO_SYMBOL, CLOUD9_GOTO_LINE, CLOUD9_NAVIGATE, - + }; // building instructions: @@ -35,50 +35,47 @@ enum custom_keycodes { // avrdude -p atmega32u4 -c avr109 -U flash:w:atreus_dvorak_42_key.hex -P COM7 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -[BASE] = { - {KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, KC_TRNS, KC_F, KC_G, KC_C, KC_R, KC_L, }, - {KC_A, KC_O, KC_E, KC_U, KC_I, KC_TRNS, KC_D, KC_H, KC_T, KC_N, KC_S, }, - {KC_SCOLON, KC_Q, KC_J, KC_K, KC_X, MO(KEYNAV), KC_B, KC_M, KC_W, KC_V, KC_Z, }, - {OSM(MOD_LSFT), OSM(MOD_LCTL), MO(KEYSEL), MO(BROWSER_CONTROL), MO(COMBINED), KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_CAPSLOCK, OSM(MOD_LSFT), } -}, - -[KEYNAV] = { - {KC_ESC, CLOUD9_GOTO_LINE, RCTL(KC_Z), RCTL(KC_S), MEH(KC_F10), KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, }, - {MEH(KC_F11), CLOUD9_GOTO_SYMBOL, RSFT(KC_TAB), KC_TAB, MEH(KC_A), KC_TRNS, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), }, - {MEH(KC_B), CLOUD9_NAVIGATE, CLOUD9_TAB_LEFT, CLOUD9_TAB_RIGHT, CLOUD9_TAB_CLOSE, KC_TRNS, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_PGDOWN, }, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_DELETE, LCTL(KC_DELETE), } -}, - -[KEYSEL] = { - {MEH(KC_G), MEH(KC_H),MEH(KC_I), MEH(KC_J), MEH(KC_K), KC_TRNS, KC_TRNS, RSFT(KC_HOME), RSFT(KC_UP), RSFT(KC_END), RSFT(KC_PGUP), }, - {MEH(KC_L), MEH(KC_M),MEH(KC_N), MEH(KC_O), MEH(KC_P), KC_TRNS, RSFT(RCTL(KC_LEFT)), RSFT(KC_LEFT), RSFT(KC_DOWN), RSFT(KC_RIGHT), RSFT(RCTL(KC_RIGHT)), }, - {MEH(KC_Q), MEH(KC_R),MEH(KC_S), MEH(KC_T), MEH(KC_U), KC_TRNS, KC_TRNS, RCTL(KC_C),RCTL(KC_X), RCTL(KC_V), RSFT(KC_PGDN), }, - {RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_DELETE, LCTL(KC_DELETE), } -}, - -[COMBINED] = { - {KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, KC_PLUS, KC_7, KC_8, KC_9, KC_ASTR, }, - {KC_LPRN, KC_RPRN, KC_LBRACKET, KC_RBRACKET, KC_UNDS, KC_TRNS, KC_MINS, KC_4, KC_5, KC_6, KC_SLSH, }, - {KC_COLN, KC_DQUO, KC_LCBR, KC_RCBR, KC_AMPR, KC_TRNS, KC_EQUAL, KC_1, KC_2, KC_3, KC_QUES, }, - {KC_TRNS, KC_TILD, KC_GRAVE, KC_CIRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_DOT, KC_PIPE, KC_BSLS, } -}, - -[MOUSE] = { - {KC_TRNS, KC_PGUP, KC_MS_WH_UP, KC_UP, KC_TRNS, KC_TRNS, KC_UP, KC_HOME, KC_MS_U, KC_END, KC_MS_WH_UP, }, - {KC_MS_ACCEL0, KC_PGDN, KC_MS_WH_DOWN, KC_DOWN, KC_TRNS, KC_TRNS, KC_DOWN, KC_MS_L, KC_MS_D, KC_MS_R, KC_MS_WH_DOWN, }, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN3, MEH(KC_X), MEH(KC_Y), MEH(KC_Z), KC_F5, RCTL(KC_W), }, - {KC_TRNS, M(MOUSE_LOCK), KC_TRNS, KC_MS_ACCEL0, KC_TRNS, KC_BTN1, KC_BTN2, RSFT(RCTL(KC_TAB)), RCTL(KC_TAB), RCTL(KC_T), LALT(KC_LEFT), } -}, - -[BROWSER_CONTROL] = { - {KC_TRNS, KC_BTN3, KC_MS_U, KC_BTN1, KC_BTN2, KC_TRNS, KC_UP, KC_PGUP, KC_PGDN, KC_MS_WH_UP, KC_TRNS, }, - {KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_DOWN, RSFT(RCTL(KC_TAB)), RCTL(KC_TAB), KC_MS_WH_DOWN, LALT(KC_LEFT), }, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RCTL(KC_1), RCTL(KC_9), KC_F6, KC_F5, }, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RCTL(KC_W), RCTL(KC_T), RSFT(RCTL(KC_TAB)), KC_TRNS, KC_TRNS, KC_TRNS, } -}, - - + [BASE] = LAYOUT( + KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, + KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, + KC_SCOLON, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, + OSM(MOD_LSFT), OSM(MOD_LCTL), MO(KEYSEL), MO(BROWSER_CONTROL), MO(COMBINED), MO(KEYNAV), KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_CAPSLOCK, OSM(MOD_LSFT) + ), + + [KEYNAV] = LAYOUT( + KC_ESC, CLOUD9_GOTO_LINE, RCTL(KC_Z), RCTL(KC_S), MEH(KC_F10), KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, + MEH(KC_F11), CLOUD9_GOTO_SYMBOL, RSFT(KC_TAB), KC_TAB, MEH(KC_A), LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), + MEH(KC_B), CLOUD9_NAVIGATE, CLOUD9_TAB_LEFT, CLOUD9_TAB_RIGHT, CLOUD9_TAB_CLOSE, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_PGDOWN, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_DELETE, LCTL(KC_DELETE) + ), + + [KEYSEL] = LAYOUT( + MEH(KC_G), MEH(KC_H),MEH(KC_I), MEH(KC_J), MEH(KC_K), KC_TRNS, RSFT(KC_HOME), RSFT(KC_UP), RSFT(KC_END), RSFT(KC_PGUP), + MEH(KC_L), MEH(KC_M),MEH(KC_N), MEH(KC_O), MEH(KC_P), RSFT(RCTL(KC_LEFT)), RSFT(KC_LEFT), RSFT(KC_DOWN), RSFT(KC_RIGHT), RSFT(RCTL(KC_RIGHT)), + MEH(KC_Q), MEH(KC_R),MEH(KC_S), MEH(KC_T), MEH(KC_U), KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), RSFT(KC_PGDN), + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_DELETE, LCTL(KC_DELETE) + ), + + [COMBINED] = LAYOUT( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PLUS, KC_7, KC_8, KC_9, KC_ASTR, + KC_LPRN, KC_RPRN, KC_LBRACKET, KC_RBRACKET, KC_UNDS, KC_MINS, KC_4, KC_5, KC_6, KC_SLSH, + KC_COLN, KC_DQUO, KC_LCBR, KC_RCBR, KC_AMPR, KC_EQUAL, KC_1, KC_2, KC_3, KC_QUES, + KC_TRNS, KC_TILD, KC_GRAVE, KC_CIRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_DOT, KC_PIPE, KC_BSLS + ), + + [MOUSE] = LAYOUT( + KC_TRNS, KC_PGUP, KC_MS_WH_UP, KC_UP, KC_TRNS, KC_UP, KC_HOME, KC_MS_U, KC_END, KC_MS_WH_UP, + KC_MS_ACCEL0, KC_PGDN, KC_MS_WH_DOWN, KC_DOWN, KC_TRNS, KC_DOWN, KC_MS_L, KC_MS_D, KC_MS_R, KC_MS_WH_DOWN, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MEH(KC_X), MEH(KC_Y), MEH(KC_Z), KC_F5, RCTL(KC_W), + KC_TRNS, M(MOUSE_LOCK), KC_TRNS, KC_MS_ACCEL0, KC_TRNS, KC_BTN3, KC_BTN1, KC_BTN2, RSFT(RCTL(KC_TAB)), RCTL(KC_TAB), RCTL(KC_T), LALT(KC_LEFT) + ), + + [BROWSER_CONTROL] = LAYOUT( + KC_TRNS, KC_BTN3, KC_MS_U, KC_BTN1, KC_BTN2, KC_UP, KC_PGUP, KC_PGDN, KC_MS_WH_UP, KC_TRNS, + KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_DOWN, RSFT(RCTL(KC_TAB)), RCTL(KC_TAB), KC_MS_WH_DOWN, LALT(KC_LEFT), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RCTL(KC_1), RCTL(KC_9), KC_F6, KC_F5, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RCTL(KC_W), RCTL(KC_T), RSFT(RCTL(KC_TAB)), KC_TRNS, KC_TRNS, KC_TRNS + ), }; const uint16_t PROGMEM fn_actions[] = { @@ -91,31 +88,31 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { // Cloud9 macros case CLOUD9_TAB_LEFT: SEND_STRING(SS_LCTRL("[")); - return true; + return true; break; case CLOUD9_TAB_RIGHT: SEND_STRING(SS_LCTRL("]")); - return true; + return true; break; case CLOUD9_TAB_CLOSE: SEND_STRING(SS_LALT("w")); - return true; + return true; break; case CLOUD9_GOTO_SYMBOL: SEND_STRING(SS_LSFT(SS_LCTRL("e"))); - return true; + return true; break; case CLOUD9_GOTO_LINE: SEND_STRING(SS_LCTRL("g")); - return true; + return true; break; case CLOUD9_NAVIGATE: SEND_STRING(SS_LCTRL("e")); return true; - break; + break; } } - + return true; } @@ -142,7 +139,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) else mouse_lock = true; } - break; + break; } return MACRO_NONE; }; diff --git a/keyboards/atreus/keymaps/erlandsona/keymap.c b/keyboards/atreus/keymaps/erlandsona/keymap.c index 32c8826e023f..232c700e948b 100644 --- a/keyboards/atreus/keymaps/erlandsona/keymap.c +++ b/keyboards/atreus/keymaps/erlandsona/keymap.c @@ -1,7 +1,7 @@ // this is the style you want to emulate. // This is the canonical layout file for the Quantum project. If you want to add another keyboard, -#include "atreus.h" +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -17,23 +17,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[BASE] = KEYMAP( /* Qwerty */ - KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , - KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , - SFT_T(KC_Z), KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , SFT_T(KC_QUOT), - KC_LCTL , KC_LALT, KC_LALT, KC_LGUI, KC_BSPC, KC_ESC, KC_ENT, KC_SPC, F(NUMS), KC_RALT, KC_SLSH, KC_BSLS ), - -[NUMS] = KEYMAP( /* Numbers / Arrows / Symbols */ - KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_LPRN, KC_RPRN, KC_MINS, KC_EQL , KC_LBRC, - KC_TAB , KC_5 , KC_6 , KC_7 , KC_8 , KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_RBRC, - _______, KC_9 , KC_0 , KC_DOT , KC_COMM, KC_HOME, KC_PGDN, KC_PGUP, KC_END , _______, - _______, _______, _______, _______, KC_DEL , F(MOUS), _______, _______, _______, _______, _______, _______), - -[MOUS] = KEYMAP( /* Mouse and Media Keys */ - KC_SLCK, KC_PAUSE, KC_F11 , KC_F10 , KC_F9 , KC_F8 , KC_F7 , KC_F6 , KC_F5 , KC_F4, - KC_VOLD, KC_ACL0 , KC_ACL1, KC_ACL2, KC_VOLU, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_F3, - KC_MUTE, KC_MPRV , KC_MPLY, KC_MNXT, KC_MUTE, KC_WH_R, KC_WH_U, KC_WH_D, KC_WH_L, KC_F2, - _______, _______ , _______, _______, _______, _______, _______, KC_BTN1, F(BASE), RESET , KC_F12 , KC_F1) + [BASE] = LAYOUT( /* Qwerty */ + KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , + KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , + SFT_T(KC_Z), KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , SFT_T(KC_QUOT), + KC_LCTL , KC_LALT, KC_LALT, KC_LGUI, KC_BSPC, KC_ESC, KC_ENT, KC_SPC, F(NUMS), KC_RALT, KC_SLSH, KC_BSLS + ), + + [NUMS] = LAYOUT( /* Numbers / Arrows / Symbols */ + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_LPRN, KC_RPRN, KC_MINS, KC_EQL , KC_LBRC, + KC_TAB , KC_5 , KC_6 , KC_7 , KC_8 , KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_RBRC, + _______, KC_9 , KC_0 , KC_DOT , KC_COMM, KC_HOME, KC_PGDN, KC_PGUP, KC_END , _______, + _______, _______, _______, _______, KC_DEL , F(MOUS), _______, _______, _______, _______, _______, _______ + ), + + [MOUS] = LAYOUT( /* Mouse and Media Keys */ + KC_SLCK, KC_PAUSE, KC_F11 , KC_F10 , KC_F9 , KC_F8 , KC_F7 , KC_F6 , KC_F5 , KC_F4, + KC_VOLD, KC_ACL0 , KC_ACL1, KC_ACL2, KC_VOLU, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_F3, + KC_MUTE, KC_MPRV , KC_MPLY, KC_MNXT, KC_MUTE, KC_WH_R, KC_WH_U, KC_WH_D, KC_WH_L, KC_F2, + _______, _______ , _______, _______, _______, _______, _______, KC_BTN1, F(BASE), RESET , KC_F12 , KC_F1 + ), }; @@ -45,17 +48,16 @@ const uint16_t PROGMEM fn_actions[] = { [MOUS] = ACTION_LAYER_ON(2, 1) // switch to layer 2 }; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); } - return MACRO_NONE; + break; + } + return MACRO_NONE; }; diff --git a/keyboards/atreus/keymaps/gerb/keymap.c b/keyboards/atreus/keymaps/gerb/keymap.c index 1ba3942e3b94..c52f32ef61d9 100644 --- a/keyboards/atreus/keymaps/gerb/keymap.c +++ b/keyboards/atreus/keymaps/gerb/keymap.c @@ -1,7 +1,7 @@ // This is the personal keymap of Chris Gerber (@gerbercj). I haven't worked out the kinks // with the Colemak and Dvorak support yet, but everything else works nicely. -#include "atreus.h" +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -14,53 +14,52 @@ #define _L2 4 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = { /* Qwerty */ - {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P }, - {KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, - {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH}, - {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT } - }, - [_CM] = { /* Colemak */ - {KC_Q, KC_W, KC_F, KC_P, KC_G, KC_NO, KC_J, KC_L, KC_U, KC_Y, KC_SCLN}, - {KC_A, KC_R, KC_S, KC_T, KC_D, KC_NO, KC_H, KC_N, KC_E, KC_I, KC_O }, - {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH}, - {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT } - }, - [_DV] = { /* Dvorak */ - {KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_NO, KC_F, KC_G, KC_C, KC_R, KC_L }, - {KC_A, KC_O, KC_E, KC_U, KC_I, KC_NO, KC_D, KC_H, KC_T, KC_N, KC_S }, - {KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_LALT, KC_B, KC_M, KC_W, KC_V, KC_Z }, - {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_SLSH, KC_ENT } - }, - [_L1] = { /* LAYER 1 */ - {KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_VOLU, KC_7, KC_8, KC_9, KC_LBRC}, - {KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_VOLD, KC_4, KC_5, KC_6, KC_RBRC}, - {KC_GRV, KC_MPRV, KC_MPLY, KC_MNXT, KC_MINS, KC_LALT, KC_MUTE, KC_1, KC_2, KC_3, KC_BSLS}, - {TG(_L2), KC_APP, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL } - }, - [_L2] = { /* LAYER 2 */ - {KC_TRNS, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U, KC_NO, DF(_QW), KC_F7, KC_F8, KC_F9, KC_F10 }, - {KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, KC_NO, DF(_CM), KC_F6, KC_F5, KC_F6, KC_F11 }, - {KC_BTN4, KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, KC_LALT, DF(_DV), KC_F1, KC_F2, KC_F3, KC_F12 }, - {KC_TRNS, KC_TRNS, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, RESET } - } + [_QW] = LAYOUT( /* Qwerty */ + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LALT, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT + ), + [_CM] = LAYOUT( /* Colemak */ + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LALT, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT + ), + [_DV] = LAYOUT( /* Dvorak */ + KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, + KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, + KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, + KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LALT, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_SLSH, KC_ENT + ), + [_L1] = LAYOUT( /* LAYER 1 */ + KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_VOLU, KC_7, KC_8, KC_9, KC_LBRC, + KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_VOLD, KC_4, KC_5, KC_6, KC_RBRC, + KC_GRV, KC_MPRV, KC_MPLY, KC_MNXT, KC_MINS, KC_MUTE, KC_1, KC_2, KC_3, KC_BSLS, + TG(_L2), KC_APP, KC_LGUI, KC_LSFT, KC_BSPC, KC_LALT, KC_RCTL, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL + ), + [_L2] = LAYOUT( /* LAYER 2 */ + KC_TRNS, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U, DF(_QW), KC_F7, KC_F8, KC_F9, KC_F10, + KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, DF(_CM), KC_F6, KC_F5, KC_F6, KC_F11, + KC_BTN4, KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, DF(_DV), KC_F1, KC_F2, KC_F3, KC_F12, + KC_TRNS, KC_TRNS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LALT, KC_RCTL, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, RESET + ), }; const uint16_t PROGMEM fn_actions[] = { }; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); } - return MACRO_NONE; + break; + } + return MACRO_NONE; }; diff --git a/keyboards/atreus/keymaps/henxing/keymap.c b/keyboards/atreus/keymaps/henxing/keymap.c index e5ff5f5d3fbb..51a46fa37374 100644 --- a/keyboards/atreus/keymaps/henxing/keymap.c +++ b/keyboards/atreus/keymaps/henxing/keymap.c @@ -1,4 +1,4 @@ -#include "atreus.h" +#include QMK_KEYBOARD_H #include "action_layer.h" #include "eeconfig.h" @@ -19,87 +19,85 @@ enum custom_keycodes { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* - * q w e r t || y u i o p - * a s d f g || h j k l ; - * z x c v b || n m , . / - * esc tab gui shift bksp ctrl || alt space lower - ' enter - */ - [_QWERTY] = KEYMAP( \ - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \ - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \ - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \ - KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, LOWER, KC_MINS, KC_QUOT, KC_ENT \ - ), - - /* - * ! @ up { } || pgup 7 8 9 * - * # left down right $ || pgdn 4 5 6 + - * [ ] ( ) & || ` 1 2 3 \ - * raise insert gui shift bksp ctrl || alt space ____ . 0 = - */ - [_LOWER] = KEYMAP( \ - KC_EXLM, KC_AT, KC_UP, KC_LCBR, KC_RCBR, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR, \ - KC_HASH, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS, \ - KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_AMPR, KC_GRV, KC_1, KC_2, KC_3, KC_BSLS, \ - RAISE, KC_INS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL \ - ), - - /* - * insert home up end pgup || up F7 F8 F9 F10 - * del left down right pgdn || down F4 F5 F6 F11 - * volup reset || F1 F2 F3 F12 - * voldn super shift bksp ctrl || alt space QWERTY prtsc scroll pause - */ - [_RAISE] = KEYMAP( \ - KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10, \ - KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11, \ - KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12, \ - KC_NO, KC_VOLD, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, QWERTY, KC_PSCR, KC_SLCK, KC_PAUS \ - ) - + /* + * q w e r t || y u i o p + * a s d f g || h j k l ; + * z x c v b || n m , . / + * esc tab gui shift bksp ctrl || alt space lower - ' enter + */ + [_QWERTY] = LAYOUT( \ + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \ + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \ + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \ + KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, LOWER, KC_MINS, KC_QUOT, KC_ENT \ + ), + + /* + * ! @ up { } || pgup 7 8 9 * + * # left down right $ || pgdn 4 5 6 + + * [ ] ( ) & || ` 1 2 3 \ + * raise insert gui shift bksp ctrl || alt space ____ . 0 = + */ + [_LOWER] = LAYOUT( \ + KC_EXLM, KC_AT, KC_UP, KC_LCBR, KC_RCBR, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR, \ + KC_HASH, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS, \ + KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_AMPR, KC_GRV, KC_1, KC_2, KC_3, KC_BSLS, \ + RAISE, KC_INS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL \ + ), + + /* + * insert home up end pgup || up F7 F8 F9 F10 + * del left down right pgdn || down F4 F5 F6 F11 + * volup reset || F1 F2 F3 F12 + * voldn super shift bksp ctrl || alt space QWERTY prtsc scroll pause + */ + [_RAISE] = LAYOUT( \ + KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10, \ + KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11, \ + KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12, \ + KC_NO, KC_VOLD, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, QWERTY, KC_PSCR, KC_SLCK, KC_PAUS \ + ), }; void persistent_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); } bool process_record_user(uint16_t keycode, keyrecord_t *record) { - // The value to return - bool return_value = false; - - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_QWERTY); - } - break; - - case LOWER: - // Toggle LOWER layer on when key pressed and off when released - if (record->event.pressed) { - layer_on(_LOWER); - } else { - layer_off(_LOWER); - } - break; - - case RAISE: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_RAISE); - } - break; - - default: - - // If the keycode is not handled by any of the other cases, the - // function should return true - return_value = true; - break; - } - - return return_value; + // The value to return + bool return_value = false; + + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + persistent_default_layer_set(1UL<<_QWERTY); + } + break; + + case LOWER: + // Toggle LOWER layer on when key pressed and off when released + if (record->event.pressed) { + layer_on(_LOWER); + } else { + layer_off(_LOWER); + } + break; + + case RAISE: + if (record->event.pressed) { + persistent_default_layer_set(1UL<<_RAISE); + } + break; + + default: + + // If the keycode is not handled by any of the other cases, the + // function should return true + return_value = true; + break; + } + + return return_value; } diff --git a/keyboards/atreus/keymaps/jeremy/keymap.c b/keyboards/atreus/keymaps/jeremy/keymap.c index 90ec6f9049a2..42bef9d80c95 100644 --- a/keyboards/atreus/keymaps/jeremy/keymap.c +++ b/keyboards/atreus/keymaps/jeremy/keymap.c @@ -1,6 +1,6 @@ // This is the personal keymap of Jeremy Cowgar (@jcowgar). It is written for the programmer. -#include "atreus.h" +#include QMK_KEYBOARD_H #include "action_layer.h" #include "keymap_colemak.h" @@ -25,41 +25,43 @@ #define KM_REDO LGUI(LSFT(KC_Z)) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[ALPH] = { - {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P}, - {KC_A, LT(NUMS, KC_S), LT(FKEY, KC_D), KC_F, KC_G, KC_TRNS, KC_H, KC_J, LT(CURS, KC_K), LT(SYMB, KC_L), KC_SCLN}, - {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH}, - {KC_LCTL, KC_ESC, KC_NO, KC_LSFT, KC_SPC, KC_LGUI, KC_ENT, KC_RSFT, KC_NO, KC_ESC, KC_RCTL} -}, -[NUMS] = { - {KC_TRNS, KC_TRNS, KC_TRNS, KC_ASTR, KC_SLSH, KC_TRNS, KC_TRNS, KC_7, KC_8, KC_9, KC_SLSH}, - {KC_TRNS, KC_TRNS, KC_EQL, KC_PLUS, KC_MINS, KC_TRNS, KC_LPRN, KC_4, KC_5, KC_6, KC_ASTR}, - {KC_TRNS, KC_TRNS, KC_DOT, KC_COMM, CM_SCLN, KC_TRNS, KC_RPRN, KC_1, KC_2, KC_3, KC_MINS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_DOT, KC_EQL, KC_PLUS} -}, -[CURS] = { - {KC_TRNS, KC_BSPC, KC_UP, KC_DELT, KC_PGUP, KC_TRNS, KC_TRNS, KM_SAVE, KC_TRNS, KM_OPEN, KC_TRNS}, - {KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KM_UNDO, KC_LALT, KC_TRNS, KC_LGUI, KC_TRNS}, - {KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_MPLY, KM_COPY, KM_REDO, KM_CLSE, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TAB, KM_CUT, KM_PAST, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -[SYMB] = { - {KC_BSLS, KC_EXLM, KC_LABK, KC_RABK, CM_COLN, KC_TRNS, KC_UNDS, KC_DLR, KC_QUES, KC_TRNS, KC_PERC}, - {KC_AT, KC_AMPR, KC_LPRN, KC_RPRN, CM_SCLN, KC_TRNS, KC_COMM, KC_DOT, KC_QUOT, KC_TRNS, KC_TILD}, - {KC_HASH, KC_PIPE, KC_LCBR, KC_RCBR, KC_SLSH, KC_TRNS, KC_TRNS, KC_GRV, KC_DQT, KC_TRNS, KC_CIRC}, - {KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -[FKEY] = { - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}}; + [ALPH] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, LT(NUMS, KC_S), LT(FKEY, KC_D), KC_F, KC_G, KC_H, KC_J, LT(CURS, KC_K), LT(SYMB, KC_L), KC_SCLN, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_LCTL, KC_ESC, KC_NO, KC_LSFT, KC_SPC, KC_LALT, KC_LGUI, KC_ENT, KC_RSFT, KC_NO, KC_ESC, KC_RCTL + ), + [NUMS] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_ASTR, KC_SLSH, KC_TRNS, KC_7, KC_8, KC_9, KC_SLSH, + KC_TRNS, KC_TRNS, KC_EQL, KC_PLUS, KC_MINS, KC_LPRN, KC_4, KC_5, KC_6, KC_ASTR, + KC_TRNS, KC_TRNS, KC_DOT, KC_COMM, CM_SCLN, KC_RPRN, KC_1, KC_2, KC_3, KC_MINS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_DOT, KC_EQL, KC_PLUS + ), + [CURS] = LAYOUT( + KC_TRNS, KC_BSPC, KC_UP, KC_DELT, KC_PGUP, KC_TRNS, KM_SAVE, KC_TRNS, KM_OPEN, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KM_UNDO, KC_LALT, KC_TRNS, KC_LGUI, KC_TRNS, + KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_MPLY, KM_REDO, KM_CLSE, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TAB, KM_COPY, KM_CUT, KM_PAST, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [SYMB] = LAYOUT( + KC_BSLS, KC_EXLM, KC_LABK, KC_RABK, CM_COLN, KC_UNDS, KC_DLR, KC_QUES, KC_TRNS, KC_PERC, + KC_AT, KC_AMPR, KC_LPRN, KC_RPRN, CM_SCLN, KC_COMM, KC_DOT, KC_QUOT, KC_TRNS, KC_TILD, + KC_HASH, KC_PIPE, KC_LCBR, KC_RCBR, KC_SLSH, KC_TRNS, KC_GRV, KC_DQT, KC_TRNS, KC_CIRC, + KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [FKEY] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + +const uint16_t PROGMEM fn_actions[] = { -const uint16_t PROGMEM fn_actions[] = {}; +}; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch(id) {} return MACRO_NONE; diff --git a/keyboards/atreus/keymaps/khitsule/keymap.c b/keyboards/atreus/keymaps/khitsule/keymap.c index 23fabf0d7916..04cd4d591682 100644 --- a/keyboards/atreus/keymaps/khitsule/keymap.c +++ b/keyboards/atreus/keymaps/khitsule/keymap.c @@ -1,10 +1,10 @@ // Personal keymap of khitsule -#include "atreus.h" +#include QMK_KEYBOARD_H -#define ALPH 0 -#define LOWR 1 -#define RAIS 2 +#define ALPH 0 +#define LOWR 1 +#define RAIS 2 // enum layers { // ALPH, //alpha qwerty @@ -24,24 +24,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[ALPH] = { - {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P}, - {KC_A, KC_S, KC_D, KC_F, KC_G, KC_TRNS, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, - {KC_Z, KC_X, KC_C, KC_V, KC_B, CTL_T(KC_SPC), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH}, - {KC_ESC, KC_TRNS, KC_TRNS, ALT_T(KC_ENT), LT(LOWR, KC_TAB), SFT_T(KC_BSPC), LT(RAIS, KC_DEL), KC_LGUI, KC_TRNS, KC_QUOT, KC_MINUS} -}, -[LOWR] = { - {KC_PSCR, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_TRNS, KC_LPRN, KC_F7, KC_F8, KC_F9, KC_RPRN}, - {KC_VOLU, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGUP, KC_TRNS, KC_LBRC, KC_F4, KC_F5, KC_F6, KC_RBRC}, - {KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, KC_PGDN, KC_TRNS, LSFT(KC_LBRC), KC_F1, KC_F2, KC_F3, LSFT(KC_RBRC)}, - {KM_DLEFT, KM_DRIGHT, LALT(KC_TAB), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -[RAIS] = { - {KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, KC_TRNS, KC_7, KC_8, KC_9, KC_TRNS}, - {KC_CIRC, KC_AMPR, KC_GRV, KC_TILD, KC_PIPE, KC_TRNS, KC_PLUS, KC_4, KC_5, KC_6, KC_ASTR}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, KC_TRNS, KC_MINUS, KC_1, KC_2, KC_3, KC_SLASH}, - {RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_DOT, KC_EQL} -} + [ALPH] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_ESC, KC_TRNS, KC_TRNS, ALT_T(KC_ENT), LT(LOWR, KC_TAB), CTL_T(KC_SPC), SFT_T(KC_BSPC), LT(RAIS, KC_DEL), KC_LGUI, KC_TRNS, KC_QUOT, KC_MINUS + ), + [LOWR] = LAYOUT( + KC_PSCR, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_LPRN, KC_F7, KC_F8, KC_F9, KC_RPRN, + KC_VOLU, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGUP, KC_LBRC, KC_F4, KC_F5, KC_F6, KC_RBRC, + KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, KC_PGDN, LSFT(KC_LBRC), KC_F1, KC_F2, KC_F3, LSFT(KC_RBRC), + KM_DLEFT, KM_DRIGHT, LALT(KC_TAB), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [RAIS] = LAYOUT( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, KC_7, KC_8, KC_9, KC_TRNS, + KC_CIRC, KC_AMPR, KC_GRV, KC_TILD, KC_PIPE, KC_PLUS, KC_4, KC_5, KC_6, KC_ASTR, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, KC_MINUS, KC_1, KC_2, KC_3, KC_SLASH, + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_DOT, KC_EQL + ), }; const uint16_t PROGMEM fn_actions[] = { @@ -49,9 +49,8 @@ const uint16_t PROGMEM fn_actions[] = { [2] = ACTION_MACRO_TAP(2) }; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch(id) { case 1: return tap_mod_macro(record, LGUI, MACRO( D(LSFT), T(9), U(LSFT), END)); break; diff --git a/keyboards/atreus/keymaps/replicaJunction/keymap.c b/keyboards/atreus/keymaps/replicaJunction/keymap.c index d39a184d4870..2d8f0d70f867 100644 --- a/keyboards/atreus/keymaps/replicaJunction/keymap.c +++ b/keyboards/atreus/keymaps/replicaJunction/keymap.c @@ -15,7 +15,7 @@ * here: https://colemakmods.github.io/mod-dh/ */ -#include "atreus.h" +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -47,136 +47,136 @@ ; // This doesn't do anything. It's just for VSCode because its syntax highlighting is weird for the above #define statements. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* - * Colemak-ModDH - * - * ,----------------------------------. ,----------------------------------. - * | Q | W | F | P | B | | J | L | U | Y | ; | - * +------+------+------+------+------| +------+------+------+------+------| - * | A | R | S | T | G | | M | N | E | I | O | - * +------+------+------+------+------| +------+------+------+------+------| - * |Z Shft| X | C | D | V | ,------. ,------. | K | H | , | . |/ Shft| - * +------+------+------+------+------| | Ctrl | | Alt | +------+------+------+------+------| - * | Esc | Gui | Tab | _FN | Bksp | | Del | | Enter| |Sp/_NU| _EX | - | ' | = | - * `----------------------------------' `------' `------' `----------------------------------' - * - */ -[_CO] = KEYMAP( - KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, - KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, - SFT_T(KC_Z), KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, SFT_T(KC_SLSH), - KC_ESC, KC_LGUI, KC_TAB, MO(_FN), KC_BSPC, CTL_T(KC_DEL), ALT_T(KC_ENT), LT(_NU, KC_SPC), MO(_EX), KC_MINS, KC_QUOT, KC_EQL -), - -/* - * QWERTY - * - * ,----------------------------------. ,----------------------------------. - * | Q | W | E | R | T | | Y | U | I | O | P | - * +------+------+------+------+------| +------+------+------+------+------| - * | A | S | D | F | G | | H | J | K | L | ; | - * +------+------+------+------+------| +------+------+------+------+------| - * |Z Shft| X | C | V | B | ,------. ,------. | N | M | , | . |/ Shft| - * +------+------+------+------+------| | Ctrl | | Alt | +------+------+------+------+------| - * | Esc | Gui | Tab | _FN | Bksp | | Del | | Enter| |Sp/_NU| _EX | - | ' | = | - * `----------------------------------' `------' `------' `----------------------------------' - * - */ -[_QW] = KEYMAP( /* Qwerty */ - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, - SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH), - KC_ESC, KC_LGUI, KC_TAB, MO(_FN), KC_BSPC, CTL_T(KC_DEL), ALT_T(KC_ENT), LT(_NU, KC_SPC), MO(_EX), KC_MINS, KC_QUOT, KC_EQL -), - -/* - * Extend - * - * Ctrl+` is a keyboard shortcut for the program ConEmu, which brings up a dropdown console window. - * - * Also note that some dual-role keys are overridden here with their modifiers - * - * ,----------------------------------. ,----------------------------------. - * | | | | |Ctrl `| | PgUp | Home | Up | End | Del | - * +------+------+------+------+------| +------+------+------+------+------| - * | Gui | Shift| Alt | Ctrl | | | PgDn | Left | Down | Right| Bksp | - * +------+------+------+------+------| +------+------+------+------+------| - * | Shift| Cut | Copy | | Paste| ,------. ,------. | | ^Tab | Tab | |Insert| - * +------+------+------+------+------| | Del | | Enter| +------+------+------+------+------| - * | | | | | | | | | | | Space|XXXXXX| | |PrntSc| - * `----------------------------------' `------' `------' `----------------------------------' - * - */ -[_EX] = KEYMAP( /* Extend */ - _______, _______, _______, _______, LCTL(KC_GRV), KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, - KC_LGUI, KC_LSFT, KC_LALT, KC_LCTL, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, - KC_LSFT, KX_CUT, KX_COPY, _______, KX_PAST, _______, KCX_LST, KC_TAB, _______, KC_INS, - _______, _______, _______, _______, _______, KC_DEL, KC_ENT, KC_SPC, _______, _______, _______, KC_PSCR -), - -/* - * Numbers and symbols - * - * ,----------------------------------. ,----------------------------------. - * | ! | @ | { | } | & | | / | 7 | 8 | 9 | * | - * +------+------+------+------+------| +------+------+------+------+------| - * | # | $ | ( | ) | ~ | | | | 4 | 5 | 6 | - | - * +------+------+------+------+------| +------+------+------+------+------| - * | % | ^ | [ | ] | ` | ,------. ,------. | \ | 1 | 2 | 3 | + | - * +------+------+------+------+------| | | | | +------+------+------+------+------| - * | | _GA | | | | | | | | |XXXXXX| 0 | . | = | | - * `----------------------------------' `------' `------' `----------------------------------' - * - */ -[_NU] = KEYMAP( /* Numbers and symbols */ - KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_AMPR, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR, - KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_TILD, KC_PIPE, KC_4, KC_5, KC_6, KC_MINS, - KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_GRV, KC_BSLS, KC_1, KC_2, KC_3, KC_PLUS, - _______, TG(_GA), _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_EQL, _______ -), - -/* - * Functions - * - * ,----------------------------------. ,----------------------------------. - * | Caps | F9 | F10 | F11 | F12 | | _USER|Whl Up| MUp |Whl Dn| | - * +------+------+------+------+------| +------+------+------+------+------| - * | | F5 | F6 | F7 | F8 | | Vol ^| MLeft| MDown|MRight| | - * +------+------+------+------+------| +------+------+------+------+------| - * | | F1 | F2 | F3 | F4 | ,------. ,------. | Vol v| | | | | - * +------+------+------+------+------| | | |RClick| +------+------+------+------+------| - * | | | |XXXXXX| | | | | | |LClick|MClick| _CO | _GA | RESET| - * `----------------------------------' `------' `------' `----------------------------------' - * - */ -[_FN] = KEYMAP( /* Functions */ - KC_CAPS, KC_F9, KC_F10, KC_F11, KC_F12, M(_USER),KC_WH_U, KC_MS_U, KC_WH_D, _______, - _______, KC_F5, KC_F6, KC_F7, KC_F8, KC_VOLU, KC_MS_L, KC_MS_D, KC_MS_R, _______, - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_VOLD, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, KC_BTN2, KC_BTN1, KC_BTN3, DF(_CO), DF(_QW), RESET -), - -/* - * Gaming - * - * ,----------------------------------. ,----------------------------------. - * | | | | | | | |Whl Up| MUp |Whl Dn| | - * +------+------+------+------+------| +------+------+------+------+------| - * | | | | | | | | MLeft| MDown|MRight| | - * +------+------+------+------+------| +------+------+------+------+------| - * | Z | | | | | ,------. ,------. | | | | | | - * +------+------+------+------+------| | Bksp | |RClick| +------+------+------+------+------| - * | | _GA | | Shift| Space| | | | | |LClick|MClick| | | | - * `----------------------------------' `------' `------' `----------------------------------' - * - */ -[_GA] = KEYMAP( /* Gaming */ - _______, _______, _______, _______, _______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______, - _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, - KC_Z, _______, _______, _______, _______, _______, _______, KC_MS_D, _______, _______, - _______, TG(_GA), _______, KC_LSFT, KC_SPC, KC_BSPC, KC_BTN2, KC_BTN1, KC_BTN3, _______, _______, _______ -)}; + /* + * Colemak-ModDH + * + * ,----------------------------------. ,----------------------------------. + * | Q | W | F | P | B | | J | L | U | Y | ; | + * +------+------+------+------+------| +------+------+------+------+------| + * | A | R | S | T | G | | M | N | E | I | O | + * +------+------+------+------+------| +------+------+------+------+------| + * |Z Shft| X | C | D | V | ,------. ,------. | K | H | , | . |/ Shft| + * +------+------+------+------+------| | Ctrl | | Alt | +------+------+------+------+------| + * | Esc | Gui | Tab | _FN | Bksp | | Del | | Enter| |Sp/_NU| _EX | - | ' | = | + * `----------------------------------' `------' `------' `----------------------------------' + * + */ + [_CO] = LAYOUT( + KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, + KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, + SFT_T(KC_Z), KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, SFT_T(KC_SLSH), + KC_ESC, KC_LGUI, KC_TAB, MO(_FN), KC_BSPC, CTL_T(KC_DEL), ALT_T(KC_ENT), LT(_NU, KC_SPC), MO(_EX), KC_MINS, KC_QUOT, KC_EQL + ), + + /* + * QWERTY + * + * ,----------------------------------. ,----------------------------------. + * | Q | W | E | R | T | | Y | U | I | O | P | + * +------+------+------+------+------| +------+------+------+------+------| + * | A | S | D | F | G | | H | J | K | L | ; | + * +------+------+------+------+------| +------+------+------+------+------| + * |Z Shft| X | C | V | B | ,------. ,------. | N | M | , | . |/ Shft| + * +------+------+------+------+------| | Ctrl | | Alt | +------+------+------+------+------| + * | Esc | Gui | Tab | _FN | Bksp | | Del | | Enter| |Sp/_NU| _EX | - | ' | = | + * `----------------------------------' `------' `------' `----------------------------------' + * + */ + [_QW] = LAYOUT( /* Qwerty */ + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH), + KC_ESC, KC_LGUI, KC_TAB, MO(_FN), KC_BSPC, CTL_T(KC_DEL), ALT_T(KC_ENT), LT(_NU, KC_SPC), MO(_EX), KC_MINS, KC_QUOT, KC_EQL + ), + + /* + * Extend + * + * Ctrl+` is a keyboard shortcut for the program ConEmu, which brings up a dropdown console window. + * + * Also note that some dual-role keys are overridden here with their modifiers + * + * ,----------------------------------. ,----------------------------------. + * | | | | |Ctrl `| | PgUp | Home | Up | End | Del | + * +------+------+------+------+------| +------+------+------+------+------| + * | Gui | Shift| Alt | Ctrl | | | PgDn | Left | Down | Right| Bksp | + * +------+------+------+------+------| +------+------+------+------+------| + * | Shift| Cut | Copy | | Paste| ,------. ,------. | | ^Tab | Tab | |Insert| + * +------+------+------+------+------| | Del | | Enter| +------+------+------+------+------| + * | | | | | | | | | | | Space|XXXXXX| | |PrntSc| + * `----------------------------------' `------' `------' `----------------------------------' + * + */ + [_EX] = LAYOUT( /* Extend */ + _______, _______, _______, _______, LCTL(KC_GRV), KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, + KC_LGUI, KC_LSFT, KC_LALT, KC_LCTL, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, + KC_LSFT, KX_CUT, KX_COPY, _______, KX_PAST, _______, KCX_LST, KC_TAB, _______, KC_INS, + _______, _______, _______, _______, _______, KC_DEL, KC_ENT, KC_SPC, _______, _______, _______, KC_PSCR + ), + + /* + * Numbers and symbols + * + * ,----------------------------------. ,----------------------------------. + * | ! | @ | { | } | & | | / | 7 | 8 | 9 | * | + * +------+------+------+------+------| +------+------+------+------+------| + * | # | $ | ( | ) | ~ | | | | 4 | 5 | 6 | - | + * +------+------+------+------+------| +------+------+------+------+------| + * | % | ^ | [ | ] | ` | ,------. ,------. | \ | 1 | 2 | 3 | + | + * +------+------+------+------+------| | | | | +------+------+------+------+------| + * | | _GA | | | | | | | | |XXXXXX| 0 | . | = | | + * `----------------------------------' `------' `------' `----------------------------------' + * + */ + [_NU] = LAYOUT( /* Numbers and symbols */ + KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_AMPR, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR, + KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_TILD, KC_PIPE, KC_4, KC_5, KC_6, KC_MINS, + KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_GRV, KC_BSLS, KC_1, KC_2, KC_3, KC_PLUS, + _______, TG(_GA), _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_EQL, _______ + ), + + /* + * Functions + * + * ,----------------------------------. ,----------------------------------. + * | Caps | F9 | F10 | F11 | F12 | | _USER|Whl Up| MUp |Whl Dn| | + * +------+------+------+------+------| +------+------+------+------+------| + * | | F5 | F6 | F7 | F8 | | Vol ^| MLeft| MDown|MRight| | + * +------+------+------+------+------| +------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | ,------. ,------. | Vol v| | | | | + * +------+------+------+------+------| | | |RClick| +------+------+------+------+------| + * | | | |XXXXXX| | | | | | |LClick|MClick| _CO | _GA | RESET| + * `----------------------------------' `------' `------' `----------------------------------' + * + */ + [_FN] = LAYOUT( /* Functions */ + KC_CAPS, KC_F9, KC_F10, KC_F11, KC_F12, M(_USER),KC_WH_U, KC_MS_U, KC_WH_D, _______, + _______, KC_F5, KC_F6, KC_F7, KC_F8, KC_VOLU, KC_MS_L, KC_MS_D, KC_MS_R, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_VOLD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_BTN2, KC_BTN1, KC_BTN3, DF(_CO), DF(_QW), RESET + ), + + /* + * Gaming + * + * ,----------------------------------. ,----------------------------------. + * | | | | | | | |Whl Up| MUp |Whl Dn| | + * +------+------+------+------+------| +------+------+------+------+------| + * | | | | | | | | MLeft| MDown|MRight| | + * +------+------+------+------+------| +------+------+------+------+------| + * | Z | | | | | ,------. ,------. | | | | | | + * +------+------+------+------+------| | Bksp | |RClick| +------+------+------+------+------| + * | | _GA | | Shift| Space| | | | | |LClick|MClick| | | | + * `----------------------------------' `------' `------' `----------------------------------' + * + */ + [_GA] = LAYOUT( /* Gaming */ + _______, _______, _______, _______, _______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______, + _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, + KC_Z, _______, _______, _______, _______, _______, _______, KC_MS_D, _______, _______, + _______, TG(_GA), _______, KC_LSFT, KC_SPC, KC_BSPC, KC_BTN2, KC_BTN1, KC_BTN3, _______, _______, _______ + ) +}; /* * Template @@ -197,17 +197,16 @@ const uint16_t PROGMEM fn_actions[] = { }; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function - switch(id) { - case _USER: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; + switch(id) { + case _USER: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); } - return MACRO_NONE; + break; + } + return MACRO_NONE; }; diff --git a/keyboards/atreus/keymaps/xk/keymap.c b/keyboards/atreus/keymaps/xk/keymap.c index 9ac1138ec05a..ed1f634cebe8 100644 --- a/keyboards/atreus/keymaps/xk/keymap.c +++ b/keyboards/atreus/keymaps/xk/keymap.c @@ -1,7 +1,7 @@ // this is the style you want to emulate. // This is the canonical layout file for the Quantum project. If you want to add another keyboard, -#include "atreus.h" +#include QMK_KEYBOARD_H #define _COLEMAK 0 #define _KAMELOC 1 @@ -109,169 +109,170 @@ OSX, const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* - TAP - ┌────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┐ - │ Q │ W │ F │ P │ B │ │ J │ L │ U │ Y │ ; │ - ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ - │ A │ R │ S │ T │ G │ │ M │ N │ E │ I │ O │ - ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ - │ X │ C │ D │ V │ Z ├────┐ ┌────┤ K │ H │ , │ . │ / │ - ├────┼────┼────┼────┼────┤ │ │ ├────┼────┼────┼────┼────┤ - │SFTn│CTLn│ALTn│ROUS│SPC │BKSP│ │TAB │ENT │PGDN│ ' │ \ │ESC │ - └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘ - HOLD - ┌────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┐ - │ │ │ │ │ │ │ │ │ │ │ALT │ - ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ - │ │ │ │ │ │ │ │ │ │ │ │ - ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ - │ │ │ │ │ ├────┐ ┌────┤ │ │ │ │CTL │ - ├────┼────┼────┼────┼────┤ │ │ ├────┼────┼────┼────┼────┤ - │SFT │CTL │ALT │ROUS│L123│L OH│ │L OH│L123│L!@#│ │L FN│LESC│ - └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘ - DOUBLETAP - ┌────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┐ - │ │ │ │ │ │ │ │ │ │ │ │ - ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ - │ │ │ │ │ │ │ │ │ │ │ │ - ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ - │ │ │ │ │ ├────┐ ┌────┤ │ │ │ │ │ - ├────┼────┼────┼────┼────┤ │ │ ├────┼────┼────┼────┼────┤ - │OSML│OSML│OSML│NADA│ │ │ │ │ │ │ │ │ │ - └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘ -*/ + /* + TAP + ┌────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┐ + │ Q │ W │ F │ P │ B │ │ J │ L │ U │ Y │ ; │ + ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ + │ A │ R │ S │ T │ G │ │ M │ N │ E │ I │ O │ + ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ + │ X │ C │ D │ V │ Z ├────┐ ┌────┤ K │ H │ , │ . │ / │ + ├────┼────┼────┼────┼────┤ │ │ ├────┼────┼────┼────┼────┤ + │SFTn│CTLn│ALTn│ROUS│SPC │BKSP│ │TAB │ENT │PGDN│ ' │ \ │ESC │ + └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘ + HOLD + ┌────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┐ + │ │ │ │ │ │ │ │ │ │ │ALT │ + ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ + │ │ │ │ │ │ │ │ │ │ │ │ + ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ + │ │ │ │ │ ├────┐ ┌────┤ │ │ │ │CTL │ + ├────┼────┼────┼────┼────┤ │ │ ├────┼────┼────┼────┼────┤ + │SFT │CTL │ALT │ROUS│L123│L OH│ │L OH│L123│L!@#│ │L FN│LESC│ + └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘ + DOUBLETAP + ┌────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┐ + │ │ │ │ │ │ │ │ │ │ │ │ + ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ + │ │ │ │ │ │ │ │ │ │ │ │ + ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ + │ │ │ │ │ ├────┐ ┌────┤ │ │ │ │ │ + ├────┼────┼────┼────┼────┤ │ │ ├────┼────┼────┼────┼────┤ + │OSML│OSML│OSML│NADA│ │ │ │ │ │ │ │ │ │ + └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘ + */ -// Colemak PB&J (Mod-DH) -[_COLEMAK] = KEYMAP( \ - KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, ALT_IT, \ - KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, \ - KC_X, KC_C, KC_D, KC_V, KC_Z, KC_K, KC_H, KC_COMM, SFT_IT, CTL_IT, \ - KYCTL, KYSFT, KYALT, TT(_MLAYER), XK_SPC, XK_TAB, XK_BSP, XK_ENT, XK_PGDN, XK_APO, PIPBOY, XK_ESC \ -), + // Colemak PB&J (Mod-DH) + [_COLEMAK] = LAYOUT( \ + KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, ALT_IT, \ + KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, \ + KC_X, KC_C, KC_D, KC_V, KC_Z, KC_K, KC_H, KC_COMM, SFT_IT, CTL_IT, \ + KYCTL, KYSFT, KYALT, TT(_MLAYER), XK_SPC, XK_TAB, XK_BSP, XK_ENT, XK_PGDN, XK_APO, PIPBOY, XK_ESC \ + ), -// useful for one-handed typing -[_KAMELOC] = KEYMAP( \ - KC_SCLN, KC_Y, KC_U, KC_L, KC_J, KC_B, KC_P, KC_F, KC_W, KC_Q, \ - KC_O, KC_I, KC_E, KC_N, KC_M, KC_G, KC_T, KC_S, KC_R, KC_A, \ - KC_SLSH, KC_DOT, KC_COMM, KC_H, KC_K, KC_Z, KC_V, KC_D, KC_C, KC_X, \ - XK_ESC, PIPBOY, TT(_MLAYER), KC_PGDN, KC_ENT, _______, _______, XK_SPC, KC_PGUP, KYALT, KYCTL, KYSFT \ -), + // useful for one-handed typing + [_KAMELOC] = LAYOUT( \ + KC_SCLN, KC_Y, KC_U, KC_L, KC_J, KC_B, KC_P, KC_F, KC_W, KC_Q, \ + KC_O, KC_I, KC_E, KC_N, KC_M, KC_G, KC_T, KC_S, KC_R, KC_A, \ + KC_SLSH, KC_DOT, KC_COMM, KC_H, KC_K, KC_Z, KC_V, KC_D, KC_C, KC_X, \ + XK_ESC, PIPBOY, TT(_MLAYER), KC_PGDN, KC_ENT, _______, _______, XK_SPC, KC_PGUP, KYALT, KYCTL, KYSFT \ + ), -/* - ┌────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┐ - │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ - ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ - │ M │ V- │ V+ │NEXT│PLAY│ │ ← │ ↓ │ ↑ │ → │DASH│ - ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ - │ - │ = │ ` │GUI │UNDO├────┐ ┌────┤HOME│END │HOME│INS │ \ │ - ├────┼────┼────┼────┼────┤ │ │ ├────┼────┼────┼────┼────┤ - │ │ │ │ │ │ │ │ │ │GUI │ │ │ │ - └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘ -*/ + /* + ┌────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┐ + │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ + ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ + │ M │ V- │ V+ │NEXT│PLAY│ │ ← │ ↓ │ ↑ │ → │DASH│ + ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ + │ - │ = │ ` │GUI │UNDO├────┐ ┌────┤HOME│END │HOME│INS │ \ │ + ├────┼────┼────┼────┼────┤ │ │ ├────┼────┼────┼────┼────┤ + │ │ │ │ │ │ │ │ │ │GUI │ │ │ │ + └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘ + */ -[_IKAPILA] = KEYMAP( \ - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \ - KC_MUTE, KC_VOLD, KC_VOLU, TD(MND), KC_MPLY, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TD(DSH), \ - KC_MINS, KC_EQL, KC_GRV, KC_LGUI, LCTL(KC_Z), TD(HND), KC_HOME, TD(HND), KC_INS, KC_BSLS, \ - _______, _______, _______, _______, _______, _______, _______, _______, KC_LGUI, _______, _______, KYSFT \ -), + [_IKAPILA] = LAYOUT( \ + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \ + KC_MUTE, KC_VOLD, KC_VOLU, TD(MND), KC_MPLY, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TD(DSH), \ + KC_MINS, KC_EQL, KC_GRV, KC_LGUI, LCTL(KC_Z), TD(HND), KC_HOME, TD(HND), KC_INS, KC_BSLS, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_LGUI, _______, _______, KYSFT \ + ), -/* - ┌────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┐ - │ ! │ @ │ # │ $ │ % │ │ ^ │ & │ * │ ( │ ) │ - ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ - │PSCR│ ← │ ↓ │ ↑ │ → │ │NEXT│PGUP│ V+ │ V- │DASH│ - ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ - │ _ │ + │ ~ │HOME│END ├────┐ ┌────┤ {} │ () │ <> │ [ │ ] │ - ├────┼────┼────┼────┼────┤ │ │ ├────┼────┼────┼────┼────┤ - │ │ │ │ │ │DEL │ │BKSP│ │ │ │ │ │ - └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘ -*/ + /* + ┌────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┐ + │ ! │ @ │ # │ $ │ % │ │ ^ │ & │ * │ ( │ ) │ + ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ + │PSCR│ ← │ ↓ │ ↑ │ → │ │NEXT│PGUP│ V+ │ V- │DASH│ + ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ + │ _ │ + │ ~ │HOME│END ├────┐ ┌────┤ {} │ () │ <> │ [ │ ] │ + ├────┼────┼────┼────┼────┤ │ │ ├────┼────┼────┼────┼────┤ + │ │ │ │ │ │DEL │ │BKSP│ │ │ │ │ │ + └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘ + */ -[_IKASHFT] = KEYMAP( \ - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, \ - KC_PSCR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TD(MND), KC_PGUP, KC_VOLU, TD(VOM), KC_MDSH, \ - KC_UNDS, KC_PLUS, KC_TILD, KC_HOME, KC_END, M(1), M(0), M(5), KC_LBRC, KC_RBRC, \ - _______, _______, _______, _______, _______, KC_BSPC, KC_DEL, _______, _______, _______, _______, _______ \ -), + [_IKASHFT] = LAYOUT( \ + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, \ + KC_PSCR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TD(MND), KC_PGUP, KC_VOLU, TD(VOM), KC_MDSH, \ + KC_UNDS, KC_PLUS, KC_TILD, KC_HOME, KC_END, M(1), M(0), M(5), KC_LBRC, KC_RBRC, \ + _______, _______, _______, _______, _______, KC_BSPC, KC_DEL, _______, _______, _______, _______, _______ \ + ), -/* - ┌────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┐ - │ F1 │ F2 │ F3 │ F4 │ F5 │ │ F6 │ F7 │ F8 │ F9 │ F10│ - ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ - │ F21│ F22│ F23│ F24│PAUS│ │ │SCLK│BOOT│ │NKRO│ - ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ - │ │ │ │ │ ├────┐ ┌────┤ │ │ │ │CAPS│ - ├────┼────┼────┼────┼────┤ │ │ ├────┼────┼────┼────┼────┤ - │ │ │ │ │ │ │ │ │ │ │ │ │ │ - └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘ -*/ + /* + ┌────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┐ + │ F1 │ F2 │ F3 │ F4 │ F5 │ │ F6 │ F7 │ F8 │ F9 │ F10│ + ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ + │ F21│ F22│ F23│ F24│PAUS│ │ │SCLK│BOOT│ │NKRO│ + ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ + │ │ │ │ │ ├────┐ ┌────┤ │ │ │ │CAPS│ + ├────┼────┼────┼────┼────┤ │ │ ├────┼────┼────┼────┼────┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ + └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘ + */ -[_FNCTION] = KEYMAP( \ - TD(F11), TD(F12), TD(F13), TD(F14), TD(F15), TD(F16), TD(F17), TD(F18), TD(F19), TD(F20), \ - KC_F21, KC_F22, KC_F23, KC_F24, XXXXXXX, XXXXXXX, KC_SLCK, XXXXXXX, XXXXXXX, TGNKRO, \ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ -), + [_FNCTION] = LAYOUT( \ + TD(F11), TD(F12), TD(F13), TD(F14), TD(F15), TD(F16), TD(F17), TD(F18), TD(F19), TD(F20), \ + KC_F21, KC_F22, KC_F23, KC_F24, XXXXXXX, XXXXXXX, KC_SLCK, XXXXXXX, XXXXXXX, TGNKRO, \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ), -[_GAMEQWERTY] = KEYMAP( \ - KC_P, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, \ - KC_SCLN, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, \ - KC_SLSH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, TD(COD), \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ -), + [_GAMEQWERTY] = LAYOUT( \ + KC_P, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, \ + KC_SCLN, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, \ + KC_SLSH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, TD(COD), \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ), -/* - ┌────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┐ - │^HOM│^PGD│^UP │^PGU│^PGU│ │ │MW_L│ MU │MW_R│ AC2│ - ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ - │^END│^LFT│^DWN│^RGT│^PGD│ │ │ ML │ MD │ MR │ AC1│ - ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ - │ M5 │ M2 │ M4 │ M3 │ M1 ├────┐ ┌────┤ │MW_D│MW_U│ │ AC0│ - ├────┼────┼────┼────┼────┤ │ │ ├────┼────┼────┼────┼────┤ - │ │ │ │ │ │ │ │ │ │ │ │ │ │ - └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘ -*/ + /* + ┌────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┐ + │^HOM│^PGD│^UP │^PGU│^PGU│ │ │MW_L│ MU │MW_R│ AC2│ + ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ + │^END│^LFT│^DWN│^RGT│^PGD│ │ │ ML │ MD │ MR │ AC1│ + ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤ + │ M5 │ M2 │ M4 │ M3 │ M1 ├────┐ ┌────┤ │MW_D│MW_U│ │ AC0│ + ├────┼────┼────┼────┼────┤ │ │ ├────┼────┼────┼────┼────┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ + └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘ + */ -[_MLAYER] = KEYMAP( \ - LALT(KC_ESC), KC_9, KC_8, KC_7, KC_6, M(1), M(0), KC_MS_U, M(0), M(2), \ - KC_0, KC_2, KC_3, KC_4, KC_5, M(5), KC_MS_L, KC_MS_D, KC_MS_R, KC_ACL2, \ - KC_1, KC_0, XXXXXXX, XXXXXXX, KC_BTN5, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, M(5), \ - _______, _______, _______, _______, KC_BTN1, KC_BTN2, KC_BTN2, KC_BTN1, KC_BTN2, _______, KC_ACL0, _______ \ -), + [_MLAYER] = LAYOUT( \ + LALT(KC_ESC), KC_9, KC_8, KC_7, KC_6, M(1), M(0), KC_MS_U, M(0), M(2), \ + KC_0, KC_2, KC_3, KC_4, KC_5, M(5), KC_MS_L, KC_MS_D, KC_MS_R, KC_ACL2, \ + KC_1, KC_0, XXXXXXX, XXXXXXX, KC_BTN5, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, M(5), \ + _______, _______, _______, _______, KC_BTN1, KC_BTN2, KC_BTN2, KC_BTN1, KC_BTN2, _______, KC_ACL0, _______ \ + ), -//one_ring=2__rule__them-all -[_GRVTABL] = KEYMAP( \ - LALT(KC_PSCR), M(4), KC_PWR, KC_POWER, RESET, RESET, KC_R, KC_E, KC_I, LALT(KC_PSCR), \ - TG(_NINEKEY), TG(_FNCTION), TG(_MLAYER), TG(_IKASHFT), TG(_IKAPILA), TG(_IKAPILA), KC_S, KC_U, KC_B, TG(_NINEKEY), \ - M(3), TG(_GAMEQWERTY), XXXXXXX, XXXXXXX, XXXXXXX, KC_MYCM, KC_CALC, XXXXXXX, TG(_GAMEQWERTY), M(3), \ - TT(_GRVTABL), TG(_FNCTION), TG(_MLAYER), TG(_IKASHFT), TG(_IKAPILA), _______, _______, TG(_IKAPILA), TG(_IKASHFT), TG(_MLAYER), TG(_MLAYER), TG(_NINEKEY) \ -)}; + //one_ring=2__rule__them-all + [_GRVTABL] = LAYOUT( \ + LALT(KC_PSCR), M(4), KC_PWR, KC_POWER, RESET, RESET, KC_R, KC_E, KC_I, LALT(KC_PSCR), \ + TG(_NINEKEY), TG(_FNCTION), TG(_MLAYER), TG(_IKASHFT), TG(_IKAPILA), TG(_IKAPILA), KC_S, KC_U, KC_B, TG(_NINEKEY), \ + M(3), TG(_GAMEQWERTY), XXXXXXX, XXXXXXX, XXXXXXX, KC_MYCM, KC_CALC, XXXXXXX, TG(_GAMEQWERTY), M(3), \ + TT(_GRVTABL), TG(_FNCTION), TG(_MLAYER), TG(_IKASHFT), TG(_IKAPILA), _______, _______, TG(_IKAPILA), TG(_IKASHFT), TG(_MLAYER), TG(_MLAYER), TG(_NINEKEY) \ + ), +}; qk_tap_dance_action_t tap_dance_actions[] = { - [VOM] = ACTION_TAP_DANCE_DOUBLE(KC_VOLD, KC_MUTE), - [PRN] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_RPRN), - [EGT] = ACTION_TAP_DANCE_DOUBLE(KC_LCBR, KC_RCBR), - [HRD] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC), - [DSH] = ACTION_TAP_DANCE_DOUBLE(KC_NDSH, KC_MDSH), - [ESC] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, LALT(KC_F4)), - [EQE] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, KC_ENT), - [UND] = ACTION_TAP_DANCE_DOUBLE(KC_Z, LCTL(KC_Z)), - [PGN] = ACTION_TAP_DANCE_DOUBLE(KC_PGDN, KC_PGUP), - [HND] = ACTION_TAP_DANCE_DOUBLE(KC_HOME, KC_END), - [COD] = ACTION_TAP_DANCE_DOUBLE(KC_COMM, KC_DOT), - [MND] = ACTION_TAP_DANCE_DOUBLE(KC_MNXT, KC_MPRV), - [F11] = ACTION_TAP_DANCE_DOUBLE(KC_F1, KC_F11), - [F12] = ACTION_TAP_DANCE_DOUBLE(KC_F2, KC_F12), - [F13] = ACTION_TAP_DANCE_DOUBLE(KC_F3, KC_F13), - [F14] = ACTION_TAP_DANCE_DOUBLE(KC_F4, KC_F14), - [F15] = ACTION_TAP_DANCE_DOUBLE(KC_F5, KC_F15), - [F16] = ACTION_TAP_DANCE_DOUBLE(KC_F6, KC_F16), - [F17] = ACTION_TAP_DANCE_DOUBLE(KC_F7, KC_F17), - [F18] = ACTION_TAP_DANCE_DOUBLE(KC_F8, KC_F18), - [F19] = ACTION_TAP_DANCE_DOUBLE(KC_F9, KC_F19), - [F20] = ACTION_TAP_DANCE_DOUBLE(KC_F10, KC_F20), + [VOM] = ACTION_TAP_DANCE_DOUBLE(KC_VOLD, KC_MUTE), + [PRN] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_RPRN), + [EGT] = ACTION_TAP_DANCE_DOUBLE(KC_LCBR, KC_RCBR), + [HRD] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC), + [DSH] = ACTION_TAP_DANCE_DOUBLE(KC_NDSH, KC_MDSH), + [ESC] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, LALT(KC_F4)), + [EQE] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, KC_ENT), + [UND] = ACTION_TAP_DANCE_DOUBLE(KC_Z, LCTL(KC_Z)), + [PGN] = ACTION_TAP_DANCE_DOUBLE(KC_PGDN, KC_PGUP), + [HND] = ACTION_TAP_DANCE_DOUBLE(KC_HOME, KC_END), + [COD] = ACTION_TAP_DANCE_DOUBLE(KC_COMM, KC_DOT), + [MND] = ACTION_TAP_DANCE_DOUBLE(KC_MNXT, KC_MPRV), + [F11] = ACTION_TAP_DANCE_DOUBLE(KC_F1, KC_F11), + [F12] = ACTION_TAP_DANCE_DOUBLE(KC_F2, KC_F12), + [F13] = ACTION_TAP_DANCE_DOUBLE(KC_F3, KC_F13), + [F14] = ACTION_TAP_DANCE_DOUBLE(KC_F4, KC_F14), + [F15] = ACTION_TAP_DANCE_DOUBLE(KC_F5, KC_F15), + [F16] = ACTION_TAP_DANCE_DOUBLE(KC_F6, KC_F16), + [F17] = ACTION_TAP_DANCE_DOUBLE(KC_F7, KC_F17), + [F18] = ACTION_TAP_DANCE_DOUBLE(KC_F8, KC_F18), + [F19] = ACTION_TAP_DANCE_DOUBLE(KC_F9, KC_F19), + [F20] = ACTION_TAP_DANCE_DOUBLE(KC_F10, KC_F20), }; void matrix_init_user(){ @@ -281,33 +282,33 @@ void matrix_init_user(){ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { if (record->event.pressed) { switch(id) { - case 0: - return MACRO( D(LSFT), T(9), U(LSFT), D(LSFT), T(0), U(LSFT), T(LEFT), END ); - case 1: - return MACRO( D(LSFT), T(LBRC), U(LSFT), D(LSFT), T(RBRC), U(LSFT), T(LEFT), END ); - case 2: - return MACRO( T(LBRC), T(RBRC), T(LEFT), END); - case 5: - return MACRO( D(LSFT), T(COMMA), U(LSFT), D(LSFT), T(DOT), U(LSFT), END ); - case 3: - clear_keyboard(); - return false; - break; - case 4: - return MACRO( D(LSFT), T(SCOLON), U(LSFT), D(LSFT), T(9), U(LSFT), D(LSFT), T(0), U(LSFT), D(LSFT), T(LBRACKET), U(LSFT), D(LSFT), T(9), U(LSFT), D(LSFT), T(SCOLON), U(LSFT), D(LSFT), T(0), U(LSFT), D(LSFT), T(BSLASH), U(LSFT), D(LSFT), T(SCOLON), U(LSFT), D(LSFT), T(7), U(LSFT), D(LSFT), T(RBRACKET), U(LSFT), T(SCOLON), D(LSFT), T(SCOLON), U(LSFT), END ); - case WINSH: - set_unicode_input_mode(UC_WIN); - return false; - break; - case WIN: - set_unicode_input_mode(UC_WINC); - return false; - break; - case OSX: - set_unicode_input_mode(UC_OSX); - return false; - break; - } + case 0: + return MACRO( D(LSFT), T(9), U(LSFT), D(LSFT), T(0), U(LSFT), T(LEFT), END ); + case 1: + return MACRO( D(LSFT), T(LBRC), U(LSFT), D(LSFT), T(RBRC), U(LSFT), T(LEFT), END ); + case 2: + return MACRO( T(LBRC), T(RBRC), T(LEFT), END); + case 5: + return MACRO( D(LSFT), T(COMMA), U(LSFT), D(LSFT), T(DOT), U(LSFT), END ); + case 3: + clear_keyboard(); + return false; + break; + case 4: + return MACRO( D(LSFT), T(SCOLON), U(LSFT), D(LSFT), T(9), U(LSFT), D(LSFT), T(0), U(LSFT), D(LSFT), T(LBRACKET), U(LSFT), D(LSFT), T(9), U(LSFT), D(LSFT), T(SCOLON), U(LSFT), D(LSFT), T(0), U(LSFT), D(LSFT), T(BSLASH), U(LSFT), D(LSFT), T(SCOLON), U(LSFT), D(LSFT), T(7), U(LSFT), D(LSFT), T(RBRACKET), U(LSFT), T(SCOLON), D(LSFT), T(SCOLON), U(LSFT), END ); + case WINSH: + set_unicode_input_mode(UC_WIN); + return false; + break; + case WIN: + set_unicode_input_mode(UC_WINC); + return false; + break; + case OSX: + set_unicode_input_mode(UC_OSX); + return false; + break; + } } - return MACRO_NONE; + return MACRO_NONE; }; diff --git a/keyboards/atreus/keymaps/xyverz/keymap.c b/keyboards/atreus/keymaps/xyverz/keymap.c index 347445ef6bc9..fb0c5077f84b 100644 --- a/keyboards/atreus/keymaps/xyverz/keymap.c +++ b/keyboards/atreus/keymaps/xyverz/keymap.c @@ -2,7 +2,7 @@ // Chris Gerber (@gerbercj), with the addition of persistent layers like the Planck and // Preonic keyboards by Jack Humbert. -#include "atreus.h" +#include QMK_KEYBOARD_H #include "action_layer.h" #include "eeconfig.h" @@ -43,7 +43,7 @@ enum planck_keycodes { #define XXXXXXX KC_NO const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Dvorak Layer + /* Dvorak Layer ,----------------------------------. ,----------------------------------. | ' | , | . | P | Y | | F | G | C | R | L | |------+------+------+------+------| |------+------+------+------+------| @@ -53,14 +53,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+------+------+------| ||Enter |------+------+------+------+------| | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | / | \ | `----------------------------------' `----------------------------------' */ - [_DVORAK] = { - {KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, XXXXXXX, KC_F, KC_G, KC_C, KC_R, KC_L }, - {KC_A, KC_O, KC_E, KC_U, KC_I, XXXXXXX, KC_D, KC_H, KC_T, KC_N, KC_S }, - {SFTSCLN, KC_Q, KC_J, KC_K, KC_X, KC_LCTL, KC_B, KC_M, KC_W, KC_V, SFTZED }, - {ESCTRL, TABALT, KC_LGUI, LOWER, KC_BSPC, ALTENT, KC_SPC, RAISE, KC_MINS, KC_SLSH, KC_BSLS} - }, - -/* QWERTY Layer + [_DVORAK] = LAYOUT( + KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L , + KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S , + SFTSCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, SFTZED , + ESCTRL, TABALT, KC_LGUI, LOWER, KC_BSPC, KC_LCTL, ALTENT, KC_SPC, RAISE, KC_MINS, KC_SLSH, KC_BSLS + ), + + /* QWERTY Layer ,----------------------------------. ,----------------------------------. | Q | W | E | R | T | | Y | U | I | O | P | |------+------+------+------+------| |------+------+------+------+------| @@ -70,14 +70,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+------+------+------| ||Enter |------+------+------+------+------| | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | ' | \ | `----------------------------------' `----------------------------------' */ - [_QWERTY] = { - {KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P }, - {KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, - {SFTZED, KC_X, KC_C, KC_V, KC_B, KC_LCTL, KC_N, KC_M, KC_COMM, KC_DOT, SFTSLSH}, - {ESCTRL, TABALT, KC_LGUI, LOWER, KC_BSPC, ALTENT, KC_SPC, RAISE, KC_MINS, KC_QUOT, KC_BSLS} - }, - -/* Colemak Layer + [_QWERTY] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P , + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + SFTZED, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SFTSLSH, + ESCTRL, TABALT, KC_LGUI, LOWER, KC_BSPC, KC_LCTL, ALTENT, KC_SPC, RAISE, KC_MINS, KC_QUOT, KC_BSLS + ), + + /* Colemak Layer ,----------------------------------. ,----------------------------------. | Q | W | F | P | G | | J | L | U | Y | L | |------+------+------+------+------| |------+------+------+------+------| @@ -87,14 +87,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+------+------+------| ||Enter |------+------+------+------+------| | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | ' | \ | `----------------------------------' `----------------------------------'*/ - [_COLEMAK] = { - {KC_Q, KC_W, KC_F, KC_P, KC_G, XXXXXXX, KC_J, KC_L, KC_U, KC_Y, KC_SCLN}, - {KC_A, KC_R, KC_S, KC_T, KC_D, XXXXXXX, KC_H, KC_N, KC_E, KC_I, KC_O }, - {SFTZED, KC_X, KC_C, KC_V, KC_B, KC_LCTL, KC_K, KC_M, KC_COMM, KC_DOT, SFTSLSH}, - {ESCTRL, TABALT, KC_LGUI, LOWER, KC_BSPC, ALTENT, KC_SPC, RAISE, KC_MINS, KC_QUOT, KC_BSLS} - }, - -/* Dvorak Layer with Command key on left thumb instead of Control + [_COLEMAK] = LAYOUT( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O , + SFTZED, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, SFTSLSH, + ESCTRL, TABALT, KC_LGUI, LOWER, KC_BSPC, KC_LCTL, ALTENT, KC_SPC, RAISE, KC_MINS, KC_QUOT, KC_BSLS + ), + + /* Dvorak Layer with Command key on left thumb instead of Control ,----------------------------------. ,----------------------------------. | ' | , | . | P | Y | | F | G | C | R | L | |------+------+------+------+------| |------+------+------+------+------| @@ -104,14 +104,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+------+------+------| ||Enter |------+------+------+------+------| | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | / | \ | `----------------------------------' `----------------------------------' */ - [_DVORMAC] = { - {KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, XXXXXXX, KC_F, KC_G, KC_C, KC_R, KC_L }, - {KC_A, KC_O, KC_E, KC_U, KC_I, XXXXXXX, KC_D, KC_H, KC_T, KC_N, KC_S }, - {SFTSCLN, KC_Q, KC_J, KC_K, KC_X, KC_LGUI, KC_B, KC_M, KC_W, KC_V, SFTZED }, - {ESCTRL, TABALT, KC_LGUI, LOWER, KC_BSPC, ALTENT, KC_SPC, RAISE, KC_MINS, KC_SLSH, KC_BSLS} - }, - -/* LOWER Layer + [_DVORMAC] = LAYOUT( + KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L , + KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S , + SFTSCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, SFTZED , + ESCTRL, TABALT, KC_LGUI, LOWER, KC_BSPC, KC_LGUI, ALTENT, KC_SPC, RAISE, KC_MINS, KC_SLSH, KC_BSLS + ), + + /* LOWER Layer ,----------------------------------. ,----------------------------------. | ! | @ | # | $ | % | | ^ | & | * | ( | ) | |------+------+------+------+------| |------+------+------+------+------| @@ -121,14 +121,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+------+------+------| || |------+------+------+------+------| | ~ | | | | Del |------'`------| Ins | | | | | `----------------------------------' `----------------------------------'*/ - [_LOWER] = { - {KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, XXXXXXX, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN}, - {KC_CAPS, _______, KC_UP, _______, KC_HOME, XXXXXXX, KC_PGUP, _______, KC_PLUS, KC_LCBR, KC_RCBR}, - {_______, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, _______}, - {KC_TILD, _______, _______, _______, KC_DEL, _______, KC_INS, _______, _______, _______, _______} - }, - -/* RAISE Layer + [_LOWER] = LAYOUT( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, + KC_CAPS, _______, KC_UP, _______, KC_HOME, KC_PGUP, _______, KC_PLUS, KC_LCBR, KC_RCBR, + _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, _______, + KC_TILD, _______, _______, _______, KC_DEL, _______, _______, KC_INS, _______, _______, _______, _______ + ), + + /* RAISE Layer ,----------------------------------. ,----------------------------------. | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |------+------+------+------+------| |------+------+------+------+------| @@ -138,14 +138,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+------+------+------| || |------+------+------+------+------| | ` | | | | Del |------'`------| Ins | | | | | `----------------------------------' `----------------------------------'*/ - [_RAISE] = { - {KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX, KC_6, KC_7, KC_8, KC_9, KC_0 }, - {KC_CAPS, _______, KC_UP, _______, KC_HOME, XXXXXXX, KC_PGUP, _______, KC_EQL, KC_LBRC, KC_RBRC}, - {_______, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, KC_PGDN, KC_MPRV, KC_MPLY, KC_MNXT, _______}, - {KC_GRV, _______, _______, _______, KC_DEL, _______, KC_INS, _______, _______, _______, _______} - }, - -/* ADJUST Layer + [_RAISE] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0 , + KC_CAPS, _______, KC_UP, _______, KC_HOME, KC_PGUP, _______, KC_EQL, KC_LBRC, KC_RBRC, + _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_PGDN, KC_MPRV, KC_MPLY, KC_MNXT, _______, + KC_GRV, _______, _______, _______, KC_DEL, _______, _______, KC_INS, _______, _______, _______, _______ + ), + + /* ADJUST Layer ,----------------------------------. ,----------------------------------. | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | |------+------+------+------+------| |------+------+------+------+------| @@ -155,13 +155,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+------+------+------| || |------+------+------+------+------| | | | | | |------'`------| | | | | RESET| `----------------------------------' `----------------------------------'*/ - [_ADJUST] = { - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 }, - {KC_F11, _______, _______, _______, _______, XXXXXXX, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_F12 }, - {_______, QWERTY, COLEMAK, DVORAK, DVORMAC, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET } - } - + [_ADJUST] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 , + KC_F11, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_F12 , + _______, QWERTY, COLEMAK, DVORAK, DVORMAC, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET + ), }; const uint16_t PROGMEM fn_actions[] = { @@ -175,50 +174,50 @@ void persistent_default_layer_set(uint16_t default_layer) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_DVORAK); - } - return false; - break; - case DVORMAC: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_DVORMAC); - } - return false; - break; - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; + case QWERTY: + if (record->event.pressed) { + persistent_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + persistent_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + persistent_default_layer_set(1UL<<_DVORAK); } - return true; + return false; + break; + case DVORMAC: + if (record->event.pressed) { + persistent_default_layer_set(1UL<<_DVORMAC); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + } + return true; }; From ec6f3e07c595802a6c6fc500a4ace6ea7fdfa086 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nico=20Hormaz=C3=A1bal?= Date: Thu, 3 May 2018 16:58:12 +0200 Subject: [PATCH 333/578] Updated keymap for Dr NotSoKind Planck layout (#2877) * added own keymap for planck * dynamic macros * moved the reset button * Update readme for volume explanation * Format * added safe double shift * changed the modified shift to regular shift, for allowing shift + F keys * moved power stuff to the function layer * del button on raise * Update Readme.md * updated F keys --- .../planck/keymaps/dr_notsokind/Readme.md | 6 +- .../planck/keymaps/dr_notsokind/keymap.c | 64 +++++++++---------- 2 files changed, 35 insertions(+), 35 deletions(-) diff --git a/keyboards/planck/keymaps/dr_notsokind/Readme.md b/keyboards/planck/keymaps/dr_notsokind/Readme.md index 35f3975c6a78..e7e29cb7dd25 100644 --- a/keyboards/planck/keymaps/dr_notsokind/Readme.md +++ b/keyboards/planck/keymaps/dr_notsokind/Readme.md @@ -70,7 +70,7 @@ When you are done, press `Media` and `Enter`. You will finally hear a tune confi Press `Media` and the key where you stored your Macro, either `;` or `'`. The Macro will play. -![Imgur](https://i.imgur.com/TCsD6Ro.png) +![Imgur](https://i.imgur.com/ri4lEcl.png) http://www.keyboard-layout-editor.com/#/gists/4cfb26f84bbb4fabe5e6c7cc22c85e24 @@ -82,13 +82,13 @@ The Lock mode toggle disables the double-tap `CAPS` and disables `GUI` keys (WIN Lower + Raise gives access to the layer switching, plus keyboard modes (such as enabling music mode for annoying your coworkers), reset, SysReq and Lock Mode, which disables the double shift tap for CapsLock (taken from the *circuit* layout, see the comments below). Also provides another distribution for the F keys. -![Adjust](https://i.imgur.com/ADNLR6n.png) +![Adjust](https://i.imgur.com/6m6baos.png) http://www.keyboard-layout-editor.com/#/gists/12462bfba17d16bb40b54ed914209d92 ## Numpad Layer -![Numpad](https://i.imgur.com/iTyhjNZ.png) +![Numpad](https://i.imgur.com/od1plfz.png) http://www.keyboard-layout-editor.com/#/gists/5ab730ab278d2050c5250498806e8edc diff --git a/keyboards/planck/keymaps/dr_notsokind/keymap.c b/keyboards/planck/keymaps/dr_notsokind/keymap.c index b360b39da110..8555a959a464 100644 --- a/keyboards/planck/keymaps/dr_notsokind/keymap.c +++ b/keyboards/planck/keymaps/dr_notsokind/keymap.c @@ -87,9 +87,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* NUMPAD * ,-----------------------------------------------------------------------------------. - * |QWERTY| NULL | NULL | NULL | NULL | NULL | NULL | / | 7 | 8 | 9 | - | + * |QWERTY| NULL | Up | NULL | NULL | NULL | NULL | / | 7 | 8 | 9 | - | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | NULL | NULL | NULL | NULL | NULL | NULL | * | 4 | 5 | 6 | + | + * | | Left | Down | Right| NULL | NULL | NULL | * | 4 | 5 | 6 | + | * |------+------+------+------+------+------+------+------+------+------+------+------| * | |NumLck| NULL | NULL | NULL | NULL | NULL |BckSp | 1 | 2 | 3 | Ent | * |------+------+------+------+------+-------------+------+------+------+------+------| @@ -97,8 +97,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_NUMPAD] = { - {QWERTY, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_PMNS}, - {_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PPLS}, + {QWERTY, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_PMNS}, + {_______, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, XXXXXXX, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PPLS}, {_______, KC_NLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSPC, KC_P1, KC_P2, KC_P3, KC_PENT}, {_______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PCMM, KC_PEQL} }, @@ -123,55 +123,55 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* RAISE * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | BKSP | + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * | Del | F1 | F2 | F3 | F4 | F5 | | - | = | [ | ] | \ | * |------+------+------+------+------+------+------+------+------+------+------+------| - * |LShift| F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | NULL | PgUp | Enter| + * |LShift| F6 | F7 | F8 | F9 | F10 | |ISO # |ISO / | NULL | PgUp | Enter| * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | Vol+ | | NULL | | | Home | PgDn | End | + * | | | | F11 | | F12 | | | Home | PgDn | End | * `-----------------------------------------------------------------------------------' */ [_RAISE] = { - {KC_GRV , KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_DEL , KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_LSFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, XXXXXXX, KC_PGUP, KC_ENT }, - {_______, _______, _______, KC_VOLU, _______, XXXXXXX, XXXXXXX, _______, _______, KC_HOME, KC_PGDN, KC_END } + {KC_GRV , KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, + {KC_DEL , KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_LSFT, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, KC_NUHS, KC_NUBS, XXXXXXX, KC_PGUP, KC_ENT }, + {_______, _______, _______, KC_F11, _______, KC_F12, KC_F12, _______, _______, KC_HOME, KC_PGDN, KC_END } }, /* LOWER * ,-----------------------------------------------------------------------------------. * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Del | F13 | F14 | F15 | F16 | F17 | F18 | _ | + | { | } | | | + * | Del | F1 | F2 | F3 | F4 | F5 | | _ | + | { | } | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * |LShift| F19 | F20 | F21 | F22 | F23 | F24 |ISO ~ |ISO | | NULL | PgUp | Enter| + * |LShift| F6 | F7 | F8 | F9 | F10 | |ISO ~ |ISO | | NULL | PgUp | Enter| * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | Vol- | | NULL | | | Home | PgDn | End | + * | | | | F11 | | F12 | | | Home | PgDn | End | * `-----------------------------------------------------------------------------------' */ [_LOWER] = { - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL }, - {KC_DEL, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {KC_LSFT, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, S(KC_NUHS), S(KC_NUBS), XXXXXXX, KC_PGUP, KC_ENT }, - {_______, _______, _______, KC_VOLD, _______, XXXXXXX, XXXXXXX, _______, _______, KC_HOME, KC_PGDN, KC_END } + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL }, + {KC_DEL , KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_LSFT, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, S(KC_NUHS), S(KC_NUBS), XXXXXXX, KC_PGUP, KC_ENT }, + {_______, _______, _______, KC_F11, _______, KC_F12, KC_F12, _______, _______, KC_HOME, KC_PGDN, KC_END } }, /* MEDIA AND COMMANDS * ,-----------------------------------------------------------------------------------. - * |Sleep | NULL |WbHome| NULL | NULL | NULL |Again | NULL |Insert| NULL |PrntSc|Power | + * | NULL | NULL |WbHome| NULL | NULL | NULL |Again | NULL |Insert| NULL |PrntSc| NULL | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Wake | NULL |WbSrch| NULL | Find | NULL | NULL | NULL | Calc | NULL |PlyMc1|PlyMc2| + * | NULL | NULL |WbSrch| NULL | Find | NULL | NULL | NULL | NULL | NULL |PlyMc1|PlyMc2| * |------+------+------+------+------+------+------+------+------+------+------+------| - * |LShift| Undo | Cut | Copy | Paste| NULL | NULL | NULL |ZoomOu|ZoomIn| Prev | NULL | + * |LShift| NULL | NULL | Calc | NULL | NULL | NULL | NULL |ZoomOu|ZoomIn| Prev |RecStp| * |------+------+------+------+------+-------------+------+------+------+------+------| - * | NULL | NULL | NULL | | Vol- | Mute | Vol+ | NULL | Stop | Next | Play | + * |ONESHT| NULL | NULL | | Vol- | Mute | Vol+ |Zoom 0| Stop | Next | Play | * `-----------------------------------------------------------------------------------' */ [_MEDIA] = { - {KC_SLEP, XXXXXXX, KC_WHOM, XXXXXXX, XXXXXXX, XXXXXXX, KC_AGAIN, XXXXXXX, KC_INS, XXXXXXX, KC_PSCR, KC_PWR}, - {KC_WAKE, XXXXXXX, KC_WSCH, XXXXXXX, KC_FIND, XXXXXXX, XXXXXXX, XXXXXXX, KC_CALC, XXXXXXX, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2 }, - {KC_LSFT, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, XXXXXXX, XXXXXXX, XXXXXXX, ZOOM_OUT, ZOOM_IN, KC_MPRV, DYN_REC_STOP }, + {XXXXXXX, XXXXXXX, KC_WHOM, XXXXXXX, XXXXXXX, XXXXXXX, KC_AGAIN, XXXXXXX, KC_INS, XXXXXXX, KC_PSCR, XXXXXXX}, + {XXXXXXX, XXXXXXX, KC_WSCH, XXXXXXX, KC_FIND, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2 }, + {KC_LSFT, XXXXXXX, XXXXXXX, KC_CALC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, ZOOM_OUT, ZOOM_IN, KC_MPRV, DYN_REC_STOP }, {ONESHOT, XXXXXXX, XXXXXXX, _______, KC_VOLD, KC_MUTE, KC_MUTE, KC_VOLU, ZOOM_NML, KC_MSTP, KC_MNXT, KC_MPLY } }, @@ -195,18 +195,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* FUNCTIONS * ,-----------------------------------------------------------------------------------. - * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * | SLEEP| NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | POWER| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | + * | WAKE | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | NULL | Reset| NULL |AudOff|MusOff|QWERTY|NUMPAD|Mus On|Aud On| NULL |Voice+|SysReq| + * | NULL | NULL | NULL |AudOff|MusOff|QWERTY|NUMPAD|Mus On|Aud On| NULL |Voice+|SysReq| * |------+------+------+------+------+-------------+------+------+------+------+------| - * | NULL | NULL | Lock | NULL | | NULL | | NULL |AGNorm|Voice-|AGSwap| + * | Reset| NULL | LOCK | NULL | | NULL | | NULL |AGNorm|Voice-|AGSwap| * `-----------------------------------------------------------------------------------' */ [_FUNCTN] = { - {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_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24 }, + {KC_SLEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PWR }, + {KC_WAKE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, {XXXXXXX, XXXXXXX, XXXXXXX, AU_OFF, MU_OFF, QWERTY, NUMPAD, MU_ON, AU_ON, XXXXXXX, MUV_IN, KC_SYSREQ}, {RESET, XXXXXXX, LOCK, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, AG_NORM, MUV_DE, AG_SWAP} } From 6c1d6c32221ab18ad8083aecc8d2a04480f49cef Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Thu, 3 May 2018 15:56:10 -0400 Subject: [PATCH 334/578] add discord link --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 23773278e47a..859e3ed12f15 100644 --- a/readme.md +++ b/readme.md @@ -2,7 +2,7 @@ [![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) [![Build Status](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware) -[![Gitter](https://img.shields.io/gitter/room/qmk/qmk_firmware.js.svg)](https://gitter.im/qmk/qmk_firmware) +[![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh) [![Docs Status](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm) [![GitHub contributors](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) [![GitHub forks](https://img.shields.io/github/forks/qmk/qmk_firmware.svg?style=social&label=Fork)](https://github.com/qmk/qmk_firmware/) From 87612df54b01f826dd2059eafeb985d0d68523a4 Mon Sep 17 00:00:00 2001 From: Sascha Grunert Date: Fri, 4 May 2018 19:04:26 +0200 Subject: [PATCH 335/578] Add saschagrunert planck keymap (#2886) --- keyboards/planck/keymaps/sascha/keymap.c | 37 ++++++++++++++++++++++++ keyboards/planck/keymaps/sascha/rules.mk | 0 2 files changed, 37 insertions(+) create mode 100644 keyboards/planck/keymaps/sascha/keymap.c create mode 100644 keyboards/planck/keymaps/sascha/rules.mk diff --git a/keyboards/planck/keymaps/sascha/keymap.c b/keyboards/planck/keymaps/sascha/keymap.c new file mode 100644 index 000000000000..0ec7c01b5c7f --- /dev/null +++ b/keyboards/planck/keymaps/sascha/keymap.c @@ -0,0 +1,37 @@ +#include "backlight.h" +#include "planck.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { + /* ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + * │ Esc │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Bksp │ + * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + * │ Ctrl │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; : │ Entr │ + * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + * │ Shft │ Z │ X │ C │ V │ B │ N │ M │ , < │ . > │ / ? │ ' " │ + * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + * │ Alt │ GUI │ \ | │ - _ │ = + │ Spce │ Spce │ ( │ ) │ [ { │ ] } │ Lr 1 │ + * └──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘ + */ + { KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC } , + { KC_LCTL , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_ENT } , + { KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_QUOT } , + { KC_LALT , KC_LGUI , KC_BSLS , KC_MINS , KC_EQL , KC_SPC , KC_SPC , KC_LPRN , KC_RPRN , KC_LBRC , KC_RBRC , MO(1) } + }, +[1] = { + /* ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + * │ ~ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ DEL │ + * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + * │ ` │ ! │ @ │ # │ $ │ % │ * │ & │ BL+ │ BL- │ BLTg │ BLBr │ + * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + * │ Caps │ Home │ End │ PgUp │ PgDn │ F1 │ F2 │ F3 │ Left │ Down │ Up │ Rght │ + * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ + * │ Powr │ Rset │ VoUp │ VoDn │ Play │ Stop │ Prev │ Next │ Alt │ Ctrl │ GUI │ │ + * └──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘ + */ + { KC_TILD , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_DEL } , + { KC_GRV , KC_EXLM , KC_AT , KC_HASH , KC_DLR , KC_PERC , KC_CIRC , KC_AMPR , BL_INC , BL_DEC , BL_TOGG , BL_BRTG } , + { KC_CAPS , KC_HOME , KC_END , KC_PGUP , KC_PGDN , KC_F1 , KC_F2 , KC_F3 , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT } , + { KC_PWR , RESET , KC_VOLU , KC_VOLD , KC_MPLY , KC_MSTP , KC_MPRV , KC_MNXT , KC_RALT , KC_RCTL , KC_RGUI , KC_TRNS } + } +}; diff --git a/keyboards/planck/keymaps/sascha/rules.mk b/keyboards/planck/keymaps/sascha/rules.mk new file mode 100644 index 000000000000..e69de29bb2d1 From f969d5ed2870b54a80a0faa6f38eb21d4608e12d Mon Sep 17 00:00:00 2001 From: Biacco42 Date: Sat, 5 May 2018 02:24:35 +0900 Subject: [PATCH 336/578] Submit/ergo42 default keymap update (#2890) * Add new default keymap for Ergo42. * Rename keymap names * Update TAPPING_TERM --- .../{default-macOS => biacco-macOS}/config.h | 0 .../{default-macOS => biacco-macOS}/keymap.c | 0 .../{default-macOS => biacco-macOS}/rules.mk | 0 keyboards/ergo42/keymaps/biacco/config.h | 37 +++++++ keyboards/ergo42/keymaps/biacco/keymap.c | 98 +++++++++++++++++++ keyboards/ergo42/keymaps/biacco/rules.mk | 3 + keyboards/ergo42/keymaps/default/keymap.c | 71 +++++--------- keyboards/ergo42/rev1/config.h | 2 +- 8 files changed, 163 insertions(+), 48 deletions(-) rename keyboards/ergo42/keymaps/{default-macOS => biacco-macOS}/config.h (100%) rename keyboards/ergo42/keymaps/{default-macOS => biacco-macOS}/keymap.c (100%) rename keyboards/ergo42/keymaps/{default-macOS => biacco-macOS}/rules.mk (100%) create mode 100644 keyboards/ergo42/keymaps/biacco/config.h create mode 100644 keyboards/ergo42/keymaps/biacco/keymap.c create mode 100644 keyboards/ergo42/keymaps/biacco/rules.mk diff --git a/keyboards/ergo42/keymaps/default-macOS/config.h b/keyboards/ergo42/keymaps/biacco-macOS/config.h similarity index 100% rename from keyboards/ergo42/keymaps/default-macOS/config.h rename to keyboards/ergo42/keymaps/biacco-macOS/config.h diff --git a/keyboards/ergo42/keymaps/default-macOS/keymap.c b/keyboards/ergo42/keymaps/biacco-macOS/keymap.c similarity index 100% rename from keyboards/ergo42/keymaps/default-macOS/keymap.c rename to keyboards/ergo42/keymaps/biacco-macOS/keymap.c diff --git a/keyboards/ergo42/keymaps/default-macOS/rules.mk b/keyboards/ergo42/keymaps/biacco-macOS/rules.mk similarity index 100% rename from keyboards/ergo42/keymaps/default-macOS/rules.mk rename to keyboards/ergo42/keymaps/biacco-macOS/rules.mk diff --git a/keyboards/ergo42/keymaps/biacco/config.h b/keyboards/ergo42/keymaps/biacco/config.h new file mode 100644 index 000000000000..5a6261c4f7cf --- /dev/null +++ b/keyboards/ergo42/keymaps/biacco/config.h @@ -0,0 +1,37 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#endif diff --git a/keyboards/ergo42/keymaps/biacco/keymap.c b/keyboards/ergo42/keymaps/biacco/keymap.c new file mode 100644 index 000000000000..704cd47e1fe2 --- /dev/null +++ b/keyboards/ergo42/keymaps/biacco/keymap.c @@ -0,0 +1,98 @@ +#include "ergo42.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +#define BASE 0 +#define META 1 +#define SYMB 2 +#define GAME 3 + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* BASE + * ,------------------------------------------------. ,------------------------------------------------. + * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | @ | + * |------+------+------+------+------+------+------| |-------------+------+------+------+------+------| + * | Alt | A | S | D | F | G | ( | | ) | H | J | K | L | ; | : | + * |------+------+------+------+------+------+------| |------|------+------+------+------+------+------| + * | Sft | Z | X | C | V | B | { | | } | N | M | , | . | / |\/Sft | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | Ctrl | GUI | App |PrtSc |ESC/ |Space/|Tab/ | |Back |Enter/| Del |PrtSc |=>GAME|=>SYMB| \ | + * | | | | |~SYMB |RCtrl |Shift | |Space |~META | | | | | | + * `------------------------------------------------' `------------------------------------------------' + */ + +[BASE] = KEYMAP( \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_RBRC, KC_BSLS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, \ + KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, S(KC_8), S(KC_9), KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, S(KC_RBRC), S(KC_BSLS), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_RO), \ + KC_LCTRL, KC_LGUI, KC_APP, KC_PSCR, LT(SYMB, KC_ESC), RCTL_T(KC_SPC), SFT_T(KC_TAB), KC_BSPC, LT(META, KC_ENT), KC_DELT, KC_PSCR, TG(GAME), TG(SYMB), KC_JYEN \ +), + +/* META + * ,------------------------------------------------. ,------------------------------------------------. + * | 1 | 2 | 3 | 4 | 5 | 6 | [ | | ] | 7 | 8 | 9 | 0 | - | ^ | + * |------+------+------+------+------+------+------| |-------------+------+------+------+------+------| + * | Alt | F1 | |Muhen | Henk | | ( | | ) | Left | Down | Up |Right | | | + * |------+------+------+------+------+------+------| |------|------+------+------+------+------+------| + * | Sft | F2 | F3 | F4 | F5 | F6 | { | | } | F7 | F8 | F9 | F10 | F11 |\/Sft | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | Ctrl | GUI | App |PrtSc |ESC/ |Space/|Tab/ | |Back |Enter/| Del |Reset |=>GAME|=>SYMB| \ | + * | | | | |~SYMB |RCtrl |Shift | |Space |~META | | | | | | + * `------------------------------------------------' `------------------------------------------------' + */ + +[META] = KEYMAP( \ + 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_F1, XXXXXXX, KC_MHEN, KC_HENK, XXXXXXX, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, \ + _______, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, SFT_T(KC_RO), \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, _______ \ +), + +/* SYMB + * ,------------------------------------------------. ,------------------------------------------------. + * | ! | " | # | $ | % | & | [ | | ] | ' | ( | ) | ~ | = | ~ | + * |------+------+------+------+------+------+------| |-------------+------+------+------+------+------| + * | Alt | | | | | | ( | | ) | | | | | + | * | + * |------+------+------+------+------+------+------| |------|------+------+------+------+------+------| + * | Sft | | | | | | { | | } | | | < | > | ? | \ | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | Ctrl | GUI | App |PrtSc |ESC/ |Space/|Tab/ | |Back |Enter/| Del |PrtSc |=>GAME|=>SYMB| \ | + * | | | | |~SYMB |RCtrl |Shift | |Space |~META | | | | | | + * `------------------------------------------------' `------------------------------------------------' + */ + +[SYMB] = KEYMAP( \ + S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), _______, _______, S(KC_7), S(KC_8), S(KC_9), S(KC_0), S(KC_MINS), S(KC_EQL), \ + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, S(KC_SCLN), S(KC_QUOT), \ + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, S(KC_COMM), S(KC_DOT), S(KC_SLSH), S(KC_RO), \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +), + +/* GAME + * ,------------------------------------------------. ,------------------------------------------------. + * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | @ | + * |------+------+------+------+------+------+------| |-------------+------+------+------+------+------| + * | Alt | A | S | D | F | G | ( | | ) | H | J | K | L | ; | : | + * |------+------+------+------+------+------+------| |------|------+------+------+------+------+------| + * | Sft | Z | X | C | V | B | { | | } | N | M | , | . | / |\/Sft | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | Ctrl | GUI | App |PrtSc | ESC |Space |Tab | |Back |Enter | Del |PrtSc |=>GAME|=>SYMB| \ | + * | | | | | | | | |Space | | | | | | | + * `------------------------------------------------' `------------------------------------------------' + */ +[GAME] = KEYMAP( \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_RBRC, KC_BSLS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, \ + KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, S(KC_8), S(KC_9), KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, S(KC_RBRC), S(KC_BSLS), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_RO), \ + KC_LCTRL, KC_LGUI, KC_APP, KC_PSCR, KC_ESC, KC_SPC, KC_TAB, KC_BSPC, KC_ENT, KC_DELT, KC_PSCR, _______, _______, KC_JYEN \ +) + +}; + diff --git a/keyboards/ergo42/keymaps/biacco/rules.mk b/keyboards/ergo42/keymaps/biacco/rules.mk new file mode 100644 index 000000000000..457a3d01d4a4 --- /dev/null +++ b/keyboards/ergo42/keymaps/biacco/rules.mk @@ -0,0 +1,3 @@ +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/ergo42/keymaps/default/keymap.c b/keyboards/ergo42/keymaps/default/keymap.c index 704cd47e1fe2..c06cda5db6ac 100644 --- a/keyboards/ergo42/keymaps/default/keymap.c +++ b/keyboards/ergo42/keymaps/default/keymap.c @@ -17,82 +17,59 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* BASE * ,------------------------------------------------. ,------------------------------------------------. - * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | @ | + * | ESC | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ | Bksp | * |------+------+------+------+------+------+------| |-------------+------+------+------+------+------| - * | Alt | A | S | D | F | G | ( | | ) | H | J | K | L | ; | : | + * | Del | RCtrl| A | S | D | F | G | | H | J | K | L | ; | ] | Enter| * |------+------+------+------+------+------+------| |------|------+------+------+------+------+------| - * | Sft | Z | X | C | V | B | { | | } | N | M | , | . | / |\/Sft | + * | SYMB | LSft | Z | X | C | V | B | | N | M | , | . | / | UP | RSft | * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - * | Ctrl | GUI | App |PrtSc |ESC/ |Space/|Tab/ | |Back |Enter/| Del |PrtSc |=>GAME|=>SYMB| \ | - * | | | | |~SYMB |RCtrl |Shift | |Space |~META | | | | | | + * | META | LCtrl| ` | \ | LAlt | LGUI |Space | |Space | ' | - | = | LEFT | DOWN | RIGHT| * `------------------------------------------------' `------------------------------------------------' */ [BASE] = KEYMAP( \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_RBRC, KC_BSLS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, \ - KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, S(KC_8), S(KC_9), KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, S(KC_RBRC), S(KC_BSLS), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_RO), \ - KC_LCTRL, KC_LGUI, KC_APP, KC_PSCR, LT(SYMB, KC_ESC), RCTL_T(KC_SPC), SFT_T(KC_TAB), KC_BSPC, LT(META, KC_ENT), KC_DELT, KC_PSCR, TG(GAME), TG(SYMB), KC_JYEN \ + KC_ESC, 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_BSPC, \ + KC_DELT, KC_RCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_RBRC, KC_ENT, \ + MO(SYMB), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, \ + MO(META), KC_LCTL, KC_GRV, KC_BSLS, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_QUOT, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT \ ), /* META * ,------------------------------------------------. ,------------------------------------------------. - * | 1 | 2 | 3 | 4 | 5 | 6 | [ | | ] | 7 | 8 | 9 | 0 | - | ^ | + * | Reset| 1 | 2 | 3 | 4 | 5 | [ | | ] | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+------+------| |-------------+------+------+------+------+------| - * | Alt | F1 | |Muhen | Henk | | ( | | ) | Left | Down | Up |Right | | | + * | Del | F1 | |Muhen | Henk | | | | Left | Down | Up |Right | | | Enter| * |------+------+------+------+------+------+------| |------|------+------+------+------+------+------| - * | Sft | F2 | F3 | F4 | F5 | F6 | { | | } | F7 | F8 | F9 | F10 | F11 |\/Sft | + * | SYMB | F2 | F3 | F4 | F5 | F6 | { | | } | F7 | F8 | F9 | F10 | F11 | F12 | * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - * | Ctrl | GUI | App |PrtSc |ESC/ |Space/|Tab/ | |Back |Enter/| Del |Reset |=>GAME|=>SYMB| \ | - * | | | | |~SYMB |RCtrl |Shift | |Space |~META | | | | | | + * | META | LCtrl| ` | \ | LAlt | LGUI |Space | |Space | ' | - | = | | | | * `------------------------------------------------' `------------------------------------------------' */ [META] = KEYMAP( \ - 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_F1, XXXXXXX, KC_MHEN, KC_HENK, XXXXXXX, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, \ - _______, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, SFT_T(KC_RO), \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, _______ \ + RESET, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LBRC, KC_RBRC, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \ + _______, KC_F1, XXXXXXX, KC_MHEN, KC_HENK, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, _______, \ + _______, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, S(KC_LBRC), S(KC_RBRC), KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX \ ), /* SYMB * ,------------------------------------------------. ,------------------------------------------------. - * | ! | " | # | $ | % | & | [ | | ] | ' | ( | ) | ~ | = | ~ | + * | ESC | ! | @ | # | $ | % | [ | | ] | ^ | & | * | ( | ) | Bksp | * |------+------+------+------+------+------+------| |-------------+------+------+------+------+------| - * | Alt | | | | | | ( | | ) | | | | | + | * | + * | Del | | | | | | ( | | ) | | | | | | Enter| * |------+------+------+------+------+------+------| |------|------+------+------+------+------+------| - * | Sft | | | | | | { | | } | | | < | > | ? | \ | + * | SYMB | | | | | | { | | } | | | | | UP | Sft | * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - * | Ctrl | GUI | App |PrtSc |ESC/ |Space/|Tab/ | |Back |Enter/| Del |PrtSc |=>GAME|=>SYMB| \ | - * | | | | |~SYMB |RCtrl |Shift | |Space |~META | | | | | | + * | META | LCtrl| ` | \ | LAlt | LGUI |Space | |Space | ' | - | = | LEFT | DOWN | RIGHT| * `------------------------------------------------' `------------------------------------------------' */ [SYMB] = KEYMAP( \ - S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), _______, _______, S(KC_7), S(KC_8), S(KC_9), S(KC_0), S(KC_MINS), S(KC_EQL), \ - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, S(KC_SCLN), S(KC_QUOT), \ - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, S(KC_COMM), S(KC_DOT), S(KC_SLSH), S(KC_RO), \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ -), - -/* GAME - * ,------------------------------------------------. ,------------------------------------------------. - * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | @ | - * |------+------+------+------+------+------+------| |-------------+------+------+------+------+------| - * | Alt | A | S | D | F | G | ( | | ) | H | J | K | L | ; | : | - * |------+------+------+------+------+------+------| |------|------+------+------+------+------+------| - * | Sft | Z | X | C | V | B | { | | } | N | M | , | . | / |\/Sft | - * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - * | Ctrl | GUI | App |PrtSc | ESC |Space |Tab | |Back |Enter | Del |PrtSc |=>GAME|=>SYMB| \ | - * | | | | | | | | |Space | | | | | | | - * `------------------------------------------------' `------------------------------------------------' - */ -[GAME] = KEYMAP( \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_RBRC, KC_BSLS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, \ - KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, S(KC_8), S(KC_9), KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, S(KC_RBRC), S(KC_BSLS), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_RO), \ - KC_LCTRL, KC_LGUI, KC_APP, KC_PSCR, KC_ESC, KC_SPC, KC_TAB, KC_BSPC, KC_ENT, KC_DELT, KC_PSCR, _______, _______, KC_JYEN \ + _______, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), KC_LBRC, KC_RBRC, S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), _______, \ + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, S(KC_9), S(KC_0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, \ + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, S(KC_LBRC), S(KC_RBRC), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ ) - }; diff --git a/keyboards/ergo42/rev1/config.h b/keyboards/ergo42/rev1/config.h index 51cff095c7c7..1a674a85862e 100644 --- a/keyboards/ergo42/rev1/config.h +++ b/keyboards/ergo42/rev1/config.h @@ -43,7 +43,7 @@ along with this program. If not, see . #define CATERINA_BOOTLOADER /* define tapping term */ -#define TAPPING_TERM 120 +#define TAPPING_TERM 100 /* define if matrix has ghost */ //#define MATRIX_HAS_GHOST From 1806509ad5d34d6eabf2968097d6f68f048fc761 Mon Sep 17 00:00:00 2001 From: hdbx <38972365+hdbx@users.noreply.github.com> Date: Sat, 5 May 2018 02:27:00 +0900 Subject: [PATCH 337/578] Add new keymap for Ergo42 (#2891) * Add Ergo42 keymaps for JIS layout --- keyboards/ergo42/keymaps/hdbx/config.h | 48 ++++++ keyboards/ergo42/keymaps/hdbx/keymap.c | 188 ++++++++++++++++++++++++ keyboards/ergo42/keymaps/hdbx/readme.md | 71 +++++++++ keyboards/ergo42/keymaps/hdbx/rules.mk | 5 + 4 files changed, 312 insertions(+) create mode 100644 keyboards/ergo42/keymaps/hdbx/config.h create mode 100644 keyboards/ergo42/keymaps/hdbx/keymap.c create mode 100644 keyboards/ergo42/keymaps/hdbx/readme.md create mode 100644 keyboards/ergo42/keymaps/hdbx/rules.mk diff --git a/keyboards/ergo42/keymaps/hdbx/config.h b/keyboards/ergo42/keymaps/hdbx/config.h new file mode 100644 index 000000000000..39be7526ae7d --- /dev/null +++ b/keyboards/ergo42/keymaps/hdbx/config.h @@ -0,0 +1,48 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#define TAPPING_TERM 120 +#define TAPPING_TOGGLE 3 + +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_SLEEP +#define RGBLED_NUM 14 +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +#endif diff --git a/keyboards/ergo42/keymaps/hdbx/keymap.c b/keyboards/ergo42/keymaps/hdbx/keymap.c new file mode 100644 index 000000000000..29a419bce1bd --- /dev/null +++ b/keyboards/ergo42/keymaps/hdbx/keymap.c @@ -0,0 +1,188 @@ +#include "ergo42.h" +#include "action_layer.h" +#include "eeconfig.h" +#include "keymap_jp.h" // qmk_firmware-master/quantum/keymap_extras/keymap_jp.h {L[{[hݒp +#include // macro sendstring for jis keyboard }N񑗐Mɓ{L[{[hݒł̕ + +extern keymap_config_t keymap_config; + +#define _QWERTY 0 +#define _LOWER 1 +#define _RAISE 2 +#define _GAME 3 +#define _ADJUST 4 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + MCR1, + MCR2, + MCR3, + DYNAMIC_MACRO_RANGE, + WN_SCLN, // ^bvJIŚu:v VtgJIŚu;v (Windows) +}; + +// Use Dynamic macro +#include "dynamic_macro.h" + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO +#define KC_LOWR LT(_LOWER, KC_MHEN) // ^bvŖϊ z[hLower +#define KC_RASE LT(_RAISE, KC_HENK) // ^bvŕϊ z[hRaise +#define KC_ALPS LALT(KC_PSCR) // Alt + PrintScreen +#define KC_LSLP MT(MOD_LSFT, JP_LPRN) // ^bv( z[hōShift +#define KC_RSRP MT(MOD_RSFT, JP_RPRN) // ^bv) z[hʼnEShift +#define KC_ALTB MT(MOD_LALT, KC_TAB) // ^bvTAB z[hōALT +#define KC_ESCA LT(_ADJUST,KC_ESC) // ^bvESC z[hADJUSTC[on + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* QWERTY + * ,-------------------------------------------------------. ,-------------------------------------------------------. + * |Tab/Alt| Q | W | E | R | T | - | | ~ | Y | U | I | O | P | BSPC | + * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + * | Ctrl | A | S | D | F | G | [ | | ] | H | J | K | L | : | ' | + * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + * | (/Sft | Z | X | C | V | B | F2 | | Home | N | M | , | . | / | )/Sft | + * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + * | TT | GUI | \ | Esc/ | LOWER | Enter | Del | | End | Space | RAISE | Left | Down | Up | Right | + * |(_GAME)| | |_ADJUST| ϊ| | | | | | ϊ | | | | | + * `-------------------------------------------------------' `-------------------------------------------------------' + */ + +[_QWERTY] = KEYMAP( \ + KC_ALTB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MINS, JP_TILD, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, JP_LBRC, JP_RBRC, KC_H, KC_J, KC_K, KC_L, WN_SCLN, JP_QUOT, \ + KC_LSLP, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F2, KC_HOME, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSRP, \ + TT(_GAME),KC_LGUI, JP_YEN, KC_ESCA, KC_LOWR, KC_ENT, KC_DEL, KC_END, KC_SPC, KC_RASE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +/* LOWER + * ,-------------------------------------------------------. ,-------------------------------------------------------. + * |Tab/Alt| 1 | 2 | 3 | 4 | 5 | 6 | | Esc | 7 | 8 | 9 | O | = | BSPC | + * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + * | Ctrl | F1 | F2 | F3 | F4 | F5 | F6 | | F2 | 4 | 5 | 6 | - | / | Enter | + * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + * | Shift | F7 | F8 | F9 | F10 | F11 | F12 | | Home | 1 | 2 | 3 | + | * | Shift | + * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + * |XXXXXXX| GUI |XXXXXXX| Esc | | Enter | Del | | End | 0 | . | Left | Down | Up | Right | + * `-------------------------------------------------------' `-------------------------------------------------------' + */ + +[_LOWER] = KEYMAP( \ + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_ESC, KC_7, KC_8, KC_9, KC_0, JP_EQL, _______, \ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F2, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PSLS, KC_ENT, \ + KC_LSFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PAST, KC_RSFT, \ + _______, _______, XXXXXXX, KC_ESC, _______, _______, _______, _______, KC_P0, KC_PDOT, _______, _______, _______, _______ \ +), + +/* RAISE + * ,-------------------------------------------------------. ,-------------------------------------------------------. + * |Tab/Alt| ! | @ | # | $ | % | _ | | ` | ^ | & | Ins | \ |PrntScr| BSPC | + * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + * | Ctrl |XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| { | | } | Left | Down | Up | Right | ; | " | + * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + * | Shift |XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| |PageUp |XXXXXXX|XXXXXXX| < | > | ? | Shift | + * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + * |XXXXXXX| GUI | | | Esc |XXXXXXX| Enter | Del | |PageDwn| Space | | Left | Down | Up | Right | + * `-------------------------------------------------------' `-------------------------------------------------------' + */ + +[_RAISE] = KEYMAP( \ + _______, KC_EXLM, JP_AT, KC_HASH, KC_DLR, KC_PERC, JP_UNDS, JP_GRV, JP_CIRC, JP_AMPR, KC_INS, JP_YEN, KC_ALPS, _______, \ + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, JP_LBRC, JP_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_SCLN, JP_DQT, \ + KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, XXXXXXX, XXXXXXX, KC_LT, KC_GT, KC_QUES, KC_RSFT, \ + _______, _______, KC_PIPE, KC_ESC, XXXXXXX, _______, _______, KC_PGDN, _______, _______, _______, _______, _______, _______ \ +), + +/* GAME + * ,-------------------------------------------------------. ,-------------------------------------------------------. + * | Esc | Q | W | E | R | T |PrntScr| | | | | | | | | + * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + * | Ctrl | A | S | D | F | G | F5 | | | | | | | | | + * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + * | Shift | Z | X | C | V | B | F2 | |PageUp | | | | | | | + * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + * | | GUI | Tab | Alt | Space | Enter | Del | |PageDwn| Space |XXXXXXX| Left | Down | Up | Right | + * `-------------------------------------------------------' `-------------------------------------------------------' + */ +[_GAME] = KEYMAP( \ + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_ALPS, _______, _______, _______, _______, _______, _______, _______, \ + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, JP_LBRC, _______, _______, _______, _______, _______, _______, _______, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F2, KC_PGUP, _______, _______, _______, _______, _______, _______, \ + _______, KC_LGUI, KC_TAB, KC_LALT, KC_SPC, KC_ENT, KC_DEL, KC_PGDN, _______, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +/* ADJUST + * ,-------------------------------------------------------. ,-------------------------------------------------------. + * |RGB_TOG| MCR1 | MCR2 | MCR3 |XXXXXXX|XXXXXXX|XXXXXXX| |XXXXXXX|PLAY_M1|PLAY_M2|REC_M1 |REC_M2 |STP_REC| BSPC | + * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + * | RESET |RGB_MOD|_PLAIN |_BREATH|RGB_HuI|RGB_SaI|RGB_VaI| |XXXXXXX|QWERTY |XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| + * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + * | Shift |_RAINBW|_SNAKE |_GRADIE|RGB_HuD|RGB_SaD|RGB_VaD| |XXXXXXX| M-PLAY|M-MUTE |VOL_DWN|VOL_UP |PREV_TR|NEXT_TR| + * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + * | DEBUG |XXXXXXX|XXXXXXX| |XXXXXXX|XXXXXXX|XXXXXXX| |XXXXXXX|XXXXXXX|XXXXXXX| Left | Down | Up | Right | + * `-------------------------------------------------------' `-------------------------------------------------------' + */ +[_ADJUST] = KEYMAP( \ + RGB_TOG, MCR1, MCR2, MCR3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, DYN_REC_START1, DYN_REC_START2, DYN_REC_STOP, KC_BSPC, \ + RESET, RGB_MOD, RGB_M_P, RGB_M_B, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, QWERTY, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + KC_LSFT, RGB_M_R, RGB_M_SN,RGB_M_G, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, \ + DEBUG, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +}; + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + static bool lshift = false; + if (!process_record_dynamic_macro(keycode, record)) { + return false; + } + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + persistent_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case WN_SCLN: // Ru;:v + if (record->event.pressed) { + lshift = keyboard_report->mods & MOD_BIT(KC_LSFT); + if (lshift) { + unregister_code(KC_LSFT); + register_code(JP_SCLN); + unregister_code(JP_SCLN); + } else { + register_code(JP_COLN); + unregister_code(JP_COLN); + } + } + return false; + break; + case MCR1: + if (record->event.pressed) { + SEND_STRING("hogehoge"); // M + } + return false; + break; + case MCR2: + if (record->event.pressed) { + SEND_STRING("hogehogehoge"SS_TAP(X_ENTER)); // M + } + return false; + break; + case MCR3: + if (record->event.pressed) { + SEND_STRING("hoge@hoge.co.jp"); // M + } + return false; + break; + } + return true; +} diff --git a/keyboards/ergo42/keymaps/hdbx/readme.md b/keyboards/ergo42/keymaps/hdbx/readme.md new file mode 100644 index 000000000000..2aeebfe41ca1 --- /dev/null +++ b/keyboards/ergo42/keymaps/hdbx/readme.md @@ -0,0 +1,71 @@ +# hdbx + +Designed for Japanese Keyboardists using JIS on the Ergo42. + +## Layer + +```` +QWERTY +,-------------------------------------------------------. ,-------------------------------------------------------. +|Tab/Alt| Q | W | E | R | T | - | | ~ | Y | U | I | O | P | BSPC | +|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| +| Ctrl | A | S | D | F | G | [ | | ] | H | J | K | L | : | ' | +|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| +| (/Sft | Z | X | C | V | B | F2 | | Home | N | M | , | . | / | )/Sft | +|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| +| TT | GUI | \ | Esc/ | LOWER | Enter | Del | | End | Space | RAISE | Left | Down | Up | Right | +|(_GAME)| | |_ADJUST| ϊ| | | | | | ϊ | | | | | +`-------------------------------------------------------' `-------------------------------------------------------' + */ + +LOWER +,-------------------------------------------------------. ,-------------------------------------------------------. +|Tab/Alt| 1 | 2 | 3 | 4 | 5 | 6 | | Esc | 7 | 8 | 9 | O | = | BSPC | +|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| +| Ctrl | F1 | F2 | F3 | F4 | F5 | F6 | | F2 | 4 | 5 | 6 | - | / | Enter | +|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| +| Shift | F7 | F8 | F9 | F10 | F11 | F12 | | Home | 1 | 2 | 3 | + | * | Shift | +|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| +|XXXXXXX| GUI |XXXXXXX| Esc | | Enter | Del | | End | 0 | . | Left | Down | Up | Right | +`-------------------------------------------------------' `-------------------------------------------------------' + */ + +RAISE +,-------------------------------------------------------. ,-------------------------------------------------------. +|Tab/Alt| ! | @ | # | $ | % | _ | | ` | ^ | & | Ins | \ |PrntScr| BSPC | +|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| +| Ctrl |XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| { | | } | Left | Down | Up | Right | ; | " | +|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| +| Shift |XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| |PageUp |XXXXXXX|XXXXXXX| < | > | ? | Shift | +|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| +|XXXXXXX| GUI | | | Esc |XXXXXXX| Enter | Del | |PageDwn| Space | | Left | Down | Up | Right | +`-------------------------------------------------------' `-------------------------------------------------------' + */ + +GAME +,-------------------------------------------------------. ,-------------------------------------------------------. +| Esc | Q | W | E | R | T |PrntScr| | | | | | | | | +|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| +| Ctrl | A | S | D | F | G | F5 | | | | | | | | | +|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| +| Shift | Z | X | C | V | B | F2 | |PageUp | | | | | | | +|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| +| | GUI | Tab | Alt | Space | Enter | Del | |PageDwn| Space |XXXXXXX| Left | Down | Up | Right | +`-------------------------------------------------------' `-------------------------------------------------------' + */ + +ADJUST +,-------------------------------------------------------. ,-------------------------------------------------------. +|RGB_TOG| MCR1 | MCR2 | MCR3 |XXXXXXX|XXXXXXX|XXXXXXX| |XXXXXXX|PLAY_M1|PLAY_M2|REC_M1 |REC_M2 |STP_REC| BSPC | +|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| +| RESET |RGB_MOD|_PLAIN |_BREATH|RGB_HuI|RGB_SaI|RGB_VaI| |XXXXXXX|QWERTY |XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| +|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| +| Shift |_RAINBW|_SNAKE |_GRADIE|RGB_HuD|RGB_SaD|RGB_VaD| |XXXXXXX| M-PLAY|M-MUTE |VOL_DWN|VOL_UP |PREV_TR|NEXT_TR| +|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| +| DEBUG |XXXXXXX|XXXXXXX| |XXXXXXX|XXXXXXX|XXXXXXX| |XXXXXXX|XXXXXXX|XXXXXXX| Left | Down | Up | Right | +`-------------------------------------------------------' `-------------------------------------------------------' +```` + +## Notes + +Supports RGB Underglow and Dynamic Macros. diff --git a/keyboards/ergo42/keymaps/hdbx/rules.mk b/keyboards/ergo42/keymaps/hdbx/rules.mk new file mode 100644 index 000000000000..1e5761278801 --- /dev/null +++ b/keyboards/ergo42/keymaps/hdbx/rules.mk @@ -0,0 +1,5 @@ +RGBLIGHT_ENABLE = yes + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif From e6be4484e9afe190246d17dd2f2dc3d688ac709f Mon Sep 17 00:00:00 2001 From: Daniel Gordon Date: Fri, 4 May 2018 12:39:57 -0500 Subject: [PATCH 338/578] Update to tap dance docs (#2895) * Added more comments * Documentation for 'quad function' tap dance now suggests to use the user's directory, and explains how to do so. --- docs/feature_tap_dance.md | 122 ++++++++++++++++++++++++++++++++------ 1 file changed, 104 insertions(+), 18 deletions(-) diff --git a/docs/feature_tap_dance.md b/docs/feature_tap_dance.md index 0521826b25ff..141c3108d063 100644 --- a/docs/feature_tap_dance.md +++ b/docs/feature_tap_dance.md @@ -179,42 +179,124 @@ Below is a specific example: * Double Tap = Send `Escape` * Double Tap and Hold = Send `Alt` -The following example can be easily expanded to more than 4 quite easily: +## Setup + +You will need a few things that can be used for 'Quad Function Tap-Dance'. The suggested setup is to create a user directory for yourself. This directory will contain rules.mk `.c` and `.h`. This directory should be called ``, and located in the top level `users` directory. There should already be a few examples to look at there. + +### In `/qmk_firmware/users//rules.mk` + +Put the following: ```c -//**************** Definitions needed for quad function to work *********************// -//Enums used to clearly convey the state of the tap dance +TAP_DANCE_ENABLE = yes +SRC += your_name.c +``` + +Pretty simple. It is a nice way to keep some rules common on all your keymaps. + + +### In `/qmk_firmware/users//.h` + +You will need a few things in this file: + +```c +#ifndef YOUR_NAME +#define YOUR_NAME + +#include "quantum.h" +#include "process_keycode/process_tap_dance.h" + + +typedef struct { + bool is_press_action; + int state; +} xtap; + enum { SINGLE_TAP = 1, SINGLE_HOLD = 2, DOUBLE_TAP = 3, DOUBLE_HOLD = 4, - DOUBLE_SINGLE_TAP = 5 //send SINGLE_TAP twice - NOT DOUBLE_TAP - // Add more enums here if you want for triple, quadruple, etc. + DOUBLE_SINGLE_TAP = 5, //send two single taps + TRIPLE_TAP = 6, + TRIPLE_HOLD = 7 }; -typedef struct { - bool is_press_action; - int state; -} tap; +//Tap dance enums +enum { + CTL_X = 0, + SOME_OTHER_DANCE +} + +int cur_dance (qk_tap_dance_state_t *state); + +//for the x tap dance. Put it here so it can be used in any keymap +void x_finished (qk_tap_dance_state_t *state, void *user_data); +void x_reset (qk_tap_dance_state_t *state, void *user_data); +``` + +### In `/qmk_firmware/users//.c` +And then in your user's `.c` file you implement the functions above: + +```c +#include "gordon.h" +#include "quantum.h" +#include "action.h" +#include "process_keycode/process_tap_dance.h" + +/* Return an integer that corresponds to what kind of tap dance should be executed. + * + * How to figure out tap dance state: interrupted and pressed. + * + * Interrupted: If the state of a dance dance is "interrupted", that means that another key has been hit + * under the tapping term. This is typically indicitive that you are trying to "tap" the key. + * + * Pressed: Whether or not the key is still being pressed. If this value is true, that means the tapping term + * has ended, but the key is still being pressed down. This generally means the key is being "held". + * + * One thing that is currenlty not possible with qmk software in regards to tap dance is to mimic the "permissive hold" + * feature. In general, advanced tap dances do not work well if they are used with commonly typed letters. + * For example "A". Tap dances are best used on non-letter keys that are not hit while typing letters. + * + * Good places to put an advanced tap dance: + * z,q,x,j,k,v,b, any function key, home/end, comma, semi-colon + * + * Criteria for "good placement" of a tap dance key: + * Not a key that is hit frequently in a sentence + * Not a key that is used frequently to double tap, for example 'tab' is often double tapped in a terminal, or + * in a web form. So 'tab' would be a poor choice for a tap dance. + * Letters used in common words as a double. For example 'p' in 'pepper'. If a tap dance function existed on the + * letter 'p', the word 'pepper' would be quite frustating to type. + * + * For the third point, there does exist the 'DOUBLE_SINGLE_TAP', however this is not fully tested + * + */ int cur_dance (qk_tap_dance_state_t *state) { if (state->count == 1) { - //If count = 1, and it has been interrupted - it doesn't matter if it is pressed or not: Send SINGLE_TAP - if (state->interrupted || state->pressed==0) return SINGLE_TAP; + if (state->interrupted || !state->pressed) return SINGLE_TAP; + //key has not been interrupted, but they key is still held. Means you want to send a 'HOLD'. else return SINGLE_HOLD; } - //If count = 2, and it has been interrupted - assume that user is trying to type the letter associated - //with single tap. In example below, that means to send `xx` instead of `Escape`. else if (state->count == 2) { + /* + * DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap + * action when hitting 'pp'. Suggested use case for this return value is when you want to send two + * keystrokes of the key, and not the 'double tap' action/macro. + */ if (state->interrupted) return DOUBLE_SINGLE_TAP; else if (state->pressed) return DOUBLE_HOLD; else return DOUBLE_TAP; } - else return 6; //magic number. At some point this method will expand to work for more presses + //Assumes no one is trying to type the same letter three times (at least not quickly). + //If your tap dance key is 'KC_W', and you want to type "www." quickly - then you will need to add + //an exception here to return a 'TRIPLE_SINGLE_TAP', and define that enum just like 'DOUBLE_SINGLE_TAP' + if (state->count == 3) { + if (state->interrupted || !state->pressed) return TRIPLE_TAP; + else return TRIPLE_HOLD; + } + else return 8; //magic number. At some point this method will expand to work for more presses } -//**************** Definitions needed for quad function to work *********************// - //instanalize an instance of 'tap' for the 'x' tap dance. static tap xtap_state = { .is_press_action = true, @@ -245,6 +327,10 @@ void x_reset (qk_tap_dance_state_t *state, void *user_data) { } xtap_state.state = 0; } + +qk_tap_dance_action_t tap_dance_actions[] = { + [X_CTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL,x_finished, x_reset) +}; ``` -And then simply add this to your list of tap dance functions: -`[X_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, x_finished, x_reset)` + +And then simply use TD(X_CTL) anywhere in your keymap. From 72ea1fd972540a6c5013b9e23d37829105b44b33 Mon Sep 17 00:00:00 2001 From: zwnk Date: Fri, 4 May 2018 14:40:40 -0300 Subject: [PATCH 339/578] layer double tapping fixed (#2885) * impstyle keymap added * impstyle keymap updated * mouse layer added to impstyle keymap * keymap updated * fixes * impsytle layout: mouse layer added * comments added * comments added * bugfix * typo fixed * double tap fixed * double tap fixed * still testing double tab * double tab mouse layer is working * README added * README updated --- keyboards/iris/keymaps/impstyle/README.md | 12 ++++++++++++ keyboards/iris/keymaps/impstyle/config.h | 2 ++ keyboards/iris/keymaps/impstyle/keymap.c | 16 +++++++++++++--- 3 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 keyboards/iris/keymaps/impstyle/README.md diff --git a/keyboards/iris/keymaps/impstyle/README.md b/keyboards/iris/keymaps/impstyle/README.md new file mode 100644 index 000000000000..b341f2d86817 --- /dev/null +++ b/keyboards/iris/keymaps/impstyle/README.md @@ -0,0 +1,12 @@ +## impstyle keymap + +the keymap is based on lewisriddens keymap but i changed some stuff. + +i removed: +>RGB backgoundlighting layer and functionallity + +i added: +>mouse layer + +the qwerty, lower and raise layer are more or less the same. here and there some keys are different. +take a look at the keymap.c \ No newline at end of file diff --git a/keyboards/iris/keymaps/impstyle/config.h b/keyboards/iris/keymaps/impstyle/config.h index 0e01f5d562f5..6fc14133f8de 100644 --- a/keyboards/iris/keymaps/impstyle/config.h +++ b/keyboards/iris/keymaps/impstyle/config.h @@ -37,6 +37,8 @@ along with this program. If not, see . #define MOUSEKEY_WHEEL_MAX_SPEED 8 #define MOUSEKEY_WHEEL_TIME_TO_MAX 40 +#define TAPPING_TOGGLE 2 // double tab + #include "../../config.h" #endif diff --git a/keyboards/iris/keymaps/impstyle/keymap.c b/keyboards/iris/keymaps/impstyle/keymap.c index be5ee8c758c9..d061a850a1dd 100644 --- a/keyboards/iris/keymaps/impstyle/keymap.c +++ b/keyboards/iris/keymaps/impstyle/keymap.c @@ -9,7 +9,6 @@ extern keymap_config_t keymap_config; #define _LOWER 1 #define _RAISE 2 #define _MOUSE 3 -#define TAPPING_TOGGLE 2 // double tab enum custom_keycodes { QWERTY = SAFE_RANGE, @@ -89,9 +88,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______,_______,_______,_______,_______,_______, KC_PLUS,_______,_______,_______,_______,_______,KC_VOLD, _______ ,_______,_______, KC_EQL,_______,_______ ), - + // MOUSE LAYER + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + // , , , , , , , , , , , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + // , ,MS_UP, , , , MS_WH_UP, , , , , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + // ,MS_LEFT,MS_DOWN,MS_RGHT, ,, MS_WH_DN,MS_BT1,MS_BT2,MS_BT3, , , + //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + // , , , , , , , , , , ,MS_ACC0,MS_ACC1MS_ACC2 + //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + // , , , , , + // `----+----+----' `----+----+----' [_MOUSE] = LAYOUT( - KC_F12 , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 ,KC_F10 ,KC_F11 , + _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,_______ ,_______ , _______ ,_______, KC_MS_UP ,_______,_______,_______, KC_MS_WH_UP,_______,_______,_______ ,_______,_______, _______ ,KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT,_______,_______, KC_MS_WH_DOWN,KC_MS_BTN1,KC_MS_BTN2,KC_MS_BTN3,_______,_______, _______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,KC_MS_ACCEL0,KC_MS_ACCEL1,KC_MS_ACCEL2, From 1ef819ba96b64cf569e893791f16a377dfb86888 Mon Sep 17 00:00:00 2001 From: Oscillope Date: Fri, 4 May 2018 14:10:24 -0400 Subject: [PATCH 340/578] Add "oscillope" layout for the Orthodox (#2893) * Initial layout for the Orthodox * Added handy programming macros * Swapped raise/lower and os/alt to make it easier to reach the more used keys. --- keyboards/orthodox/keymaps/oscillope/config.h | 41 +++++++ keyboards/orthodox/keymaps/oscillope/keymap.c | 101 ++++++++++++++++++ keyboards/orthodox/keymaps/oscillope/rules.mk | 3 + 3 files changed, 145 insertions(+) create mode 100644 keyboards/orthodox/keymaps/oscillope/config.h create mode 100644 keyboards/orthodox/keymaps/oscillope/keymap.c create mode 100644 keyboards/orthodox/keymaps/oscillope/rules.mk diff --git a/keyboards/orthodox/keymaps/oscillope/config.h b/keyboards/orthodox/keymaps/oscillope/config.h new file mode 100644 index 000000000000..3b1fd5000786 --- /dev/null +++ b/keyboards/orthodox/keymaps/oscillope/config.h @@ -0,0 +1,41 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2017 Art Ortenburger + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +/* Use I2C or Serial, not both */ + +// #define USE_SERIAL +#define USE_I2C + +/* Select hand configuration */ + +// #define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#define TAPPING_TERM 200 +#define TAPPING_TOGGLE 3 + +#endif diff --git a/keyboards/orthodox/keymaps/oscillope/keymap.c b/keyboards/orthodox/keymaps/oscillope/keymap.c new file mode 100644 index 000000000000..28fea02c4d45 --- /dev/null +++ b/keyboards/orthodox/keymaps/oscillope/keymap.c @@ -0,0 +1,101 @@ +/* +This is the keymap for the keyboard + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2017 Art Ortenburger + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "orthodox.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _LOWER 1 +#define _RAISE 2 +#define _NAV 3 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + NAV, + CC_ARRW, + CC_PRN, + CC_BRC, + CC_CBR, +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +#define NAV_TAP LT(_NAV, KC_SPC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = KEYMAP( \ + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, \ + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, TT(_RAISE), TT(_LOWER), TT(_LOWER), TT(_RAISE), KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \ + KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BSPC, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, NAV_TAP, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT \ + ), + + [_LOWER] = KEYMAP( \ + 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, _______, _______, CC_PRN, CC_BRC, CC_CBR, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, \ + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU \ + ), + + [_RAISE] = KEYMAP( \ + KC_CAPS, KC_AMPR, KC_ASTR, KC_UNDS, KC_LPRN, KC_RPRN, KC_7, KC_8, KC_9, KC_EQL, _______, _______, \ + _______, KC_DLR, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, _______, _______, _______, _______, KC_4, KC_5, KC_6, KC_MINS, KC_PLUS, _______, \ + CC_ARRW, KC_EXLM, KC_AT, KC_HASH, KC_LCBR, KC_RCBR, _______, _______, _______, _______, _______, KC_0, KC_1, KC_2, KC_3, KC_DOT, KC_BSLS, KC_PIPE \ + ), + + [_NAV] = KEYMAP( \ + _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, \ + _______, _______, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ) + + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch(keycode) { + case CC_ARRW: + SEND_STRING("->"); + return false; + case CC_PRN: + SEND_STRING("()"SS_TAP(X_LEFT)); + return false; + case CC_BRC: + SEND_STRING("[]"SS_TAP(X_LEFT)); + return false; + case CC_CBR: + SEND_STRING("{}"SS_TAP(X_LEFT)); + return false; + } + } + return true; +} diff --git a/keyboards/orthodox/keymaps/oscillope/rules.mk b/keyboards/orthodox/keymaps/oscillope/rules.mk new file mode 100644 index 000000000000..fb77881d96d6 --- /dev/null +++ b/keyboards/orthodox/keymaps/oscillope/rules.mk @@ -0,0 +1,3 @@ +SUBPROJECT_rev1 = no +COMMAND_ENABLE = no +MOUSEKEY_ENABLE = no From 2e88f7767569d83117ca2448b370bb3f7f50cafe Mon Sep 17 00:00:00 2001 From: Xerpocalypse <31947786+Xerpocalypse@users.noreply.github.com> Date: Fri, 4 May 2018 18:25:12 -0700 Subject: [PATCH 341/578] Feature/ca66 json (#2897) * Made an appropriate KLE and converted it. For use with the CA66 on qmk.fm * Changed KEYMAP to LAYOUT to match new info.json * Changed #include and LAYOUT for new info.json --- keyboards/ca66/ca66.h | 2 +- keyboards/ca66/info.json | 12 ++++++++++++ keyboards/ca66/keymaps/default/keymap.c | 6 +++--- 3 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 keyboards/ca66/info.json diff --git a/keyboards/ca66/ca66.h b/keyboards/ca66/ca66.h index 9e3638aac317..0f91a1238df5 100644 --- a/keyboards/ca66/ca66.h +++ b/keyboards/ca66/ca66.h @@ -3,7 +3,7 @@ #include "quantum.h" -#define KEYMAP( \ +#define LAYOUT( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K114, \ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K214, \ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K314, \ diff --git a/keyboards/ca66/info.json b/keyboards/ca66/info.json new file mode 100644 index 000000000000..906709ef1b88 --- /dev/null +++ b/keyboards/ca66/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "CA66", + "url": "", + "maintainer": "qmk", + "width": 16.5, + "height": 5.25, + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.5, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15.5, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15.5, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":15.5, "y":3}, {"x":14.25, "y":3.25}, {"x":0, "y":4, "w":1.25}, {"x":2.25, "y":4}, {"x":3.25, "y":4, "w":1.25}, {"x":4.5, "y":4, "w":2.25}, {"x":6.75, "y":4, "w":2.75}, {"x":9.5, "y":4, "w":1.25}, {"x":10.75, "y":4}, {"x":11.75, "y":4, "w":1.25}, {"x":13.25, "y":4.25}, {"x":14.25, "y":4.25}, {"x":15.25, "y":4.25}] + } + } +} diff --git a/keyboards/ca66/keymaps/default/keymap.c b/keyboards/ca66/keymaps/default/keymap.c index 7feb0afb9f5b..5a3c4c86231b 100644 --- a/keyboards/ca66/keymaps/default/keymap.c +++ b/keyboards/ca66/keymaps/default/keymap.c @@ -1,15 +1,15 @@ -#include "ca66.h" +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - KEYMAP( + LAYOUT( KC_GESC, 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_BSPC, KC_BSPC, KC_PSCR, 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_BSLS, KC_DEL, MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, KC_LSFT, KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, LT(1, KC_SPC), KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - KEYMAP( + LAYOUT( KC_GRV, 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_DEL, KC_DEL, RGB_TOG, KC_CAPS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, RGB_MOD, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, RGB_VAI, KC_INS, KC_HOME, From 5170398479c9e9ed36ff2966083c50e4808725be Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Fri, 4 May 2018 18:30:56 -0700 Subject: [PATCH 342/578] QMK Configurator support for Sentraq S60-x (#2889) * change to QMK_KEYBOARD_H * add info.json for QMK Configurator Support --- keyboards/s60_x/default/default.h | 4 ++-- keyboards/s60_x/default/info.json | 12 ++++++++++++ keyboards/s60_x/keymaps/amnesia0287/keymap.c | 10 +++++----- keyboards/s60_x/keymaps/ansi_qwertz/keymap.c | 8 ++++---- keyboards/s60_x/keymaps/bluebear/keymap.c | 14 +++++++------- keyboards/s60_x/keymaps/custom/keymap.c | 2 +- keyboards/s60_x/keymaps/dbroqua/keymap.c | 8 ++++---- keyboards/s60_x/keymaps/default/keymap.c | 2 +- keyboards/s60_x/keymaps/default_rgb/keymap.c | 6 +++--- keyboards/s60_x/keymaps/hasu/keymap.c | 2 +- keyboards/s60_x/keymaps/hhkb/keymap.c | 2 +- keyboards/s60_x/keymaps/iso/keymap.c | 2 +- keyboards/s60_x/keymaps/iso_rgb/keymap.c | 6 +++--- keyboards/s60_x/keymaps/jpec/keymap.c | 2 +- keyboards/s60_x/keymaps/plain/keymap.c | 2 +- keyboards/s60_x/keymaps/poker/keymap.c | 2 +- keyboards/s60_x/keymaps/poker_bit/keymap.c | 2 +- keyboards/s60_x/keymaps/poker_set/keymap.c | 2 +- keyboards/s60_x/keymaps/spacefn/keymap.c | 2 +- keyboards/s60_x/rgb/info.json | 12 ++++++++++++ keyboards/s60_x/rgb/rgb.h | 4 ++-- 21 files changed, 65 insertions(+), 41 deletions(-) create mode 100644 keyboards/s60_x/default/info.json create mode 100644 keyboards/s60_x/rgb/info.json diff --git a/keyboards/s60_x/default/default.h b/keyboards/s60_x/default/default.h index 027bf39f04e8..f0797835e270 100644 --- a/keyboards/s60_x/default/default.h +++ b/keyboards/s60_x/default/default.h @@ -39,13 +39,13 @@ along with this program. If not, see . K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ K40, K41, K42, K46, K4A, K4B, K4C, K4D \ ) { \ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E }, \ { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, KC_NO } \ } diff --git a/keyboards/s60_x/default/info.json b/keyboards/s60_x/default/info.json new file mode 100644 index 000000000000..d4473a515f67 --- /dev/null +++ b/keyboards/s60_x/default/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "S60-X", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + } + } +} diff --git a/keyboards/s60_x/keymaps/amnesia0287/keymap.c b/keyboards/s60_x/keymaps/amnesia0287/keymap.c index 8cbbb7bf94bd..c17c9e744926 100644 --- a/keyboards/s60_x/keymaps/amnesia0287/keymap.c +++ b/keyboards/s60_x/keymaps/amnesia0287/keymap.c @@ -1,4 +1,4 @@ -#include "s60_x.h" +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -21,28 +21,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_NO, KC_BSPC, \ 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_BSLS, \ 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 , \ - KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, FN_HLb, \ + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, FN_HLb, \ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_RALT, FN_HLa, KC_RCTL ), [_HLa] = LAYOUT( KC_GRV, 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_TRNS, KC_DEL, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [_HLb] = LAYOUT( KC_GRV, 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_TRNS, KC_DEL, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [_HL] = LAYOUT( RGB_TOG, RGB_M_P, RGB_RMOD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, BL_BRTG, BL_OFF, BL_STEP, BL_ON, BL_DEC, BL_INC, KC_TRNS, LALT(KC_F4), RESET, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), }; diff --git a/keyboards/s60_x/keymaps/ansi_qwertz/keymap.c b/keyboards/s60_x/keymaps/ansi_qwertz/keymap.c index c8ad8ae33440..e4660e668876 100644 --- a/keyboards/s60_x/keymaps/ansi_qwertz/keymap.c +++ b/keyboards/s60_x/keymaps/ansi_qwertz/keymap.c @@ -14,7 +14,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "s60_x.h" +#include QMK_KEYBOARD_H //make keymap a little easier to read #define _______ KC_TRNS @@ -104,7 +104,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, KC_DEL, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ 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_NUHS, KC_ENT, \ - KC_LSFT, KC_NUBS, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_UP, KC_RSFT, \ + KC_LSFT, KC_NUBS, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, \ KC_FUNC, KC_LGUI, KC_LALT, KC_SPACEFN, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT ), @@ -125,7 +125,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_GMLK, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_GMLK, \ _______, KC_RSFT, _______, KC_SPC, _______, _______, _______, _______ ), @@ -147,7 +147,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, 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, RESET, \ _______, _______, KC_CM_W, KC_CM_E, KC_MPRV, KC_MPLY, KC_MNXT, KC_CM_U, KC_CM_I, KC_CM_O, KC_CM_P, KC_PSCR, KC_SLCK, KC_PAUS, \ _______, KC_CM_A, KC_CM_S, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, KC_CM_K, KC_CM_L, _______, _______, _______, KC_PENT, \ - _______, _______, KC_CM_Y, _______, KC_CM_C, MICMUTE, KC_CALC, KC_CM_N, KC_CM_M, _______, _______, _______, _______, KC_PGUP, KC_GMLK, \ + _______, _______, KC_CM_Y, _______, KC_CM_C, MICMUTE, KC_CALC, KC_CM_N, KC_CM_M, _______, _______, _______, KC_PGUP, KC_GMLK, \ _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END ), }; diff --git a/keyboards/s60_x/keymaps/bluebear/keymap.c b/keyboards/s60_x/keymaps/bluebear/keymap.c index ebb5382c9a4e..2ba29b09eee8 100644 --- a/keyboards/s60_x/keymaps/bluebear/keymap.c +++ b/keyboards/s60_x/keymaps/bluebear/keymap.c @@ -1,4 +1,4 @@ -#include "s60_x.h" +#include QMK_KEYBOARD_H // Keyboard Layers @@ -176,7 +176,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, \ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSPC, \ CTL_T(KC_ESC), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_NO, MT(MOD_RCTL, KC_ENT), \ - KC_LSPO, KC_NO, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_NO, KC_RSPC, KC_NO, \ + KC_LSPO, KC_NO, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSPC, KC_NO, \ MO(2), KC_LGUI, KC_LALT, LT(1, KC_SPACE), ALGR_T(KC_APP), KC_RGUI, OSM(MOD_LCTL | MOD_LSFT), OSM(MOD_LCTL | MOD_LALT) ), @@ -198,7 +198,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [ARROWFN] = LAYOUT( KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TO(3), TO(5), \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_UP, KC_NO, KC_NO, KC_NO, KC_INS, KC_DEL, \ - KC_CAPS, KC_HOME, KC_NO, KC_END, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_NO, KC_NO, KC_TRNS, \ + KC_CAPS, KC_HOME, KC_NO, KC_END, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_NO, KC_TRNS, \ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SPACE, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_TRNS, KC_NO, \ KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), @@ -223,7 +223,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RESET, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_NO, KC_NO, \ DEBUG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN1, KC_MS_UP, KC_BTN2, KC_WH_U, KC_NO, KC_NO, KC_NO, \ TFS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_WH_D, KC_BTN3, KC_NO, KC_TRNS, \ - MAGSYS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, \ + MAGSYS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_POWER, KC_TRNS, KC_TRNS, KC_NO, KC_NO ), @@ -246,7 +246,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TO(0), MI_CH_C, MI_CH_G, MI_CH_D, MI_CH_A, MI_CH_E, MI_CH_B, MI_CH_Gb, MI_CH_Db, MI_CH_Ab, MI_CH_Eb, MI_CH_Bb, MI_CH_F, KC_NO, TO(4), \ MI_OCTU, KC_NO, MI_Cs, MI_Ds, KC_NO, MI_Fs, MI_Gs, MI_As, KC_NO, MI_Cs_1, MI_Ds_1, KC_NO, KC_NO, KC_NO, \ MI_OCTD, MI_C, MI_D, MI_E, MI_F, MI_G, MI_A, MI_B, MI_C_1, MI_D_1, MI_E_1, MI_F_1, KC_NO, KC_NO, \ - MI_CH_Cm, KC_NO, MI_CH_Gm, MI_CH_Dm, MI_CH_Am, MI_CH_Em, MI_CH_Bm, MI_CH_Gbm, MI_CH_Dbm, MI_CH_Abm, MI_CH_Ebm, MI_CH_Bbm, KC_NO, MI_CH_Fm, KC_NO, \ + MI_CH_Cm, KC_NO, MI_CH_Gm, MI_CH_Dm, MI_CH_Am, MI_CH_Em, MI_CH_Bm, MI_CH_Gbm, MI_CH_Dbm, MI_CH_Abm, MI_CH_Ebm, MI_CH_Bbm, MI_CH_Fm, KC_NO, \ KC_NO, KC_NO, KC_NO, MI_ALLOFF, KC_NO, KC_NO, KC_NO, KC_NO ), @@ -269,7 +269,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TO(0), MI_CH_C, MI_CH_G, MI_CH_D, MI_CH_A, MI_CH_E, MI_CH_B, MI_CH_Gb, MI_CH_Db, MI_CH_Ab, MI_CH_Eb, MI_CH_Bb, MI_CH_F, TO(3), KC_NO, \ MI_OCTU, MI_CH_Cm, MI_CH_Gm, MI_CH_Dm, MI_CH_Am, MI_CH_Em, MI_CH_Bm, MI_CH_Gbm, MI_CH_Dbm, MI_CH_Abm, MI_CH_Ebm, MI_CH_Bbm, MI_CH_Fm, KC_NO, \ MI_OCTD, MI_CH_CDom7, MI_CH_GDom7, MI_CH_DDom7, MI_CH_ADom7, MI_CH_EDom7, MI_CH_BDom7, MI_CH_GbDom7, MI_CH_DbDom7, MI_CH_AbDom7, MI_CH_EbDom7, MI_CH_BbDom7, KC_NO, MI_CH_FDom7, \ - MI_CH_CDim7, KC_NO, MI_CH_GDim7, MI_CH_DDim7, MI_CH_ADim7, MI_CH_EDim7, MI_CH_BDim7, MI_CH_GbDim7, MI_CH_DbDim7, MI_CH_AbDim7, MI_CH_EbDim7, MI_CH_BbDim7, KC_NO, MI_CH_FDim7, KC_NO, \ + MI_CH_CDim7, KC_NO, MI_CH_GDim7, MI_CH_DDim7, MI_CH_ADim7, MI_CH_EDim7, MI_CH_BDim7, MI_CH_GbDim7, MI_CH_DbDim7, MI_CH_AbDim7, MI_CH_EbDim7, MI_CH_BbDim7, MI_CH_FDim7, KC_NO, \ KC_NO, KC_NO, KC_NO, MI_ALLOFF, KC_NO, KC_NO, KC_NO, KC_NO ), @@ -292,7 +292,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TO(0), MC_1, MC_2, MC_3, MC_4, MC_5, MC_6, MC_7, MC_8, MC_9, MC_0, KC_NO, KC_NO, KC_NO, KC_NO, \ KC_TAB, MC_APOS, MC_COMM, MC_DOT, MC_P, MC_Y, MC_F, MC_G, MC_C, MC_R, MC_L, MC_SLSH, MC_EQL, KC_BSPC, \ KC_NO, MC_A, MC_O, MC_E, MC_U, MC_I, MC_D, MC_H, MC_T, MC_N, MC_S, MC_MINS, KC_NO, KC_ENT, \ - MC_LSFT, KC_NO, MC_SCLN, MC_Q, MC_J, MC_K, MC_X, MC_B, MC_M, MC_W, MC_V, MC_Z, KC_NO, MC_RSFT, KC_NO, \ + MC_LSFT, KC_NO, MC_SCLN, MC_Q, MC_J, MC_K, MC_X, MC_B, MC_M, MC_W, MC_V, MC_Z, MC_RSFT, KC_NO, \ KC_NO, KC_NO, KC_NO, MC_SPACE, KC_NO, KC_NO, KC_NO, KC_NO ), diff --git a/keyboards/s60_x/keymaps/custom/keymap.c b/keyboards/s60_x/keymaps/custom/keymap.c index bb32837cf8b3..1130a04f24ec 100644 --- a/keyboards/s60_x/keymaps/custom/keymap.c +++ b/keyboards/s60_x/keymaps/custom/keymap.c @@ -1,4 +1,4 @@ -#include "s60_x.h" +#include QMK_KEYBOARD_H /* Main layer: Test layout, using all keys. diff --git a/keyboards/s60_x/keymaps/dbroqua/keymap.c b/keyboards/s60_x/keymaps/dbroqua/keymap.c index 6f9d33aae927..71cf93f0048e 100644 --- a/keyboards/s60_x/keymaps/dbroqua/keymap.c +++ b/keyboards/s60_x/keymaps/dbroqua/keymap.c @@ -1,4 +1,4 @@ -#include "s60_x.h" +#include QMK_KEYBOARD_H #define _DEFAULT 0 #define _FN 1 @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, KC_GRV, \ 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, \ 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_ENT, \ - KC_LSFT, ______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, ______, KC_RSFT, MO(_FN), \ + KC_LSFT, ______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), \ ______, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, ______, ______ \ ), @@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TG(_SFX),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, \ KC_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, ______, \ ______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT,______, ______, \ - ______, ______, KC_MPRV, KC_MPLY, KC_MNXT,______, ______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN,______, ______, ______, \ + ______, ______, KC_MPRV, KC_MPLY, KC_MNXT,______, ______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, ______, ______, \ ______, ______, ______, ______, KC_MSTP, ______, ______, ______ \ ), @@ -68,7 +68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ ______, BL_TOGG,BL_STEP,BL_DEC, BL_INC, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ ______, F(0), F(1), ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ - ______, ______, F(2), F(3), F(4), F(5), F(6), F(7), ______, ______, ______, ______, ______, ______, ______, \ + ______, ______, F(2), F(3), F(4), F(5), F(6), F(7), ______, ______, ______, ______, ______, ______, \ ______, ______, ______, ______, ______, ______, ______, ______ \ ) }; diff --git a/keyboards/s60_x/keymaps/default/keymap.c b/keyboards/s60_x/keymaps/default/keymap.c index 47ea2a4c1832..8fbe0044e9b2 100644 --- a/keyboards/s60_x/keymaps/default/keymap.c +++ b/keyboards/s60_x/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -#include "s60_x.h" +#include QMK_KEYBOARD_H /* 0: Main layer ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ diff --git a/keyboards/s60_x/keymaps/default_rgb/keymap.c b/keyboards/s60_x/keymaps/default_rgb/keymap.c index 7eefd7d7cd76..288104282e03 100644 --- a/keyboards/s60_x/keymaps/default_rgb/keymap.c +++ b/keyboards/s60_x/keymaps/default_rgb/keymap.c @@ -1,4 +1,4 @@ -#include "s60_x.h" +#include QMK_KEYBOARD_H /* 0: Main layer ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ @@ -19,7 +19,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT(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_NO, KC_BSPC, \ 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_BSLS, \ KC_CAPS, 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 , \ - KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO, \ + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, \ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_FN0, KC_APP, KC_RCTL), /* 1: Fn layer @@ -41,7 +41,7 @@ BL = Backlighting = In-Switch LED KC_GRV, 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_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, \ KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; diff --git a/keyboards/s60_x/keymaps/hasu/keymap.c b/keyboards/s60_x/keymaps/hasu/keymap.c index 6afdf5fd4ae1..624de48cca35 100644 --- a/keyboards/s60_x/keymaps/hasu/keymap.c +++ b/keyboards/s60_x/keymaps/hasu/keymap.c @@ -1,4 +1,4 @@ -#include "s60_x.h" +#include QMK_KEYBOARD_H /* * Hasu diff --git a/keyboards/s60_x/keymaps/hhkb/keymap.c b/keyboards/s60_x/keymaps/hhkb/keymap.c index 4807324d1518..60225db068ac 100644 --- a/keyboards/s60_x/keymaps/hhkb/keymap.c +++ b/keyboards/s60_x/keymaps/hhkb/keymap.c @@ -1,4 +1,4 @@ -#include "s60_x.h" +#include QMK_KEYBOARD_H /* * HHKB Layout diff --git a/keyboards/s60_x/keymaps/iso/keymap.c b/keyboards/s60_x/keymaps/iso/keymap.c index 5b34ded70eff..46e5a450d548 100644 --- a/keyboards/s60_x/keymaps/iso/keymap.c +++ b/keyboards/s60_x/keymaps/iso/keymap.c @@ -1,4 +1,4 @@ -#include "s60_x.h" +#include QMK_KEYBOARD_H /* 0: Main layer ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ diff --git a/keyboards/s60_x/keymaps/iso_rgb/keymap.c b/keyboards/s60_x/keymaps/iso_rgb/keymap.c index 00b197c9e7e5..d76055a82e7b 100644 --- a/keyboards/s60_x/keymaps/iso_rgb/keymap.c +++ b/keyboards/s60_x/keymaps/iso_rgb/keymap.c @@ -1,4 +1,4 @@ -#include "s60_x.h" +#include QMK_KEYBOARD_H /* 0: Main layer ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ @@ -19,7 +19,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT(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_NO, KC_BSPC, \ 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_NO, \ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT , \ - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO, \ + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, \ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_FN0, KC_APP, KC_RCTL), /* 1: Fn layer @@ -41,7 +41,7 @@ BL = Backlighting = In-Switch LED KC_GRV, 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_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, \ KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; diff --git a/keyboards/s60_x/keymaps/jpec/keymap.c b/keyboards/s60_x/keymaps/jpec/keymap.c index 85ad20e4e129..2bee19d15814 100644 --- a/keyboards/s60_x/keymaps/jpec/keymap.c +++ b/keyboards/s60_x/keymaps/jpec/keymap.c @@ -14,7 +14,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "s60_x.h" +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Layout 0: Default Layer diff --git a/keyboards/s60_x/keymaps/plain/keymap.c b/keyboards/s60_x/keymaps/plain/keymap.c index f5d075f24348..7ca1fe60f29d 100644 --- a/keyboards/s60_x/keymaps/plain/keymap.c +++ b/keyboards/s60_x/keymaps/plain/keymap.c @@ -1,4 +1,4 @@ -#include "s60_x.h" +#include QMK_KEYBOARD_H /* Main layer: ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ diff --git a/keyboards/s60_x/keymaps/poker/keymap.c b/keyboards/s60_x/keymaps/poker/keymap.c index 4c13f269bda9..3044d621b9a9 100644 --- a/keyboards/s60_x/keymaps/poker/keymap.c +++ b/keyboards/s60_x/keymaps/poker/keymap.c @@ -1,4 +1,4 @@ -#include "s60_x.h" +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: qwerty diff --git a/keyboards/s60_x/keymaps/poker_bit/keymap.c b/keyboards/s60_x/keymaps/poker_bit/keymap.c index de3f597bae5d..9aa4831cce5e 100644 --- a/keyboards/s60_x/keymaps/poker_bit/keymap.c +++ b/keyboards/s60_x/keymaps/poker_bit/keymap.c @@ -1,4 +1,4 @@ -#include "s60_x.h" +#include QMK_KEYBOARD_H // Poker fix with toggle and bit operation // Fn + Esc = ` diff --git a/keyboards/s60_x/keymaps/poker_set/keymap.c b/keyboards/s60_x/keymaps/poker_set/keymap.c index e6c0f90b4e52..dbd361511fcf 100644 --- a/keyboards/s60_x/keymaps/poker_set/keymap.c +++ b/keyboards/s60_x/keymaps/poker_set/keymap.c @@ -1,4 +1,4 @@ -#include "s60_x.h" +#include QMK_KEYBOARD_H // Poker fix with set(state transition) // Fn + Esc = ` diff --git a/keyboards/s60_x/keymaps/spacefn/keymap.c b/keyboards/s60_x/keymaps/spacefn/keymap.c index 3d65bf1faadf..4031417d9e30 100644 --- a/keyboards/s60_x/keymaps/spacefn/keymap.c +++ b/keyboards/s60_x/keymaps/spacefn/keymap.c @@ -1,4 +1,4 @@ -#include "s60_x.h" +#include QMK_KEYBOARD_H /* * SpaceFN diff --git a/keyboards/s60_x/rgb/info.json b/keyboards/s60_x/rgb/info.json new file mode 100644 index 000000000000..b9f268cbf6a1 --- /dev/null +++ b/keyboards/s60_x/rgb/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "S60-X RGB", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + } + } +} diff --git a/keyboards/s60_x/rgb/rgb.h b/keyboards/s60_x/rgb/rgb.h index f3318d91ed03..bded16ff6406 100644 --- a/keyboards/s60_x/rgb/rgb.h +++ b/keyboards/s60_x/rgb/rgb.h @@ -7,13 +7,13 @@ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ - K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ K400, K401, K402, K406, K410, K411, K412, K413 \ ) { \ { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, KC_NO }, \ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \ { K400, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, KC_NO } \ } From 50b5c6ad72682776705b0faf5b8ef87deec5cd6a Mon Sep 17 00:00:00 2001 From: sdothum Date: Fri, 4 May 2018 21:36:23 -0400 Subject: [PATCH 343/578] update with qmk master (#2887) * add splitography * trim keymap.c * add Makefile * rename Makefile to rules.mk * thumb key definition * thumb key definition * thumb key definition * blue/orange layer swap, double qwerty steno exit * fix TxBolt 1-3 key chord suppression (PREVENT_STUCK_MODIFIERS) * add audio control * beakl 8+10, dvorak (standard and splitography wide variant) * beakl 8+10, dvorak (standard and splitography wide variant) * shift layer home blocks * regex layer key changes * tilde align symbol navigation and regex layer * splitography/planck code break out into common .h segments * splitography/planck code break out into common .h segments * splitography common library * splitography common library * splitography beakl altgr home row * updating with qmk master --- keyboards/planck/keymaps/altgr/beakl.h | 612 +++++++++++++++ keyboards/planck/keymaps/altgr/colemak.h | 124 +++ .../keymaps/altgr/common/chord_layout.h | 41 + keyboards/planck/keymaps/altgr/common/init.h | 56 ++ .../keymaps/altgr/common/keycode_functions.h | 657 ++++++++++++++++ .../keymaps/altgr/common/number_fkey_layout.h | 86 ++ .../altgr/common/number_fkey_layout.save.h | 86 ++ .../keymaps/altgr/common/plover_keybind.h | 9 + .../planck/keymaps/altgr/common/sounds.h | 14 + .../keymaps/altgr/common/steno_layout.h | 39 + .../altgr/common/symbol_guifn_layout.h | 75 ++ .../planck/keymaps/altgr/common/tapdance.h | 49 ++ .../keymaps/altgr/common/toggle_layout.h | 102 +++ keyboards/planck/keymaps/altgr/config.h | 50 ++ keyboards/planck/keymaps/altgr/keymap.c | 490 ++++++++++++ .../planck/keymaps/altgr/private_string.h | 1 + keyboards/planck/keymaps/altgr/qwerty.h | 64 ++ keyboards/planck/keymaps/altgr/readme.md | 10 + keyboards/planck/keymaps/altgr/rules.mk | 26 + .../planck/keymaps/hiea/common/chord_layout.h | 41 + keyboards/planck/keymaps/hiea/common/init.h | 56 ++ .../keymaps/hiea/common/keycode_functions.h | 657 ++++++++++++++++ .../keymaps/hiea/common/number_fkey_layout.h | 46 ++ .../keymaps/hiea/common/plover_keybind.h | 9 + keyboards/planck/keymaps/hiea/common/sounds.h | 14 + .../planck/keymaps/hiea/common/steno_layout.h | 39 + .../keymaps/hiea/common/symbol_guifn_layout.h | 40 + .../planck/keymaps/hiea/common/tapdance.h | 49 ++ .../keymaps/hiea/common/toggle_layout.h | 102 +++ keyboards/planck/keymaps/hiea/config.h | 50 ++ keyboards/planck/keymaps/hiea/hiea.h | 63 ++ keyboards/planck/keymaps/hiea/keymap.c | 429 ++++++++++ keyboards/planck/keymaps/hiea/qwerty.h | 64 ++ keyboards/planck/keymaps/hiea/readme.md | 10 + keyboards/planck/keymaps/hiea/rules.mk | 26 + .../keymaps/hieax/common/chord_layout.h | 41 + keyboards/planck/keymaps/hieax/common/init.h | 56 ++ .../keymaps/hieax/common/keycode_functions.h | 732 ++++++++++++++++++ .../keymaps/hieax/common/number_fkey_layout.h | 46 ++ .../keymaps/hieax/common/plover_keybind.h | 9 + .../planck/keymaps/hieax/common/sounds.h | 14 + .../keymaps/hieax/common/steno_layout.h | 39 + .../hieax/common/symbol_guifn_layout.h | 40 + .../planck/keymaps/hieax/common/tapdance.h | 49 ++ .../keymaps/hieax/common/toggle_layout.h | 102 +++ keyboards/planck/keymaps/hieax/config.h | 50 ++ keyboards/planck/keymaps/hieax/hiea.h | 99 +++ ...ea.sync-conflict-20180501-144403-SMV4TP4.h | 97 +++ keyboards/planck/keymaps/hieax/keymap.c | 446 +++++++++++ keyboards/planck/keymaps/hieax/readme.md | 10 + keyboards/planck/keymaps/hieax/rules.mk | 26 + keyboards/planck/keymaps/sdothum/beakl.h | 551 +++++++++++++ keyboards/planck/keymaps/sdothum/colemak.h | 125 +++ .../keymaps/sdothum/common/chord_layout.h | 41 + .../planck/keymaps/sdothum/common/init.h | 56 ++ .../sdothum/common/keycode_functions.h | 656 ++++++++++++++++ .../sdothum/common/number_fkey_layout.h | 87 +++ .../keymaps/sdothum/common/plover_keybind.h | 7 + .../planck/keymaps/sdothum/common/sounds.h | 14 + .../keymaps/sdothum/common/steno_layout.h | 39 + .../sdothum/common/symbol_guifn_layout.h | 75 ++ .../planck/keymaps/sdothum/common/tapdance.h | 49 ++ .../keymaps/sdothum/common/toggle_layout.h | 102 +++ keyboards/planck/keymaps/sdothum/config.h | 50 ++ keyboards/planck/keymaps/sdothum/keymap.c | 480 ++++++++++++ keyboards/planck/keymaps/sdothum/qwerty.h | 64 ++ keyboards/planck/keymaps/sdothum/readme.md | 10 + keyboards/planck/keymaps/sdothum/rules.mk | 26 + 68 files changed, 8574 insertions(+) create mode 100644 keyboards/planck/keymaps/altgr/beakl.h create mode 100644 keyboards/planck/keymaps/altgr/colemak.h create mode 100644 keyboards/planck/keymaps/altgr/common/chord_layout.h create mode 100644 keyboards/planck/keymaps/altgr/common/init.h create mode 100644 keyboards/planck/keymaps/altgr/common/keycode_functions.h create mode 100644 keyboards/planck/keymaps/altgr/common/number_fkey_layout.h create mode 100644 keyboards/planck/keymaps/altgr/common/number_fkey_layout.save.h create mode 100644 keyboards/planck/keymaps/altgr/common/plover_keybind.h create mode 100644 keyboards/planck/keymaps/altgr/common/sounds.h create mode 100644 keyboards/planck/keymaps/altgr/common/steno_layout.h create mode 100644 keyboards/planck/keymaps/altgr/common/symbol_guifn_layout.h create mode 100644 keyboards/planck/keymaps/altgr/common/tapdance.h create mode 100644 keyboards/planck/keymaps/altgr/common/toggle_layout.h create mode 100644 keyboards/planck/keymaps/altgr/config.h create mode 100644 keyboards/planck/keymaps/altgr/keymap.c create mode 100644 keyboards/planck/keymaps/altgr/private_string.h create mode 100644 keyboards/planck/keymaps/altgr/qwerty.h create mode 100644 keyboards/planck/keymaps/altgr/readme.md create mode 100644 keyboards/planck/keymaps/altgr/rules.mk create mode 100644 keyboards/planck/keymaps/hiea/common/chord_layout.h create mode 100644 keyboards/planck/keymaps/hiea/common/init.h create mode 100644 keyboards/planck/keymaps/hiea/common/keycode_functions.h create mode 100644 keyboards/planck/keymaps/hiea/common/number_fkey_layout.h create mode 100644 keyboards/planck/keymaps/hiea/common/plover_keybind.h create mode 100644 keyboards/planck/keymaps/hiea/common/sounds.h create mode 100644 keyboards/planck/keymaps/hiea/common/steno_layout.h create mode 100644 keyboards/planck/keymaps/hiea/common/symbol_guifn_layout.h create mode 100644 keyboards/planck/keymaps/hiea/common/tapdance.h create mode 100644 keyboards/planck/keymaps/hiea/common/toggle_layout.h create mode 100644 keyboards/planck/keymaps/hiea/config.h create mode 100644 keyboards/planck/keymaps/hiea/hiea.h create mode 100644 keyboards/planck/keymaps/hiea/keymap.c create mode 100644 keyboards/planck/keymaps/hiea/qwerty.h create mode 100644 keyboards/planck/keymaps/hiea/readme.md create mode 100644 keyboards/planck/keymaps/hiea/rules.mk create mode 100644 keyboards/planck/keymaps/hieax/common/chord_layout.h create mode 100644 keyboards/planck/keymaps/hieax/common/init.h create mode 100644 keyboards/planck/keymaps/hieax/common/keycode_functions.h create mode 100644 keyboards/planck/keymaps/hieax/common/number_fkey_layout.h create mode 100644 keyboards/planck/keymaps/hieax/common/plover_keybind.h create mode 100644 keyboards/planck/keymaps/hieax/common/sounds.h create mode 100644 keyboards/planck/keymaps/hieax/common/steno_layout.h create mode 100644 keyboards/planck/keymaps/hieax/common/symbol_guifn_layout.h create mode 100644 keyboards/planck/keymaps/hieax/common/tapdance.h create mode 100644 keyboards/planck/keymaps/hieax/common/toggle_layout.h create mode 100644 keyboards/planck/keymaps/hieax/config.h create mode 100644 keyboards/planck/keymaps/hieax/hiea.h create mode 100644 keyboards/planck/keymaps/hieax/hiea.sync-conflict-20180501-144403-SMV4TP4.h create mode 100644 keyboards/planck/keymaps/hieax/keymap.c create mode 100644 keyboards/planck/keymaps/hieax/readme.md create mode 100644 keyboards/planck/keymaps/hieax/rules.mk create mode 100644 keyboards/planck/keymaps/sdothum/beakl.h create mode 100644 keyboards/planck/keymaps/sdothum/colemak.h create mode 100644 keyboards/planck/keymaps/sdothum/common/chord_layout.h create mode 100644 keyboards/planck/keymaps/sdothum/common/init.h create mode 100644 keyboards/planck/keymaps/sdothum/common/keycode_functions.h create mode 100644 keyboards/planck/keymaps/sdothum/common/number_fkey_layout.h create mode 100644 keyboards/planck/keymaps/sdothum/common/plover_keybind.h create mode 100644 keyboards/planck/keymaps/sdothum/common/sounds.h create mode 100644 keyboards/planck/keymaps/sdothum/common/steno_layout.h create mode 100644 keyboards/planck/keymaps/sdothum/common/symbol_guifn_layout.h create mode 100644 keyboards/planck/keymaps/sdothum/common/tapdance.h create mode 100644 keyboards/planck/keymaps/sdothum/common/toggle_layout.h create mode 100644 keyboards/planck/keymaps/sdothum/config.h create mode 100644 keyboards/planck/keymaps/sdothum/keymap.c create mode 100644 keyboards/planck/keymaps/sdothum/qwerty.h create mode 100644 keyboards/planck/keymaps/sdothum/readme.md create mode 100644 keyboards/planck/keymaps/sdothum/rules.mk diff --git a/keyboards/planck/keymaps/altgr/beakl.h b/keyboards/planck/keymaps/altgr/beakl.h new file mode 100644 index 000000000000..a684a6c43db0 --- /dev/null +++ b/keyboards/planck/keymaps/altgr/beakl.h @@ -0,0 +1,612 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// .................................................................... BEAKL EZ +#ifdef BEAKLEZ + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | K | ^Alt | ^GUI | F | G | R | C | V | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | H | I | E | A | " | ↑Alt | ↑GUI | L | S | T | N | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | ; | , | J | . | X | Caps |^Shift| B | D | M | P | Z | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_Y, KC_O, KC_U, KC_K, CNTR_TL, CNTR_TR, KC_F, KC_G, KC_R, KC_C, KC_V }, + {KC_H, KC_I, KC_E, HOME_A, TD_QUOT, CNTR_HL, CNTR_HR, KC_L, KC_S, KC_T, KC_N, KC_W }, + {KC_SCLN, KC_COMM, KC_J, KC_DOT, KC_X, CNTR_BL, CNTR_BR, KC_B, KC_D, KC_M, KC_P, KC_Z }, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_K), CNTR_TL, CNTR_TR, S(KC_F), S(KC_G), S(KC_R), S(KC_C), S(KC_V)}, + {S(KC_H), S(KC_I), S(KC_E), S(KC_A), TD_QUOT, CNTR_HL, CNTR_HR, S(KC_L), S(KC_S), S(KC_T), S(KC_N), S(KC_W)}, + {KC_SCLN, KC_COMM, S(KC_J), KC_DOT, S(KC_X), CNTR_BL, CNTR_BR, S(KC_B), S(KC_D), S(KC_M), S(KC_P), S(KC_Z)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | K | ^Alt | ^GUI | F | G | R | C | V | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | H | I | E | A | " | ↑Alt | ↑GUI | L | S | T | N | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | : | ~ | J | ` | X | Caps |^Shift| B | D | M | P | Z | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_K), CNTR_TL, CNTR_TR, S(KC_F), S(KC_G), S(KC_R), S(KC_C), S(KC_V)}, + {S(KC_H), S(KC_I), S(KC_E), S(KC_A), TD_DQOT, CNTR_HL, CNTR_HR, S(KC_L), S(KC_S), S(KC_T), S(KC_N), S(KC_W)}, + {TD_COLN, TD_TILD, S(KC_J), TD_GRV, S(KC_X), CNTR_BL, CNTR_BR, S(KC_B), S(KC_D), S(KC_M), S(KC_P), S(KC_Z)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | K | ^Alt | ^GUI | F | G | R | C | V | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | H | I | E | A | " | ↑Alt | ↑GUI | L | S | T | N | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | : | / | J | ? | X | Caps |^Shift| B | D | M | P | Z | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_K), CNTR_TL, CNTR_TR, S(KC_F), S(KC_G), S(KC_R), S(KC_C), S(KC_V)}, + {S(KC_H), S(KC_I), S(KC_E), S(KC_A), TD_DQOT, CNTR_HL, CNTR_HR, S(KC_L), S(KC_S), S(KC_T), S(KC_N), S(KC_W)}, + {TD_COLN, KC_SLSH, S(KC_J), KC_QUES, S(KC_X), CNTR_BL, CNTR_BR, S(KC_B), S(KC_D), S(KC_M), S(KC_P), S(KC_Z)}, + {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, +#endif + +// ..................................................................... BEAKL 8 +#ifdef BEAKL8 + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | X | ^Alt | ^GUI | G | C | R | F | Z | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | . | ↑Alt | ↑GUI | D | S | T | N | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | ; | " | I | , | Caps |^Shift| W | M | L | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_Y, KC_O, KC_U, KC_X, CNTR_TL, CNTR_TR, KC_G, KC_C, KC_R, KC_F, KC_Z }, + {KC_K, KC_H, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_D, KC_S, KC_T, KC_N, KC_B }, + {KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V }, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_C), S(KC_R), S(KC_F), S(KC_Z)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_D), S(KC_S), S(KC_T), S(KC_N), S(KC_B)}, + {S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | X | ^Alt | ^GUI | G | C | R | F | Z | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | ~ | ↑Alt | ↑GUI | D | S | T | N | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | I | ` | Caps |^Shift| W | M | L | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_C), S(KC_R), S(KC_F), S(KC_Z)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), TD_TILD, CNTR_HL, CNTR_HR, S(KC_D), S(KC_S), S(KC_T), S(KC_N), S(KC_B)}, + {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | X | ^Alt | ^GUI | G | C | R | F | Z | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | ? | ↑Alt | ↑GUI | D | S | T | N | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | I | / | Caps |^Shift| W | M | L | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_C), S(KC_R), S(KC_F), S(KC_Z)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, S(KC_D), S(KC_S), S(KC_T), S(KC_N), S(KC_B)}, + {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, +#endif + +// .................................................................... BEAKL 8P +#ifdef BEAKL8P + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | ^Alt | ^GUI | G | D | R | F | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | . | ↑Alt | ↑GUI | C | T | S | N | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | ; | " | I | , | Caps |^Shift| W | M | L | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_R, KC_F, KC_X }, + {KC_K, KC_H, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, KC_T, KC_S, KC_N, KC_B }, + {KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V }, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, + {S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | { | } | $ | ^Alt | ^GUI | G | D | R | F | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | < | > | ~ | ↑Alt | ↑GUI | C | T | S | N | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | ! | = | ` | Caps |^Shift| W | M | L | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), S(KC_Y), KC_LCBR, KC_RCBR, KC_DLR, CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, + {S(KC_K), S(KC_H), TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, + {S(KC_J), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | ^Alt | ^GUI | ^ | [ | ] | F | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | ? | ↑Alt | ↑GUI | | | ( | ) | N | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | I | / | Caps |^Shift| \ | $ | * | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, KC_CIRC, KC_LBRC, KC_RBRC, S(KC_F), S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, S(KC_N), S(KC_B)}, + {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_DLR, KC_ASTR, S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, +#endif + +// ................................................................... BEAKL 8TX +#ifdef BEAKL8TX + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | J | ^Alt | ^GUI | G | D | R | F | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | . | ↑Alt | ↑GUI | C | T | S | N | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | ; | " | I | , | Caps |^Shift| W | M | L | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_Y, KC_O, KC_U, KC_J, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_R, KC_F, KC_X }, + {HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_S, HOME_N, HOME_B }, + {KC_Z, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V }, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, + {S(KC_Z), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | $ | { | } | J | ^Alt | ^GUI | G | D | R | F | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | / | < | > | ~ | ↑Alt | ↑GUI | C | T | S | N | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | : | ! | = | ` | Caps |^Shift| W | M | L | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), KC_DLR, KC_LCBR, KC_RCBR, S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, + {S(KC_K), KC_SLSH, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, + {S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | J | ^Alt | ^GUI | G | [ | ] | ^ | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | ? | ↑Alt | ↑GUI | | | ( | ) | $ | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | : | " | I | / | Caps |^Shift| \ | * | . | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), KC_LBRC, KC_RBRC, KC_CIRC, S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_B)}, + {S(KC_Z), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, +#endif + +// ................................................................... BEAKL 8TT +#ifdef BEAKL8TT + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | J | Fn | Caps | G | D | R | F | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | . |Cursor| Mouse| C | T | S | N | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | ; | " | I | , | Num | Regex| W | M | L | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_Y, KC_O, KC_U, KC_J, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_R, KC_F, KC_X }, + {HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_S, HOME_N, HOME_B }, + {KC_Z, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V }, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, + {S(KC_Z), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | $ | { | } | J | Fn | Caps | G | D | R | F | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | / | < | > | ~ |Cursor| Mouse| C | T | S | N | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | : | ! | = | ` | Num | Regex| W | M | L | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), KC_DLR, KC_LCBR, KC_RCBR, S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, + {S(KC_K), KC_SLSH, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, + {S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | J | Fn | Caps | G | [ | ] | ^ | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | ? |Cursor| Mouse| | | ( | ) | $ | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | : | " | I | / | Num | Regex| \ | * | . | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), KC_LBRC, KC_RBRC, KC_CIRC, S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_B)}, + {S(KC_Z), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, +#endif + +// .................................................................... BEAKL 10 +#ifdef BEAKL10 + // ,-----------------------------------------------------------------------------------. + // | Q | H | O | U | X | ^Alt | ^GUI | G | D | N | M | V | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | Y | I | E | A | . | ↑Alt | ↑GUI | C | S | R | T | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | ; | " | , | Z | Caps |^Shift| B | P | L | F | K | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_H, KC_O, KC_U, KC_X, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_V }, + {KC_Y, KC_I, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, KC_S, KC_R, KC_T, KC_W }, + {KC_J, KC_SCLN, TD_QUOT, KC_COMM, KC_Z, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_K }, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_H), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_V)}, + {S(KC_Y), S(KC_I), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_S), S(KC_R), S(KC_T), S(KC_W)}, + {S(KC_J), KC_SCLN, TD_QUOT, KC_COMM, S(KC_Z), CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_K)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | [ | ! | ] | X | ^Alt | ^GUI | G | D | N | M | V | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | Y | < | = | > | ~ | ↑Alt | ↑GUI | C | S | R | T | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | ` | Z | Caps |^Shift| B | P | L | F | K | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), TD_LBRC, KC_EXLM, TD_RBRC, S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_V)}, + {S(KC_Y), TD_LT, KC_EQL, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_S), S(KC_R), S(KC_T), S(KC_W)}, + {S(KC_J), KC_COLN, TD_DQOT, TD_GRV, S(KC_Z), CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_K)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | H | O | U | X | ^Alt | ^GUI | G | { | + | } | V | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | Y | I | E | A | ? | ↑Alt | ↑GUI | C | ( | * | ) | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | / | Z | Caps |^Shift| B | P | L | F | K | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_H), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), TD_LCBR, KC_PLUS, TD_RCBR, S(KC_V)}, + {S(KC_Y), S(KC_I), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, S(KC_C), TD_LPRN, KC_ASTR, TD_RPRN, S(KC_W)}, + {S(KC_J), TD_COLN, TD_DQOT, KC_SLSH, S(KC_Z), CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_K)}, + {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, +#endif + +// ............................................................... BEAKL Mash Up +#ifdef BEAKL810 + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | ^Alt | ^GUI | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | . | ↑Alt | ↑GUI | C | T | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | ; | " | I | , | Caps |^Shift| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X }, + {KC_K, KC_H, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, KC_T, KC_R, KC_S, KC_W }, + {KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V }, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, + {S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | { | } | $ | ^Alt | ^GUI | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | < | > | ~ | ↑Alt | ↑GUI | C | T | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | ! | = | ` | Caps |^Shift| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), S(KC_Y), KC_LCBR, KC_RCBR, KC_DLR, CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {S(KC_K), S(KC_H), TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, + {S(KC_J), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | ^Alt | ^GUI | ^ | [ | ] | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | ? | ↑Alt | ↑GUI | | | ( | ) | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | I | / | Caps |^Shift| \ | $ | * | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, KC_CIRC, KC_LBRC, KC_RBRC, S(KC_M), S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, S(KC_S), S(KC_W)}, + {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_DLR, KC_ASTR, S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, +#endif + +// .................................................................... BEAKL MU +#ifdef BEAKLMU + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | Fn | Caps | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | . |Cursor| Mouse| C | T | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | ; | " | I | , | Num | Regex| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X }, + {HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_R, HOME_S, HOME_W }, + {KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V }, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, + {S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | $ | { | } | Z | Fn | Caps | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | / | < | > | ~ |Cursor| Mouse| C | T | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | ! | = | ` | Num | Regex| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), KC_DLR, KC_LCBR, KC_RCBR, S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {S(KC_K), KC_SLSH, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, + {S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | Fn | Caps | G | [ | ] | ^ | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | ? |Cursor| Mouse| | | ( | ) | $ | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | I | / | Num | Regex| \ | * | . | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), KC_LBRC, KC_RBRC, KC_CIRC, S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_W)}, + {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, +#endif + +// .................................................................... BEAKL SP +#ifdef BEAKLSP + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | . |Cursor| Mouse| C | T | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | ; | " | I | , | Num | Regex| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Ins | Left | Ent | Bksp | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X }, + {HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_R, HOME_S, HOME_W }, + {KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V }, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, + {S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | [ | ] | Z | Shift| Caps | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | ^ | < | > | ~ |Cursor| Mouse| C | T | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | ! | = | ` | Num | Regex| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | ↑Tab | f() | Ins | Left | _ | Del | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), S(KC_Y), KC_LBRC, KC_RBRC, S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {S(KC_K), KC_CIRC, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, + {S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, S_TAB, ___fn__, LT_INS, S_LEFT, KC_UNDS, SP_DEL, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | Shift| Caps | G | { | } | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | ? |Cursor| Mouse| | | ( | ) | $ | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | I | / | Num | Regex| \ | * | . | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Tab | - | Ins | Left | f() | Bksp | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), KC_LCBR, KC_RCBR, S(KC_M), S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_W)}, + {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, KC_TAB, KC_MINS, LT_INS, S_LEFT, ___fn__, SP_BSPC, S_DOWN, S_UP, S_RGHT }, + }, +#endif + +// .................................................................... BEAKL GR +#ifdef BEAKLGR + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | . |Cursor| Mouse| C | T | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | ; | " | I | , | Num | Regex| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Ins | Left | Ent | Bksp | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X }, + {HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_R, HOME_S, HOME_W }, + {KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V }, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, + {S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | [ | ] | Z | Shift| Caps | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | ^ | < | > | ~ |Cursor| Mouse| C | T | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | ! | = | ` | Num | Regex| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | ↑Tab | f() | Ins | Left | _ | Del | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), S(KC_Y), KC_LBRC, KC_RBRC, S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {SM_K, KC_CIRC, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, + {S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, S_TAB, ___fn__, LT_INS, S_LEFT, KC_UNDS, SP_DEL, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | Shift| Caps | G | { | } | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | ? |Cursor| Mouse| | | ( | ) | $ | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | I | / | Num | Regex| \ | * | . | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Tab | - | Ins | Left | f() | Bksp | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), KC_LCBR, KC_RCBR, S(KC_M), S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, SM_W }, + {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, KC_TAB, KC_MINS, LT_INS, S_LEFT, ___fn__, SP_BSPC, S_DOWN, S_UP, S_RGHT }, + }, +#endif diff --git a/keyboards/planck/keymaps/altgr/colemak.h b/keyboards/planck/keymaps/altgr/colemak.h new file mode 100644 index 000000000000..8810ba82a5bb --- /dev/null +++ b/keyboards/planck/keymaps/altgr/colemak.h @@ -0,0 +1,124 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// .............................................................. Colemak Mod-DH +#ifdef COLEMAK + // ,-----------------------------------------------------------------------------------. + // | Q | W | F | P | B | ^Alt | ^GUI | J | L | U | Y | ; | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | A | R | S | T | G | ↑Alt | ↑GUI | M | N | E | I | O | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | X | C | D | V | Caps |^Shift| K | H | , | . | " | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_W, KC_F, KC_P, KC_B, CNTR_TL, CNTR_TR, KC_J, KC_L, KC_U, KC_Y, KC_SCLN}, + {KC_A, KC_R, KC_S, KC_T, KC_G, CNTR_HL, CNTR_HR, KC_M, KC_N, KC_E, KC_I, KC_O }, + {KC_Z, KC_X, KC_C, KC_D, KC_V, CNTR_BL, CNTR_BR, KC_K, KC_H, KC_COMM, KC_DOT, TD_QUOT}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_W), S(KC_F), S(KC_P), S(KC_B), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), KC_SCLN}, + {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_G), CNTR_HL, CNTR_HR, S(KC_M), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, + {S(KC_Z), S(KC_X), S(KC_C), S(KC_D), S(KC_V), CNTR_BL, CNTR_BR, S(KC_K), S(KC_H), KC_COMM, KC_DOT, TD_QUOT}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | W | F | P | B | ^Alt | ^GUI | J | L | U | Y | : | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | A | R | S | T | G | ↑Alt | ↑GUI | M | N | E | I | O | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | X | C | D | V | Caps |^Shift| K | H | / | ? | " | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | - | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), S(KC_W), S(KC_F), S(KC_P), S(KC_B), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN}, + {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_G), CNTR_HL, CNTR_HR, S(KC_M), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, + {S(KC_Z), S(KC_X), S(KC_C), S(KC_D), S(KC_V), CNTR_BL, CNTR_BR, S(KC_K), S(KC_H), KC_SLSH, KC_QUES, TD_DQOT}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_MINS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | W | F | P | B | ^Alt | ^GUI | J | L | U | Y | : | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | A | R | S | T | G | ↑Alt | ↑GUI | M | N | E | I | O | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | X | C | D | V | Caps |^Shift| K | H | ~ | ` | " | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Caps | _ | ↑Tab | Bksp | f() | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_W), S(KC_F), S(KC_P), S(KC_B), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN}, + {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_G), CNTR_HL, CNTR_HR, S(KC_M), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, + {S(KC_Z), S(KC_X), S(KC_C), S(KC_D), S(KC_V), CNTR_BL, CNTR_BR, S(KC_K), S(KC_H), TD_TILD, TD_GRV, TD_DQOT}, + {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_UNDS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, +#endif + +// ..................................................................... ColemaX +#ifdef COLEMAX + // ,-----------------------------------------------------------------------------------. + // | Q | W | C | G | Z | ^Alt | ^GUI | J | L | U | Y | ; | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | A | R | S | T | B | ↑Alt | ↑GUI | K | N | E | I | O | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | X | V | F | D | P | Caps |^Shift| M | H | , | . | " | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_W, KC_C, KC_G, KC_Z, CNTR_TL, CNTR_TR, KC_J, KC_L, KC_U, KC_Y, KC_SCLN}, + {KC_A, KC_R, KC_S, KC_T, KC_B, CNTR_HL, CNTR_HR, KC_K, KC_N, KC_E, KC_I, KC_O }, + {KC_X, KC_V, KC_F, KC_D, KC_P, CNTR_BL, CNTR_BR, KC_M, KC_H, KC_COMM, KC_DOT, TD_QUOT}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_W), S(KC_C), S(KC_G), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), KC_SCLN}, + {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_B), CNTR_HL, CNTR_HR, S(KC_K), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, + {S(KC_X), S(KC_V), S(KC_F), S(KC_D), S(KC_P), CNTR_BL, CNTR_BR, S(KC_M), S(KC_H), KC_COMM, KC_DOT, TD_QUOT}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | W | C | G | Z | ^Alt | ^GUI | J | L | U | Y | : | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | A | R | S | T | B | ↑Alt | ↑GUI | K | N | E | I | O | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | X | V | F | D | P | Caps |^Shift| M | H | / | ? | " | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | - | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), S(KC_W), S(KC_C), S(KC_G), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN}, + {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_B), CNTR_HL, CNTR_HR, S(KC_K), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, + {S(KC_X), S(KC_V), S(KC_F), S(KC_D), S(KC_P), CNTR_BL, CNTR_BR, S(KC_M), S(KC_H), KC_SLSH, KC_QUES, TD_DQOT}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_MINS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | W | C | G | Z | ^Alt | ^GUI | J | L | U | Y | : | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | A | R | S | T | B | ↑Alt | ↑GUI | K | N | E | I | O | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | X | V | F | D | P | Caps |^Shift| M | H | ~ | ` | " | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Caps | _ | ↑Tab | Bksp | f() | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_W), S(KC_C), S(KC_G), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN}, + {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_B), CNTR_HL, CNTR_HR, S(KC_K), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, + {S(KC_X), S(KC_V), S(KC_F), S(KC_D), S(KC_P), CNTR_BL, CNTR_BR, S(KC_M), S(KC_H), TD_TILD, TD_GRV, TD_DQOT}, + {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_UNDS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, +#endif diff --git a/keyboards/planck/keymaps/altgr/common/chord_layout.h b/keyboards/planck/keymaps/altgr/common/chord_layout.h new file mode 100644 index 000000000000..2c785d56ca75 --- /dev/null +++ b/keyboards/planck/keymaps/altgr/common/chord_layout.h @@ -0,0 +1,41 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// .................................................................. Short Cuts + + // .-----------------------------------------------------------------------------------. + // | | | Copy | Paste| | | | | | | | | + // |--------------------------------------------------------------+------+------+------| + // | Undo | Cut | Copy | Paste| | | | | PRIV | PUB | | | + // |-----------------------------------------------------------------------------------| + // | | | Nak | Eot | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | | | | | | | f() | | | | | | + // | | | | | | | | f() | | | | | see _PLOVER + // '-----------------------------------------------------------------------------------' + + [_EDIT] = { + {_______, _______, TMCOPY, TMPASTE, _______, _______, _______, _______, _______, _______, _______, _______}, + {UNDO, CUT, COPY, PASTE, _______, _______, _______, _______, TD_PRIV, TD_SEND, _______, _______}, + {_______, _______, NAK, EOT, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, ___fn__, ___fn__, _______, _______, _______, _______}, + }, + +// ................................................................ Adjust Layer + + // ,-----------------------------------------------------------------------------------. + // |Plover| | | | | | | | | | | | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // |Aud on| | | | | | | | | | | | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Reset| | | | | | | | | | | | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | | | | f() | | | | | f() | | | | + // `-----------------------------------------------------------------------------------' + + [_ADJUST] = { + {PLOVER, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {AU_ON, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, ___fn__, _______, _______, _______, _______, ___fn__, _______, _______, _______}, + }, diff --git a/keyboards/planck/keymaps/altgr/common/init.h b/keyboards/planck/keymaps/altgr/common/init.h new file mode 100644 index 000000000000..6366a19f65eb --- /dev/null +++ b/keyboards/planck/keymaps/altgr/common/init.h @@ -0,0 +1,56 @@ + +// ....................................................................... Audio + +void matrix_init_user(void) +{ +#ifdef STENO_ENABLE + steno_set_mode(STENO_MODE_BOLT); // or STENO_MODE_GEMINI +#endif +#ifdef AUDIO_ENABLE + startup_user(); +#endif +} + +#ifdef AUDIO_ENABLE +#ifdef BACKLIGHT_ENABLE +void led_set_user(uint8_t usb_led) +{ + static uint8_t old_usb_led = 0; + _delay_ms(10); // gets rid of tick + if (!is_playing_notes()) { + if ((usb_led & (1<event.pressed) { + key_timer = timer_read(); + register_code(modifier); + if (modifier2) { + register_code(modifier2); + } + } + else { + unregister_code(modifier); + if (modifier2) { + unregister_code(modifier2); + } + if (timer_elapsed(key_timer) < TAPPING_TERM) { + shift_key(keycode); + } + key_timer = 0; + } +} + +// ................................................................... Mod Masks + +// tap dance persistant mods, see process_record_user() +// keyboard_report->mods (?) appears to be cleared by tap dance +static uint8_t mods = 0; + +void tap_mods(keyrecord_t *record, uint16_t keycode) +{ + if (record->event.pressed) { + mods |= MOD_BIT(keycode); + } + else { + mods &= ~(MOD_BIT(keycode)); + } +} + +// (un)register modifiers +void modifier(void (*f)(uint8_t)) +{ + if (mods & MOD_BIT(KC_LCTL)) { + (*f)(KC_LCTL); + } + if (mods & MOD_BIT(KC_LGUI)) { + (*f)(KC_LGUI); + } + if (mods & MOD_BIT(KC_LALT)) { + (*f)(KC_LALT); + } +} + +// .................................................... Triple Dance Shift/Layer + +static uint8_t dt_shift = 0; + +void double_shift(uint16_t keycode, uint8_t layer) +{ + tap_key (keycode); + if (DT_SHIFT) { + // set_oneshot_mods(MOD_LSFT); + // layer_on(layer); + layer_on (_SHIFT); + set_oneshot_layer(_SHIFT, ONESHOT_START); + dt_shift = 1; + } + else { + layer_on(layer); + } +} + +// tap dance LT (LAYER, KEY) emulation with -> and auto-repeat extensions! +void tap_shift(qk_tap_dance_state_t *state, uint16_t keycode, uint8_t layer) +{ + // double tap plus down + if (state->count > 2) { + // double enter shift + if (keycode == KC_ENT) { + tap_key (keycode); + double_shift(keycode, layer); + } + // repeating keycode + else { + register_code(keycode); + } + } + // tap plus down (or double tap): keycode (one shot) shift + else if (state->count > 1) { + double_shift(keycode, layer); + } + // down: shift + else if (state->pressed) { + layer_on(layer); + } + // tap: keycode + else { + modifier(register_code); + tap_key (keycode); + modifier(unregister_code); + } +} + +void tap_reset(uint16_t keycode, uint8_t layer) +{ + unregister_code(keycode); + if (DT_SHIFT && dt_shift) { + clear_oneshot_layer_state(ONESHOT_PRESSED); + dt_shift = 0; + } + else { + layer_off(layer); + } +} + +// augment pseudo LT (_RSHIFT, KC_ENT) handling below for rapid sequences +void enter(qk_tap_dance_state_t *state, void *user_data) +{ + tap_shift(state, KC_ENT, _RSHIFT); +} + +void enter_reset(qk_tap_dance_state_t *state, void *user_data) +{ + tap_reset(KC_ENT, _RSHIFT); +} + +// augment pseudo LT (_LSHIFT, KC_SPC) handling below for rapid sequences +void space(qk_tap_dance_state_t *state, void *user_data) +{ + tap_shift(state, KC_SPC, _LSHIFT); +} + +void space_reset(qk_tap_dance_state_t *state, void *user_data) +{ + tap_reset(KC_SPC, _LSHIFT); +} + +// ......................................................... Triple Dance Insert + +void double_max(uint8_t count, uint8_t shift, uint16_t keycode) +{ + if (shift) { + shift_key(keycode); + if (count > 1) { + shift_key(keycode); + } + } + else { + tap_key(keycode); + if (count > 1) { + tap_key(keycode); + } + } +} + +void colon(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 2) { + tap_key (KC_SPC); + shift_key(KC_SCLN); + shift_key(KC_SCLN); + tap_key (KC_SPC); + } + else { + double_max(state->count, SHIFT, KC_SCLN); + } + reset_tap_dance(state); +} + +void eql(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 2) { + tap_key(KC_SPC); + tap_key(KC_SLSH); + tap_key(KC_EQL); + tap_key(KC_SPC); + } + else { + double_max(state->count, NOSHIFT, KC_EQL); + } + reset_tap_dance(state); +} + +void greater(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 2) { + tap_key (KC_SPC); + tap_key (KC_MINS); + shift_key(KC_DOT); + tap_key (KC_SPC); + } + else { + double_max(state->count, SHIFT, KC_DOT); + } + reset_tap_dance(state); +} + +void lesser(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 2) { + tap_key (KC_SPC); + shift_key(KC_COMM); + tap_key (KC_MINS); + tap_key (KC_SPC); + } + else { + double_max(state->count, SHIFT, KC_COMM); + } + reset_tap_dance(state); +} + +void tilde(qk_tap_dance_state_t *state, void *user_data) +{ + // double tap plus down: repeating keycode + if (state->count > 2) { + register_code(KC_LSFT); + register_code(KC_GRV); + } + // tap: keycode + else { + shift_key(KC_GRV); + // double tap: unix home directory + if (state->count > 1) { + tap_key(KC_SLSH); + } + } +} + +void tilde_reset(qk_tap_dance_state_t *state, void *user_data) +{ + unregister_code(KC_GRV); + unregister_code(KC_LSFT); +} + +// ............................................................. Tap Dance Pairs + +// tap dance shift rules +#define S_NEVER 0 +#define S_SINGLE 1 +#define S_DOUBLE 2 +#define S_ALWAYS S_SINGLE | S_DOUBLE + +void symbol_pair(uint8_t shift, uint16_t left, uint16_t right) +{ + if (shift & S_DOUBLE) { + shift_key(left); + shift_key(right); + } + else { + tap_key(left); + tap_key(right); + } +} + +#define CLOSE 1 + +// tap dance symbol pairs +void tap_pair(qk_tap_dance_state_t *state, uint8_t shift, uint16_t left, uint16_t right, uint16_t modifier, uint8_t close) +{ + // triple tap: left right with cursor between symbol pair a la vim :-) + if (state->count > 2) { + symbol_pair(shift, left, right); + tap_key (KC_LEFT); + } + // double tap: left right + else if (state->count > 1) { + symbol_pair(shift, left, right); + } + // down: modifier + else if (state->pressed) { + if (modifier) { + register_code(modifier); + } + } + // tap: left (close: right) + else { + if (shift & S_SINGLE) { + shift_key(close ? right : left); + } + else { + tap_key(close ? right : left); + } + } + if (!modifier) { + reset_tap_dance(state); + } +} + +void doublequote(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_QUOT, KC_QUOT, 0, 0); +} + +void grave(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_NEVER, KC_GRV, KC_GRV, 0, 0); +} + +void lbrace(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_NEVER, KC_LBRC, KC_RBRC, 0, 0); +} + +void lcurly(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_LBRC, KC_RBRC, 0, 0); +} + +void lparen(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_9, KC_0, KC_LCTL, 0); +} + +void lparen_reset(qk_tap_dance_state_t *state, void *user_data) +{ + unregister_code(KC_LCTL); +} + +void quote(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_NEVER, KC_QUOT, KC_QUOT, 0, 0); +} + +void rangle(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_COMM, KC_DOT, 0, CLOSE); +} + +void rbrace(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_NEVER, KC_LBRC, KC_RBRC, 0, CLOSE); +} + +void rcurly(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_LBRC, KC_RBRC, 0, CLOSE); +} + +void rparen(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_9, KC_0, 0, CLOSE); +} + +void rparen_reset(qk_tap_dance_state_t *state, void *user_data) +{ + unregister_code(KC_LCTL); +} + +// ............................................................ Tap Dance Insert + +void comma(qk_tap_dance_state_t *state, void *user_data) +{ + tap_key(KC_COMM); + if (state->count > 1) { + tap_key(KC_SPC); + } + reset_tap_dance(state); +} + +void dot(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 1) { + shift_key(KC_COLN); + } + else { + tap_key(KC_DOT); + } + reset_tap_dance(state); +} + +// compile time macro string, see functions/hardware planck script +void private(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 1) { +#ifdef PRIVATE_STRING +#include "private_string.h" +#endif + } + reset_tap_dance(state); +} + +// config.h defined string +void send(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 1) { + SEND_STRING(PUBLIC_STRING); + } + reset_tap_dance(state); +} + +// .......................................................... Tap Dance One Shot + +void caps(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 1) { + tap_key(KC_CAPS); + } + else { + set_oneshot_mods(MOD_LSFT); + register_code (KC_LSFT); // on hold down + } +} + +void caps_reset(qk_tap_dance_state_t *state, void *user_data) +{ + unregister_code(KC_LSFT); +} + +// ................................................................... Tap Dance + +qk_tap_dance_action_t tap_dance_actions[] = { + [_CAPS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, caps, caps_reset) + ,[_COLN] = ACTION_TAP_DANCE_FN (colon) + ,[_COMM] = ACTION_TAP_DANCE_FN (comma) + ,[_DOT] = ACTION_TAP_DANCE_FN (dot) + ,[_DQOT] = ACTION_TAP_DANCE_FN (doublequote) + ,[_ENT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, enter, enter_reset) + ,[_EQL] = ACTION_TAP_DANCE_FN (eql) + ,[_GRV] = ACTION_TAP_DANCE_FN (grave) + ,[_GT] = ACTION_TAP_DANCE_FN (greater) + ,[_LBRC] = ACTION_TAP_DANCE_FN (lbrace) + ,[_LCBR] = ACTION_TAP_DANCE_FN (lcurly) + ,[_LPRN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lparen, lparen_reset) + ,[_LT] = ACTION_TAP_DANCE_FN (lesser) + ,[_PRIV] = ACTION_TAP_DANCE_FN (private) + ,[_QUOT] = ACTION_TAP_DANCE_FN (quote) + ,[_RBRC] = ACTION_TAP_DANCE_FN (rbrace) + ,[_RCBR] = ACTION_TAP_DANCE_FN (rcurly) + ,[_RNGL] = ACTION_TAP_DANCE_FN (rangle) + ,[_RPRN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rparen, rparen_reset) + ,[_SEND] = ACTION_TAP_DANCE_FN (send) + ,[_SPC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, space, space_reset) + ,[_TILD] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tilde, tilde_reset) +}; + +// .............................................................. Dynamic Layers + +#define LEFT 1 +#define RIGHT 2 +static uint8_t thumb = 0; + +// LEFT (KC_SPC, S(KC_BSLS)), RIGHT (KC_LEFT, S(KC_LEFT)) opposite thumb combinations, see process_record_user() +// up, up -> _BASE +// up, down -> _SYMBOL +// down, up -> _NUMBER +// down, down -> _MOUSE // see layer keycodes that raise mouse layer +#define THUMBS_DOWN _MOUSE // layer + +static uint8_t overlayer = 0; + +// left right thumb layer combinations +void thumb_layer(keyrecord_t *record, uint8_t side, uint8_t shift, uint16_t keycode, uint8_t thumb_dn_layer, uint8_t thumb_up_layer) +{ + if (record->event.pressed) { + // layer_on via tap_layer(), see process_record_user() + key_timer = timer_read(); + thumb = thumb | side; + } + else { + layer_off(thumb_dn_layer); + // opposite thumb_layer() thumb may have switched effective layer! + if (overlayer) { + layer_off(overlayer); + overlayer = 0; + } + if (!key_press(shift, keycode)) { + layer_off(THUMBS_DOWN); // both thumbs needed + // opposite thumb down? see left right combination layer table above + if (thumb & (side == LEFT ? RIGHT : LEFT)) { + layer_on(thumb_up_layer); + overlayer = thumb_up_layer; + } + } + clear_mods(); + thumb = thumb & ~side; + key_timer = 0; + } +} + +// #ifdef STENO_ENABLE +// // LT for steno keycode +// void stn_layer(keyrecord_t *record, uint16_t keycode, uint8_t layer) +// { +// if (record->event.pressed) { +// key_timer = timer_read(); +// if (keycode) { +// process_steno(keycode, record); +// } +// layer_on(layer); +// } +// else { +// layer_off(layer); +// if (keycode) { +// if (timer_elapsed(key_timer) < TAPPING_TERM) { +// process_steno(keycode, record); +// } +// else { +// // clear pressed state (request push of updated) process_steno.c and .h +// // steno_clear_state(); +// } +// } +// key_timer = 0; +// } +// } +// #endif + +// LT for S(keycode) +void lt_shift(keyrecord_t *record, uint16_t keycode, uint8_t layer) +{ + if (record->event.pressed) { + key_timer = timer_read(); + layer_on(layer); + } + else { + layer_off(layer); + // for shifted keycodes, hence, LT_SHIFT + key_press(SHIFT, keycode); + clear_mods(); + key_timer = 0; + } +} + +// set layer asap to overcome macro latency errors, notably tap dance and LT usage +// this routine inexplicably (?) sets layer_on() faster than can be done in thumb_layer() +void tap_layer(keyrecord_t *record, uint8_t layer) +{ + if (record->event.pressed) { + layer_on(layer); + } + else { + layer_off(layer); + } +} + +// ..................................................................... Keymaps + +// void persistant_default_layer_set(uint16_t default_layer) +// { +// eeconfig_update_default_layer(default_layer); +// default_layer_set (default_layer); +// } + +void clear_layers(void) +{ + uint8_t layer; + for (layer = 0; layer < _END_LAYERS; layer++) { + layer_off(layer); + } +} + +#ifdef CENTER_TT +static uint16_t tt_keycode = 0; // current TT keycode + +void clear_tt(void) +{ + if (tt_keycode == KC_CAPS) { + tap_key(KC_CAPS); // clear capslock + } + tt_keycode = 0; + clear_layers(); + set_single_persistent_default_layer(_BASE); +} +#endif + +// txbolt plover run state +static uint8_t plover = 0; + +void toggle_plover(uint8_t state) +{ + if (plover != state) { +#ifdef PLOVER_KEYBIND +#include "plover_keybind.h" +#endif + plover = state; + } +} + +void base_layer(void) +{ +#ifdef AUDIO_ENABLE + if (plover) { + PLAY_SONG(song_plover_gb); + } + else { + PLAY_SONG(song_qwerty); + } +#endif + clear_layers(); + set_single_persistent_default_layer(_BASE); + toggle_plover(0); +} + +void steno(keyrecord_t *record) +{ + if (record->event.pressed) { +#ifdef AUDIO_ENABLE + PLAY_SONG(song_plover); +#endif + clear_layers(); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + if (!plover) { + toggle_plover(1); + } + } +} + +void steno_exit(keyrecord_t *record) +{ + if (record->event.pressed) { + base_layer(); + toggle_plover(0); + } +} diff --git a/keyboards/planck/keymaps/altgr/common/number_fkey_layout.h b/keyboards/planck/keymaps/altgr/common/number_fkey_layout.h new file mode 100644 index 000000000000..528020e7417f --- /dev/null +++ b/keyboards/planck/keymaps/altgr/common/number_fkey_layout.h @@ -0,0 +1,86 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ......................................................... Number Keypad Layer +#ifdef SHIFT_SYMBOLS + // .-----------------------------------------------------------------------------------. + // | | F | E | D | | | | / | 7 | 8 | 9 | * | + // |-----------------------------------------------------------------------------------| + // | GUI | C | B | A | | | | . | 4 | 5 | 6 | - | + // |-----------------------------------------------------------------------------------| + // | | # | G | \ | | | | , | 1 | 2 | 3 | + | + // |-----------------------------------------------------------------------------------| + // | | | | f() | | | | 0 | = | | | | + // | | | | f() | | | | = | 0 | | | | + // '-----------------------------------------------------------------------------------' + + [_NUMBER] = { + {_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, + {OS_GUI, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS}, + {_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, +#ifdef THUMB_0 + {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___}, +#else + {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___}, +#endif + }, +#else + // .-----------------------------------------------------------------------------------. + // | | F | E | D | | | | / | 7 | 8 | 9 | * | + // |-----------------------------------------------------------------------------------| + // | GUI | C | B | A | | | | . | 4 | 5 | 6 | - | + // |-----------------------------------------------------------------------------------| + // | | # | X | G | | | | , | 1 | 2 | 3 | + | + // |-----------------------------------------------------------------------------------| + // | | f() | | 0 | = | | + // | | f() | | = | 0 | | + // '-----------------------------------------------------------------------------------' + + [_NUMBER] = { + {_______, KC_F, MT_E, KC_D, _______, _______, _______, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, + {OS_GUI, GT_C, AT_B, LT_A, _______, _______, _______, KC_DOT, KC_4, KC_5, KC_6, KC_MINS}, + {_______, KC_HASH, MT_X, S(KC_G), _______, _______, _______, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, +#ifdef THUMB_0 + {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___}, +#else + {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___}, +#endif + }, + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | { | & | ? | : | } | + // |-----------------------------------------------------------------------------------| + // | | | | f() | | | | ( | $ | % | ^ | ) | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | [ | < | ~ | > | ] | + // |-----------------------------------------------------------------------------------| + // | | f() | | \ | | | | + // '-----------------------------------------------------------------------------------' + + [_NUMSYM] = { + {_______, _______, _______, ___x___, _______, _______, _______, TD_LCBR, KC_AMPR, KC_QUES, KC_COLN, KC_RCBR}, + {___x___, ___x___, ___x___, ___fn__, _______, _______, _______, TD_LPRN, KC_DLR, KC_PERC, KC_CIRC, KC_RPRN}, + {_______, _______, _______, ___x___, _______, _______, _______, TD_LBRC, KC_LT, KC_TILD, KC_GT, KC_RBRC}, + {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_BSLS, KC_PIPE, ___x___, ___x___, ___x___}, + }, +#endif + +// ............ .................................................. Function Keys + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | | F7 | F8 | F9 | F12 | + // |-----------------------------------------------------------------------------------| + // | Ctrl | GUI | Alt | Shift| | | | | F4 | F5 | F6 | F11 | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | | F1 | F2 | F3 | F10 | + // |-----------------------------------------------------------------------------------| + // | | | | | | f() | | + | | | | | + // | | | | | f() | | | + | | | | | see _PLOVER + // '-----------------------------------------------------------------------------------' + + [_FNCKEY] = { + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 }, + {OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 }, + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 }, + {_______, _______, _______, _______, ___fn__, ___fn__, _______, KC_PLUS, _______, _______, _______, _______}, + }, diff --git a/keyboards/planck/keymaps/altgr/common/number_fkey_layout.save.h b/keyboards/planck/keymaps/altgr/common/number_fkey_layout.save.h new file mode 100644 index 000000000000..7022863724e2 --- /dev/null +++ b/keyboards/planck/keymaps/altgr/common/number_fkey_layout.save.h @@ -0,0 +1,86 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ......................................................... Number Keypad Layer +#ifdef SHIFT_SYMBOLS + // .-----------------------------------------------------------------------------------. + // | | F | E | D | | | | / | 7 | 8 | 9 | * | + // |-----------------------------------------------------------------------------------| + // | Ctrl | C | B | A | | | | . | 4 | 5 | 6 | - | + // |-----------------------------------------------------------------------------------| + // | | # | G | \ | | | | , | 1 | 2 | 3 | + | + // |-----------------------------------------------------------------------------------| + // | | | | f() | | | | 0 | = | | | | + // | | | | f() | | | | = | 0 | | | | + // '-----------------------------------------------------------------------------------' + + [_NUMBER] = { + {_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, + {OS_CTL, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS}, + {_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, +#ifdef THUMB_0 + {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___}, +#else + {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___}, +#endif + }, +#else + // .-----------------------------------------------------------------------------------. + // | | F | E | D | | | | / | 7 | 8 | 9 | * | + // |-----------------------------------------------------------------------------------| + // | Ctrl | C | B | A | | | | . | 4 | 5 | 6 | - | + // |-----------------------------------------------------------------------------------| + // | | # | X | G | | | | , | 1 | 2 | 3 | + | + // |-----------------------------------------------------------------------------------| + // | | | | f() | | | | 0 | = | | | | + // | | | | f() | | | | = | 0 | | | | + // '-----------------------------------------------------------------------------------' + + [_NUMBER] = { + {_______, KC_F, MT_E, KC_D, _______, _______, _______, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, + {OS_CTL, GT_C, AT_B, LT_A, _______, _______, _______, KC_DOT, KC_4, KC_5, KC_6, KC_MINS}, + {_______, KC_HASH, MT_X, S(KC_G), _______, _______, _______, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, +#ifdef THUMB_0 + {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___}, +#else + {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___}, +#endif + }, + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | { | & | ? | : | } | + // |-----------------------------------------------------------------------------------| + // | | | | f() | | | | ( | $ | % | ^ | ) | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | [ | < | ~ | > | ] | + // |-----------------------------------------------------------------------------------| + // | | | | f() | | | | \ | | | | | | + // '-----------------------------------------------------------------------------------' + + [_NUMSYM] = { + {_______, _______, _______, ___x___, _______, _______, _______, TD_LCBR, KC_AMPR, KC_QUES, KC_COLN, KC_RCBR}, + {___x___, ___x___, ___x___, ___fn__, _______, _______, _______, TD_LPRN, KC_DLR, KC_PERC, KC_CIRC, KC_RPRN}, + {_______, _______, _______, ___x___, _______, _______, _______, TD_LBRC, KC_LT, KC_TILD, KC_GT, KC_RBRC}, + {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_BSLS, KC_PIPE, ___x___, ___x___, ___x___}, + }, +#endif + +// ............ .................................................. Function Keys + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | | F7 | F8 | F9 | F12 | + // |-----------------------------------------------------------------------------------| + // | Ctrl | GUI | Alt | Shift| | | | | F4 | F5 | F6 | F11 | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | | F1 | F2 | F3 | F10 | + // |-----------------------------------------------------------------------------------| + // | | | | | | f() | | + | | | | | + // | | | | | f() | | | + | | | | | see _PLOVER + // '-----------------------------------------------------------------------------------' + + [_FNCKEY] = { + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 }, + {OS_CTL, OS_GUI, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 }, + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 }, + {_______, _______, _______, _______, ___fn__, ___fn__, _______, KC_PLUS, _______, _______, _______, _______}, + }, diff --git a/keyboards/planck/keymaps/altgr/common/plover_keybind.h b/keyboards/planck/keymaps/altgr/common/plover_keybind.h new file mode 100644 index 000000000000..cb4ef92ef849 --- /dev/null +++ b/keyboards/planck/keymaps/altgr/common/plover_keybind.h @@ -0,0 +1,9 @@ + +// simple window manager specific plover keybind hook + +// toggle plover application, see herbstluftwm/config/appbinds +register_code (KC_LGUI); +register_code (KC_LCTL); +tap_key (KC_EQL); +unregister_code(KC_LCTL); +unregister_code(KC_LGUI); diff --git a/keyboards/planck/keymaps/altgr/common/sounds.h b/keyboards/planck/keymaps/altgr/common/sounds.h new file mode 100644 index 000000000000..1bfc7a6da0c9 --- /dev/null +++ b/keyboards/planck/keymaps/altgr/common/sounds.h @@ -0,0 +1,14 @@ + +// ................................................................ Audio Sounds + +#ifdef AUDIO_ENABLE +float song_startup [][2] = SONG(STARTUP_SOUND); +float song_colemak [][2] = SONG(COLEMAK_SOUND); +float song_qwerty [][2] = SONG(QWERTY_SOUND); +float song_plover [][2] = SONG(PLOVER_SOUND); +float song_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); +float song_caps_on [][2] = SONG(CAPS_LOCK_ON_SOUND); +float song_caps_off [][2] = SONG(CAPS_LOCK_OFF_SOUND); +float music_scale [][2] = SONG(MUSIC_SCALE_SOUND); +float song_goodbye [][2] = SONG(GOODBYE_SOUND); +#endif diff --git a/keyboards/planck/keymaps/altgr/common/steno_layout.h b/keyboards/planck/keymaps/altgr/common/steno_layout.h new file mode 100644 index 000000000000..ab4a6fe011cb --- /dev/null +++ b/keyboards/planck/keymaps/altgr/common/steno_layout.h @@ -0,0 +1,39 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ...................................................................... Plover +#ifdef STENO_ENABLE + // ,-----------------------------------------------------------------------------------. + // | # | # | # | # | # | # | # | # | # | # | # | # | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | Base | S | T | P | H | * | * | F | P | L | T | D | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Base | S | K | W | R | * | * | R | B | G | S | Z | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | | A | O | E | U | | + // `-----------------------------------------------------------------------------------' + + [_PLOVER] = { + {STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC }, + {BASE1, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR }, + {BASE2, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR }, + {_______, _______, _______, PS_STNA, PS_STNO, _______, _______, PS_STNE, PS_STNU, _______, _______, _______}, + }, +#else + // ,-----------------------------------------------------------------------------------. + // | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | Base | S | T | P | H | * | * | F | P | L | T | D | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Base | S | K | W | R | * | * | R | B | G | S | Z | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | | A | O | E | U | | + // `-----------------------------------------------------------------------------------' + + [_PLOVER] = { + {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, + {BASE1, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, + {BASE2, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {_______, _______, _______, LT_C, LT_V, _______, _______, LT_N, LT_M, _______, _______, _______}, + }, +#endif diff --git a/keyboards/planck/keymaps/altgr/common/symbol_guifn_layout.h b/keyboards/planck/keymaps/altgr/common/symbol_guifn_layout.h new file mode 100644 index 000000000000..79861087075c --- /dev/null +++ b/keyboards/planck/keymaps/altgr/common/symbol_guifn_layout.h @@ -0,0 +1,75 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ..................................................... Symbol Navigation Layer +#ifdef SHIFT_SYMBOLS + // .-----------------------------------------------------------------------------------. + // | | ~ | * | & | | | | | Home | Up | End | PgUp | + // |-----------------------------------------------------------------------------------| + // | GUI | ^ | % | $ | | | | | Left | Down | Right| PgDn | + // |-----------------------------------------------------------------------------------| + // | | # | @ | ! | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | |Adjust| \ | | f() | | + // '-----------------------------------------------------------------------------------' + + [_SYMBOL] = { + {_______, KC_TILD, KC_ASTR, KC_AMPR, _______, ___x___, ___x___, _______, KC_HOME, KC_UP, KC_END, KC_PGUP}, + {OS_GUI, SM_CIRC, SM_PERC, SM_DLR, _______, ___x___, ___x___, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN}, + {_______, KC_HASH, KC_AT, KC_EXLM, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, + {___x___, ___x___, ___x___, ADJUST, LT_BSLS, ___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___}, + }, +#else + // .-----------------------------------------------------------------------------------. + // | { | . | * | & | } | | | | Home | Up | End | PgUp | + // |-----------------------------------------------------------------------------------| + // | ( | ^ | % | $ | ) | | | | Left | Down | Right| PgDn | + // |-----------------------------------------------------------------------------------| + // | [ | # | @ | ! | ] | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | | | | \ | | f() | | + // '-----------------------------------------------------------------------------------' + + [_SYMBOL] = { + {KC_LCBR, KC_DOT, KC_ASTR, KC_AMPR, TD_RCBR, _______, _______, _______, KC_HOME, KC_UP, KC_END, KC_PGUP}, + {SM_LPRN, SM_CIRC, SM_PERC, SM_DLR, TD_RPRN, _______, _______, _______, LT_LFTX, KC_DOWN, KC_RGHT, KC_PGDN}, + {KC_LBRC, KC_HASH, KC_AT, KC_EXLM, TD_RBRC, _______, _______, _______, _______, _______, _______, _______}, + {___x___, ___x___, ___x___, SL_PIPE, LT_BSLS, ___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___}, + }, + + // .-----------------------------------------------------------------------------------. + // | | ? | + | ~ | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | | < | = | > | | | | | f() | | | | + // |-----------------------------------------------------------------------------------| + // | | 3 | 2 | 1 | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | | | | | f() | | + // '-----------------------------------------------------------------------------------' + + [_SYMREG] = { + {___x___, KC_QUES, KC_PLUS, KC_TILD, ___x___, _______, _______, _______, ___x___, ___x___, ___x___, ___x___}, + {___x___, KC_LT, KC_EQL, TD_RNGL, ___x___, _______, _______, _______, ___fn__, ___x___, ___x___, ___x___}, + {___x___, KC_3, KC_2, KC_1, ___x___, _______, _______, _______, _______, _______, _______, _______}, + {___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___}, + }, +#endif + +// ............................................................... Mouse Actions + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | | Left | Up | Right| Up | + // |-----------------------------------------------------------------------------------| + // | | Btn3 | Btn2 | Btn1 | | | | | Left | Down | Right| Down | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | | | f() | | f() | | + // '-----------------------------------------------------------------------------------' + + [_MOUSE] = { + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U}, + {_______, KC_BTN3, KC_BTN2, KC_BTN1, _______, ___x___, ___x___, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D}, + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, ___fn__, _______, _______, _______, ___fn__, _______, _______, _______}, + }, diff --git a/keyboards/planck/keymaps/altgr/common/tapdance.h b/keyboards/planck/keymaps/altgr/common/tapdance.h new file mode 100644 index 000000000000..d778286bf1ed --- /dev/null +++ b/keyboards/planck/keymaps/altgr/common/tapdance.h @@ -0,0 +1,49 @@ + +// tap dance keys +enum tap_dance { + _CAPS = 0 + ,_COLN + ,_COMM + ,_DOT + ,_DQOT + ,_ENT + ,_EQL + ,_GRV + ,_GT + ,_LBRC + ,_LCBR + ,_LPRN + ,_LT + ,_PRIV + ,_QUOT + ,_RBRC + ,_RCBR + ,_RNGL + ,_RPRN + ,_SEND + ,_SPC + ,_TILD +}; + +#define TD_CAPS TD(_CAPS) +#define TD_COLN TD(_COLN) +#define TD_COMM TD(_COMM) +#define TD_DOT TD(_DOT) +#define TD_DQOT TD(_DQOT) +#define TD_ENT TD(_ENT) +#define TD_EQL TD(_EQL) +#define TD_GRV TD(_GRV) +#define TD_GT TD(_GT) +#define TD_LBRC TD(_LBRC) +#define TD_LCBR TD(_LCBR) +#define TD_LPRN TD(_LPRN) +#define TD_LT TD(_LT) +#define TD_PRIV TD(_PRIV) // compile time macro string, provided in private_string.h +#define TD_QUOT TD(_QUOT) +#define TD_RBRC TD(_RBRC) +#define TD_RCBR TD(_RCBR) +#define TD_RNGL TD(_RNGL) +#define TD_RPRN TD(_RPRN) +#define TD_SEND TD(_SEND) // config.h defined macro string +#define TD_SPC TD(_SPC) // see process_record_user() for extended handling of Spc +#define TD_TILD TD(_TILD) diff --git a/keyboards/planck/keymaps/altgr/common/toggle_layout.h b/keyboards/planck/keymaps/altgr/common/toggle_layout.h new file mode 100644 index 000000000000..713d27bbcfc4 --- /dev/null +++ b/keyboards/planck/keymaps/altgr/common/toggle_layout.h @@ -0,0 +1,102 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ......................................................... Number Keypad Layer + + // .-----------------------------------------------------------------------------------. + // | | F | E | D | | | | / | 7 | 8 | 9 | * | + // |-----------------------------------------------------------------------------------| + // | GUI | C | B | A | | | | . | 4 | 5 | 6 | - | + // |-----------------------------------------------------------------------------------| + // | | # | G | \ | | | | , | 1 | 2 | 3 | + | + // |-----------------------------------------------------------------------------------| + // | | | | f() | Space| | | 0 | = | | | | + // | | | | f() | Space| | | = | 0 | | | | + // '-----------------------------------------------------------------------------------' + + [_TTNUMBER] = { + {_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, + {OS_GUI, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS}, + {_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, +#ifdef THUMB_0 + {_______, _______, _______, TT_ESC, KC_SPC, _______, _______, KC_0, LT_EQL, _______, _______, _______}, +#else + {_______, _______, _______, TT_ESC, KC_SPC, _______, _______, KC_EQL, LT_0, _______, _______, _______}, +#endif + }, + +// ............ .................................................. Function Keys + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | | F7 | F8 | F9 | F12 | + // |-----------------------------------------------------------------------------------| + // | GUI | Ctrl | Alt | Shift| | | | | F4 | F5 | F6 | F11 | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | | F1 | F2 | F3 | F10 | + // |-----------------------------------------------------------------------------------| + // | | | | f() | | | | + | | | | | + // '-----------------------------------------------------------------------------------' + + [_TTFNCKEY] = { + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 }, + {OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 }, + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 }, + {_______, _______, _______, TT_ESC, _______, _______, _______, KC_PLUS, _______, _______, _______, _______}, + }, + +// ....................................................................... Regex + + // ,-----------------------------------------------------------------------------------. + // | | ~ | { | } | & | | | % | [ | ] | @ | | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | | ^ | < | > | ? | | | | | ( | ) | $ | | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | | : | ! | = | / | | | \ | * | . | # | | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | | | | f() | - | | | + | Space| | | | + // `-----------------------------------------------------------------------------------' + + [_TTREGEX] = { + {___x___, KC_TILD, KC_LCBR, KC_RCBR, KC_AMPR, ___x___, ___x___, KC_PERC, KC_LBRC, KC_RBRC, KC_AT, ___x___}, + {___x___, KC_CIRC, KC_LT, KC_GT, KC_QUES, ___x___, ___x___, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, ___x___}, + {___x___, KC_COLN, KC_EXLM, KC_EQL, KC_SLSH, ___x___, ___x___, KC_BSLS, KC_ASTR, KC_DOT, KC_HASH, ___x___}, + {_______, _______, _______, TT_ESC, KC_MINS, _______, _______, KC_PLUS, KC_SPC, _______, _______, _______}, + }, + +// ............................................................ Navigation Layer + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | | Home | Up | End | PgUp | + // |-----------------------------------------------------------------------------------| + // | GUI | Ctrl | Alt | Shift| | | | | Left | Down | Right| PgDn | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | | | | f() | | | | | | | | | + // '-----------------------------------------------------------------------------------' + + [_TTCURSOR] = { + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_HOME, KC_UP, KC_END, KC_PGUP}, + {OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN}, + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, + {_______, _______, _______, TT_ESC, _______, _______, _______, _______, _______, _______, _______, _______}, + }, + +// ............................................................... Mouse Actions + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | | Left | Up | Right| Up | + // |-----------------------------------------------------------------------------------| + // | | Btn3 | Btn2 | Btn1 | | | | | Left | Down | Right| Down | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | | | | f() | | | | | | | | | + // '-----------------------------------------------------------------------------------' + + [_TTMOUSE] = { + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U}, + {_______, KC_BTN3, KC_BTN2, KC_BTN1, _______, ___x___, ___x___, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D}, + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, + {_______, _______, _______, TT_ESC, _______, _______, _______, _______, _______, _______, _______, _______}, + }, diff --git a/keyboards/planck/keymaps/altgr/config.h b/keyboards/planck/keymaps/altgr/config.h new file mode 100644 index 000000000000..d55258c02bd8 --- /dev/null +++ b/keyboards/planck/keymaps/altgr/config.h @@ -0,0 +1,50 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// required because lower/raise modifiers are redefined by colemak-dh +#define PREVENT_STUCK_MODIFIERS + +// tap dance key press termination interval +#define TAPPING_TERM 250 + +// smooth mouse motion +// #define MOUSEKEY_INTERVAL 20 +// #define MOUSEKEY_DELAY 0 +// #define MOUSEKEY_TIME_TO_MAX 60 +// #define MOUSEKEY_MAX_SPEED 7 +// #define MOUSEKEY_WHEEL_DELAY 0 + +// compile time macro string, see functions/hardware planck script (undefine otherwise) +#define PRIVATE_STRING + +// compile time macro string, must be in quotes +#define PUBLIC_STRING ":%s/arch=(.*)/arch=('any')\n" + +// thumb key tap-shift() double tap: one shot shift (0) off (1) on +#define DT_SHIFT 1 + +// number layer 0 position KEYPAD_0, THUMB_0 +#define THUMB_0 + +// home block shift symbol clustes defined (no overlays required for extended symbols, undefine otherwise) +#define SHIFT_SYMBOLS + +// center column TT assignments (undefine for OSM chords) +#define CENTER_TT +#define TAPPING_TOGGLE 1 + +// home row modifiers +#define HOME_MODS +// fix dual function timing +#define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT + +// layout ADNW*, BEAKL*, COLEKA*, QWERTY (default) +#define BEAKLGR + +// sync app with window manager keybind hook defined in plover_keybind.h +#define PLOVER_KEYBIND + +#endif diff --git a/keyboards/planck/keymaps/altgr/keymap.c b/keyboards/planck/keymaps/altgr/keymap.c new file mode 100644 index 000000000000..516f481fc092 --- /dev/null +++ b/keyboards/planck/keymaps/altgr/keymap.c @@ -0,0 +1,490 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. +// +// To flash planck firmware +// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +// Reset keyboard or press hw reset button on base (hole) +// +// cd qmk_firmware/keyboards/planck +// sudo make KEYMAP=sdothum dfu +// +// sudo make clean (good practice before flashing) +// sudo make KEYMAP=sdothum (to compile check) +// +// Package requirements (for arch linux) +// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +// avr-gcc-atmel +// avr-libc-atmel +// dfu-programmer +// +// Notes +// ▔▔▔▔▔ +// ** E R G O W I D E S P L I T ** Layout +// +// Autocompletion tap dance key pairs (),[],{} are available from the +// number/symbol layer, as well as, numerous (un)shift key values +// +// The navigation pad provides a single hand right thumb activated cluster +// with left hand modifiers +// +// #define PRIVATE_STRING includes private_string.h, a user defined code +// block for the PRIV tap dance e.g. SEND_STRING("secret messape"), +// see function private() +// +// Modifier clusters +// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +// The num and sym keys together access the navigation pad layer +// +// ,-----------------------------------------------------------------------------------. +// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| +// `-----------------------------------------------------------------------------------' +// +// Hint +// ▔▔▔▔ +// For sculpted keycaps such as Cherry or OEM profile, reverse the Alt, Num, +// Shift, Shift, Nav, Sym keycaps for more ergonomic thumb orientation and +// actuation +// +// Code +// ▔▔▔▔ +// This source is shamelessly based on the "default" planck layout +// +// #ifdef/#endif block structures are not indented, as syntax highlighting +// in vim is sufficient for identification +// +// c++ commenting style is used throughout +// +// Change history +// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +// See http://thedarnedestthing.com/planck%20constant +// See http://thedarnedestthing.com/planck%20done + + + +// === N O T E === +// +// sudo CPATH=/common make ... + + +#include "config.h" +#include "planck.h" +#include "action_layer.h" +#ifdef STENO_ENABLE +#include "keymap_steno.h" +#endif +#ifdef AUDIO_ENABLE +#include "audio.h" +#endif +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +enum planck_layers { + _BASE = 0 + ,_SHIFT + ,_LSHIFT + ,_RSHIFT + ,_PLOVER + ,_NUMBER + ,_SYMBOL + ,_FNCKEY + ,_MOUSE +#ifdef CENTER_TT + ,_TTNUMBER + ,_TTREGEX + ,_TTFNCKEY + ,_TTCURSOR + ,_TTMOUSE +#endif +#ifndef SHIFT_SYMBOLS + ,_NUMSYM + ,_SYMREG +#endif + ,_EDIT + ,_QWERTY + ,_ADJUST + ,_END_LAYERS +}; + +enum planck_keycodes { + BASE = SAFE_RANGE + ,BASE1 + ,BASE2 + ,PLOVER + ,PLOEXIT + ,SM_CIRC // pseudo GUI_T(S(KC_6)) for shifted key-codes, see process_record_user() + ,SM_DLR // pseudo SFT_T(S(KC_4)) for shifted key-codes, see process_record_user() + ,SM_G // pseudo MT (MOD_LALT | MOD_LSFT, S(KC_G)) for shifted key-codes, see process_record_user() + ,SM_K // pseudo MT (MOD_LGUI | MOD_LSFT, S(KC_K)) for shifted key-codes, see process_record_user() + ,SM_PERC // pseudo ALT_T(S(KC_5)) for shifted key-codes, see process_record_user() + ,SM_LPRN // pseudo CTL_T(S(KC_9)) for shifted key-codes, see process_record_user() + ,SM_W // pseudo MT (MOD_LGUI | MOD_LSFT, S(KC_W)) for shifted key-codes, see process_record_user() + ,SL_LEFT // pseudo LT (_MOUSE, S(KC_LEFT)) for shifted key-codes, see process_record_user() + ,SP_DEL // pseudo LT (_MOUSE, KC_DEL) for shifted key-codes, see process_record_user() + ,SL_PIPE // pseudo LT (_ADJUST, S(KC_BSLS)) for shifted key-codes, see process_record_user() + ,SL_TAB // pseudo LT (_FNCKEY, S(KC_TAB)) for shifted key-codes, see process_record_user() +#ifdef CENTER_TT + ,TT_ESC +#endif +#ifdef STENO_ENABLE + ,PS_STNA = STN_A + ,PS_STNO = STN_O + ,PS_STNE = STN_E + ,PS_STNU = STN_U +#else + ,LT_C = LT (_NUMBER, KC_C) + ,LT_V = LT (_FNCKEY, KC_V) + ,LT_N = LT (_EDIT, KC_N) + ,LT_M = LT (_SYMBOL, KC_M) +#endif + ,PS_BASE +}; + +// modifier keys +#define AT_B ALT_T(KC_B) +#define AT_DOWN ALT_T(KC_DOWN) +#define CT_RGHT CTL_T(KC_RGHT) +#define GT_C GUI_T(KC_C) +#define GT_UP GUI_T(KC_UP) +#define MT_E MT (MOD_LCTL | MOD_LALT, KC_E) +#define MT_X MT (MOD_LALT | MOD_LSFT, KC_X) +#define ST_A SFT_T(KC_A) +#ifdef HOME_MODS +#define HOME_K GUI_T(KC_K) +#define HOME_H CTL_T(KC_H) +#define HOME_E ALT_T(KC_E) +#define HOME_A SFT_T(KC_A) +#if defined(BEAKLMU) || defined(BEAKLSP) || defined(BEAKLGR) +#define HOME_T SFT_T(KC_T) +#define HOME_R ALT_T(KC_R) +#define HOME_S CTL_T(KC_S) +#define HOME_W GUI_T(KC_W) +#else +#define HOME_T SFT_T(KC_T) +#define HOME_S ALT_T(KC_S) +#define HOME_N GUI_T(KC_N) +#define HOME_B CTL_T(KC_B) +#endif +#else +#define HOME_K KC_K +#define HOME_H KC_H +#define HOME_E KC_E +#define HOME_A KC_A +#define HOME_T KC_T +#define HOME_S KC_S +#define HOME_N KC_N +#define HOME_B KC_B +#endif + +#define S_DOWN S (KC_DOWN) +#define S_LEFT S (KC_LEFT) +#define S_RGHT S (KC_RGHT) +#define S_TAB S (KC_TAB) +#define S_UP S (KC_UP) + +#include "tapdance.h" + +// keycodes +#define ___x___ KC_TRNS +#define ___fn__ KC_TRNS +#ifdef _______ +#undef _______ +#endif +#define _______ KC_NO + +#define COPY LCTL(KC_C) +#define CUT LCTL(KC_X) +#define EOT LCTL(KC_D) +#define NAK LCTL(KC_U) +#define PASTE LCTL(KC_V) +#define UNDO LCTL(KC_Z) +#define TMCOPY LALT(LCTL(KC_C)) +#define TMPASTE LALT(LCTL(KC_V)) +#define LT_BSLS LT (_MOUSE, KC_BSLS) // see process_record_user() for extended handling +#define LT_BSPC LT (_EDIT, KC_BSPC) +#define SP_LEFT LT (_EDIT, KC_LEFT) +#define LT_ESC LT (_NUMBER, KC_ESC) +#define LT_LEFT LT (_SYMBOL, KC_LEFT) // see process_record_user() for extended handling +#define SP_BSPC LT (_SYMBOL, KC_BSPC) // see process_record_user() for extended handling +#define LT_TAB LT (_FNCKEY, KC_TAB) +#define LT_INS LT (_FNCKEY, KC_INS) +#define LT_ALTG LT (_FNCKEY, KC_RALT) +#define ADJUST MO (_ADJUST) +#define OS_ALT OSM (MOD_LALT) +#define OS_CTL OSM (MOD_LCTL) +#define OS_GUI OSM (MOD_LGUI) +#define OS_SFT OSM (MOD_LSFT) +#define OS_CALT OSM (MOD_LALT | MOD_LCTL) +#define OS_CGUI OSM (MOD_LGUI | MOD_LCTL) +#define OS_CSFT OSM (MOD_LSFT | MOD_LCTL) +#define OS_SALT OSM (MOD_LALT | MOD_LSFT) +#define OS_SGUI OSM (MOD_LGUI | MOD_LSFT) + +#ifdef CENTER_TT +#ifdef BEAKLSP +#define CNTR_TL OSM (MOD_LSFT) +#else +#define CNTR_TL TT (_TTFNCKEY) +#endif +#define CNTR_TR KC_CAPS +#define CNTR_HL TT (_TTCURSOR) +#define CNTR_HR TT (_TTMOUSE) +#define CNTR_BL TT (_TTNUMBER) +#define CNTR_BR TT (_TTREGEX) +#else +#define CNTR_TL OSM (MOD_LALT | MOD_LCTL) +#define CNTR_TR OSM (MOD_LGUI | MOD_LCTL) +#define CNTR_HL OSM (MOD_LALT | MOD_LSFT) +#define CNTR_HR OSM (MOD_LGUI | MOD_LSFT) +#define CNTR_BL TD (_CAPS) +#define CNTR_BR OSM (MOD_LSFT | MOD_LCTL) +#endif + +#ifdef THUMB_0 +#define LT_EQL LT (_ADJUST, KC_EQL) +#else +#define LT_0 LT (_ADJUST, KC_0) +#endif +#ifndef SHIFT_SYMBOLS +#define LT_A LT (_NUMSYM, KC_A) +#define LT_LFTX LT (_SYMREG, KC_LEFT) +#endif + +// ........................................................ Default Alpha Layout + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +#include "beakl.h" +#include "colemak.h" +#include "qwerty.h" +#include "steno_layout.h" + +// ...................................................... Number / Function Keys + +#include "number_fkey_layout.h" + +// ......................................................... Symbol / Navigation + +#include "symbol_guifn_layout.h" + +// ............................................................... Toggle Layers + +#ifdef CENTER_TT +#include "toggle_layout.h" +#endif + +// ......................................................... Short Cuts / Adjust + +#include "chord_layout.h" + +}; + +// ...................................................................... Sounds + +#include "sounds.h" + +// ........................................................... User Keycode Trap + +#include "keycode_functions.h" + +#define BASE_1 1 +#define BASE_2 2 +#define BASE_12 3 +static uint8_t base_n = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) +{ + switch (keycode) { + case BASE1: + if (record->event.pressed) { + base_n = base_n | BASE_1; + if (base_n == BASE_12) { + base_layer(); + } + } + else { + base_n = base_n & ~BASE_1; + } + return false; + case BASE2: + if (record->event.pressed) { + base_n = base_n | BASE_2; + if (base_n == BASE_12) { + base_layer(); + } + } + else { + base_n = base_n & ~BASE_2; + } + return false; + case AT_DOWN: +#ifdef HOME_MODS + case HOME_E: +#if defined(BEAKLMU) || defined(BEAKLSP) || defined(BEAKLGR) + case HOME_R: +#else + case HOME_S: +#endif +#endif + tap_mods(record, KC_LALT); + break; + case CT_RGHT: +#ifdef HOME_MODS + case HOME_K: +#if defined(BEAKLMU) || defined(BEAKLSP) || defined(BEAKLGR) + case HOME_W: +#else + case HOME_B: +#endif +#endif + tap_mods(record, KC_LGUI); + break; + case GT_UP: +#ifdef HOME_MODS + case HOME_H: +#if defined(BEAKLMU) || defined(BEAKLSP) || defined(BEAKLGR) + case HOME_S: +#else + case HOME_N: +#endif +#endif + tap_mods(record, KC_LCTL); + break; +#ifdef HOME_MODS + case HOME_A: + case HOME_T: + tap_mods(record, KC_LSFT); + break; +#endif +#ifdef CENTER_TT + case TT_ESC: + clear_tt(); // exit TT layer + return false; +#endif + case LT_ESC: +#ifdef CENTER_TT + if (tt_keycode != 0) { + clear_tt(); // exit TT layer + return false; + } +#endif + tap_layer(record, _NUMBER); + break; + case LT_LEFT: + case SP_BSPC: + tap_layer(record, _SYMBOL); + // LT (_SYMBOL, KC_LEFT) left right combination layer + thumb_layer(record, RIGHT, 0, 0, _SYMBOL, _LSHIFT); + break; + case OS_ALT: + tap_mods(record, KC_LALT); + break; + case OS_CTL: + tap_mods(record, KC_LCTL); + break; + case OS_GUI: + tap_mods(record, KC_LGUI); + break; + case SM_CIRC: + // GUI_T(S(KC_6)) + mt_shift(record, KC_LGUI, 0, KC_6); + break; + case SM_DLR: + // SFT_T(S(KC_4)) + mt_shift(record, KC_LSFT, 0, KC_4); + break; + case SM_G: + // MT(MOD_LALT | MOD_LSFT, S(KC_G)) + mt_shift(record, KC_LALT, KC_LSFT, KC_G); + break; + case SM_K: + // MT(MOD_LGUI | MOD_LSFT, S(KC_K)) + mt_shift(record, KC_LGUI, KC_LSFT, KC_K); + break; + case SM_W: + // MT(MOD_LGUI | MOD_LSFT, S(KC_W)) + mt_shift(record, KC_LGUI, KC_LSFT, KC_W); + break; + case SM_LPRN: + // CTL_T(S(KC_9)) + mt_shift(record, KC_LCTL, 0, KC_9); + break; + case SM_PERC: + // ALT_T(S(KC_5)) + mt_shift(record, KC_LALT, 0, KC_5); + break; + case LT_BSLS: + tap_layer(record, _MOUSE); + // LT (_MOUSE, KC_BSLS) left right combination layer, see #define LT_BSLS + thumb_layer(record, LEFT, 0, 0, _MOUSE, _SYMBOL); + break; + case SL_LEFT: + tap_layer(record, _MOUSE); + // LT (_MOUSE, S(KC_LEFT)) left right combination layer + thumb_layer(record, RIGHT, SHIFT, KC_LEFT, _MOUSE, _LSHIFT); + break; + case SP_DEL: + tap_layer(record, _MOUSE); + // LT (_MOUSE, S(KC_LEFT)) left right combination layer + thumb_layer(record, RIGHT, NOSHIFT, KC_DEL, _MOUSE, _LSHIFT); + break; + case SL_PIPE: + // LT (_ADJUST, S(KC_BSLS)) emulation + lt_shift(record, KC_BSLS, _ADJUST); + break; + case SL_TAB: + // LT (_FNCKEY, S(KC_TAB)) emulation + lt_shift(record, KC_TAB, _FNCKEY); + break; + case TD_ENT: + tap_layer(record, _RSHIFT); + // LT (_RSHIFT, KC_ENT) emulation, see tap dance enter + break; + case TD_SPC: + tap_layer(record, _LSHIFT); + // LT (_LSHIFT, KC_SPC) left right combination layer, see tap dance TD_SPC + thumb_layer(record, LEFT, 0, 0, _LSHIFT, _SYMBOL); + break; +#ifdef CENTER_TT + case CNTR_TL: + case CNTR_TR: + case CNTR_HL: + case CNTR_HR: + case CNTR_BL: + case CNTR_BR: + if (tt_keycode != keycode && tt_keycode != 0) { + clear_tt(); // return to base layer first if different TT layer selected + } + tt_keycode = keycode; + break; +#endif +// #ifdef STENO_ENABLE +// case PS_STNA: +// stn_layer(record, STN_A, _NUMBER); +// break; +// case PS_STNO: +// stn_layer(record, STN_O, _FNCKEY); +// break; +// case PS_STNE: +// stn_layer(record, STN_E, _EDIT); +// break; +// case PS_STNU: +// stn_layer(record, STN_U, _SYMBOL); +// break; +// #endif + case PS_BASE: + if (record->event.pressed) { + base_layer(); + } + return false; + case PLOVER: + steno(record); + return false; + case PLOEXIT: + steno_exit(record); + return false; + } + return true; +} + +#include "init.h" diff --git a/keyboards/planck/keymaps/altgr/private_string.h b/keyboards/planck/keymaps/altgr/private_string.h new file mode 100644 index 000000000000..6ea34cc8e87e --- /dev/null +++ b/keyboards/planck/keymaps/altgr/private_string.h @@ -0,0 +1 @@ +SEND_STRING("the keys of enoch"); diff --git a/keyboards/planck/keymaps/altgr/qwerty.h b/keyboards/planck/keymaps/altgr/qwerty.h new file mode 100644 index 000000000000..d11d0478b3f4 --- /dev/null +++ b/keyboards/planck/keymaps/altgr/qwerty.h @@ -0,0 +1,64 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ...................................................................... Qwerty +#ifdef QWERTY + // ,-----------------------------------------------------------------------------------. + // | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | ; | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | X | C | V | B | Caps |^Shift| N | M | , | . | " | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_W, KC_E, KC_R, KC_T, CNTR_TL, CNTR_TR, KC_Y, KC_U, KC_I, KC_O, KC_P }, + {KC_A, KC_S, KC_D, KC_F, KC_G, CNTR_HL, CNTR_HR, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, + {KC_Z, KC_X, KC_C, KC_V, KC_B, CNTR_BL, CNTR_BR, KC_N, KC_M, KC_COMM, KC_DOT, TD_QUOT}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P)}, + {S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), KC_SCLN}, + {S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), KC_COMM, KC_DOT, TD_QUOT}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | : | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | X | C | V | B | Caps |^Shift| N | M | / | ? | " | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | - | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P)}, + {S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), TD_COLN}, + {S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), KC_SLSH, KC_QUES, TD_DQOT}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_MINS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | : | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | X | C | V | B | Caps |^Shift| N | M | ~ | ` | " | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Caps | _ | ↑Tab | Bksp | f() | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P)}, + {S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), TD_COLN}, + {S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), TD_TILD, TD_GRV, TD_DQOT}, + {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_UNDS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, +#endif + diff --git a/keyboards/planck/keymaps/altgr/readme.md b/keyboards/planck/keymaps/altgr/readme.md new file mode 100644 index 000000000000..58f73e3b445a --- /dev/null +++ b/keyboards/planck/keymaps/altgr/readme.md @@ -0,0 +1,10 @@ +# The sdothum extended Default Planck Layout + +- Colemak-DH layout layer with shift/tab key overlays +- Number and symbol/function key layer +- Hexadecimal keypad layer +- Navigation keypad layer +- Dynamic macro layer +- Autocompletion tap key pairs (),[],{} +- Normalized enter and esc key position across keyboard layers +- Extensive use of tap keys diff --git a/keyboards/planck/keymaps/altgr/rules.mk b/keyboards/planck/keymaps/altgr/rules.mk new file mode 100644 index 000000000000..40f153844c19 --- /dev/null +++ b/keyboards/planck/keymaps/altgr/rules.mk @@ -0,0 +1,26 @@ +# Build Options: +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically + +BOOTMAGIC_ENABLE = no # virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # mouse keys(+4700) +EXTRAKEY_ENABLE = no # audio control and System control(+450) +CONSOLE_ENABLE = no # console for debug(+400) +COMMAND_ENABLE = no # commands for debug and configuration +NKRO_ENABLE = yes # nkey rollover +BACKLIGHT_ENABLE = no # enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # audio output on port C6 +UNICODE_ENABLE = no # unicode +BLUETOOTH_ENABLE = no # enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # enable WS2812 RGB underlight, do not enable this with audio at the same time. +STENO_ENABLE = yes # enable TX Bolt protocol, requires VIRTSER and may not work with mouse keys + +# do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # breathing sleep LED during USB suspend + +TAP_DANCE_ENABLE = yes # enable double tap completion of (),[],{} + +ifndef QUANTUM_DIR +include ../../../../Makefile +endif diff --git a/keyboards/planck/keymaps/hiea/common/chord_layout.h b/keyboards/planck/keymaps/hiea/common/chord_layout.h new file mode 100644 index 000000000000..2c785d56ca75 --- /dev/null +++ b/keyboards/planck/keymaps/hiea/common/chord_layout.h @@ -0,0 +1,41 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// .................................................................. Short Cuts + + // .-----------------------------------------------------------------------------------. + // | | | Copy | Paste| | | | | | | | | + // |--------------------------------------------------------------+------+------+------| + // | Undo | Cut | Copy | Paste| | | | | PRIV | PUB | | | + // |-----------------------------------------------------------------------------------| + // | | | Nak | Eot | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | | | | | | | f() | | | | | | + // | | | | | | | | f() | | | | | see _PLOVER + // '-----------------------------------------------------------------------------------' + + [_EDIT] = { + {_______, _______, TMCOPY, TMPASTE, _______, _______, _______, _______, _______, _______, _______, _______}, + {UNDO, CUT, COPY, PASTE, _______, _______, _______, _______, TD_PRIV, TD_SEND, _______, _______}, + {_______, _______, NAK, EOT, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, ___fn__, ___fn__, _______, _______, _______, _______}, + }, + +// ................................................................ Adjust Layer + + // ,-----------------------------------------------------------------------------------. + // |Plover| | | | | | | | | | | | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // |Aud on| | | | | | | | | | | | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Reset| | | | | | | | | | | | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | | | | f() | | | | | f() | | | | + // `-----------------------------------------------------------------------------------' + + [_ADJUST] = { + {PLOVER, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {AU_ON, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, ___fn__, _______, _______, _______, _______, ___fn__, _______, _______, _______}, + }, diff --git a/keyboards/planck/keymaps/hiea/common/init.h b/keyboards/planck/keymaps/hiea/common/init.h new file mode 100644 index 000000000000..6366a19f65eb --- /dev/null +++ b/keyboards/planck/keymaps/hiea/common/init.h @@ -0,0 +1,56 @@ + +// ....................................................................... Audio + +void matrix_init_user(void) +{ +#ifdef STENO_ENABLE + steno_set_mode(STENO_MODE_BOLT); // or STENO_MODE_GEMINI +#endif +#ifdef AUDIO_ENABLE + startup_user(); +#endif +} + +#ifdef AUDIO_ENABLE +#ifdef BACKLIGHT_ENABLE +void led_set_user(uint8_t usb_led) +{ + static uint8_t old_usb_led = 0; + _delay_ms(10); // gets rid of tick + if (!is_playing_notes()) { + if ((usb_led & (1<event.pressed) { + key_timer = timer_read(); + register_code(modifier); + if (modifier2) { + register_code(modifier2); + } + } + else { + unregister_code(modifier); + if (modifier2) { + unregister_code(modifier2); + } + if (timer_elapsed(key_timer) < TAPPING_TERM) { + shift_key(keycode); + } + key_timer = 0; + } +} + +// ................................................................... Mod Masks + +// tap dance persistant mods, see process_record_user() +// keyboard_report->mods (?) appears to be cleared by tap dance +static uint8_t mods = 0; + +void tap_mods(keyrecord_t *record, uint16_t keycode) +{ + if (record->event.pressed) { + mods |= MOD_BIT(keycode); + } + else { + mods &= ~(MOD_BIT(keycode)); + } +} + +// (un)register modifiers +void modifier(void (*f)(uint8_t)) +{ + if (mods & MOD_BIT(KC_LCTL)) { + (*f)(KC_LCTL); + } + if (mods & MOD_BIT(KC_LGUI)) { + (*f)(KC_LGUI); + } + if (mods & MOD_BIT(KC_LALT)) { + (*f)(KC_LALT); + } +} + +// .................................................... Triple Dance Shift/Layer + +static uint8_t dt_shift = 0; + +void double_shift(uint16_t keycode, uint8_t layer) +{ + tap_key (keycode); + if (DT_SHIFT) { + // set_oneshot_mods(MOD_LSFT); + // layer_on(layer); + layer_on (_SHIFT); + set_oneshot_layer(_SHIFT, ONESHOT_START); + dt_shift = 1; + } + else { + layer_on(layer); + } +} + +// tap dance LT (LAYER, KEY) emulation with -> and auto-repeat extensions! +void tap_shift(qk_tap_dance_state_t *state, uint16_t keycode, uint8_t layer) +{ + // double tap plus down + if (state->count > 2) { + // double enter shift + if (keycode == KC_ENT) { + tap_key (keycode); + double_shift(keycode, layer); + } + // repeating keycode + else { + register_code(keycode); + } + } + // tap plus down (or double tap): keycode (one shot) shift + else if (state->count > 1) { + double_shift(keycode, layer); + } + // down: shift + else if (state->pressed) { + layer_on(layer); + } + // tap: keycode + else { + modifier(register_code); + tap_key (keycode); + modifier(unregister_code); + } +} + +void tap_reset(uint16_t keycode, uint8_t layer) +{ + unregister_code(keycode); + if (DT_SHIFT && dt_shift) { + clear_oneshot_layer_state(ONESHOT_PRESSED); + dt_shift = 0; + } + else { + layer_off(layer); + } +} + +// augment pseudo LT (_RSHIFT, KC_ENT) handling below for rapid sequences +void enter(qk_tap_dance_state_t *state, void *user_data) +{ + tap_shift(state, KC_ENT, _RSHIFT); +} + +void enter_reset(qk_tap_dance_state_t *state, void *user_data) +{ + tap_reset(KC_ENT, _RSHIFT); +} + +// augment pseudo LT (_LSHIFT, KC_SPC) handling below for rapid sequences +void space(qk_tap_dance_state_t *state, void *user_data) +{ + tap_shift(state, KC_SPC, _LSHIFT); +} + +void space_reset(qk_tap_dance_state_t *state, void *user_data) +{ + tap_reset(KC_SPC, _LSHIFT); +} + +// ......................................................... Triple Dance Insert + +void double_max(uint8_t count, uint8_t shift, uint16_t keycode) +{ + if (shift) { + shift_key(keycode); + if (count > 1) { + shift_key(keycode); + } + } + else { + tap_key(keycode); + if (count > 1) { + tap_key(keycode); + } + } +} + +void colon(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 2) { + tap_key (KC_SPC); + shift_key(KC_SCLN); + shift_key(KC_SCLN); + tap_key (KC_SPC); + } + else { + double_max(state->count, SHIFT, KC_SCLN); + } + reset_tap_dance(state); +} + +void eql(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 2) { + tap_key(KC_SPC); + tap_key(KC_SLSH); + tap_key(KC_EQL); + tap_key(KC_SPC); + } + else { + double_max(state->count, NOSHIFT, KC_EQL); + } + reset_tap_dance(state); +} + +void greater(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 2) { + tap_key (KC_SPC); + tap_key (KC_MINS); + shift_key(KC_DOT); + tap_key (KC_SPC); + } + else { + double_max(state->count, SHIFT, KC_DOT); + } + reset_tap_dance(state); +} + +void lesser(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 2) { + tap_key (KC_SPC); + shift_key(KC_COMM); + tap_key (KC_MINS); + tap_key (KC_SPC); + } + else { + double_max(state->count, SHIFT, KC_COMM); + } + reset_tap_dance(state); +} + +void tilde(qk_tap_dance_state_t *state, void *user_data) +{ + // double tap plus down: repeating keycode + if (state->count > 2) { + register_code(KC_LSFT); + register_code(KC_GRV); + } + // tap: keycode + else { + shift_key(KC_GRV); + // double tap: unix home directory + if (state->count > 1) { + tap_key(KC_SLSH); + } + } +} + +void tilde_reset(qk_tap_dance_state_t *state, void *user_data) +{ + unregister_code(KC_GRV); + unregister_code(KC_LSFT); +} + +// ............................................................. Tap Dance Pairs + +// tap dance shift rules +#define S_NEVER 0 +#define S_SINGLE 1 +#define S_DOUBLE 2 +#define S_ALWAYS S_SINGLE | S_DOUBLE + +void symbol_pair(uint8_t shift, uint16_t left, uint16_t right) +{ + if (shift & S_DOUBLE) { + shift_key(left); + shift_key(right); + } + else { + tap_key(left); + tap_key(right); + } +} + +#define CLOSE 1 + +// tap dance symbol pairs +void tap_pair(qk_tap_dance_state_t *state, uint8_t shift, uint16_t left, uint16_t right, uint16_t modifier, uint8_t close) +{ + // triple tap: left right with cursor between symbol pair a la vim :-) + if (state->count > 2) { + symbol_pair(shift, left, right); + tap_key (KC_LEFT); + } + // double tap: left right + else if (state->count > 1) { + symbol_pair(shift, left, right); + } + // down: modifier + else if (state->pressed) { + if (modifier) { + register_code(modifier); + } + } + // tap: left (close: right) + else { + if (shift & S_SINGLE) { + shift_key(close ? right : left); + } + else { + tap_key(close ? right : left); + } + } + if (!modifier) { + reset_tap_dance(state); + } +} + +void doublequote(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_QUOT, KC_QUOT, 0, 0); +} + +void grave(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_NEVER, KC_GRV, KC_GRV, 0, 0); +} + +void lbrace(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_NEVER, KC_LBRC, KC_RBRC, 0, 0); +} + +void lcurly(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_LBRC, KC_RBRC, 0, 0); +} + +void lparen(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_9, KC_0, KC_LCTL, 0); +} + +void lparen_reset(qk_tap_dance_state_t *state, void *user_data) +{ + unregister_code(KC_LCTL); +} + +void quote(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_NEVER, KC_QUOT, KC_QUOT, 0, 0); +} + +void rangle(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_COMM, KC_DOT, 0, CLOSE); +} + +void rbrace(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_NEVER, KC_LBRC, KC_RBRC, 0, CLOSE); +} + +void rcurly(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_LBRC, KC_RBRC, 0, CLOSE); +} + +void rparen(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_9, KC_0, 0, CLOSE); +} + +void rparen_reset(qk_tap_dance_state_t *state, void *user_data) +{ + unregister_code(KC_LCTL); +} + +// ............................................................ Tap Dance Insert + +void comma(qk_tap_dance_state_t *state, void *user_data) +{ + tap_key(KC_COMM); + if (state->count > 1) { + tap_key(KC_SPC); + } + reset_tap_dance(state); +} + +void dot(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 1) { + shift_key(KC_COLN); + } + else { + tap_key(KC_DOT); + } + reset_tap_dance(state); +} + +// compile time macro string, see functions/hardware planck script +void private(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 1) { +#ifdef PRIVATE_STRING +#include "private_string.h" +#endif + } + reset_tap_dance(state); +} + +// config.h defined string +void send(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 1) { + SEND_STRING(PUBLIC_STRING); + } + reset_tap_dance(state); +} + +// .......................................................... Tap Dance One Shot + +void caps(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 1) { + tap_key(KC_CAPS); + } + else { + set_oneshot_mods(MOD_LSFT); + register_code (KC_LSFT); // on hold down + } +} + +void caps_reset(qk_tap_dance_state_t *state, void *user_data) +{ + unregister_code(KC_LSFT); +} + +// ................................................................... Tap Dance + +qk_tap_dance_action_t tap_dance_actions[] = { + [_CAPS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, caps, caps_reset) + ,[_COLN] = ACTION_TAP_DANCE_FN (colon) + ,[_COMM] = ACTION_TAP_DANCE_FN (comma) + ,[_DOT] = ACTION_TAP_DANCE_FN (dot) + ,[_DQOT] = ACTION_TAP_DANCE_FN (doublequote) + ,[_ENT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, enter, enter_reset) + ,[_EQL] = ACTION_TAP_DANCE_FN (eql) + ,[_GRV] = ACTION_TAP_DANCE_FN (grave) + ,[_GT] = ACTION_TAP_DANCE_FN (greater) + ,[_LBRC] = ACTION_TAP_DANCE_FN (lbrace) + ,[_LCBR] = ACTION_TAP_DANCE_FN (lcurly) + ,[_LPRN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lparen, lparen_reset) + ,[_LT] = ACTION_TAP_DANCE_FN (lesser) + ,[_PRIV] = ACTION_TAP_DANCE_FN (private) + ,[_QUOT] = ACTION_TAP_DANCE_FN (quote) + ,[_RBRC] = ACTION_TAP_DANCE_FN (rbrace) + ,[_RCBR] = ACTION_TAP_DANCE_FN (rcurly) + ,[_RNGL] = ACTION_TAP_DANCE_FN (rangle) + ,[_RPRN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rparen, rparen_reset) + ,[_SEND] = ACTION_TAP_DANCE_FN (send) + ,[_SPC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, space, space_reset) + ,[_TILD] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tilde, tilde_reset) +}; + +// .............................................................. Dynamic Layers + +#define LEFT 1 +#define RIGHT 2 +static uint8_t thumb = 0; + +// LEFT (KC_SPC, S(KC_BSLS)), RIGHT (KC_LEFT, S(KC_LEFT)) opposite thumb combinations, see process_record_user() +// up, up -> _BASE +// up, down -> _SYMBOL +// down, up -> _NUMBER +// down, down -> _MOUSE // see layer keycodes that raise mouse layer +#define THUMBS_DOWN _MOUSE // layer + +static uint8_t overlayer = 0; + +// left right thumb layer combinations +void thumb_layer(keyrecord_t *record, uint8_t side, uint8_t shift, uint16_t keycode, uint8_t thumb_dn_layer, uint8_t thumb_up_layer) +{ + if (record->event.pressed) { + // layer_on via tap_layer(), see process_record_user() + key_timer = timer_read(); + thumb = thumb | side; + } + else { + layer_off(thumb_dn_layer); + // opposite thumb_layer() thumb may have switched effective layer! + if (overlayer) { + layer_off(overlayer); + overlayer = 0; + } + if (!key_press(shift, keycode)) { + layer_off(THUMBS_DOWN); // both thumbs needed + // opposite thumb down? see left right combination layer table above + if (thumb & (side == LEFT ? RIGHT : LEFT)) { + layer_on(thumb_up_layer); + overlayer = thumb_up_layer; + } + } + clear_mods(); + thumb = thumb & ~side; + key_timer = 0; + } +} + +// #ifdef STENO_ENABLE +// // LT for steno keycode +// void stn_layer(keyrecord_t *record, uint16_t keycode, uint8_t layer) +// { +// if (record->event.pressed) { +// key_timer = timer_read(); +// if (keycode) { +// process_steno(keycode, record); +// } +// layer_on(layer); +// } +// else { +// layer_off(layer); +// if (keycode) { +// if (timer_elapsed(key_timer) < TAPPING_TERM) { +// process_steno(keycode, record); +// } +// else { +// // clear pressed state (request push of updated) process_steno.c and .h +// // steno_clear_state(); +// } +// } +// key_timer = 0; +// } +// } +// #endif + +// LT for S(keycode) +void lt_shift(keyrecord_t *record, uint16_t keycode, uint8_t layer) +{ + if (record->event.pressed) { + key_timer = timer_read(); + layer_on(layer); + } + else { + layer_off(layer); + // for shifted keycodes, hence, LT_SHIFT + key_press(SHIFT, keycode); + clear_mods(); + key_timer = 0; + } +} + +// set layer asap to overcome macro latency errors, notably tap dance and LT usage +// this routine inexplicably (?) sets layer_on() faster than can be done in thumb_layer() +void tap_layer(keyrecord_t *record, uint8_t layer) +{ + if (record->event.pressed) { + layer_on(layer); + } + else { + layer_off(layer); + } +} + +// ..................................................................... Keymaps + +// void persistant_default_layer_set(uint16_t default_layer) +// { +// eeconfig_update_default_layer(default_layer); +// default_layer_set (default_layer); +// } + +void clear_layers(void) +{ + uint8_t layer; + for (layer = 0; layer < _END_LAYERS; layer++) { + layer_off(layer); + } +} + +#ifdef CENTER_TT +static uint16_t tt_keycode = 0; // current TT keycode + +void clear_tt(void) +{ + if (tt_keycode == KC_CAPS) { + tap_key(KC_CAPS); // clear capslock + } + tt_keycode = 0; + clear_layers(); + set_single_persistent_default_layer(_BASE); +} +#endif + +// txbolt plover run state +static uint8_t plover = 0; + +void toggle_plover(uint8_t state) +{ + if (plover != state) { +#ifdef PLOVER_KEYBIND +#include "plover_keybind.h" +#endif + plover = state; + } +} + +void base_layer(void) +{ +#ifdef AUDIO_ENABLE + if (plover) { + PLAY_SONG(song_plover_gb); + } + else { + PLAY_SONG(song_qwerty); + } +#endif + clear_layers(); + set_single_persistent_default_layer(_BASE); + toggle_plover(0); +} + +void steno(keyrecord_t *record) +{ + if (record->event.pressed) { +#ifdef AUDIO_ENABLE + PLAY_SONG(song_plover); +#endif + clear_layers(); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + if (!plover) { + toggle_plover(1); + } + } +} + +void steno_exit(keyrecord_t *record) +{ + if (record->event.pressed) { + base_layer(); + toggle_plover(0); + } +} diff --git a/keyboards/planck/keymaps/hiea/common/number_fkey_layout.h b/keyboards/planck/keymaps/hiea/common/number_fkey_layout.h new file mode 100644 index 000000000000..321482b2919a --- /dev/null +++ b/keyboards/planck/keymaps/hiea/common/number_fkey_layout.h @@ -0,0 +1,46 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ......................................................... Number Keypad Layer + + // .-----------------------------------------------------------------------------------. + // | | F | E | D | | | | / | 7 | 8 | 9 | * | + // |-----------------------------------------------------------------------------------| + // | GUI | C | B | A | | | | . | 4 | 5 | 6 | - | + // |-----------------------------------------------------------------------------------| + // | | # | G | \ | | | | , | 1 | 2 | 3 | + | + // |-----------------------------------------------------------------------------------| + // | | | | f() | | | | 0 | = | | | | + // | | | | f() | | | | = | 0 | | | | + // '-----------------------------------------------------------------------------------' + + [_NUMBER] = { + {_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, + {OS_GUI, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS}, + {_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, +#ifdef THUMB_0 + {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___}, +#else + {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___}, +#endif + }, + +// ............ .................................................. Function Keys + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | | F7 | F8 | F9 | F12 | + // |-----------------------------------------------------------------------------------| + // | Ctrl | GUI | Alt | Shift| | | | | F4 | F5 | F6 | F11 | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | | F1 | F2 | F3 | F10 | + // |-----------------------------------------------------------------------------------| + // | | | | | | f() | | + | | | | | + // | | | | | f() | | | + | | | | | see _PLOVER + // '-----------------------------------------------------------------------------------' + + [_FNCKEY] = { + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 }, + {OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 }, + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 }, + {_______, _______, _______, _______, ___fn__, ___fn__, _______, KC_PLUS, _______, _______, _______, _______}, + }, diff --git a/keyboards/planck/keymaps/hiea/common/plover_keybind.h b/keyboards/planck/keymaps/hiea/common/plover_keybind.h new file mode 100644 index 000000000000..cb4ef92ef849 --- /dev/null +++ b/keyboards/planck/keymaps/hiea/common/plover_keybind.h @@ -0,0 +1,9 @@ + +// simple window manager specific plover keybind hook + +// toggle plover application, see herbstluftwm/config/appbinds +register_code (KC_LGUI); +register_code (KC_LCTL); +tap_key (KC_EQL); +unregister_code(KC_LCTL); +unregister_code(KC_LGUI); diff --git a/keyboards/planck/keymaps/hiea/common/sounds.h b/keyboards/planck/keymaps/hiea/common/sounds.h new file mode 100644 index 000000000000..1bfc7a6da0c9 --- /dev/null +++ b/keyboards/planck/keymaps/hiea/common/sounds.h @@ -0,0 +1,14 @@ + +// ................................................................ Audio Sounds + +#ifdef AUDIO_ENABLE +float song_startup [][2] = SONG(STARTUP_SOUND); +float song_colemak [][2] = SONG(COLEMAK_SOUND); +float song_qwerty [][2] = SONG(QWERTY_SOUND); +float song_plover [][2] = SONG(PLOVER_SOUND); +float song_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); +float song_caps_on [][2] = SONG(CAPS_LOCK_ON_SOUND); +float song_caps_off [][2] = SONG(CAPS_LOCK_OFF_SOUND); +float music_scale [][2] = SONG(MUSIC_SCALE_SOUND); +float song_goodbye [][2] = SONG(GOODBYE_SOUND); +#endif diff --git a/keyboards/planck/keymaps/hiea/common/steno_layout.h b/keyboards/planck/keymaps/hiea/common/steno_layout.h new file mode 100644 index 000000000000..ab4a6fe011cb --- /dev/null +++ b/keyboards/planck/keymaps/hiea/common/steno_layout.h @@ -0,0 +1,39 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ...................................................................... Plover +#ifdef STENO_ENABLE + // ,-----------------------------------------------------------------------------------. + // | # | # | # | # | # | # | # | # | # | # | # | # | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | Base | S | T | P | H | * | * | F | P | L | T | D | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Base | S | K | W | R | * | * | R | B | G | S | Z | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | | A | O | E | U | | + // `-----------------------------------------------------------------------------------' + + [_PLOVER] = { + {STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC }, + {BASE1, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR }, + {BASE2, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR }, + {_______, _______, _______, PS_STNA, PS_STNO, _______, _______, PS_STNE, PS_STNU, _______, _______, _______}, + }, +#else + // ,-----------------------------------------------------------------------------------. + // | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | Base | S | T | P | H | * | * | F | P | L | T | D | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Base | S | K | W | R | * | * | R | B | G | S | Z | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | | A | O | E | U | | + // `-----------------------------------------------------------------------------------' + + [_PLOVER] = { + {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, + {BASE1, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, + {BASE2, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {_______, _______, _______, LT_C, LT_V, _______, _______, LT_N, LT_M, _______, _______, _______}, + }, +#endif diff --git a/keyboards/planck/keymaps/hiea/common/symbol_guifn_layout.h b/keyboards/planck/keymaps/hiea/common/symbol_guifn_layout.h new file mode 100644 index 000000000000..677e46409baa --- /dev/null +++ b/keyboards/planck/keymaps/hiea/common/symbol_guifn_layout.h @@ -0,0 +1,40 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ..................................................... Symbol Navigation Layer + + // .-----------------------------------------------------------------------------------. + // | | ~ | * | & | | | | | Home | Up | End | PgUp | + // |-----------------------------------------------------------------------------------| + // | GUI | ^ | % | $ | | | | | Left | Down | Right| PgDn | + // |-----------------------------------------------------------------------------------| + // | | # | @ | ! | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | |Adjust| \ | | f() | | + // '-----------------------------------------------------------------------------------' + + [_SYMBOL] = { + {_______, KC_TILD, KC_ASTR, KC_AMPR, _______, ___x___, ___x___, _______, KC_HOME, KC_UP, KC_END, KC_PGUP}, + {OS_GUI, SM_CIRC, SM_PERC, SM_DLR, _______, ___x___, ___x___, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN}, + {_______, KC_HASH, KC_AT, KC_EXLM, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, + {___x___, ___x___, ___x___, ADJUST, LT_BSLS, ___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___}, + }, + +// ............................................................... Mouse Actions + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | | Left | Up | Right| Up | + // |-----------------------------------------------------------------------------------| + // | | Btn3 | Btn2 | Btn1 | | | | | Left | Down | Right| Down | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | | | f() | | f() | | + // '-----------------------------------------------------------------------------------' + + [_MOUSE] = { + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U}, + {_______, KC_BTN3, KC_BTN2, KC_BTN1, _______, ___x___, ___x___, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D}, + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, ___fn__, _______, _______, _______, ___fn__, _______, _______, _______}, + }, diff --git a/keyboards/planck/keymaps/hiea/common/tapdance.h b/keyboards/planck/keymaps/hiea/common/tapdance.h new file mode 100644 index 000000000000..d778286bf1ed --- /dev/null +++ b/keyboards/planck/keymaps/hiea/common/tapdance.h @@ -0,0 +1,49 @@ + +// tap dance keys +enum tap_dance { + _CAPS = 0 + ,_COLN + ,_COMM + ,_DOT + ,_DQOT + ,_ENT + ,_EQL + ,_GRV + ,_GT + ,_LBRC + ,_LCBR + ,_LPRN + ,_LT + ,_PRIV + ,_QUOT + ,_RBRC + ,_RCBR + ,_RNGL + ,_RPRN + ,_SEND + ,_SPC + ,_TILD +}; + +#define TD_CAPS TD(_CAPS) +#define TD_COLN TD(_COLN) +#define TD_COMM TD(_COMM) +#define TD_DOT TD(_DOT) +#define TD_DQOT TD(_DQOT) +#define TD_ENT TD(_ENT) +#define TD_EQL TD(_EQL) +#define TD_GRV TD(_GRV) +#define TD_GT TD(_GT) +#define TD_LBRC TD(_LBRC) +#define TD_LCBR TD(_LCBR) +#define TD_LPRN TD(_LPRN) +#define TD_LT TD(_LT) +#define TD_PRIV TD(_PRIV) // compile time macro string, provided in private_string.h +#define TD_QUOT TD(_QUOT) +#define TD_RBRC TD(_RBRC) +#define TD_RCBR TD(_RCBR) +#define TD_RNGL TD(_RNGL) +#define TD_RPRN TD(_RPRN) +#define TD_SEND TD(_SEND) // config.h defined macro string +#define TD_SPC TD(_SPC) // see process_record_user() for extended handling of Spc +#define TD_TILD TD(_TILD) diff --git a/keyboards/planck/keymaps/hiea/common/toggle_layout.h b/keyboards/planck/keymaps/hiea/common/toggle_layout.h new file mode 100644 index 000000000000..713d27bbcfc4 --- /dev/null +++ b/keyboards/planck/keymaps/hiea/common/toggle_layout.h @@ -0,0 +1,102 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ......................................................... Number Keypad Layer + + // .-----------------------------------------------------------------------------------. + // | | F | E | D | | | | / | 7 | 8 | 9 | * | + // |-----------------------------------------------------------------------------------| + // | GUI | C | B | A | | | | . | 4 | 5 | 6 | - | + // |-----------------------------------------------------------------------------------| + // | | # | G | \ | | | | , | 1 | 2 | 3 | + | + // |-----------------------------------------------------------------------------------| + // | | | | f() | Space| | | 0 | = | | | | + // | | | | f() | Space| | | = | 0 | | | | + // '-----------------------------------------------------------------------------------' + + [_TTNUMBER] = { + {_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, + {OS_GUI, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS}, + {_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, +#ifdef THUMB_0 + {_______, _______, _______, TT_ESC, KC_SPC, _______, _______, KC_0, LT_EQL, _______, _______, _______}, +#else + {_______, _______, _______, TT_ESC, KC_SPC, _______, _______, KC_EQL, LT_0, _______, _______, _______}, +#endif + }, + +// ............ .................................................. Function Keys + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | | F7 | F8 | F9 | F12 | + // |-----------------------------------------------------------------------------------| + // | GUI | Ctrl | Alt | Shift| | | | | F4 | F5 | F6 | F11 | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | | F1 | F2 | F3 | F10 | + // |-----------------------------------------------------------------------------------| + // | | | | f() | | | | + | | | | | + // '-----------------------------------------------------------------------------------' + + [_TTFNCKEY] = { + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 }, + {OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 }, + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 }, + {_______, _______, _______, TT_ESC, _______, _______, _______, KC_PLUS, _______, _______, _______, _______}, + }, + +// ....................................................................... Regex + + // ,-----------------------------------------------------------------------------------. + // | | ~ | { | } | & | | | % | [ | ] | @ | | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | | ^ | < | > | ? | | | | | ( | ) | $ | | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | | : | ! | = | / | | | \ | * | . | # | | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | | | | f() | - | | | + | Space| | | | + // `-----------------------------------------------------------------------------------' + + [_TTREGEX] = { + {___x___, KC_TILD, KC_LCBR, KC_RCBR, KC_AMPR, ___x___, ___x___, KC_PERC, KC_LBRC, KC_RBRC, KC_AT, ___x___}, + {___x___, KC_CIRC, KC_LT, KC_GT, KC_QUES, ___x___, ___x___, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, ___x___}, + {___x___, KC_COLN, KC_EXLM, KC_EQL, KC_SLSH, ___x___, ___x___, KC_BSLS, KC_ASTR, KC_DOT, KC_HASH, ___x___}, + {_______, _______, _______, TT_ESC, KC_MINS, _______, _______, KC_PLUS, KC_SPC, _______, _______, _______}, + }, + +// ............................................................ Navigation Layer + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | | Home | Up | End | PgUp | + // |-----------------------------------------------------------------------------------| + // | GUI | Ctrl | Alt | Shift| | | | | Left | Down | Right| PgDn | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | | | | f() | | | | | | | | | + // '-----------------------------------------------------------------------------------' + + [_TTCURSOR] = { + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_HOME, KC_UP, KC_END, KC_PGUP}, + {OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN}, + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, + {_______, _______, _______, TT_ESC, _______, _______, _______, _______, _______, _______, _______, _______}, + }, + +// ............................................................... Mouse Actions + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | | Left | Up | Right| Up | + // |-----------------------------------------------------------------------------------| + // | | Btn3 | Btn2 | Btn1 | | | | | Left | Down | Right| Down | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | | | | f() | | | | | | | | | + // '-----------------------------------------------------------------------------------' + + [_TTMOUSE] = { + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U}, + {_______, KC_BTN3, KC_BTN2, KC_BTN1, _______, ___x___, ___x___, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D}, + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, + {_______, _______, _______, TT_ESC, _______, _______, _______, _______, _______, _______, _______, _______}, + }, diff --git a/keyboards/planck/keymaps/hiea/config.h b/keyboards/planck/keymaps/hiea/config.h new file mode 100644 index 000000000000..9bb5e0873507 --- /dev/null +++ b/keyboards/planck/keymaps/hiea/config.h @@ -0,0 +1,50 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// required because lower/raise modifiers are redefined by colemak-dh +#define PREVENT_STUCK_MODIFIERS + +// tap dance key press termination interval +#define TAPPING_TERM 250 + +// smooth mouse motion +// #define MOUSEKEY_INTERVAL 20 +// #define MOUSEKEY_DELAY 0 +// #define MOUSEKEY_TIME_TO_MAX 60 +// #define MOUSEKEY_MAX_SPEED 7 +// #define MOUSEKEY_WHEEL_DELAY 0 + +// compile time macro string, see functions/hardware planck script (undefine otherwise) +#define PRIVATE_STRING + +// compile time macro string, must be in quotes +#define PUBLIC_STRING ":%s/arch=(.*)/arch=('any')\n" + +// thumb key tap-shift() double tap: one shot shift (0) off (1) on +#define DT_SHIFT 1 + +// number layer 0 position KEYPAD_0, THUMB_0 +#define THUMB_0 + +// home block shift symbol clustes defined (no overlays required for extended symbols, undefine otherwise) +#define SHIFT_SYMBOLS + +// center column TT assignments (undefine for OSM chords) +#define CENTER_TT +#define TAPPING_TOGGLE 1 + +// home row modifiers +#define HOME_MODS +// fix dual function timing +#define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT + +// layout ADNW*, BEAKL*, COLEKA*, QWERTY (default) +#define DEFAULT + +// sync app with window manager keybind hook defined in plover_keybind.h +#define PLOVER_KEYBIND + +#endif diff --git a/keyboards/planck/keymaps/hiea/hiea.h b/keyboards/planck/keymaps/hiea/hiea.h new file mode 100644 index 000000000000..093802aef16b --- /dev/null +++ b/keyboards/planck/keymaps/hiea/hiea.h @@ -0,0 +1,63 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// .................................................................. BEAKL HIEA +#ifdef DEFAULT + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | H | I | E | A | . |Cursor| Mouse| C | T | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | ; | " | K | , | Num | Regex| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Ins | Left | Ent | Bksp | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X }, + {HOME_H, HOME_I, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_R, HOME_S, HOME_W }, + {KC_J, KC_SCLN, TD_QUOT, KC_K, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V }, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {S(KC_H), S(KC_I), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, + {S(KC_J), KC_SCLN, TD_QUOT, S(KC_K), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | [ | ] | Z | Shift| Caps | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | H | ^ | < | > | ~ |Cursor| Mouse| C | T | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | ! | = | ` | Num | Regex| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | ↑Tab | f() | Ins | Left | _ | Del | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), S(KC_Y), KC_LBRC, KC_RBRC, S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {SM_H, KC_CIRC, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, + {S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, S_TAB, ___fn__, LT_INS, S_LEFT, KC_UNDS, SP_DEL, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | Shift| Caps | G | { | } | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | H | I | E | A | ? |Cursor| Mouse| | | ( | ) | $ | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | K | / | Num | Regex| \ | * | . | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Tab | - | Ins | Left | f() | Bksp | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), KC_LCBR, KC_RCBR, S(KC_M), S(KC_X)}, + {S(KC_H), S(KC_I), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, SM_W }, + {S(KC_J), TD_COLN, TD_DQOT, S(KC_K), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, KC_TAB, KC_MINS, LT_INS, S_LEFT, ___fn__, SP_BSPC, S_DOWN, S_UP, S_RGHT }, + }, +#endif diff --git a/keyboards/planck/keymaps/hiea/keymap.c b/keyboards/planck/keymaps/hiea/keymap.c new file mode 100644 index 000000000000..2f573f9a45d0 --- /dev/null +++ b/keyboards/planck/keymaps/hiea/keymap.c @@ -0,0 +1,429 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. +// +// To flash planck firmware +// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +// Reset keyboard or press hw reset button on base (hole) +// +// cd qmk_firmware/keyboards/planck +// sudo make KEYMAP=sdothum dfu +// +// sudo make clean (good practice before flashing) +// sudo make KEYMAP=sdothum (to compile check) +// +// Package requirements (for arch linux) +// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +// avr-gcc-atmel +// avr-libc-atmel +// dfu-programmer +// +// Notes +// ▔▔▔▔▔ +// ** E R G O W I D E S P L I T ** Layout +// +// Autocompletion tap dance key pairs (),[],{} are available from the +// number/symbol layer, as well as, numerous (un)shift key values +// +// The navigation pad provides a single hand right thumb activated cluster +// with left hand modifiers +// +// #define PRIVATE_STRING includes private_string.h, a user defined code +// block for the PRIV tap dance e.g. SEND_STRING("secret messape"), +// see function private() +// +// Modifier clusters +// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +// The num and sym keys together access the navigation pad layer +// +// ,-----------------------------------------------------------------------------------. +// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| +// `-----------------------------------------------------------------------------------' +// +// Hint +// ▔▔▔▔ +// For sculpted keycaps such as Cherry or OEM profile, reverse the Alt, Num, +// Shift, Shift, Nav, Sym keycaps for more ergonomic thumb orientation and +// actuation +// +// Code +// ▔▔▔▔ +// This source is shamelessly based on the "default" planck layout +// +// #ifdef/#endif block structures are not indented, as syntax highlighting +// in vim is sufficient for identification +// +// c++ commenting style is used throughout +// +// Change history +// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +// See http://thedarnedestthing.com/planck%20constant +// See http://thedarnedestthing.com/planck%20done + + + +// === N O T E === +// +// sudo CPATH=/common make ... + + +#include "config.h" +#include "planck.h" +#include "action_layer.h" +#ifdef STENO_ENABLE +#include "keymap_steno.h" +#endif +#ifdef AUDIO_ENABLE +#include "audio.h" +#endif +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +enum planck_layers { + _BASE = 0 + ,_SHIFT + ,_LSHIFT + ,_RSHIFT + ,_PLOVER + ,_NUMBER + ,_SYMBOL + ,_FNCKEY + ,_MOUSE +#ifdef CENTER_TT + ,_TTNUMBER + ,_TTREGEX + ,_TTFNCKEY + ,_TTCURSOR + ,_TTMOUSE +#endif + ,_EDIT + ,_ADJUST + ,_END_LAYERS +}; + +enum planck_keycodes { + BASE = SAFE_RANGE + ,BASE1 + ,BASE2 + ,PLOVER + ,SM_CIRC // pseudo GUI_T(S(KC_6)) for shifted key-codes, see process_record_user() + ,SM_DLR // pseudo SFT_T(S(KC_4)) for shifted key-codes, see process_record_user() + ,SM_G // pseudo MT (MOD_LALT | MOD_LSFT, S(KC_G)) for shifted key-codes, see process_record_user() + ,SM_H // pseudo MT (MOD_LCTL | MOD_LSFT, S(KC_H)) for shifted key-codes, see process_record_user() + ,SM_PERC // pseudo ALT_T(S(KC_5)) for shifted key-codes, see process_record_user() + ,SM_W // pseudo MT (MOD_LGUI | MOD_LSFT, S(KC_W)) for shifted key-codes, see process_record_user() + ,SL_LEFT // pseudo LT (_MOUSE, S(KC_LEFT)) for shifted key-codes, see process_record_user() + ,SP_DEL // pseudo LT (_MOUSE, KC_DEL) for shifted key-codes, see process_record_user() + ,SL_TAB // pseudo LT (_FNCKEY, S(KC_TAB)) for shifted key-codes, see process_record_user() +#ifdef CENTER_TT + ,TT_ESC +#endif +#ifdef STENO_ENABLE + ,PS_STNA = STN_A + ,PS_STNO = STN_O + ,PS_STNE = STN_E + ,PS_STNU = STN_U +#else + ,LT_C = LT (_NUMBER, KC_C) + ,LT_V = LT (_FNCKEY, KC_V) + ,LT_N = LT (_EDIT, KC_N) + ,LT_M = LT (_SYMBOL, KC_M) +#endif +}; + +// modifier keys +#define AT_B ALT_T(KC_B) +#define AT_DOWN ALT_T(KC_DOWN) +#define CT_RGHT CTL_T(KC_RGHT) +#define GT_C GUI_T(KC_C) +#define GT_UP GUI_T(KC_UP) +#define MT_E MT (MOD_LCTL | MOD_LALT, KC_E) +#define ST_A SFT_T(KC_A) +#ifdef HOME_MODS +#define HOME_H GUI_T(KC_H) +#define HOME_I CTL_T(KC_I) +#define HOME_E ALT_T(KC_E) +#define HOME_A SFT_T(KC_A) +#define HOME_T SFT_T(KC_T) +#define HOME_R ALT_T(KC_R) +#define HOME_S CTL_T(KC_S) +#define HOME_W GUI_T(KC_W) +#else +#define HOME_H KC_H +#define HOME_I KC_I +#define HOME_E KC_E +#define HOME_A KC_A +#define HOME_T KC_T +#define HOME_R KC_R +#define HOME_S KC_S +#define HOME_W KC_W +#endif + +#define S_DOWN S (KC_DOWN) +#define S_LEFT S (KC_LEFT) +#define S_RGHT S (KC_RGHT) +#define S_TAB S (KC_TAB) +#define S_UP S (KC_UP) + +#include "tapdance.h" + +// keycodes +#define ___x___ KC_TRNS +#define ___fn__ KC_TRNS +#ifdef _______ +#undef _______ +#endif +#define _______ KC_NO + +#define COPY LCTL(KC_C) +#define CUT LCTL(KC_X) +#define EOT LCTL(KC_D) +#define NAK LCTL(KC_U) +#define PASTE LCTL(KC_V) +#define UNDO LCTL(KC_Z) +#define TMCOPY LALT(LCTL(KC_C)) +#define TMPASTE LALT(LCTL(KC_V)) +#define LT_BSLS LT (_MOUSE, KC_BSLS) // see process_record_user() for extended handling +#define LT_BSPC LT (_EDIT, KC_BSPC) +#define SP_LEFT LT (_EDIT, KC_LEFT) +#define LT_ESC LT (_NUMBER, KC_ESC) +#define LT_LEFT LT (_SYMBOL, KC_LEFT) // see process_record_user() for extended handling +#define SP_BSPC LT (_SYMBOL, KC_BSPC) // see process_record_user() for extended handling +#define LT_TAB LT (_FNCKEY, KC_TAB) +#define LT_INS LT (_FNCKEY, KC_INS) +#define ADJUST MO (_ADJUST) +#define OS_ALT OSM (MOD_LALT) +#define OS_CTL OSM (MOD_LCTL) +#define OS_GUI OSM (MOD_LGUI) +#define OS_SFT OSM (MOD_LSFT) + +#ifdef CENTER_TT +#define CNTR_TL TT (_TTFNCKEY) +#define CNTR_TR KC_CAPS +#define CNTR_HL TT (_TTCURSOR) +#define CNTR_HR TT (_TTMOUSE) +#define CNTR_BL TT (_TTNUMBER) +#define CNTR_BR TT (_TTREGEX) +#else +#define CNTR_TL OSM (MOD_LALT | MOD_LCTL) +#define CNTR_TR OSM (MOD_LGUI | MOD_LCTL) +#define CNTR_HL OSM (MOD_LALT | MOD_LSFT) +#define CNTR_HR OSM (MOD_LGUI | MOD_LSFT) +#define CNTR_BL TD (_CAPS) +#define CNTR_BR OSM (MOD_LSFT | MOD_LCTL) +#endif + +#ifdef THUMB_0 +#define LT_EQL LT (_ADJUST, KC_EQL) +#else +#define LT_0 LT (_ADJUST, KC_0) +#endif + +// ........................................................ Default Alpha Layout + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +#include "hiea.h" +#include "steno_layout.h" + +// ...................................................... Number / Function Keys + +#include "number_fkey_layout.h" + +// ......................................................... Symbol / Navigation + +#include "symbol_guifn_layout.h" + +// ............................................................... Toggle Layers + +#ifdef CENTER_TT +#include "toggle_layout.h" +#endif + +// ......................................................... Short Cuts / Adjust + +#include "chord_layout.h" + +}; + +// ...................................................................... Sounds + +#include "sounds.h" + +// ........................................................... User Keycode Trap + +#include "keycode_functions.h" + +#define BASE_1 1 +#define BASE_2 2 +#define BASE_12 3 +static uint8_t base_n = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) +{ + switch (keycode) { + case BASE1: + if (record->event.pressed) { + base_n = base_n | BASE_1; + if (base_n == BASE_12) { + base_layer(); + } + } + else { + base_n = base_n & ~BASE_1; + } + return false; + case BASE2: + if (record->event.pressed) { + base_n = base_n | BASE_2; + if (base_n == BASE_12) { + base_layer(); + } + } + else { + base_n = base_n & ~BASE_2; + } + return false; + case AT_DOWN: +#ifdef HOME_MODS + case HOME_E: + case HOME_R: +#endif + tap_mods(record, KC_LALT); + break; + case CT_RGHT: +#ifdef HOME_MODS + case HOME_H: + case HOME_W: +#endif + tap_mods(record, KC_LGUI); + break; + case GT_UP: +#ifdef HOME_MODS + case HOME_I: + case HOME_S: +#endif + tap_mods(record, KC_LCTL); + break; +#ifdef HOME_MODS + case HOME_A: + case HOME_T: + tap_mods(record, KC_LSFT); + break; +#endif +#ifdef CENTER_TT + case TT_ESC: + clear_tt(); // exit TT layer + return false; +#endif + case LT_ESC: +#ifdef CENTER_TT + if (tt_keycode != 0) { + clear_tt(); // exit TT layer + return false; + } +#endif + tap_layer(record, _NUMBER); + break; + case LT_LEFT: + case SP_BSPC: + tap_layer(record, _SYMBOL); + // LT (_SYMBOL, KC_LEFT) left right combination layer + thumb_layer(record, RIGHT, 0, 0, _SYMBOL, _LSHIFT); + break; + case OS_ALT: + tap_mods(record, KC_LALT); + break; + case OS_CTL: + tap_mods(record, KC_LCTL); + break; + case OS_GUI: + tap_mods(record, KC_LGUI); + break; + case SM_CIRC: + // GUI_T(S(KC_6)) + mt_shift(record, KC_LGUI, 0, KC_6); + break; + case SM_DLR: + // SFT_T(S(KC_4)) + mt_shift(record, KC_LSFT, 0, KC_4); + break; + case SM_G: + // MT(MOD_LALT | MOD_LSFT, S(KC_G)) + mt_shift(record, KC_LALT, KC_LSFT, KC_G); + break; + case SM_H: + // MT(MOD_LCTL | MOD_LSFT, S(KC_K)) + mt_shift(record, KC_LCTL, KC_LSFT, KC_H); + break; + case SM_W: + // MT(MOD_LGUI | MOD_LSFT, S(KC_W)) + mt_shift(record, KC_LGUI, KC_LSFT, KC_W); + break; + case SM_PERC: + // ALT_T(S(KC_5)) + mt_shift(record, KC_LALT, 0, KC_5); + break; + case LT_BSLS: + tap_layer(record, _MOUSE); + // LT (_MOUSE, KC_BSLS) left right combination layer, see #define LT_BSLS + thumb_layer(record, LEFT, 0, 0, _MOUSE, _SYMBOL); + break; + case SL_LEFT: + tap_layer(record, _MOUSE); + // LT (_MOUSE, S(KC_LEFT)) left right combination layer + thumb_layer(record, RIGHT, SHIFT, KC_LEFT, _MOUSE, _LSHIFT); + break; + case SP_DEL: + tap_layer(record, _MOUSE); + // LT (_MOUSE, S(KC_LEFT)) left right combination layer + thumb_layer(record, RIGHT, NOSHIFT, KC_DEL, _MOUSE, _LSHIFT); + break; + case SL_TAB: + // LT (_FNCKEY, S(KC_TAB)) emulation + lt_shift(record, KC_TAB, _FNCKEY); + break; + case TD_ENT: + tap_layer(record, _RSHIFT); + // LT (_RSHIFT, KC_ENT) emulation, see tap dance enter + break; + case TD_SPC: + tap_layer(record, _LSHIFT); + // LT (_LSHIFT, KC_SPC) left right combination layer, see tap dance TD_SPC + thumb_layer(record, LEFT, 0, 0, _LSHIFT, _SYMBOL); + break; +#ifdef CENTER_TT + case CNTR_TL: + case CNTR_TR: + case CNTR_HL: + case CNTR_HR: + case CNTR_BL: + case CNTR_BR: + if (tt_keycode != keycode && tt_keycode != 0) { + clear_tt(); // return to base layer first if different TT layer selected + } + tt_keycode = keycode; + break; +#endif +// #ifdef STENO_ENABLE +// case PS_STNA: +// stn_layer(record, STN_A, _NUMBER); +// break; +// case PS_STNO: +// stn_layer(record, STN_O, _FNCKEY); +// break; +// case PS_STNE: +// stn_layer(record, STN_E, _EDIT); +// break; +// case PS_STNU: +// stn_layer(record, STN_U, _SYMBOL); +// break; +// #endif + case PLOVER: + steno(record); + return false; + } + return true; +} + +#include "init.h" diff --git a/keyboards/planck/keymaps/hiea/qwerty.h b/keyboards/planck/keymaps/hiea/qwerty.h new file mode 100644 index 000000000000..d11d0478b3f4 --- /dev/null +++ b/keyboards/planck/keymaps/hiea/qwerty.h @@ -0,0 +1,64 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ...................................................................... Qwerty +#ifdef QWERTY + // ,-----------------------------------------------------------------------------------. + // | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | ; | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | X | C | V | B | Caps |^Shift| N | M | , | . | " | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_W, KC_E, KC_R, KC_T, CNTR_TL, CNTR_TR, KC_Y, KC_U, KC_I, KC_O, KC_P }, + {KC_A, KC_S, KC_D, KC_F, KC_G, CNTR_HL, CNTR_HR, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, + {KC_Z, KC_X, KC_C, KC_V, KC_B, CNTR_BL, CNTR_BR, KC_N, KC_M, KC_COMM, KC_DOT, TD_QUOT}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P)}, + {S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), KC_SCLN}, + {S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), KC_COMM, KC_DOT, TD_QUOT}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | : | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | X | C | V | B | Caps |^Shift| N | M | / | ? | " | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | - | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P)}, + {S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), TD_COLN}, + {S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), KC_SLSH, KC_QUES, TD_DQOT}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_MINS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | : | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | X | C | V | B | Caps |^Shift| N | M | ~ | ` | " | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Caps | _ | ↑Tab | Bksp | f() | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P)}, + {S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), TD_COLN}, + {S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), TD_TILD, TD_GRV, TD_DQOT}, + {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_UNDS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, +#endif + diff --git a/keyboards/planck/keymaps/hiea/readme.md b/keyboards/planck/keymaps/hiea/readme.md new file mode 100644 index 000000000000..58f73e3b445a --- /dev/null +++ b/keyboards/planck/keymaps/hiea/readme.md @@ -0,0 +1,10 @@ +# The sdothum extended Default Planck Layout + +- Colemak-DH layout layer with shift/tab key overlays +- Number and symbol/function key layer +- Hexadecimal keypad layer +- Navigation keypad layer +- Dynamic macro layer +- Autocompletion tap key pairs (),[],{} +- Normalized enter and esc key position across keyboard layers +- Extensive use of tap keys diff --git a/keyboards/planck/keymaps/hiea/rules.mk b/keyboards/planck/keymaps/hiea/rules.mk new file mode 100644 index 000000000000..40f153844c19 --- /dev/null +++ b/keyboards/planck/keymaps/hiea/rules.mk @@ -0,0 +1,26 @@ +# Build Options: +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically + +BOOTMAGIC_ENABLE = no # virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # mouse keys(+4700) +EXTRAKEY_ENABLE = no # audio control and System control(+450) +CONSOLE_ENABLE = no # console for debug(+400) +COMMAND_ENABLE = no # commands for debug and configuration +NKRO_ENABLE = yes # nkey rollover +BACKLIGHT_ENABLE = no # enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # audio output on port C6 +UNICODE_ENABLE = no # unicode +BLUETOOTH_ENABLE = no # enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # enable WS2812 RGB underlight, do not enable this with audio at the same time. +STENO_ENABLE = yes # enable TX Bolt protocol, requires VIRTSER and may not work with mouse keys + +# do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # breathing sleep LED during USB suspend + +TAP_DANCE_ENABLE = yes # enable double tap completion of (),[],{} + +ifndef QUANTUM_DIR +include ../../../../Makefile +endif diff --git a/keyboards/planck/keymaps/hieax/common/chord_layout.h b/keyboards/planck/keymaps/hieax/common/chord_layout.h new file mode 100644 index 000000000000..2c785d56ca75 --- /dev/null +++ b/keyboards/planck/keymaps/hieax/common/chord_layout.h @@ -0,0 +1,41 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// .................................................................. Short Cuts + + // .-----------------------------------------------------------------------------------. + // | | | Copy | Paste| | | | | | | | | + // |--------------------------------------------------------------+------+------+------| + // | Undo | Cut | Copy | Paste| | | | | PRIV | PUB | | | + // |-----------------------------------------------------------------------------------| + // | | | Nak | Eot | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | | | | | | | f() | | | | | | + // | | | | | | | | f() | | | | | see _PLOVER + // '-----------------------------------------------------------------------------------' + + [_EDIT] = { + {_______, _______, TMCOPY, TMPASTE, _______, _______, _______, _______, _______, _______, _______, _______}, + {UNDO, CUT, COPY, PASTE, _______, _______, _______, _______, TD_PRIV, TD_SEND, _______, _______}, + {_______, _______, NAK, EOT, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, ___fn__, ___fn__, _______, _______, _______, _______}, + }, + +// ................................................................ Adjust Layer + + // ,-----------------------------------------------------------------------------------. + // |Plover| | | | | | | | | | | | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // |Aud on| | | | | | | | | | | | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Reset| | | | | | | | | | | | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | | | | f() | | | | | f() | | | | + // `-----------------------------------------------------------------------------------' + + [_ADJUST] = { + {PLOVER, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {AU_ON, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, ___fn__, _______, _______, _______, _______, ___fn__, _______, _______, _______}, + }, diff --git a/keyboards/planck/keymaps/hieax/common/init.h b/keyboards/planck/keymaps/hieax/common/init.h new file mode 100644 index 000000000000..6366a19f65eb --- /dev/null +++ b/keyboards/planck/keymaps/hieax/common/init.h @@ -0,0 +1,56 @@ + +// ....................................................................... Audio + +void matrix_init_user(void) +{ +#ifdef STENO_ENABLE + steno_set_mode(STENO_MODE_BOLT); // or STENO_MODE_GEMINI +#endif +#ifdef AUDIO_ENABLE + startup_user(); +#endif +} + +#ifdef AUDIO_ENABLE +#ifdef BACKLIGHT_ENABLE +void led_set_user(uint8_t usb_led) +{ + static uint8_t old_usb_led = 0; + _delay_ms(10); // gets rid of tick + if (!is_playing_notes()) { + if ((usb_led & (1<event.pressed) { + key_timer = timer_read(); + register_code(modifier); + if (modifier2) { + register_code(modifier2); + } + } + else { + unregister_code(modifier); + if (modifier2) { + unregister_code(modifier2); + } + if (timer_elapsed(key_timer) < TAPPING_TERM) { + shift_key(keycode); + } + key_timer = 0; + } +} + +// ................................................................... Mod Masks + +// tap dance persistant mods, see process_record_user() +// keyboard_report->mods (?) appears to be cleared by tap dance +static uint8_t mods = 0; + +void tap_mods(keyrecord_t *record, uint16_t keycode) +{ + if (record->event.pressed) { + mods |= MOD_BIT(keycode); + } + else { + mods &= ~(MOD_BIT(keycode)); + } +} + +// (un)register modifiers +void modifier(void (*f)(uint8_t)) +{ + if (mods & MOD_BIT(KC_LCTL)) { + (*f)(KC_LCTL); + } + if (mods & MOD_BIT(KC_LGUI)) { + (*f)(KC_LGUI); + } + if (mods & MOD_BIT(KC_LALT)) { + (*f)(KC_LALT); + } + if (mods & MOD_BIT(KC_LSFT)) { + (*f)(KC_LSFT); + } + if (mods & MOD_BIT(KC_RSFT)) { + (*f)(KC_RSFT); + } +} + +// .................................................... Triple Dance Shift/Layer + +static uint8_t dt_shift = 0; + +void double_shift(uint16_t keycode, uint8_t layer) +{ + tap_key (keycode); + if (DT_SHIFT) { + // set_oneshot_mods(MOD_LSFT); + // layer_on(layer); + layer_on (_SHIFT); + set_oneshot_layer(_SHIFT, ONESHOT_START); + dt_shift = 1; + } + else { + layer_on(layer); + } +} + +// tap dance LT (LAYER, KEY) emulation with -> and auto-repeat extensions! +void tap_shift(qk_tap_dance_state_t *state, uint16_t keycode, uint8_t layer) +{ + // double tap plus down + if (state->count > 2) { + // double enter shift + if (keycode == KC_ENT) { + tap_key (keycode); + double_shift(keycode, layer); + } + // repeating keycode + else { + register_code(keycode); + } + } + // tap plus down (or double tap): keycode (one shot) shift + else if (state->count > 1) { + double_shift(keycode, layer); + } + // down: shift + else if (state->pressed) { + layer_on(layer); + } + // tap: keycode + else { + modifier(register_code); + tap_key (keycode); + modifier(unregister_code); + } +} + +void tap_reset(uint16_t keycode, uint8_t layer) +{ + unregister_code(keycode); + if (DT_SHIFT && dt_shift) { + clear_oneshot_layer_state(ONESHOT_PRESSED); + dt_shift = 0; + } + else { + layer_off(layer); + } +} + +// augment pseudo LT (_RSHIFT, KC_ENT) handling below for rapid sequences +void enter(qk_tap_dance_state_t *state, void *user_data) +{ + tap_shift(state, KC_ENT, _RSHIFT); +} + +void enter_reset(qk_tap_dance_state_t *state, void *user_data) +{ + tap_reset(KC_ENT, _RSHIFT); +} + +// augment pseudo LT (_LSHIFT, KC_SPC) handling below for rapid sequences +void space(qk_tap_dance_state_t *state, void *user_data) +{ + tap_shift(state, KC_SPC, _LSHIFT); +} + +void space_reset(qk_tap_dance_state_t *state, void *user_data) +{ + tap_reset(KC_SPC, _LSHIFT); +} + +// ......................................................... Triple Dance Insert + +void double_max(uint8_t count, uint8_t shift, uint16_t keycode) +{ + if (shift) { + shift_key(keycode); + if (count > 1) { + shift_key(keycode); + } + } + else { + tap_key(keycode); + if (count > 1) { + tap_key(keycode); + } + } +} + +void colon(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 2) { + tap_key (KC_SPC); + shift_key(KC_SCLN); + shift_key(KC_SCLN); + tap_key (KC_SPC); + } + else { + double_max(state->count, SHIFT, KC_SCLN); + } + reset_tap_dance(state); +} + +void eql(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 2) { + tap_key(KC_SPC); + tap_key(KC_SLSH); + tap_key(KC_EQL); + tap_key(KC_SPC); + } + else { + double_max(state->count, NOSHIFT, KC_EQL); + } + reset_tap_dance(state); +} + +void greater(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 2) { + tap_key (KC_SPC); + tap_key (KC_MINS); + shift_key(KC_DOT); + tap_key (KC_SPC); + } + else { + double_max(state->count, SHIFT, KC_DOT); + } + reset_tap_dance(state); +} + +void lesser(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 2) { + tap_key (KC_SPC); + shift_key(KC_COMM); + tap_key (KC_MINS); + tap_key (KC_SPC); + } + else { + double_max(state->count, SHIFT, KC_COMM); + } + reset_tap_dance(state); +} + +void tilde(qk_tap_dance_state_t *state, void *user_data) +{ + // double tap plus down: repeating keycode + if (state->count > 2) { + register_code(KC_LSFT); + register_code(KC_GRV); + } + // tap: keycode + else { + shift_key(KC_GRV); + // double tap: unix home directory + if (state->count > 1) { + tap_key(KC_SLSH); + } + } +} + +void tilde_reset(qk_tap_dance_state_t *state, void *user_data) +{ + unregister_code(KC_GRV); + unregister_code(KC_LSFT); +} + +// ............................................................. Tap Dance Pairs + +// tap dance shift rules +#define S_NEVER 0 +#define S_SINGLE 1 +#define S_DOUBLE 2 +#define S_ALWAYS S_SINGLE | S_DOUBLE + +void symbol_pair(uint8_t shift, uint16_t left, uint16_t right) +{ + if (shift & S_DOUBLE) { + shift_key(left); + shift_key(right); + } + else { + tap_key(left); + tap_key(right); + } +} + +#define CLOSE 1 + +// tap dance symbol pairs +void tap_pair(qk_tap_dance_state_t *state, uint8_t shift, uint16_t left, uint16_t right, uint16_t modifier, uint8_t close) +{ + // triple tap: left right with cursor between symbol pair a la vim :-) + if (state->count > 2) { + symbol_pair(shift, left, right); + tap_key (KC_LEFT); + } + // double tap: left right + else if (state->count > 1) { + symbol_pair(shift, left, right); + } + // down: modifier + else if (state->pressed) { + if (modifier) { + register_code(modifier); + } + } + // tap: left (close: right) + else { + if (shift & S_SINGLE) { + shift_key(close ? right : left); + } + else { + tap_key(close ? right : left); + } + } + if (!modifier) { + reset_tap_dance(state); + } +} + +void doublequote(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_QUOT, KC_QUOT, 0, 0); +} + +void grave(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_NEVER, KC_GRV, KC_GRV, 0, 0); +} + +void lbrace(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_NEVER, KC_LBRC, KC_RBRC, 0, 0); +} + +void lcurly(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_LBRC, KC_RBRC, 0, 0); +} + +void lparen(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_9, KC_0, KC_LCTL, 0); +} + +void lparen_reset(qk_tap_dance_state_t *state, void *user_data) +{ + unregister_code(KC_LCTL); +} + +void quote(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_NEVER, KC_QUOT, KC_QUOT, 0, 0); +} + +void rangle(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_COMM, KC_DOT, 0, CLOSE); +} + +void rbrace(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_NEVER, KC_LBRC, KC_RBRC, 0, CLOSE); +} + +void rcurly(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_LBRC, KC_RBRC, 0, CLOSE); +} + +void rparen(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_9, KC_0, 0, CLOSE); +} + +void rparen_reset(qk_tap_dance_state_t *state, void *user_data) +{ + unregister_code(KC_LCTL); +} + +// ............................................................ Tap Dance Insert + +void comma(qk_tap_dance_state_t *state, void *user_data) +{ + tap_key(KC_COMM); + if (state->count > 1) { + tap_key(KC_SPC); + } + reset_tap_dance(state); +} + +void dot(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 1) { + shift_key(KC_COLN); + } + else { + tap_key(KC_DOT); + } + reset_tap_dance(state); +} + +// compile time macro string, see functions/hardware planck script +void private(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 1) { +#ifdef PRIVATE_STRING +#include "private_string.h" +#endif + } + reset_tap_dance(state); +} + +// config.h defined string +void send(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 1) { + SEND_STRING(PUBLIC_STRING); + } + reset_tap_dance(state); +} + +// .......................................................... Tap Dance One Shot + +void caps(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 1) { + tap_key(KC_CAPS); + } + else { + set_oneshot_mods(MOD_LSFT); + register_code (KC_LSFT); // on hold down + } +} + +void caps_reset(qk_tap_dance_state_t *state, void *user_data) +{ + unregister_code(KC_LSFT); +} + +// ................................................................... Tap Dance + +qk_tap_dance_action_t tap_dance_actions[] = { + [_CAPS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, caps, caps_reset) + ,[_COLN] = ACTION_TAP_DANCE_FN (colon) + ,[_COMM] = ACTION_TAP_DANCE_FN (comma) + ,[_DOT] = ACTION_TAP_DANCE_FN (dot) + ,[_DQOT] = ACTION_TAP_DANCE_FN (doublequote) + ,[_ENT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, enter, enter_reset) + ,[_EQL] = ACTION_TAP_DANCE_FN (eql) + ,[_GRV] = ACTION_TAP_DANCE_FN (grave) + ,[_GT] = ACTION_TAP_DANCE_FN (greater) + ,[_LBRC] = ACTION_TAP_DANCE_FN (lbrace) + ,[_LCBR] = ACTION_TAP_DANCE_FN (lcurly) + ,[_LPRN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lparen, lparen_reset) + ,[_LT] = ACTION_TAP_DANCE_FN (lesser) + ,[_PRIV] = ACTION_TAP_DANCE_FN (private) + ,[_QUOT] = ACTION_TAP_DANCE_FN (quote) + ,[_RBRC] = ACTION_TAP_DANCE_FN (rbrace) + ,[_RCBR] = ACTION_TAP_DANCE_FN (rcurly) + ,[_RNGL] = ACTION_TAP_DANCE_FN (rangle) + ,[_RPRN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rparen, rparen_reset) + ,[_SEND] = ACTION_TAP_DANCE_FN (send) + ,[_SPC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, space, space_reset) + ,[_TILD] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tilde, tilde_reset) +}; + +// .............................................................. Dynamic Layers + +#define LEFT 1 +#define RIGHT 2 +static uint8_t thumb = 0; + +// LEFT (KC_SPC, S(KC_BSLS)), RIGHT (KC_LEFT, S(KC_LEFT)) opposite thumb combinations, see process_record_user() +// up, up -> _BASE +// up, down -> _SYMBOL +// down, up -> _NUMBER +// down, down -> _MOUSE // see layer keycodes that raise mouse layer +#define THUMBS_DOWN _MOUSE // layer + +static uint8_t overlayer = 0; + +// left right thumb layer combinations +void thumb_layer(keyrecord_t *record, uint8_t side, uint8_t shift, uint16_t keycode, uint8_t thumb_dn_layer, uint8_t thumb_up_layer) +{ + if (record->event.pressed) { + // layer_on via tap_layer(), see process_record_user() + key_timer = timer_read(); + thumb = thumb | side; + } + else { + layer_off(thumb_dn_layer); + // opposite thumb_layer() thumb may have switched effective layer! + if (overlayer) { + layer_off(overlayer); + overlayer = 0; + } + if (!key_press(shift, keycode)) { + layer_off(THUMBS_DOWN); // both thumbs needed + // opposite thumb down? see left right combination layer table above + if (thumb & (side == LEFT ? RIGHT : LEFT)) { + layer_on(thumb_up_layer); + overlayer = thumb_up_layer; + } + } + clear_mods(); + thumb = thumb & ~side; + key_timer = 0; + } +} + +// #ifdef STENO_ENABLE +// // LT for steno keycode +// void stn_layer(keyrecord_t *record, uint16_t keycode, uint8_t layer) +// { +// if (record->event.pressed) { +// key_timer = timer_read(); +// if (keycode) { +// process_steno(keycode, record); +// } +// layer_on(layer); +// } +// else { +// layer_off(layer); +// if (keycode) { +// if (timer_elapsed(key_timer) < TAPPING_TERM) { +// process_steno(keycode, record); +// } +// else { +// // clear pressed state (request push of updated) process_steno.c and .h +// // steno_clear_state(); +// } +// } +// key_timer = 0; +// } +// } +// #endif + +// LT macro for nested LT layers +void lt(keyrecord_t *record, uint8_t shift, uint16_t keycode, uint16_t modifier, uint8_t layer) +{ + if (record->event.pressed) { + key_timer = timer_read(); + if (modifier) { + register_code(modifier); + } + layer_on(layer); + } + else { + if (modifier) { + unregister_code(modifier); + } + layer_off(layer); + // for shifted keycodes, hence, LT_SHIFT + key_press(shift, keycode); + clear_mods(); + key_timer = 0; + } +} + +// LT for S(keycode) +void lt_shift(keyrecord_t *record, uint16_t keycode, uint8_t layer) +{ + lt(record, SHIFT, keycode, 0, layer); +} + +// set layer asap to overcome macro latency errors, notably tap dance and LT usage +// this routine inexplicably (?) sets layer_on() faster than can be done in thumb_layer() +void tap_layer(keyrecord_t *record, uint8_t layer) +{ + if (record->event.pressed) { + layer_on(layer); + } + else { + layer_off(layer); + } +} + +// ..................................................................... Keymaps + +// void persistant_default_layer_set(uint16_t default_layer) +// { +// eeconfig_update_default_layer(default_layer); +// default_layer_set (default_layer); +// } + +void clear_layers(void) +{ + uint8_t layer; + for (layer = 0; layer < _END_LAYERS; layer++) { + layer_off(layer); + } +} + +#ifdef HOME_MODS +// home row layer/shift key state, see tap_mods() and keymap.c +#define LSYMBOL MOD_BIT(KC_LSFT) +#define RSYMBOL MOD_BIT(KC_RSFT) + +void home_state(void) { + // if only the shift key, raise the opposite hand symbol layer + if (mods == LSYMBOL) { + layer_on(_LSYMBOL); + } + else if (mods == RSYMBOL) { + layer_on(_RSYMBOL); + } + // or combine modifiers + else if (mods & LSYMBOL) { + register_code(KC_LSFT); + } + else if (mods & RSYMBOL) { + register_code(KC_RSFT); + } +} + +// home row layer/shift +void symbol_shift(keyrecord_t *record, uint16_t keycode) +{ + if (keycode) { + if (record->event.pressed) { + key_timer = timer_read(); + home_state(); + } + else { + // clear layer/shift state + if (keycode == KC_A) { + layer_off(_LSYMBOL); + unregister_code(KC_LSFT); + } + else if (keycode == KC_T) { + layer_off(_RSYMBOL); + unregister_code(KC_RSFT); + } + // no other modifier enabled, issue keycode + if (~mods) { + key_press(NOSHIFT, keycode); + } + key_timer = 0; + } + } + else { + // a non-shift modifier disables symbol layer + layer_off(_LSYMBOL); + layer_off(_RSYMBOL); + // update home layer/shift state + home_state(); + } +} +#endif + +#ifdef CENTER_TT +static uint16_t tt_keycode = 0; // current TT keycode + +void clear_tt(void) +{ + if (tt_keycode == KC_CAPS) { + tap_key(KC_CAPS); // clear capslock + } + tt_keycode = 0; + clear_layers(); + set_single_persistent_default_layer(_BASE); +} +#endif + +// txbolt plover run state +static uint8_t plover = 0; + +void toggle_plover(uint8_t state) +{ + if (plover != state) { +#ifdef PLOVER_KEYBIND +#include "plover_keybind.h" +#endif + plover = state; + } +} + +void base_layer(void) +{ +#ifdef AUDIO_ENABLE + if (plover) { + PLAY_SONG(song_plover_gb); + } + else { + PLAY_SONG(song_qwerty); + } +#endif + clear_layers(); + set_single_persistent_default_layer(_BASE); + toggle_plover(0); +} + +void steno(keyrecord_t *record) +{ + if (record->event.pressed) { +#ifdef AUDIO_ENABLE + PLAY_SONG(song_plover); +#endif + clear_layers(); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + if (!plover) { + toggle_plover(1); + } + } +} + +void steno_exit(keyrecord_t *record) +{ + if (record->event.pressed) { + base_layer(); + toggle_plover(0); + } +} diff --git a/keyboards/planck/keymaps/hieax/common/number_fkey_layout.h b/keyboards/planck/keymaps/hieax/common/number_fkey_layout.h new file mode 100644 index 000000000000..321482b2919a --- /dev/null +++ b/keyboards/planck/keymaps/hieax/common/number_fkey_layout.h @@ -0,0 +1,46 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ......................................................... Number Keypad Layer + + // .-----------------------------------------------------------------------------------. + // | | F | E | D | | | | / | 7 | 8 | 9 | * | + // |-----------------------------------------------------------------------------------| + // | GUI | C | B | A | | | | . | 4 | 5 | 6 | - | + // |-----------------------------------------------------------------------------------| + // | | # | G | \ | | | | , | 1 | 2 | 3 | + | + // |-----------------------------------------------------------------------------------| + // | | | | f() | | | | 0 | = | | | | + // | | | | f() | | | | = | 0 | | | | + // '-----------------------------------------------------------------------------------' + + [_NUMBER] = { + {_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, + {OS_GUI, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS}, + {_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, +#ifdef THUMB_0 + {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___}, +#else + {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___}, +#endif + }, + +// ............ .................................................. Function Keys + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | | F7 | F8 | F9 | F12 | + // |-----------------------------------------------------------------------------------| + // | Ctrl | GUI | Alt | Shift| | | | | F4 | F5 | F6 | F11 | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | | F1 | F2 | F3 | F10 | + // |-----------------------------------------------------------------------------------| + // | | | | | | f() | | + | | | | | + // | | | | | f() | | | + | | | | | see _PLOVER + // '-----------------------------------------------------------------------------------' + + [_FNCKEY] = { + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 }, + {OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 }, + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 }, + {_______, _______, _______, _______, ___fn__, ___fn__, _______, KC_PLUS, _______, _______, _______, _______}, + }, diff --git a/keyboards/planck/keymaps/hieax/common/plover_keybind.h b/keyboards/planck/keymaps/hieax/common/plover_keybind.h new file mode 100644 index 000000000000..cb4ef92ef849 --- /dev/null +++ b/keyboards/planck/keymaps/hieax/common/plover_keybind.h @@ -0,0 +1,9 @@ + +// simple window manager specific plover keybind hook + +// toggle plover application, see herbstluftwm/config/appbinds +register_code (KC_LGUI); +register_code (KC_LCTL); +tap_key (KC_EQL); +unregister_code(KC_LCTL); +unregister_code(KC_LGUI); diff --git a/keyboards/planck/keymaps/hieax/common/sounds.h b/keyboards/planck/keymaps/hieax/common/sounds.h new file mode 100644 index 000000000000..1bfc7a6da0c9 --- /dev/null +++ b/keyboards/planck/keymaps/hieax/common/sounds.h @@ -0,0 +1,14 @@ + +// ................................................................ Audio Sounds + +#ifdef AUDIO_ENABLE +float song_startup [][2] = SONG(STARTUP_SOUND); +float song_colemak [][2] = SONG(COLEMAK_SOUND); +float song_qwerty [][2] = SONG(QWERTY_SOUND); +float song_plover [][2] = SONG(PLOVER_SOUND); +float song_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); +float song_caps_on [][2] = SONG(CAPS_LOCK_ON_SOUND); +float song_caps_off [][2] = SONG(CAPS_LOCK_OFF_SOUND); +float music_scale [][2] = SONG(MUSIC_SCALE_SOUND); +float song_goodbye [][2] = SONG(GOODBYE_SOUND); +#endif diff --git a/keyboards/planck/keymaps/hieax/common/steno_layout.h b/keyboards/planck/keymaps/hieax/common/steno_layout.h new file mode 100644 index 000000000000..ab4a6fe011cb --- /dev/null +++ b/keyboards/planck/keymaps/hieax/common/steno_layout.h @@ -0,0 +1,39 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ...................................................................... Plover +#ifdef STENO_ENABLE + // ,-----------------------------------------------------------------------------------. + // | # | # | # | # | # | # | # | # | # | # | # | # | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | Base | S | T | P | H | * | * | F | P | L | T | D | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Base | S | K | W | R | * | * | R | B | G | S | Z | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | | A | O | E | U | | + // `-----------------------------------------------------------------------------------' + + [_PLOVER] = { + {STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC }, + {BASE1, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR }, + {BASE2, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR }, + {_______, _______, _______, PS_STNA, PS_STNO, _______, _______, PS_STNE, PS_STNU, _______, _______, _______}, + }, +#else + // ,-----------------------------------------------------------------------------------. + // | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | Base | S | T | P | H | * | * | F | P | L | T | D | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Base | S | K | W | R | * | * | R | B | G | S | Z | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | | A | O | E | U | | + // `-----------------------------------------------------------------------------------' + + [_PLOVER] = { + {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, + {BASE1, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, + {BASE2, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {_______, _______, _______, LT_C, LT_V, _______, _______, LT_N, LT_M, _______, _______, _______}, + }, +#endif diff --git a/keyboards/planck/keymaps/hieax/common/symbol_guifn_layout.h b/keyboards/planck/keymaps/hieax/common/symbol_guifn_layout.h new file mode 100644 index 000000000000..677e46409baa --- /dev/null +++ b/keyboards/planck/keymaps/hieax/common/symbol_guifn_layout.h @@ -0,0 +1,40 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ..................................................... Symbol Navigation Layer + + // .-----------------------------------------------------------------------------------. + // | | ~ | * | & | | | | | Home | Up | End | PgUp | + // |-----------------------------------------------------------------------------------| + // | GUI | ^ | % | $ | | | | | Left | Down | Right| PgDn | + // |-----------------------------------------------------------------------------------| + // | | # | @ | ! | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | |Adjust| \ | | f() | | + // '-----------------------------------------------------------------------------------' + + [_SYMBOL] = { + {_______, KC_TILD, KC_ASTR, KC_AMPR, _______, ___x___, ___x___, _______, KC_HOME, KC_UP, KC_END, KC_PGUP}, + {OS_GUI, SM_CIRC, SM_PERC, SM_DLR, _______, ___x___, ___x___, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN}, + {_______, KC_HASH, KC_AT, KC_EXLM, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, + {___x___, ___x___, ___x___, ADJUST, LT_BSLS, ___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___}, + }, + +// ............................................................... Mouse Actions + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | | Left | Up | Right| Up | + // |-----------------------------------------------------------------------------------| + // | | Btn3 | Btn2 | Btn1 | | | | | Left | Down | Right| Down | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | | | f() | | f() | | + // '-----------------------------------------------------------------------------------' + + [_MOUSE] = { + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U}, + {_______, KC_BTN3, KC_BTN2, KC_BTN1, _______, ___x___, ___x___, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D}, + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, ___fn__, _______, _______, _______, ___fn__, _______, _______, _______}, + }, diff --git a/keyboards/planck/keymaps/hieax/common/tapdance.h b/keyboards/planck/keymaps/hieax/common/tapdance.h new file mode 100644 index 000000000000..d778286bf1ed --- /dev/null +++ b/keyboards/planck/keymaps/hieax/common/tapdance.h @@ -0,0 +1,49 @@ + +// tap dance keys +enum tap_dance { + _CAPS = 0 + ,_COLN + ,_COMM + ,_DOT + ,_DQOT + ,_ENT + ,_EQL + ,_GRV + ,_GT + ,_LBRC + ,_LCBR + ,_LPRN + ,_LT + ,_PRIV + ,_QUOT + ,_RBRC + ,_RCBR + ,_RNGL + ,_RPRN + ,_SEND + ,_SPC + ,_TILD +}; + +#define TD_CAPS TD(_CAPS) +#define TD_COLN TD(_COLN) +#define TD_COMM TD(_COMM) +#define TD_DOT TD(_DOT) +#define TD_DQOT TD(_DQOT) +#define TD_ENT TD(_ENT) +#define TD_EQL TD(_EQL) +#define TD_GRV TD(_GRV) +#define TD_GT TD(_GT) +#define TD_LBRC TD(_LBRC) +#define TD_LCBR TD(_LCBR) +#define TD_LPRN TD(_LPRN) +#define TD_LT TD(_LT) +#define TD_PRIV TD(_PRIV) // compile time macro string, provided in private_string.h +#define TD_QUOT TD(_QUOT) +#define TD_RBRC TD(_RBRC) +#define TD_RCBR TD(_RCBR) +#define TD_RNGL TD(_RNGL) +#define TD_RPRN TD(_RPRN) +#define TD_SEND TD(_SEND) // config.h defined macro string +#define TD_SPC TD(_SPC) // see process_record_user() for extended handling of Spc +#define TD_TILD TD(_TILD) diff --git a/keyboards/planck/keymaps/hieax/common/toggle_layout.h b/keyboards/planck/keymaps/hieax/common/toggle_layout.h new file mode 100644 index 000000000000..ea4ead56b922 --- /dev/null +++ b/keyboards/planck/keymaps/hieax/common/toggle_layout.h @@ -0,0 +1,102 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ......................................................... Number Keypad Layer + + // .-----------------------------------------------------------------------------------. + // | | F | E | D | | | | / | 7 | 8 | 9 | * | + // |-----------------------------------------------------------------------------------| + // | GUI | C | B | A | | | | . | 4 | 5 | 6 | - | + // |-----------------------------------------------------------------------------------| + // | | # | G | \ | | | | , | 1 | 2 | 3 | + | + // |-----------------------------------------------------------------------------------| + // | | | | f() | Space| | | 0 | = | | | | + // | | | | f() | Space| | | = | 0 | | | | + // '-----------------------------------------------------------------------------------' + + [_TTNUMBER] = { + {_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, + {OS_GUI, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS}, + {_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, +#ifdef THUMB_0 + {_______, _______, _______, TT_ESC, KC_SPC, _______, _______, KC_0, LT_EQL, _______, _______, _______}, +#else + {_______, _______, _______, TT_ESC, KC_SPC, _______, _______, KC_EQL, LT_0, _______, _______, _______}, +#endif + }, + +// ............ .................................................. Function Keys + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | | F7 | F8 | F9 | F12 | + // |-----------------------------------------------------------------------------------| + // | GUI | Ctrl | Alt | Shift| | | | | F4 | F5 | F6 | F11 | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | | F1 | F2 | F3 | F10 | + // |-----------------------------------------------------------------------------------| + // | | | | f() | | | | + | | | | | + // '-----------------------------------------------------------------------------------' + + [_TTFNCKEY] = { + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 }, + {OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 }, + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 }, + {_______, _______, _______, TT_ESC, _______, _______, _______, KC_PLUS, _______, _______, _______, _______}, + }, + +// ....................................................................... Regex + + // ,-----------------------------------------------------------------------------------. + // | | . | * | & | ~ | | | ` | [ | ] | ^ | | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | | < | % | > | ? | | | | | ( | ) | $ | | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | | : | @ | ! | / | | | \ | { | } | # | | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | | | | f() | = | | | + | Space| | | | + // `-----------------------------------------------------------------------------------' + + [_TTREGEX] = { + {___x___, KC_DOT, KC_ASTR, KC_AMPR, KC_TILD, ___x___, ___x___, KC_GRV, KC_LBRC, KC_RBRC, KC_CIRC, ___x___}, + {___x___, KC_LT, KC_PERC, KC_GT, KC_QUES, ___x___, ___x___, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, ___x___}, + {___x___, KC_COLN, KC_AT, KC_EXLM, KC_SLSH, ___x___, ___x___, KC_BSLS, KC_LCBR, KC_RCBR, KC_HASH, ___x___}, + {_______, _______, _______, TT_ESC, KC_EQL, _______, _______, KC_PLUS, KC_SPC, _______, _______, _______}, + }, + +// ............................................................ Navigation Layer + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | | Home | Up | End | PgUp | + // |-----------------------------------------------------------------------------------| + // | GUI | Ctrl | Alt | Shift| | | | | Left | Down | Right| PgDn | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | | | | f() | | | | | | | | | + // '-----------------------------------------------------------------------------------' + + [_TTCURSOR] = { + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_HOME, KC_UP, KC_END, KC_PGUP}, + {OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN}, + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, + {_______, _______, _______, TT_ESC, _______, _______, _______, _______, _______, _______, _______, _______}, + }, + +// ............................................................... Mouse Actions + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | | Left | Up | Right| Up | + // |-----------------------------------------------------------------------------------| + // | | Btn3 | Btn2 | Btn1 | | | | | Left | Down | Right| Down | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | | | | f() | | | | | | | | | + // '-----------------------------------------------------------------------------------' + + [_TTMOUSE] = { + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U}, + {_______, KC_BTN3, KC_BTN2, KC_BTN1, _______, ___x___, ___x___, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D}, + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, + {_______, _______, _______, TT_ESC, _______, _______, _______, _______, _______, _______, _______, _______}, + }, diff --git a/keyboards/planck/keymaps/hieax/config.h b/keyboards/planck/keymaps/hieax/config.h new file mode 100644 index 000000000000..9bb5e0873507 --- /dev/null +++ b/keyboards/planck/keymaps/hieax/config.h @@ -0,0 +1,50 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// required because lower/raise modifiers are redefined by colemak-dh +#define PREVENT_STUCK_MODIFIERS + +// tap dance key press termination interval +#define TAPPING_TERM 250 + +// smooth mouse motion +// #define MOUSEKEY_INTERVAL 20 +// #define MOUSEKEY_DELAY 0 +// #define MOUSEKEY_TIME_TO_MAX 60 +// #define MOUSEKEY_MAX_SPEED 7 +// #define MOUSEKEY_WHEEL_DELAY 0 + +// compile time macro string, see functions/hardware planck script (undefine otherwise) +#define PRIVATE_STRING + +// compile time macro string, must be in quotes +#define PUBLIC_STRING ":%s/arch=(.*)/arch=('any')\n" + +// thumb key tap-shift() double tap: one shot shift (0) off (1) on +#define DT_SHIFT 1 + +// number layer 0 position KEYPAD_0, THUMB_0 +#define THUMB_0 + +// home block shift symbol clustes defined (no overlays required for extended symbols, undefine otherwise) +#define SHIFT_SYMBOLS + +// center column TT assignments (undefine for OSM chords) +#define CENTER_TT +#define TAPPING_TOGGLE 1 + +// home row modifiers +#define HOME_MODS +// fix dual function timing +#define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT + +// layout ADNW*, BEAKL*, COLEKA*, QWERTY (default) +#define DEFAULT + +// sync app with window manager keybind hook defined in plover_keybind.h +#define PLOVER_KEYBIND + +#endif diff --git a/keyboards/planck/keymaps/hieax/hiea.h b/keyboards/planck/keymaps/hieax/hiea.h new file mode 100644 index 000000000000..64541d633e74 --- /dev/null +++ b/keyboards/planck/keymaps/hieax/hiea.h @@ -0,0 +1,99 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// .................................................................. BEAKL HIEA +#ifdef DEFAULT + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | H | I | E | A | . |Cursor| Mouse| C | T | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | ; | " | K | , | Num | Regex| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Ins | Left | Ent | Bksp | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X }, + {HOME_H, HOME_I, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_R, HOME_S, HOME_W }, + {KC_J, KC_SCLN, TD_QUOT, KC_K, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V }, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {S(KC_H), S(KC_I), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, + {S(KC_J), KC_SCLN, TD_QUOT, S(KC_K), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | H | I | E | A | ? |Cursor| Mouse| C | T | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | K | / | Num | Regex| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | ↑Tab | f() | Ins | Left | _ | Del | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {S(KC_H), S(KC_I), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, + {S(KC_J), TD_COLN, TD_DQOT, S(KC_K), KC_SLSH, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, S_TAB, ___fn__, LT_INS, S_LEFT, KC_UNDS, SP_DEL, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | H | I | E | A | ? |Cursor| Mouse| C | T | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | K | / | Num | Regex| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Tab | - | Ins | Left | f() | Bksp | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {S(KC_H), S(KC_I), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, + {S(KC_J), TD_COLN, TD_DQOT, S(KC_K), KC_SLSH, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, KC_TAB, KC_MINS, LT_INS, S_LEFT, ___fn__, SP_BSPC, S_DOWN, S_UP, S_RGHT }, + }, +#ifdef HOME_MODS + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | Fn | Caps | ` | [ | ] | ^ | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | H | I | E | f() | ? |Cursor| Mouse| | | ( | ) | $ | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | K | / | Num | Regex| \ | { | } | # | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Ins | Left | + | Space| Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSYMBOL] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, TD_GRV, KC_LBRC, KC_RBRC, KC_CIRC, S(KC_X)}, + {HOME_H, HOME_I, HOME_E, ___fn__, KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_W)}, + {S(KC_J), TD_COLN, TD_DQOT, S(KC_K), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_LCBR, KC_RCBR, KC_HASH, S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, KC_PLUS, SL_SPC, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | . | * | & | ~ | Fn | Caps | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | H | < | % | > | ? |Cursor| Mouse| C | f() | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | @ | ! | / | Num | Regex| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | ↑Tab | = | Ins | Left | Ent | Bksp | Down | Up | Right| + // | | ↑Tab | = | Ent | Bksp | | + // `-----------------------------------------------------------------------------------' + + [_RSYMBOL] = { + {S(KC_Q), KC_DOT, KC_ASTR, KC_AMPR, TD_TILD, CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {S(KC_H), TD_LT, KC_PERC, TD_GT, KC_QUES, CNTR_HL, CNTR_HR, S(KC_C), ___fn__, HOME_R, HOME_S, HOME_W }, + {S(KC_J), TD_COLN, KC_AT, KC_EXLM, KC_SLSH, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, S_TAB, TD_EQL, LT_INS, SP_LEFT, TD_ENT, LT_BSPC, AT_DOWN, GT_UP, CT_RGHT}, + }, +#endif +#endif diff --git a/keyboards/planck/keymaps/hieax/hiea.sync-conflict-20180501-144403-SMV4TP4.h b/keyboards/planck/keymaps/hieax/hiea.sync-conflict-20180501-144403-SMV4TP4.h new file mode 100644 index 000000000000..53ffb886128f --- /dev/null +++ b/keyboards/planck/keymaps/hieax/hiea.sync-conflict-20180501-144403-SMV4TP4.h @@ -0,0 +1,97 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// .................................................................. BEAKL HIEA +#ifdef DEFAULT + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | H | I | E | A | . |Cursor| Mouse| C | T | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | ; | " | K | , | Num | Regex| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Ins | Left | Ent | Bksp | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X }, + {HOME_H, HOME_I, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_R, HOME_S, HOME_W }, + {KC_J, KC_SCLN, TD_QUOT, KC_K, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V }, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {S(KC_H), S(KC_I), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, + {S(KC_J), KC_SCLN, TD_QUOT, S(KC_K), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | H | I | E | A | ? |Cursor| Mouse| C | T | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | K | / | Num | Regex| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | ↑Tab | f() | Ins | Left | _ | Del | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {S(KC_H), S(KC_I), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, + {S(KC_J), TD_COLN, TD_DQOT, S(KC_K), KC_SLSH, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, S_TAB, ___fn__, LT_INS, S_LEFT, KC_UNDS, SP_DEL, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | H | I | E | A | ? |Cursor| Mouse| C | T | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | K | / | Num | Regex| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Tab | - | Ins | Left | f() | Bksp | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {S(KC_H), S(KC_I), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, + {S(KC_J), TD_COLN, TD_DQOT, S(KC_K), KC_SLSH, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, KC_TAB, KC_MINS, LT_INS, S_LEFT, ___fn__, SP_BSPC, S_DOWN, S_UP, S_RGHT }, + }, +#endif + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | Fn | Caps | ` | [ | ] | ^ | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | H | I | E | f() | ? |Cursor| Mouse| | | ( | ) | $ | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | K | / | Num | Regex| \ | { | } | # | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | | Esc | Space| + | Space| | + // `-----------------------------------------------------------------------------------' + + [_LSYMBOL] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, TD_GRV, KC_LBRC, KC_RBRC, KC_CIRC, S(KC_X)}, + {HOME_H, HOME_I, HOME_E, ___fn__, KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_W)}, + {S(KC_J), TD_COLN, TD_DQOT, S(KC_K), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_LCBR, KC_RCBR, KC_HASH, S(KC_V)}, + {_______, _______, _______, _______, LT_ESC, TD_SPC, KC_PLUS, KC_SPC, _______, _______, _______, _______}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | . | * | & | ~ | Fn | Caps | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | H | < | % | > | ? |Cursor| Mouse| C | f() | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | @ | ! | / | Num | Regex| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | | ↑Tab | = | Ent | Bksp | | + // `-----------------------------------------------------------------------------------' + + [_RSYMBOL] = { + {S(KC_Q), KC_DOT, KC_ASTR, KC_AMPR, TD_TILD, CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {S(KC_H), TD_LT, KC_PERC, TD_GT, KC_QUES, CNTR_HL, CNTR_HR, S(KC_C), ___fn__, HOME_R, HOME_S, HOME_W }, + {S(KC_J), TD_COLN, KC_AT, KC_EXLM, KC_SLSH, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {_______, _______, _______, _______, S_TAB, TD_EQL, TD_ENT, LT_BSPC, _______, _______, _______, _______}, + }, diff --git a/keyboards/planck/keymaps/hieax/keymap.c b/keyboards/planck/keymaps/hieax/keymap.c new file mode 100644 index 000000000000..d761ee6777c2 --- /dev/null +++ b/keyboards/planck/keymaps/hieax/keymap.c @@ -0,0 +1,446 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. +// +// To flash planck firmware +// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +// Reset keyboard or press hw reset button on base (hole) +// +// cd qmk_firmware/keyboards/planck +// sudo make KEYMAP=sdothum dfu +// +// sudo make clean (good practice before flashing) +// sudo make KEYMAP=sdothum (to compile check) +// +// Package requirements (for arch linux) +// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +// avr-gcc-atmel +// avr-libc-atmel +// dfu-programmer +// +// Notes +// ▔▔▔▔▔ +// ** E R G O W I D E S P L I T ** Layout +// +// Autocompletion tap dance key pairs (),[],{} are available from the +// number/symbol layer, as well as, numerous (un)shift key values +// +// The navigation pad provides a single hand right thumb activated cluster +// with left hand modifiers +// +// #define PRIVATE_STRING includes private_string.h, a user defined code +// block for the PRIV tap dance e.g. SEND_STRING("secret messape"), +// see function private() +// +// Modifier clusters +// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +// The num and sym keys together access the navigation pad layer +// +// ,-----------------------------------------------------------------------------------. +// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| +// `-----------------------------------------------------------------------------------' +// +// Hint +// ▔▔▔▔ +// For sculpted keycaps such as Cherry or OEM profile, reverse the Alt, Num, +// Shift, Shift, Nav, Sym keycaps for more ergonomic thumb orientation and +// actuation +// +// Code +// ▔▔▔▔ +// This source is shamelessly based on the "default" planck layout +// +// #ifdef/#endif block structures are not indented, as syntax highlighting +// in vim is sufficient for identification +// +// c++ commenting style is used throughout +// +// Change history +// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +// See http://thedarnedestthing.com/planck%20constant +// See http://thedarnedestthing.com/planck%20done + + + +// === N O T E === +// +// sudo CPATH=/common make ... + + +#include "config.h" +#include "planck.h" +#include "action_layer.h" +#ifdef STENO_ENABLE +#include "keymap_steno.h" +#endif +#ifdef AUDIO_ENABLE +#include "audio.h" +#endif +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +enum planck_layers { + _BASE = 0 + ,_SHIFT + ,_LSHIFT + ,_RSHIFT + ,_LSYMBOL + ,_RSYMBOL + ,_PLOVER + ,_NUMBER + ,_SYMBOL + ,_FNCKEY + ,_MOUSE + ,_EDIT + ,_ADJUST +#ifdef CENTER_TT + ,_TTNUMBER + ,_TTREGEX + ,_TTFNCKEY + ,_TTCURSOR + ,_TTMOUSE +#endif + ,_END_LAYERS +}; + +enum planck_keycodes { + BASE = SAFE_RANGE + ,BASE1 + ,BASE2 + ,PLOVER + ,SM_CIRC // pseudo GUI_T(S(KC_6)) for shifted key-codes, see process_record_user() + ,SM_DLR // pseudo SFT_T(S(KC_4)) for shifted key-codes, see process_record_user() + ,SM_G // pseudo MT (MOD_LALT | MOD_LSFT, S(KC_G)) for shifted key-codes, see process_record_user() + ,SM_H // pseudo MT (MOD_LCTL | MOD_LSFT, S(KC_H)) for shifted key-codes, see process_record_user() + ,SM_PERC // pseudo ALT_T(S(KC_5)) for shifted key-codes, see process_record_user() + ,SM_W // pseudo MT (MOD_LGUI | MOD_LSFT, S(KC_W)) for shifted key-codes, see process_record_user() + ,SL_LEFT // pseudo LT (_MOUSE, S(KC_LEFT)) for shifted key-codes, see process_record_user() + ,SP_DEL // pseudo LT (_MOUSE, KC_DEL) for shifted key-codes, see process_record_user() + ,SL_TAB // pseudo LT (_FNCKEY, S(KC_TAB)) for shifted key-codes, see process_record_user() + ,SL_SPC // pseudo LT (S(_SYMBOL), KC_SPC) for home row shifted GUIFN +#ifdef HOME_MODS + ,HOME_A // pseudo SFT_T(KC_A) + ,HOME_T // pseudo SFT_T(KC_T) +#endif +#ifdef CENTER_TT + ,TT_ESC +#endif +#ifdef STENO_ENABLE + ,PS_STNA = STN_A + ,PS_STNO = STN_O + ,PS_STNE = STN_E + ,PS_STNU = STN_U +#else + ,LT_C = LT (_NUMBER, KC_C) + ,LT_V = LT (_FNCKEY, KC_V) + ,LT_N = LT (_EDIT, KC_N) + ,LT_M = LT (_SYMBOL, KC_M) +#endif +}; + +// modifier keys +#define AT_B ALT_T(KC_B) +#define AT_DOWN ALT_T(KC_DOWN) +#define CT_RGHT CTL_T(KC_RGHT) +#define GT_C GUI_T(KC_C) +#define GT_UP GUI_T(KC_UP) +#define MT_E MT (MOD_LCTL | MOD_LALT, KC_E) +#define ST_A SFT_T(KC_A) +#ifdef HOME_MODS +#define HOME_H GUI_T(KC_H) +#define HOME_I CTL_T(KC_I) +#define HOME_E ALT_T(KC_E) +#define HOME_R ALT_T(KC_R) +#define HOME_S CTL_T(KC_S) +#define HOME_W GUI_T(KC_W) +#else +#define HOME_H KC_H +#define HOME_I KC_I +#define HOME_E KC_E +#define HOME_A KC_A +#define HOME_T KC_T +#define HOME_R KC_R +#define HOME_S KC_S +#define HOME_W KC_W +#endif + +#define S_DOWN S (KC_DOWN) +#define S_LEFT S (KC_LEFT) +#define S_RGHT S (KC_RGHT) +#define S_TAB S (KC_TAB) +#define S_UP S (KC_UP) + +#include "tapdance.h" + +// keycodes +#define ___x___ KC_TRNS +#define ___fn__ KC_TRNS +#ifdef _______ +#undef _______ +#endif +#define _______ KC_NO + +#define COPY LCTL(KC_C) +#define CUT LCTL(KC_X) +#define EOT LCTL(KC_D) +#define NAK LCTL(KC_U) +#define PASTE LCTL(KC_V) +#define UNDO LCTL(KC_Z) +#define TMCOPY LALT(LCTL(KC_C)) +#define TMPASTE LALT(LCTL(KC_V)) +#define LT_BSLS LT (_MOUSE, KC_BSLS) // see process_record_user() for extended handling +#define LT_BSPC LT (_EDIT, KC_BSPC) +#define SP_LEFT LT (_EDIT, KC_LEFT) +#define LT_ESC LT (_NUMBER, KC_ESC) +#define LT_LEFT LT (_SYMBOL, KC_LEFT) // see process_record_user() for extended handling +#define SP_BSPC LT (_SYMBOL, KC_BSPC) // see process_record_user() for extended handling +#define LT_TAB LT (_FNCKEY, KC_TAB) +#define LT_INS LT (_FNCKEY, KC_INS) +#define ADJUST MO (_ADJUST) +#define OS_ALT OSM (MOD_LALT) +#define OS_CTL OSM (MOD_LCTL) +#define OS_GUI OSM (MOD_LGUI) +#define OS_SFT OSM (MOD_LSFT) + +#ifdef CENTER_TT +#define CNTR_TL TT (_TTFNCKEY) +#define CNTR_TR KC_CAPS +#define CNTR_HL TT (_TTCURSOR) +#define CNTR_HR TT (_TTMOUSE) +#define CNTR_BL TT (_TTNUMBER) +#define CNTR_BR TT (_TTREGEX) +#else +#define CNTR_TL OSM (MOD_LALT | MOD_LCTL) +#define CNTR_TR OSM (MOD_LGUI | MOD_LCTL) +#define CNTR_HL OSM (MOD_LALT | MOD_LSFT) +#define CNTR_HR OSM (MOD_LGUI | MOD_LSFT) +#define CNTR_BL TD (_CAPS) +#define CNTR_BR OSM (MOD_LSFT | MOD_LCTL) +#endif + +// LT can only reference layers 0-15 +#ifdef THUMB_0 +#define LT_EQL LT (_ADJUST, KC_EQL) +#else +#define LT_0 LT (_ADJUST, KC_0) +#endif + +// ........................................................ Default Alpha Layout + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +#include "hiea.h" +#include "steno_layout.h" + +// ...................................................... Number / Function Keys + +#include "number_fkey_layout.h" + +// ......................................................... Symbol / Navigation + +#include "symbol_guifn_layout.h" + +// ............................................................... Toggle Layers + +#ifdef CENTER_TT +#include "toggle_layout.h" +#endif + +// ......................................................... Short Cuts / Adjust + +#include "chord_layout.h" + +}; + +// ...................................................................... Sounds + +#include "sounds.h" + +// ........................................................... User Keycode Trap + +#include "keycode_functions.h" + +#define BASE_1 1 +#define BASE_2 2 +#define BASE_12 3 +static uint8_t base_n = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) +{ + switch (keycode) { + case BASE1: + if (record->event.pressed) { + base_n = base_n | BASE_1; + if (base_n == BASE_12) { + base_layer(); + } + } + else { + base_n = base_n & ~BASE_1; + } + return false; + case BASE2: + if (record->event.pressed) { + base_n = base_n | BASE_2; + if (base_n == BASE_12) { + base_layer(); + } + } + else { + base_n = base_n & ~BASE_2; + } + return false; +#ifdef HOME_MODS + case HOME_E: + case HOME_R: + tap_mods(record, KC_LALT); + symbol_shift(record, 0); + break; + case HOME_H: + case HOME_W: + tap_mods(record, KC_LGUI); + symbol_shift(record, 0); + break; + case HOME_I: + case HOME_S: + tap_mods(record, KC_LCTL); + symbol_shift(record, 0); + break; + case HOME_A: + tap_mods(record, KC_LSFT); + symbol_shift(record, KC_A); + break; + case HOME_T: + tap_mods(record, KC_RSFT); + symbol_shift(record, KC_T); + break; +#else + case AT_DOWN: + tap_mods(record, KC_LALT); + break; + case CT_RGHT: + tap_mods(record, KC_LGUI); + break; + case GT_UP: + tap_mods(record, KC_LCTL); + break; +#endif + case SL_SPC: + lt(record, NOSHIFT, KC_SPC, KC_LSFT, _SYMBOL); + break; +#ifdef CENTER_TT + case TT_ESC: + clear_tt(); // exit TT layer + return false; +#endif + case LT_ESC: +#ifdef CENTER_TT + if (tt_keycode != 0) { + clear_tt(); // exit TT layer + return false; + } +#endif + tap_layer(record, _NUMBER); + break; + case LT_LEFT: + case SP_BSPC: + tap_layer(record, _SYMBOL); + // LT (_SYMBOL, KC_LEFT) left right combination layer + thumb_layer(record, RIGHT, 0, 0, _SYMBOL, _LSHIFT); + break; + case OS_ALT: + tap_mods(record, KC_LALT); + break; + case OS_CTL: + tap_mods(record, KC_LCTL); + break; + case OS_GUI: + tap_mods(record, KC_LGUI); + break; + case SM_CIRC: + // GUI_T(S(KC_6)) + mt_shift(record, KC_LGUI, 0, KC_6); + break; + case SM_DLR: + // SFT_T(S(KC_4)) + mt_shift(record, KC_LSFT, 0, KC_4); + break; + case SM_G: + // MT(MOD_LALT | MOD_LSFT, S(KC_G)) + mt_shift(record, KC_LALT, KC_LSFT, KC_G); + break; + case SM_H: + // MT(MOD_LCTL | MOD_LSFT, S(KC_K)) + mt_shift(record, KC_LCTL, KC_LSFT, KC_H); + break; + case SM_W: + // MT(MOD_LGUI | MOD_LSFT, S(KC_W)) + mt_shift(record, KC_LGUI, KC_LSFT, KC_W); + break; + case SM_PERC: + // ALT_T(S(KC_5)) + mt_shift(record, KC_LALT, 0, KC_5); + break; + case LT_BSLS: + tap_layer(record, _MOUSE); + // LT (_MOUSE, KC_BSLS) left right combination layer, see #define LT_BSLS + thumb_layer(record, LEFT, 0, 0, _MOUSE, _SYMBOL); + break; + case SL_LEFT: + tap_layer(record, _MOUSE); + // LT (_MOUSE, S(KC_LEFT)) left right combination layer + thumb_layer(record, RIGHT, SHIFT, KC_LEFT, _MOUSE, _LSHIFT); + break; + case SP_DEL: + tap_layer(record, _MOUSE); + // LT (_MOUSE, S(KC_LEFT)) left right combination layer + thumb_layer(record, RIGHT, NOSHIFT, KC_DEL, _MOUSE, _LSHIFT); + break; + case SL_TAB: + // LT (_FNCKEY, S(KC_TAB)) emulation + lt_shift(record, KC_TAB, _FNCKEY); + break; + case TD_ENT: + tap_layer(record, _RSHIFT); + // LT (_RSHIFT, KC_ENT) emulation, see tap dance enter + break; + case TD_SPC: + tap_layer(record, _LSHIFT); + // LT (_LSHIFT, KC_SPC) left right combination layer, see tap dance TD_SPC + thumb_layer(record, LEFT, 0, 0, _LSHIFT, _SYMBOL); + break; +#ifdef CENTER_TT + case CNTR_TL: + case CNTR_TR: + case CNTR_HL: + case CNTR_HR: + case CNTR_BL: + case CNTR_BR: + if (tt_keycode != keycode && tt_keycode != 0) { + clear_tt(); // return to base layer first if different TT layer selected + } + tt_keycode = keycode; + break; +#endif +// #ifdef STENO_ENABLE +// case PS_STNA: +// stn_layer(record, STN_A, _NUMBER); +// break; +// case PS_STNO: +// stn_layer(record, STN_O, _FNCKEY); +// break; +// case PS_STNE: +// stn_layer(record, STN_E, _EDIT); +// break; +// case PS_STNU: +// stn_layer(record, STN_U, _SYMBOL); +// break; +// #endif + case PLOVER: + steno(record); + return false; + } + return true; +} + +#include "init.h" diff --git a/keyboards/planck/keymaps/hieax/readme.md b/keyboards/planck/keymaps/hieax/readme.md new file mode 100644 index 000000000000..58f73e3b445a --- /dev/null +++ b/keyboards/planck/keymaps/hieax/readme.md @@ -0,0 +1,10 @@ +# The sdothum extended Default Planck Layout + +- Colemak-DH layout layer with shift/tab key overlays +- Number and symbol/function key layer +- Hexadecimal keypad layer +- Navigation keypad layer +- Dynamic macro layer +- Autocompletion tap key pairs (),[],{} +- Normalized enter and esc key position across keyboard layers +- Extensive use of tap keys diff --git a/keyboards/planck/keymaps/hieax/rules.mk b/keyboards/planck/keymaps/hieax/rules.mk new file mode 100644 index 000000000000..40f153844c19 --- /dev/null +++ b/keyboards/planck/keymaps/hieax/rules.mk @@ -0,0 +1,26 @@ +# Build Options: +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically + +BOOTMAGIC_ENABLE = no # virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # mouse keys(+4700) +EXTRAKEY_ENABLE = no # audio control and System control(+450) +CONSOLE_ENABLE = no # console for debug(+400) +COMMAND_ENABLE = no # commands for debug and configuration +NKRO_ENABLE = yes # nkey rollover +BACKLIGHT_ENABLE = no # enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # audio output on port C6 +UNICODE_ENABLE = no # unicode +BLUETOOTH_ENABLE = no # enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # enable WS2812 RGB underlight, do not enable this with audio at the same time. +STENO_ENABLE = yes # enable TX Bolt protocol, requires VIRTSER and may not work with mouse keys + +# do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # breathing sleep LED during USB suspend + +TAP_DANCE_ENABLE = yes # enable double tap completion of (),[],{} + +ifndef QUANTUM_DIR +include ../../../../Makefile +endif diff --git a/keyboards/planck/keymaps/sdothum/beakl.h b/keyboards/planck/keymaps/sdothum/beakl.h new file mode 100644 index 000000000000..de3da34a5d39 --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/beakl.h @@ -0,0 +1,551 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// .................................................................... BEAKL EZ +#ifdef BEAKLEZ + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | K | ^Alt | ^GUI | F | G | R | C | V | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | H | I | E | A | " | ↑Alt | ↑GUI | L | S | T | N | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | ; | , | J | . | X | Caps |^Shift| B | D | M | P | Z | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_Y, KC_O, KC_U, KC_K, CNTR_TL, CNTR_TR, KC_F, KC_G, KC_R, KC_C, KC_V }, + {KC_H, KC_I, KC_E, HOME_A, TD_QUOT, CNTR_HL, CNTR_HR, KC_L, KC_S, KC_T, KC_N, KC_W }, + {KC_SCLN, KC_COMM, KC_J, KC_DOT, KC_X, CNTR_BL, CNTR_BR, KC_B, KC_D, KC_M, KC_P, KC_Z }, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_K), CNTR_TL, CNTR_TR, S(KC_F), S(KC_G), S(KC_R), S(KC_C), S(KC_V)}, + {S(KC_H), S(KC_I), S(KC_E), S(KC_A), TD_QUOT, CNTR_HL, CNTR_HR, S(KC_L), S(KC_S), S(KC_T), S(KC_N), S(KC_W)}, + {KC_SCLN, KC_COMM, S(KC_J), KC_DOT, S(KC_X), CNTR_BL, CNTR_BR, S(KC_B), S(KC_D), S(KC_M), S(KC_P), S(KC_Z)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | K | ^Alt | ^GUI | F | G | R | C | V | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | H | I | E | A | " | ↑Alt | ↑GUI | L | S | T | N | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | : | ~ | J | ` | X | Caps |^Shift| B | D | M | P | Z | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_K), CNTR_TL, CNTR_TR, S(KC_F), S(KC_G), S(KC_R), S(KC_C), S(KC_V)}, + {S(KC_H), S(KC_I), S(KC_E), S(KC_A), TD_DQOT, CNTR_HL, CNTR_HR, S(KC_L), S(KC_S), S(KC_T), S(KC_N), S(KC_W)}, + {TD_COLN, TD_TILD, S(KC_J), TD_GRV, S(KC_X), CNTR_BL, CNTR_BR, S(KC_B), S(KC_D), S(KC_M), S(KC_P), S(KC_Z)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | K | ^Alt | ^GUI | F | G | R | C | V | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | H | I | E | A | " | ↑Alt | ↑GUI | L | S | T | N | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | : | / | J | ? | X | Caps |^Shift| B | D | M | P | Z | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_K), CNTR_TL, CNTR_TR, S(KC_F), S(KC_G), S(KC_R), S(KC_C), S(KC_V)}, + {S(KC_H), S(KC_I), S(KC_E), S(KC_A), TD_DQOT, CNTR_HL, CNTR_HR, S(KC_L), S(KC_S), S(KC_T), S(KC_N), S(KC_W)}, + {TD_COLN, KC_SLSH, S(KC_J), KC_QUES, S(KC_X), CNTR_BL, CNTR_BR, S(KC_B), S(KC_D), S(KC_M), S(KC_P), S(KC_Z)}, + {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, +#endif + +// ..................................................................... BEAKL 8 +#ifdef BEAKL8 + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | X | ^Alt | ^GUI | G | C | R | F | Z | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | . | ↑Alt | ↑GUI | D | S | T | N | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | ; | " | I | , | Caps |^Shift| W | M | L | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_Y, KC_O, KC_U, KC_X, CNTR_TL, CNTR_TR, KC_G, KC_C, KC_R, KC_F, KC_Z }, + {KC_K, KC_H, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_D, KC_S, KC_T, KC_N, KC_B }, + {KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V }, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_C), S(KC_R), S(KC_F), S(KC_Z)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_D), S(KC_S), S(KC_T), S(KC_N), S(KC_B)}, + {S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | X | ^Alt | ^GUI | G | C | R | F | Z | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | ~ | ↑Alt | ↑GUI | D | S | T | N | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | I | ` | Caps |^Shift| W | M | L | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_C), S(KC_R), S(KC_F), S(KC_Z)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), TD_TILD, CNTR_HL, CNTR_HR, S(KC_D), S(KC_S), S(KC_T), S(KC_N), S(KC_B)}, + {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | X | ^Alt | ^GUI | G | C | R | F | Z | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | ? | ↑Alt | ↑GUI | D | S | T | N | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | I | / | Caps |^Shift| W | M | L | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_C), S(KC_R), S(KC_F), S(KC_Z)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, S(KC_D), S(KC_S), S(KC_T), S(KC_N), S(KC_B)}, + {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, +#endif + +// .................................................................... BEAKL 8P +#ifdef BEAKL8P + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | ^Alt | ^GUI | G | D | R | F | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | . | ↑Alt | ↑GUI | C | T | S | N | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | ; | " | I | , | Caps |^Shift| W | M | L | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_R, KC_F, KC_X }, + {KC_K, KC_H, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, KC_T, KC_S, KC_N, KC_B }, + {KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V }, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, + {S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | { | } | $ | ^Alt | ^GUI | G | D | R | F | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | < | > | ~ | ↑Alt | ↑GUI | C | T | S | N | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | ! | = | ` | Caps |^Shift| W | M | L | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), S(KC_Y), KC_LCBR, KC_RCBR, KC_DLR, CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, + {S(KC_K), S(KC_H), TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, + {S(KC_J), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | ^Alt | ^GUI | ^ | [ | ] | F | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | ? | ↑Alt | ↑GUI | | | ( | ) | N | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | I | / | Caps |^Shift| \ | $ | * | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, KC_CIRC, KC_LBRC, KC_RBRC, S(KC_F), S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, S(KC_N), S(KC_B)}, + {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_DLR, KC_ASTR, S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, +#endif + +// ................................................................... BEAKL 8TX +#ifdef BEAKL8TX + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | J | ^Alt | ^GUI | G | D | R | F | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | . | ↑Alt | ↑GUI | C | T | S | N | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | ; | " | I | , | Caps |^Shift| W | M | L | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_Y, KC_O, KC_U, KC_J, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_R, KC_F, KC_X }, + {HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_S, HOME_N, HOME_B }, + {KC_Z, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V }, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, + {S(KC_Z), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | $ | { | } | J | ^Alt | ^GUI | G | D | R | F | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | / | < | > | ~ | ↑Alt | ↑GUI | C | T | S | N | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | : | ! | = | ` | Caps |^Shift| W | M | L | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), KC_DLR, KC_LCBR, KC_RCBR, S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, + {S(KC_K), KC_SLSH, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, + {S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | J | ^Alt | ^GUI | G | [ | ] | ^ | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | ? | ↑Alt | ↑GUI | | | ( | ) | $ | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | : | " | I | / | Caps |^Shift| \ | * | . | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), KC_LBRC, KC_RBRC, KC_CIRC, S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_B)}, + {S(KC_Z), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, +#endif + +// ................................................................... BEAKL 8TT +#ifdef BEAKL8TT + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | J | Fn | Caps | G | D | R | F | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | . |Cursor| Mouse| C | T | S | N | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | ; | " | I | , | Num | Regex| W | M | L | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_Y, KC_O, KC_U, KC_J, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_R, KC_F, KC_X }, + {HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_S, HOME_N, HOME_B }, + {KC_Z, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V }, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, + {S(KC_Z), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | $ | { | } | J | Fn | Caps | G | D | R | F | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | / | < | > | ~ |Cursor| Mouse| C | T | S | N | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | : | ! | = | ` | Num | Regex| W | M | L | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), KC_DLR, KC_LCBR, KC_RCBR, S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, + {S(KC_K), KC_SLSH, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, + {S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | J | Fn | Caps | G | [ | ] | ^ | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | ? |Cursor| Mouse| | | ( | ) | $ | B | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | : | " | I | / | Num | Regex| \ | * | . | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), KC_LBRC, KC_RBRC, KC_CIRC, S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_B)}, + {S(KC_Z), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, +#endif + +// .................................................................... BEAKL 10 +#ifdef BEAKL10 + // ,-----------------------------------------------------------------------------------. + // | Q | H | O | U | X | ^Alt | ^GUI | G | D | N | M | V | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | Y | I | E | A | . | ↑Alt | ↑GUI | C | S | R | T | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | ; | " | , | Z | Caps |^Shift| B | P | L | F | K | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_H, KC_O, KC_U, KC_X, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_V }, + {KC_Y, KC_I, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, KC_S, KC_R, KC_T, KC_W }, + {KC_J, KC_SCLN, TD_QUOT, KC_COMM, KC_Z, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_K }, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_H), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_V)}, + {S(KC_Y), S(KC_I), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_S), S(KC_R), S(KC_T), S(KC_W)}, + {S(KC_J), KC_SCLN, TD_QUOT, KC_COMM, S(KC_Z), CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_K)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | [ | ! | ] | X | ^Alt | ^GUI | G | D | N | M | V | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | Y | < | = | > | ~ | ↑Alt | ↑GUI | C | S | R | T | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | ` | Z | Caps |^Shift| B | P | L | F | K | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), TD_LBRC, KC_EXLM, TD_RBRC, S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_V)}, + {S(KC_Y), TD_LT, KC_EQL, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_S), S(KC_R), S(KC_T), S(KC_W)}, + {S(KC_J), KC_COLN, TD_DQOT, TD_GRV, S(KC_Z), CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_K)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | H | O | U | X | ^Alt | ^GUI | G | { | + | } | V | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | Y | I | E | A | ? | ↑Alt | ↑GUI | C | ( | * | ) | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | / | Z | Caps |^Shift| B | P | L | F | K | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_H), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), TD_LCBR, KC_PLUS, TD_RCBR, S(KC_V)}, + {S(KC_Y), S(KC_I), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, S(KC_C), TD_LPRN, KC_ASTR, TD_RPRN, S(KC_W)}, + {S(KC_J), TD_COLN, TD_DQOT, KC_SLSH, S(KC_Z), CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_K)}, + {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, +#endif + +// ............................................................... BEAKL Mash Up +#ifdef BEAKL810 + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | ^Alt | ^GUI | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | . | ↑Alt | ↑GUI | C | T | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | ; | " | I | , | Caps |^Shift| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X }, + {KC_K, KC_H, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, KC_T, KC_R, KC_S, KC_W }, + {KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V }, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, + {S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | { | } | $ | ^Alt | ^GUI | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | < | > | ~ | ↑Alt | ↑GUI | C | T | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | ! | = | ` | Caps |^Shift| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), S(KC_Y), KC_LCBR, KC_RCBR, KC_DLR, CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {S(KC_K), S(KC_H), TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, + {S(KC_J), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | ^Alt | ^GUI | ^ | [ | ] | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | ? | ↑Alt | ↑GUI | | | ( | ) | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | I | / | Caps |^Shift| \ | $ | * | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, KC_CIRC, KC_LBRC, KC_RBRC, S(KC_M), S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, S(KC_S), S(KC_W)}, + {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_DLR, KC_ASTR, S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, +#endif + +// .................................................................... BEAKL MU +#ifdef BEAKLMU + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | Fn | Caps | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | . |Cursor| Mouse| C | T | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | ; | " | I | , | Num | Regex| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X }, + {HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_R, HOME_S, HOME_W }, + {KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V }, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, + {S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | $ | { | } | Z | Fn | Caps | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | / | < | > | ~ |Cursor| Mouse| C | T | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | ! | = | ` | Num | Regex| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), KC_DLR, KC_LCBR, KC_RCBR, S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {S(KC_K), KC_SLSH, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, + {S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | Fn | Caps | G | [ | ] | ^ | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | ? |Cursor| Mouse| | | ( | ) | $ | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | I | / | Num | Regex| \ | * | . | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), KC_LBRC, KC_RBRC, KC_CIRC, S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_W)}, + {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, +#endif + +// .................................................................... BEAKL SP +#ifdef BEAKLSP + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | . |Cursor| Mouse| C | T | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | ; | " | I | , | Num | Regex| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Ins | Left | Ent | Bksp | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X }, + {HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_R, HOME_S, HOME_W }, + {KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V }, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, + {S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | [ | ] | Z | Shift| Caps | G | D | N | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | ^ | < | > | ~ |Cursor| Mouse| C | T | R | S | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | ! | = | ` | Num | Regex| B | P | L | F | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | ↑Tab | f() | Ins | Left | _ | Del | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), S(KC_Y), KC_LBRC, KC_RBRC, S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, + {S(KC_K), KC_CIRC, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, + {S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, S_TAB, ___fn__, LT_INS, S_LEFT, KC_UNDS, SP_DEL, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | Y | O | U | Z | Shift| Caps | G | { | } | M | X | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | K | H | E | A | ? |Cursor| Mouse| | | ( | ) | $ | W | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | J | : | " | I | / | Num | Regex| \ | * | . | P | V | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Tab | - | Ins | Left | f() | Bksp | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), KC_LCBR, KC_RCBR, S(KC_M), S(KC_X)}, + {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_W)}, + {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)}, + {OS_CTL, OS_GUI, OS_ALT, KC_TAB, KC_MINS, LT_INS, S_LEFT, ___fn__, SP_BSPC, S_DOWN, S_UP, S_RGHT }, + }, +#endif diff --git a/keyboards/planck/keymaps/sdothum/colemak.h b/keyboards/planck/keymaps/sdothum/colemak.h new file mode 100644 index 000000000000..b7e9df22c151 --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/colemak.h @@ -0,0 +1,125 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// .............................................................. Colemak Mod-DH +#ifdef COLEMAK + // ,-----------------------------------------------------------------------------------. + // | Q | W | F | P | B | ^Alt | ^GUI | J | L | U | Y | ; | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | A | R | S | T | G | ↑Alt | ↑GUI | M | N | E | I | O | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | X | C | D | V | Caps |^Shift| K | H | , | . | " | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_W, KC_F, KC_P, KC_B, CNTR_TL, CNTR_TR, KC_J, KC_L, KC_U, KC_Y, KC_SCLN}, + {KC_A, KC_R, KC_S, KC_T, KC_G, CNTR_HL, CNTR_HR, KC_M, KC_N, KC_E, KC_I, KC_O }, + {KC_Z, KC_X, KC_C, KC_D, KC_V, CNTR_BL, CNTR_BR, KC_K, KC_H, KC_COMM, KC_DOT, TD_QUOT}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_W), S(KC_F), S(KC_P), S(KC_B), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), KC_SCLN}, + {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_G), CNTR_HL, CNTR_HR, S(KC_M), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, + {S(KC_Z), S(KC_X), S(KC_C), S(KC_D), S(KC_V), CNTR_BL, CNTR_BR, S(KC_K), S(KC_H), KC_COMM, KC_DOT, TD_QUOT}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | W | F | P | B | ^Alt | ^GUI | J | L | U | Y | : | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | A | R | S | T | G | ↑Alt | ↑GUI | M | N | E | I | O | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | X | C | D | V | Caps |^Shift| K | H | / | ? | " | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | - | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), S(KC_W), S(KC_F), S(KC_P), S(KC_B), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN}, + {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_G), CNTR_HL, CNTR_HR, S(KC_M), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, + {S(KC_Z), S(KC_X), S(KC_C), S(KC_D), S(KC_V), CNTR_BL, CNTR_BR, S(KC_K), S(KC_H), KC_SLSH, KC_QUES, TD_DQOT}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_MINS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | W | F | P | B | ^Alt | ^GUI | J | L | U | Y | : | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | A | R | S | T | G | ↑Alt | ↑GUI | M | N | E | I | O | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | X | C | D | V | Caps |^Shift| K | H | ~ | ` | " | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Caps | _ | ↑Tab | Bksp | f() | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_W), S(KC_F), S(KC_P), S(KC_B), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN}, + {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_G), CNTR_HL, CNTR_HR, S(KC_M), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, + {S(KC_Z), S(KC_X), S(KC_C), S(KC_D), S(KC_V), CNTR_BL, CNTR_BR, S(KC_K), S(KC_H), TD_TILD, TD_GRV, TD_DQOT}, + {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_UNDS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, +#endif + +// ..................................................................... ColemaX +#ifdef COLEMAX + // ,-----------------------------------------------------------------------------------. + // | Q | W | C | G | Z | ^Alt | ^GUI | J | L | U | Y | ; | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | A | R | S | T | B | ↑Alt | ↑GUI | K | N | E | I | O | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | X | V | F | D | P | Caps |^Shift| M | H | , | . | " | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_W, KC_C, KC_G, KC_Z, CNTR_TL, CNTR_TR, KC_J, KC_L, KC_U, KC_Y, KC_SCLN}, + {KC_A, KC_R, KC_S, KC_T, KC_B, CNTR_HL, CNTR_HR, KC_K, KC_N, KC_E, KC_I, KC_O }, + {KC_X, KC_V, KC_F, KC_D, KC_P, CNTR_BL, CNTR_BR, KC_M, KC_H, KC_COMM, KC_DOT, TD_QUOT}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_W), S(KC_C), S(KC_G), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), KC_SCLN}, + {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_B), CNTR_HL, CNTR_HR, S(KC_K), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, + {S(KC_X), S(KC_V), S(KC_F), S(KC_D), S(KC_P), CNTR_BL, CNTR_BR, S(KC_M), S(KC_H), KC_COMM, KC_DOT, TD_QUOT}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | W | C | G | Z | ^Alt | ^GUI | J | L | U | Y | : | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | A | R | S | T | B | ↑Alt | ↑GUI | K | N | E | I | O | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | X | V | F | D | P | Caps |^Shift| M | H | / | ? | " | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | - | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), S(KC_W), S(KC_C), S(KC_G), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN}, + {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_B), CNTR_HL, CNTR_HR, S(KC_K), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, + {S(KC_X), S(KC_V), S(KC_F), S(KC_D), S(KC_P), CNTR_BL, CNTR_BR, S(KC_M), S(KC_H), KC_SLSH, KC_QUES, TD_DQOT}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_MINS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | W | C | G | Z | ^Alt | ^GUI | J | L | U | Y | : | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | A | R | S | T | B | ↑Alt | ↑GUI | K | N | E | I | O | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | X | V | F | D | P | Caps |^Shift| M | H | ~ | ` | " | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Caps | _ | ↑Tab | Bksp | f() | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_W), S(KC_C), S(KC_G), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN}, + {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_B), CNTR_HL, CNTR_HR, S(KC_K), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, + {S(KC_X), S(KC_V), S(KC_F), S(KC_D), S(KC_P), CNTR_BL, CNTR_BR, S(KC_M), S(KC_H), TD_TILD, TD_GRV, TD_DQOT}, + {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_UNDS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, +#endif + diff --git a/keyboards/planck/keymaps/sdothum/common/chord_layout.h b/keyboards/planck/keymaps/sdothum/common/chord_layout.h new file mode 100644 index 000000000000..2c785d56ca75 --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/common/chord_layout.h @@ -0,0 +1,41 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// .................................................................. Short Cuts + + // .-----------------------------------------------------------------------------------. + // | | | Copy | Paste| | | | | | | | | + // |--------------------------------------------------------------+------+------+------| + // | Undo | Cut | Copy | Paste| | | | | PRIV | PUB | | | + // |-----------------------------------------------------------------------------------| + // | | | Nak | Eot | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | | | | | | | f() | | | | | | + // | | | | | | | | f() | | | | | see _PLOVER + // '-----------------------------------------------------------------------------------' + + [_EDIT] = { + {_______, _______, TMCOPY, TMPASTE, _______, _______, _______, _______, _______, _______, _______, _______}, + {UNDO, CUT, COPY, PASTE, _______, _______, _______, _______, TD_PRIV, TD_SEND, _______, _______}, + {_______, _______, NAK, EOT, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, ___fn__, ___fn__, _______, _______, _______, _______}, + }, + +// ................................................................ Adjust Layer + + // ,-----------------------------------------------------------------------------------. + // |Plover| | | | | | | | | | | | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // |Aud on| | | | | | | | | | | | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Reset| | | | | | | | | | | | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | | | | f() | | | | | f() | | | | + // `-----------------------------------------------------------------------------------' + + [_ADJUST] = { + {PLOVER, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {AU_ON, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, ___fn__, _______, _______, _______, _______, ___fn__, _______, _______, _______}, + }, diff --git a/keyboards/planck/keymaps/sdothum/common/init.h b/keyboards/planck/keymaps/sdothum/common/init.h new file mode 100644 index 000000000000..6366a19f65eb --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/common/init.h @@ -0,0 +1,56 @@ + +// ....................................................................... Audio + +void matrix_init_user(void) +{ +#ifdef STENO_ENABLE + steno_set_mode(STENO_MODE_BOLT); // or STENO_MODE_GEMINI +#endif +#ifdef AUDIO_ENABLE + startup_user(); +#endif +} + +#ifdef AUDIO_ENABLE +#ifdef BACKLIGHT_ENABLE +void led_set_user(uint8_t usb_led) +{ + static uint8_t old_usb_led = 0; + _delay_ms(10); // gets rid of tick + if (!is_playing_notes()) { + if ((usb_led & (1<event.pressed) { + key_timer = timer_read(); + register_code(modifier); + if (modifier2) { + register_code(modifier2); + } + } + else { + unregister_code(modifier); + if (modifier2) { + unregister_code(modifier2); + } + if (timer_elapsed(key_timer) < TAPPING_TERM) { + shift_key(keycode); + } + key_timer = 0; + } +} + +// ................................................................... Mod Masks + +// tap dance persistant mods, see process_record_user() +// keyboard_report->mods (?) appears to be cleared by tap dance +static uint8_t mods = 0; + +void tap_mods(keyrecord_t *record, uint16_t keycode) +{ + if (record->event.pressed) { + mods |= MOD_BIT(keycode); + } + else { + mods &= ~(MOD_BIT(keycode)); + } +} + +// (un)register modifiers +void modifier(void (*f)(uint8_t)) +{ + if (mods & MOD_BIT(KC_LCTL)) { + (*f)(KC_LCTL); + } + if (mods & MOD_BIT(KC_LGUI)) { + (*f)(KC_LGUI); + } + if (mods & MOD_BIT(KC_LALT)) { + (*f)(KC_LALT); + } +} + +// .................................................... Triple Dance Shift/Layer + +static uint8_t dt_shift = 0; + +void double_shift(uint16_t keycode, uint8_t layer) +{ + tap_key (keycode); + if (DT_SHIFT) { + // set_oneshot_mods(MOD_LSFT); + // layer_on(layer); + layer_on (_SHIFT); + set_oneshot_layer(_SHIFT, ONESHOT_START); + dt_shift = 1; + } + else { + layer_on(layer); + } +} + +// tap dance LT (LAYER, KEY) emulation with -> and auto-repeat extensions! +void tap_shift(qk_tap_dance_state_t *state, uint16_t keycode, uint8_t layer) +{ + // double tap plus down + if (state->count > 2) { + // double enter shift + if (keycode == KC_ENT) { + tap_key (keycode); + double_shift(keycode, layer); + } + // repeating keycode + else { + register_code(keycode); + } + } + // tap plus down (or double tap): keycode (one shot) shift + else if (state->count > 1) { + double_shift(keycode, layer); + } + // down: shift + else if (state->pressed) { + layer_on(layer); + } + // tap: keycode + else { + modifier(register_code); + tap_key (keycode); + modifier(unregister_code); + } +} + +void tap_reset(uint16_t keycode, uint8_t layer) +{ + unregister_code(keycode); + if (DT_SHIFT && dt_shift) { + clear_oneshot_layer_state(ONESHOT_PRESSED); + dt_shift = 0; + } + else { + layer_off(layer); + } +} + +// augment pseudo LT (_RSHIFT, KC_ENT) handling below for rapid sequences +void enter(qk_tap_dance_state_t *state, void *user_data) +{ + tap_shift(state, KC_ENT, _RSHIFT); +} + +void enter_reset(qk_tap_dance_state_t *state, void *user_data) +{ + tap_reset(KC_ENT, _RSHIFT); +} + +// augment pseudo LT (_LSHIFT, KC_SPC) handling below for rapid sequences +void space(qk_tap_dance_state_t *state, void *user_data) +{ + tap_shift(state, KC_SPC, _LSHIFT); +} + +void space_reset(qk_tap_dance_state_t *state, void *user_data) +{ + tap_reset(KC_SPC, _LSHIFT); +} + +// ......................................................... Triple Dance Insert + +void double_max(uint8_t count, uint8_t shift, uint16_t keycode) +{ + if (shift) { + shift_key(keycode); + if (count > 1) { + shift_key(keycode); + } + } + else { + tap_key(keycode); + if (count > 1) { + tap_key(keycode); + } + } +} + +void colon(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 2) { + tap_key (KC_SPC); + shift_key(KC_SCLN); + shift_key(KC_SCLN); + tap_key (KC_SPC); + } + else { + double_max(state->count, SHIFT, KC_SCLN); + } + reset_tap_dance(state); +} + +void eql(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 2) { + tap_key(KC_SPC); + tap_key(KC_SLSH); + tap_key(KC_EQL); + tap_key(KC_SPC); + } + else { + double_max(state->count, NOSHIFT, KC_EQL); + } + reset_tap_dance(state); +} + +void greater(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 2) { + tap_key (KC_SPC); + tap_key (KC_MINS); + shift_key(KC_DOT); + tap_key (KC_SPC); + } + else { + double_max(state->count, SHIFT, KC_DOT); + } + reset_tap_dance(state); +} + +void lesser(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 2) { + tap_key (KC_SPC); + shift_key(KC_COMM); + tap_key (KC_MINS); + tap_key (KC_SPC); + } + else { + double_max(state->count, SHIFT, KC_COMM); + } + reset_tap_dance(state); +} + +void tilde(qk_tap_dance_state_t *state, void *user_data) +{ + // double tap plus down: repeating keycode + if (state->count > 2) { + register_code(KC_LSFT); + register_code(KC_GRV); + } + // tap: keycode + else { + shift_key(KC_GRV); + // double tap: unix home directory + if (state->count > 1) { + tap_key(KC_SLSH); + } + } +} + +void tilde_reset(qk_tap_dance_state_t *state, void *user_data) +{ + unregister_code(KC_GRV); + unregister_code(KC_LSFT); +} + +// ............................................................. Tap Dance Pairs + +// tap dance shift rules +#define S_NEVER 0 +#define S_SINGLE 1 +#define S_DOUBLE 2 +#define S_ALWAYS S_SINGLE | S_DOUBLE + +void symbol_pair(uint8_t shift, uint16_t left, uint16_t right) +{ + if (shift & S_DOUBLE) { + shift_key(left); + shift_key(right); + } + else { + tap_key(left); + tap_key(right); + } +} + +#define CLOSE 1 + +// tap dance symbol pairs +void tap_pair(qk_tap_dance_state_t *state, uint8_t shift, uint16_t left, uint16_t right, uint16_t modifier, uint8_t close) +{ + // triple tap: left right with cursor between symbol pair a la vim :-) + if (state->count > 2) { + symbol_pair(shift, left, right); + tap_key (KC_LEFT); + } + // double tap: left right + else if (state->count > 1) { + symbol_pair(shift, left, right); + } + // down: modifier + else if (state->pressed) { + if (modifier) { + register_code(modifier); + } + } + // tap: left (close: right) + else { + if (shift & S_SINGLE) { + shift_key(close ? right : left); + } + else { + tap_key(close ? right : left); + } + } + if (!modifier) { + reset_tap_dance(state); + } +} + +void doublequote(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_QUOT, KC_QUOT, 0, 0); +} + +void grave(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_NEVER, KC_GRV, KC_GRV, 0, 0); +} + +void lbrace(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_NEVER, KC_LBRC, KC_RBRC, 0, 0); +} + +void lcurly(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_LBRC, KC_RBRC, 0, 0); +} + +void lparen(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_9, KC_0, KC_LCTL, 0); +} + +void lparen_reset(qk_tap_dance_state_t *state, void *user_data) +{ + unregister_code(KC_LCTL); +} + +void quote(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_NEVER, KC_QUOT, KC_QUOT, 0, 0); +} + +void rangle(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_COMM, KC_DOT, 0, CLOSE); +} + +void rbrace(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_NEVER, KC_LBRC, KC_RBRC, 0, CLOSE); +} + +void rcurly(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_LBRC, KC_RBRC, 0, CLOSE); +} + +void rparen(qk_tap_dance_state_t *state, void *user_data) +{ + tap_pair(state, S_ALWAYS, KC_9, KC_0, 0, CLOSE); +} + +void rparen_reset(qk_tap_dance_state_t *state, void *user_data) +{ + unregister_code(KC_LCTL); +} + +// ............................................................ Tap Dance Insert + +void comma(qk_tap_dance_state_t *state, void *user_data) +{ + tap_key(KC_COMM); + if (state->count > 1) { + tap_key(KC_SPC); + } + reset_tap_dance(state); +} + +void dot(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 1) { + shift_key(KC_COLN); + } + else { + tap_key(KC_DOT); + } + reset_tap_dance(state); +} + +// compile time macro string, see functions/hardware planck script +void private(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 1) { +#ifdef PRIVATE_STRING +#include "private_string.h" +#endif + } + reset_tap_dance(state); +} + +// config.h defined string +void send(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 1) { + SEND_STRING(PUBLIC_STRING); + } + reset_tap_dance(state); +} + +// .......................................................... Tap Dance One Shot + +void caps(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 1) { + tap_key(KC_CAPS); + } + else { + set_oneshot_mods(MOD_LSFT); + register_code (KC_LSFT); // on hold down + } +} + +void caps_reset(qk_tap_dance_state_t *state, void *user_data) +{ + unregister_code(KC_LSFT); +} + +// ................................................................... Tap Dance + +qk_tap_dance_action_t tap_dance_actions[] = { + [_CAPS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, caps, caps_reset) + ,[_COLN] = ACTION_TAP_DANCE_FN (colon) + ,[_COMM] = ACTION_TAP_DANCE_FN (comma) + ,[_DOT] = ACTION_TAP_DANCE_FN (dot) + ,[_DQOT] = ACTION_TAP_DANCE_FN (doublequote) + ,[_ENT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, enter, enter_reset) + ,[_EQL] = ACTION_TAP_DANCE_FN (eql) + ,[_GRV] = ACTION_TAP_DANCE_FN (grave) + ,[_GT] = ACTION_TAP_DANCE_FN (greater) + ,[_LBRC] = ACTION_TAP_DANCE_FN (lbrace) + ,[_LCBR] = ACTION_TAP_DANCE_FN (lcurly) + ,[_LPRN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lparen, lparen_reset) + ,[_LT] = ACTION_TAP_DANCE_FN (lesser) + ,[_PRIV] = ACTION_TAP_DANCE_FN (private) + ,[_QUOT] = ACTION_TAP_DANCE_FN (quote) + ,[_RBRC] = ACTION_TAP_DANCE_FN (rbrace) + ,[_RCBR] = ACTION_TAP_DANCE_FN (rcurly) + ,[_RNGL] = ACTION_TAP_DANCE_FN (rangle) + ,[_RPRN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rparen, rparen_reset) + ,[_SEND] = ACTION_TAP_DANCE_FN (send) + ,[_SPC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, space, space_reset) + ,[_TILD] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tilde, tilde_reset) +}; + +// .............................................................. Dynamic Layers + +#define LEFT 1 +#define RIGHT 2 +static uint8_t thumb = 0; + +// LEFT (KC_SPC, S(KC_BSLS)), RIGHT (KC_LEFT, S(KC_LEFT)) opposite thumb combinations, see process_record_user() +// up, up -> _BASE +// up, down -> _SYMBOL +// down, up -> _NUMBER +// down, down -> _MOUSE // see layer keycodes that raise mouse layer +#define THUMBS_DOWN _MOUSE // layer + +static uint8_t overlayer = 0; + +// left right thumb layer combinations +void thumb_layer(keyrecord_t *record, uint8_t side, uint8_t shift, uint16_t keycode, uint8_t thumb_dn_layer, uint8_t thumb_up_layer) +{ + if (record->event.pressed) { + // layer_on via tap_layer(), see process_record_user() + key_timer = timer_read(); + thumb = thumb | side; + } + else { + layer_off(thumb_dn_layer); + // opposite thumb_layer() thumb may have switched effective layer! + if (overlayer) { + layer_off(overlayer); + overlayer = 0; + } + if (!key_press(shift, keycode)) { + layer_off(THUMBS_DOWN); // both thumbs needed + // opposite thumb down? see left right combination layer table above + if (thumb & (side == LEFT ? RIGHT : LEFT)) { + layer_on(thumb_up_layer); + overlayer = thumb_up_layer; + } + } + clear_mods(); + thumb = thumb & ~side; + key_timer = 0; + } +} + +// #ifdef STENO_ENABLE +// // LT for steno keycode +// void stn_layer(keyrecord_t *record, uint16_t keycode, uint8_t layer) +// { +// if (record->event.pressed) { +// key_timer = timer_read(); +// if (keycode) { +// process_steno(keycode, record); +// } +// layer_on(layer); +// } +// else { +// layer_off(layer); +// if (keycode) { +// if (timer_elapsed(key_timer) < TAPPING_TERM) { +// process_steno(keycode, record); +// } +// else { +// // clear pressed state (request push of updated) process_steno.c and .h +// // steno_clear_state(); +// } +// } +// key_timer = 0; +// } +// } +// #endif + +// LT for S(keycode) +void lt_shift(keyrecord_t *record, uint16_t keycode, uint8_t layer) +{ + if (record->event.pressed) { + key_timer = timer_read(); + layer_on(layer); + } + else { + layer_off(layer); + // for shifted keycodes, hence, LT_SHIFT + key_press(SHIFT, keycode); + clear_mods(); + key_timer = 0; + } +} + +// set layer asap to overcome macro latency errors, notably tap dance and LT usage +// this routine inexplicably (?) sets layer_on() faster than can be done in thumb_layer() +void tap_layer(keyrecord_t *record, uint8_t layer) +{ + if (record->event.pressed) { + layer_on(layer); + } + else { + layer_off(layer); + } +} + +// ..................................................................... Keymaps + +// void persistant_default_layer_set(uint16_t default_layer) +// { +// eeconfig_update_default_layer(default_layer); +// default_layer_set (default_layer); +// } + +void clear_layers(void) +{ + uint8_t layer; + for (layer = 0; layer < _END_LAYERS; layer++) { + layer_off(layer); + } +} + +#ifdef CENTER_TT +static uint16_t tt_keycode = 0; // current TT keycode + +void clear_tt(void) +{ + if (tt_keycode == KC_CAPS) { + tap_key(KC_CAPS); // clear capslock + } + tt_keycode = 0; + clear_layers(); + set_single_persistent_default_layer(_BASE); +} +#endif + +// txbolt plover run state +static uint8_t plover = 0; + +void base_layer(void) +{ +#ifdef AUDIO_ENABLE + if (plover) { + PLAY_SONG(song_plover_gb); + } + else { + PLAY_SONG(song_qwerty); + } +#endif + clear_layers(); + set_single_persistent_default_layer(_BASE); +} + +void toggle_plover(uint8_t state) +{ + if (plover != state) { +#ifdef PLOVER_KEYBIND +#include "plover_keybind.h" +#endif + plover = state; + } +} + +void steno(keyrecord_t *record) +{ + if (record->event.pressed) { +#ifdef AUDIO_ENABLE + PLAY_SONG(song_plover); +#endif + clear_layers(); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + if (!plover) { + toggle_plover(1); + } + } +} + +void steno_exit(keyrecord_t *record) +{ + if (record->event.pressed) { + base_layer(); + toggle_plover(0); + } +} diff --git a/keyboards/planck/keymaps/sdothum/common/number_fkey_layout.h b/keyboards/planck/keymaps/sdothum/common/number_fkey_layout.h new file mode 100644 index 000000000000..4824b82a0705 --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/common/number_fkey_layout.h @@ -0,0 +1,87 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ......................................................... Number Keypad Layer +#ifdef SHIFT_SYMBOLS + // .-----------------------------------------------------------------------------------. + // | | F | E | D | | | | / | 7 | 8 | 9 | * | + // |-----------------------------------------------------------------------------------| + // | Ctrl | C | B | A | | | | . | 4 | 5 | 6 | - | + // |-----------------------------------------------------------------------------------| + // | | # | G | \ | | | | , | 1 | 2 | 3 | + | + // |-----------------------------------------------------------------------------------| + // | | | | f() | | | | 0 | = | | | | + // | | | | f() | | | | = | 0 | | | | + // '-----------------------------------------------------------------------------------' + + [_NUMBER] = { + {_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, + {OS_CTL, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS}, + {_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, +#ifdef THUMB_0 + {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___}, +#else + {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___}, +#endif + }, +#else + // .-----------------------------------------------------------------------------------. + // | | F | E | D | | | | / | 7 | 8 | 9 | * | + // |-----------------------------------------------------------------------------------| + // | Ctrl | C | B | A | | | | . | 4 | 5 | 6 | - | + // |-----------------------------------------------------------------------------------| + // | | # | X | G | | | | , | 1 | 2 | 3 | + | + // |-----------------------------------------------------------------------------------| + // | | | | f() | | | | 0 | = | | | | + // | | | | f() | | | | = | 0 | | | | + // '-----------------------------------------------------------------------------------' + + [_NUMBER] = { + {_______, KC_F, MT_E, KC_D, _______, _______, _______, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, + {OS_CTL, GT_C, AT_B, LT_A, _______, _______, _______, KC_DOT, KC_4, KC_5, KC_6, KC_MINS}, + {_______, KC_HASH, MT_X, S(KC_G), _______, _______, _______, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, +#ifdef THUMB_0 + {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___}, +#else + {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___}, +#endif + }, + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | { | & | ? | : | } | + // |-----------------------------------------------------------------------------------| + // | | | | f() | | | | ( | $ | % | ^ | ) | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | [ | < | ~ | > | ] | + // |-----------------------------------------------------------------------------------| + // | | | | f() | | | | \ | | | | | | + // '-----------------------------------------------------------------------------------' + + [_NUMSYM] = { + {_______, _______, _______, ___x___, _______, _______, _______, TD_LCBR, KC_AMPR, KC_QUES, KC_COLN, KC_RCBR}, + {___x___, ___x___, ___x___, ___fn__, _______, _______, _______, TD_LPRN, KC_DLR, KC_PERC, KC_CIRC, KC_RPRN}, + {_______, _______, _______, ___x___, _______, _______, _______, TD_LBRC, KC_LT, KC_TILD, KC_GT, KC_RBRC}, + {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_BSLS, KC_PIPE, ___x___, ___x___, ___x___}, + }, +#endif + +// ............ .................................................. Function Keys + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | | F7 | F8 | F9 | F12 | + // |-----------------------------------------------------------------------------------| + // | Ctrl | GUI | Alt | Shift| | | | | F4 | F5 | F6 | F11 | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | | F1 | F2 | F3 | F10 | + // |-----------------------------------------------------------------------------------| + // | | | | | | f() | | + | | | | | + // | | | | | f() | | | + | | | | | see _PLOVER + // '-----------------------------------------------------------------------------------' + + [_FNCKEY] = { + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 }, + {OS_CTL, OS_GUI, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 }, + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 }, + {_______, _______, _______, _______, ___fn__, ___fn__, _______, KC_PLUS, _______, _______, _______, _______}, + }, + diff --git a/keyboards/planck/keymaps/sdothum/common/plover_keybind.h b/keyboards/planck/keymaps/sdothum/common/plover_keybind.h new file mode 100644 index 000000000000..88ec727bfd60 --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/common/plover_keybind.h @@ -0,0 +1,7 @@ + +// simple window manager specific plover keybind hook + +// toggle plover application, see herbstluftwm/config/appbinds +register_code (KC_LGUI); +shift_key (KC_RGHT); +unregister_code(KC_LGUI); diff --git a/keyboards/planck/keymaps/sdothum/common/sounds.h b/keyboards/planck/keymaps/sdothum/common/sounds.h new file mode 100644 index 000000000000..1bfc7a6da0c9 --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/common/sounds.h @@ -0,0 +1,14 @@ + +// ................................................................ Audio Sounds + +#ifdef AUDIO_ENABLE +float song_startup [][2] = SONG(STARTUP_SOUND); +float song_colemak [][2] = SONG(COLEMAK_SOUND); +float song_qwerty [][2] = SONG(QWERTY_SOUND); +float song_plover [][2] = SONG(PLOVER_SOUND); +float song_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); +float song_caps_on [][2] = SONG(CAPS_LOCK_ON_SOUND); +float song_caps_off [][2] = SONG(CAPS_LOCK_OFF_SOUND); +float music_scale [][2] = SONG(MUSIC_SCALE_SOUND); +float song_goodbye [][2] = SONG(GOODBYE_SOUND); +#endif diff --git a/keyboards/planck/keymaps/sdothum/common/steno_layout.h b/keyboards/planck/keymaps/sdothum/common/steno_layout.h new file mode 100644 index 000000000000..ab4a6fe011cb --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/common/steno_layout.h @@ -0,0 +1,39 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ...................................................................... Plover +#ifdef STENO_ENABLE + // ,-----------------------------------------------------------------------------------. + // | # | # | # | # | # | # | # | # | # | # | # | # | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | Base | S | T | P | H | * | * | F | P | L | T | D | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Base | S | K | W | R | * | * | R | B | G | S | Z | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | | A | O | E | U | | + // `-----------------------------------------------------------------------------------' + + [_PLOVER] = { + {STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC }, + {BASE1, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR }, + {BASE2, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR }, + {_______, _______, _______, PS_STNA, PS_STNO, _______, _______, PS_STNE, PS_STNU, _______, _______, _______}, + }, +#else + // ,-----------------------------------------------------------------------------------. + // | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | Base | S | T | P | H | * | * | F | P | L | T | D | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Base | S | K | W | R | * | * | R | B | G | S | Z | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | | A | O | E | U | | + // `-----------------------------------------------------------------------------------' + + [_PLOVER] = { + {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, + {BASE1, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, + {BASE2, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {_______, _______, _______, LT_C, LT_V, _______, _______, LT_N, LT_M, _______, _______, _______}, + }, +#endif diff --git a/keyboards/planck/keymaps/sdothum/common/symbol_guifn_layout.h b/keyboards/planck/keymaps/sdothum/common/symbol_guifn_layout.h new file mode 100644 index 000000000000..2edfe1a04a55 --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/common/symbol_guifn_layout.h @@ -0,0 +1,75 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ..................................................... Symbol Navigation Layer +#ifdef SHIFT_SYMBOLS + // .-----------------------------------------------------------------------------------. + // | | ~ | * | & | | | | | Home | Up | End | PgUp | + // |-----------------------------------------------------------------------------------| + // | Ctrl | ^ | % | $ | | | | | Left | Down | Right| PgDn | + // |-----------------------------------------------------------------------------------| + // | | # | @ | ! | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | | | |Adjust| \ | | | | f() | | | | + // '-----------------------------------------------------------------------------------' + + [_SYMBOL] = { + {_______, KC_TILD, KC_ASTR, KC_AMPR, _______, ___x___, ___x___, _______, KC_HOME, KC_UP, KC_END, KC_PGUP}, + {OS_CTL, SM_CIRC, SM_PERC, SM_DLR, _______, ___x___, ___x___, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN}, + {_______, KC_HASH, KC_AT, KC_EXLM, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, + {___x___, ___x___, ___x___, ADJUST, LT_BSLS, ___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___}, + }, +#else + // .-----------------------------------------------------------------------------------. + // | { | . | * | & | } | | | | Home | Up | End | PgUp | + // |-----------------------------------------------------------------------------------| + // | ( | ^ | % | $ | ) | | | | Left | Down | Right| PgDn | + // |-----------------------------------------------------------------------------------| + // | [ | # | @ | ! | ] | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | | | | | | \ | | | | f() | | | | + // '-----------------------------------------------------------------------------------' + + [_SYMBOL] = { + {KC_LCBR, KC_DOT, KC_ASTR, KC_AMPR, TD_RCBR, _______, _______, _______, KC_HOME, KC_UP, KC_END, KC_PGUP}, + {SM_LPRN, SM_CIRC, SM_PERC, SM_DLR, TD_RPRN, _______, _______, _______, LT_LFTX, KC_DOWN, KC_RGHT, KC_PGDN}, + {KC_LBRC, KC_HASH, KC_AT, KC_EXLM, TD_RBRC, _______, _______, _______, _______, _______, _______, _______}, + {___x___, ___x___, ___x___, SL_PIPE, LT_BSLS, ___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___}, + }, + + // .-----------------------------------------------------------------------------------. + // | | ? | + | ~ | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | | < | = | > | | | | | f() | | | | + // |-----------------------------------------------------------------------------------| + // | | 3 | 2 | 1 | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | | f() | | | | + // '-----------------------------------------------------------------------------------' + + [_SYMREG] = { + {___x___, KC_QUES, KC_PLUS, KC_TILD, ___x___, _______, _______, _______, ___x___, ___x___, ___x___, ___x___}, + {___x___, KC_LT, KC_EQL, TD_RNGL, ___x___, _______, _______, _______, ___fn__, ___x___, ___x___, ___x___}, + {___x___, KC_3, KC_2, KC_1, ___x___, _______, _______, _______, _______, _______, _______, _______}, + {___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___}, + }, +#endif + +// ............................................................... Mouse Actions + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | | Left | Up | Right| Up | + // |-----------------------------------------------------------------------------------| + // | | Btn3 | Btn2 | Btn1 | | | | | Left | Down | Right| Down | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | | | | | f() | | | | f() | | | | + // '-----------------------------------------------------------------------------------' + + [_MOUSE] = { + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U}, + {_______, KC_BTN3, KC_BTN2, KC_BTN1, _______, ___x___, ___x___, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D}, + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, ___fn__, _______, _______, _______, ___fn__, _______, _______, _______}, + }, diff --git a/keyboards/planck/keymaps/sdothum/common/tapdance.h b/keyboards/planck/keymaps/sdothum/common/tapdance.h new file mode 100644 index 000000000000..d778286bf1ed --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/common/tapdance.h @@ -0,0 +1,49 @@ + +// tap dance keys +enum tap_dance { + _CAPS = 0 + ,_COLN + ,_COMM + ,_DOT + ,_DQOT + ,_ENT + ,_EQL + ,_GRV + ,_GT + ,_LBRC + ,_LCBR + ,_LPRN + ,_LT + ,_PRIV + ,_QUOT + ,_RBRC + ,_RCBR + ,_RNGL + ,_RPRN + ,_SEND + ,_SPC + ,_TILD +}; + +#define TD_CAPS TD(_CAPS) +#define TD_COLN TD(_COLN) +#define TD_COMM TD(_COMM) +#define TD_DOT TD(_DOT) +#define TD_DQOT TD(_DQOT) +#define TD_ENT TD(_ENT) +#define TD_EQL TD(_EQL) +#define TD_GRV TD(_GRV) +#define TD_GT TD(_GT) +#define TD_LBRC TD(_LBRC) +#define TD_LCBR TD(_LCBR) +#define TD_LPRN TD(_LPRN) +#define TD_LT TD(_LT) +#define TD_PRIV TD(_PRIV) // compile time macro string, provided in private_string.h +#define TD_QUOT TD(_QUOT) +#define TD_RBRC TD(_RBRC) +#define TD_RCBR TD(_RCBR) +#define TD_RNGL TD(_RNGL) +#define TD_RPRN TD(_RPRN) +#define TD_SEND TD(_SEND) // config.h defined macro string +#define TD_SPC TD(_SPC) // see process_record_user() for extended handling of Spc +#define TD_TILD TD(_TILD) diff --git a/keyboards/planck/keymaps/sdothum/common/toggle_layout.h b/keyboards/planck/keymaps/sdothum/common/toggle_layout.h new file mode 100644 index 000000000000..504a1ff579e2 --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/common/toggle_layout.h @@ -0,0 +1,102 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ......................................................... Number Keypad Layer + + // .-----------------------------------------------------------------------------------. + // | | F | E | D | | | | / | 7 | 8 | 9 | * | + // |-----------------------------------------------------------------------------------| + // | Ctrl | C | B | A | | | | . | 4 | 5 | 6 | - | + // |-----------------------------------------------------------------------------------| + // | | # | G | \ | | | | , | 1 | 2 | 3 | + | + // |-----------------------------------------------------------------------------------| + // | | f() | Space| 0 | = | | + // | | f() | Space| = | 0 | | + // '-----------------------------------------------------------------------------------' + + [_TTNUMBER] = { + {_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, + {OS_CTL, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS}, + {_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, +#ifdef THUMB_0 + {_______, _______, _______, _______, TT_ESC, KC_SPC, KC_0, LT_EQL, _______, _______, _______, _______}, +#else + {_______, _______, _______, _______, TT_ESC, KC_SPC, KC_EQL, LT_0, _______, _______, _______, _______}, +#endif + }, + +// ............ .................................................. Function Keys + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | | F7 | F8 | F9 | F12 | + // |-----------------------------------------------------------------------------------| + // | Ctrl | GUI | Alt | Shift| | | | | F4 | F5 | F6 | F11 | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | | F1 | F2 | F3 | F10 | + // |-----------------------------------------------------------------------------------| + // | | f() | | + | | | + // '-----------------------------------------------------------------------------------' + + [_TTFNCKEY] = { + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 }, + {OS_CTL, OS_GUI, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 }, + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 }, + {_______, _______, _______, _______, TT_ESC, _______, KC_PLUS, _______, _______, _______, _______, _______}, + }, + +// ....................................................................... Regex + + // ,-----------------------------------------------------------------------------------. + // | | ~ | { | } | & | | | % | [ | ] | @ | | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | | ^ | < | > | ? | | | | | ( | ) | $ | | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | | : | ! | = | / | | | \ | * | . | # | | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | | f() | - | + | Space| | + // `-----------------------------------------------------------------------------------' + + [_TTREGEX] = { + {___x___, KC_TILD, KC_LCBR, KC_RCBR, KC_AMPR, ___x___, ___x___, KC_PERC, KC_LBRC, KC_RBRC, KC_AT, ___x___}, + {___x___, KC_CIRC, KC_LT, KC_GT, KC_QUES, ___x___, ___x___, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, ___x___}, + {___x___, KC_COLN, KC_EXLM, KC_EQL, KC_SLSH, ___x___, ___x___, KC_BSLS, KC_ASTR, KC_DOT, KC_HASH, ___x___}, + {_______, _______, _______, _______, TT_ESC, KC_MINS, KC_PLUS, KC_SPC, _______, _______, _______, _______}, + }, + +// ............................................................ Navigation Layer + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | | Home | Up | End | PgUp | + // |-----------------------------------------------------------------------------------| + // | Ctrl | GUI | Alt | Shift| | | | | Left | Down | Right| PgDn | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | | f() | | | | | + // '-----------------------------------------------------------------------------------' + + [_TTCURSOR] = { + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_HOME, KC_UP, KC_END, KC_PGUP}, + {OS_CTL, OS_GUI, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN}, + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, TT_ESC, _______, _______, _______, _______, _______, _______, _______}, + }, + +// ............................................................... Mouse Actions + + // .-----------------------------------------------------------------------------------. + // | | | | | | | | | Left | Up | Right| Up | + // |-----------------------------------------------------------------------------------| + // | | Btn3 | Btn2 | Btn1 | | | | | Left | Down | Right| Down | + // |-----------------------------------------------------------------------------------| + // | | | | | | | | | | | | | + // |-----------------------------------------------------------------------------------| + // | | f() | | | | | + // '-----------------------------------------------------------------------------------' + + [_TTMOUSE] = { + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U}, + {_______, KC_BTN3, KC_BTN2, KC_BTN1, _______, ___x___, ___x___, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D}, + {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, TT_ESC, _______, _______, _______, _______, _______, _______, _______}, + }, diff --git a/keyboards/planck/keymaps/sdothum/config.h b/keyboards/planck/keymaps/sdothum/config.h new file mode 100644 index 000000000000..4b2cdeece173 --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/config.h @@ -0,0 +1,50 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// required because lower/raise modifiers are redefined by colemak-dh +#define PREVENT_STUCK_MODIFIERS + +// tap dance key press termination interval +#define TAPPING_TERM 250 + +// smooth mouse motion +// #define MOUSEKEY_INTERVAL 20 +// #define MOUSEKEY_DELAY 0 +// #define MOUSEKEY_TIME_TO_MAX 60 +// #define MOUSEKEY_MAX_SPEED 7 +// #define MOUSEKEY_WHEEL_DELAY 0 + +// compile time macro string, see functions/hardware planck script (undefine otherwise) +#define PRIVATE_STRING + +// compile time macro string, must be in quotes +#define PUBLIC_STRING ":%s/arch=(.*)/arch=('any')\n" + +// thumb key tap-shift() double tap: one shot shift (0) off (1) on +#define DT_SHIFT 1 + +// number layer 0 position KEYPAD_0, THUMB_0 +#define THUMB_0 + +// home block shift symbol clustes defined (no overlays required for extended symbols, undefine otherwise) +#define SHIFT_SYMBOLS + +// center column TT assignments (undefine for OSM chords) +#define CENTER_TT +#define TAPPING_TOGGLE 1 + +// home row modifiers +#define HOME_MODS +// fix dual function timing +#define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT + +// layout ADNW*, BEAKL*, COLEKA*, QWERTY (default) +#define BEAKLSP + +// sync app with window manager keybind hook defined in plover_keybind.h +#define PLOVER_KEYBIND + +#endif diff --git a/keyboards/planck/keymaps/sdothum/keymap.c b/keyboards/planck/keymaps/sdothum/keymap.c new file mode 100644 index 000000000000..ac509c41dc92 --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/keymap.c @@ -0,0 +1,480 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. +// +// To flash planck firmware +// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +// Reset keyboard or press hw reset button on base (hole) +// +// cd qmk_firmware/keyboards/planck +// sudo make KEYMAP=sdothum dfu +// +// sudo make clean (good practice before flashing) +// sudo make KEYMAP=sdothum (to compile check) +// +// Package requirements (for arch linux) +// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +// avr-gcc-atmel +// avr-libc-atmel +// dfu-programmer +// +// Notes +// ▔▔▔▔▔ +// ** E R G O W I D E S P L I T ** Layout +// +// Autocompletion tap dance key pairs (),[],{} are available from the +// number/symbol layer, as well as, numerous (un)shift key values +// +// The navigation pad provides a single hand right thumb activated cluster +// with left hand modifiers +// +// #define PRIVATE_STRING includes private_string.h, a user defined code +// block for the PRIV tap dance e.g. SEND_STRING("secret messape"), +// see function private() +// +// Modifier clusters +// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +// The num and sym keys together access the navigation pad layer +// +// ,-----------------------------------------------------------------------------------. +// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| +// `-----------------------------------------------------------------------------------' +// +// Hint +// ▔▔▔▔ +// For sculpted keycaps such as Cherry or OEM profile, reverse the Alt, Num, +// Shift, Shift, Nav, Sym keycaps for more ergonomic thumb orientation and +// actuation +// +// Code +// ▔▔▔▔ +// This source is shamelessly based on the "default" planck layout +// +// #ifdef/#endif block structures are not indented, as syntax highlighting +// in vim is sufficient for identification +// +// c++ commenting style is used throughout +// +// Change history +// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔ +// See http://thedarnedestthing.com/planck%20constant +// See http://thedarnedestthing.com/planck%20done + + + +// === N O T E === +// +// sudo CPATH=/common make ... + + +#include "config.h" +#include "planck.h" +#include "action_layer.h" +#ifdef STENO_ENABLE +#include "keymap_steno.h" +#endif +#ifdef AUDIO_ENABLE +#include "audio.h" +#endif +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +enum planck_layers { + _BASE = 0 + ,_SHIFT + ,_LSHIFT + ,_RSHIFT + ,_PLOVER + ,_NUMBER + ,_SYMBOL + ,_FNCKEY + ,_MOUSE +#ifdef CENTER_TT + ,_TTNUMBER + ,_TTREGEX + ,_TTFNCKEY + ,_TTCURSOR + ,_TTMOUSE +#endif +#ifndef SHIFT_SYMBOLS + ,_NUMSYM + ,_SYMREG +#endif + ,_EDIT + ,_QWERTY + ,_ADJUST + ,_END_LAYERS +}; + +enum planck_keycodes { + BASE = SAFE_RANGE + ,BASE1 + ,BASE2 + ,PLOVER + ,PLOEXIT + ,SM_CIRC // pseudo GUI_T(S(KC_6)) for shifted key-codes, see process_record_user() + ,SM_DLR // pseudo SFT_T(S(KC_4)) for shifted key-codes, see process_record_user() + ,SM_G // pseudo MT (MOD_LALT | MOD_LSFT, S(KC_G)) for shifted key-codes, see process_record_user() + ,SM_PERC // pseudo ALT_T(S(KC_5)) for shifted key-codes, see process_record_user() + ,SM_LPRN // pseudo CTL_T(S(KC_9)) for shifted key-codes, see process_record_user() + ,SL_LEFT // pseudo LT (_MOUSE, S(KC_LEFT)) for shifted key-codes, see process_record_user() + ,SP_DEL // pseudo LT (_MOUSE, KC_DEL) for shifted key-codes, see process_record_user() + ,SL_PIPE // pseudo LT (_ADJUST, S(KC_BSLS)) for shifted key-codes, see process_record_user() + ,SL_TAB // pseudo LT (_FNCKEY, S(KC_TAB)) for shifted key-codes, see process_record_user() +#ifdef CENTER_TT + ,TT_ESC +#endif +#ifdef STENO_ENABLE + ,PS_STNA = STN_A + ,PS_STNO = STN_O + ,PS_STNE = STN_E + ,PS_STNU = STN_U +#else + ,LT_C = LT (_NUMBER, KC_C) + ,LT_V = LT (_FNCKEY, KC_V) + ,LT_N = LT (_EDIT, KC_N) + ,LT_M = LT (_SYMBOL, KC_M) +#endif + ,PS_BASE +}; + +// modifier keys +#define AT_B ALT_T(KC_B) +#define AT_DOWN ALT_T(KC_DOWN) +#define CT_RGHT CTL_T(KC_RGHT) +#define GT_C GUI_T(KC_C) +#define GT_UP GUI_T(KC_UP) +#define MT_E MT (MOD_LCTL | MOD_LALT, KC_E) +#define MT_X MT (MOD_LALT | MOD_LSFT, KC_X) +#define ST_A SFT_T(KC_A) +#ifdef HOME_MODS +#define HOME_K CTL_T(KC_K) +#define HOME_H GUI_T(KC_H) +#define HOME_E ALT_T(KC_E) +#define HOME_A SFT_T(KC_A) +#if defined(BEAKLMU) || defined(BEAKLSP) +#define HOME_T SFT_T(KC_T) +#define HOME_R ALT_T(KC_R) +#define HOME_S GUI_T(KC_S) +#define HOME_W CTL_T(KC_W) +#else +#define HOME_T SFT_T(KC_T) +#define HOME_S ALT_T(KC_S) +#define HOME_N GUI_T(KC_N) +#define HOME_B CTL_T(KC_B) +#endif +#else +#define HOME_K KC_K +#define HOME_H KC_H +#define HOME_E KC_E +#define HOME_A KC_A +#define HOME_T KC_T +#define HOME_S KC_S +#define HOME_N KC_N +#define HOME_B KC_B +#endif + +#define S_DOWN S (KC_DOWN) +#define S_LEFT S (KC_LEFT) +#define S_RGHT S (KC_RGHT) +#define S_TAB S (KC_TAB) +#define S_UP S (KC_UP) + +#include "tapdance.h" + +// keycodes +#define ___x___ KC_TRNS +#define ___fn__ KC_TRNS +#ifdef _______ +#undef _______ +#endif +#define _______ KC_NO + +#define COPY LCTL(KC_C) +#define CUT LCTL(KC_X) +#define EOT LCTL(KC_D) +#define NAK LCTL(KC_U) +#define PASTE LCTL(KC_V) +#define UNDO LCTL(KC_Z) +#define TMCOPY LALT(LCTL(KC_C)) +#define TMPASTE LALT(LCTL(KC_V)) +#define LT_BSLS LT (_MOUSE, KC_BSLS) // see process_record_user() for extended handling +#define LT_BSPC LT (_EDIT, KC_BSPC) +#define SP_LEFT LT (_EDIT, KC_LEFT) +#define LT_ESC LT (_NUMBER, KC_ESC) +#define LT_LEFT LT (_SYMBOL, KC_LEFT) // see process_record_user() for extended handling +#define SP_BSPC LT (_SYMBOL, KC_BSPC) // see process_record_user() for extended handling +#define LT_TAB LT (_FNCKEY, KC_TAB) +#define LT_INS LT (_FNCKEY, KC_INS) +#define LT_ALTG LT (_FNCKEY, KC_RALT) +#define ADJUST MO (_ADJUST) +#define OS_ALT OSM (MOD_LALT) +#define OS_CTL OSM (MOD_LCTL) +#define OS_GUI OSM (MOD_LGUI) +#define OS_SFT OSM (MOD_LSFT) +#define OS_CALT OSM (MOD_LALT | MOD_LCTL) +#define OS_CGUI OSM (MOD_LGUI | MOD_LCTL) +#define OS_CSFT OSM (MOD_LSFT | MOD_LCTL) +#define OS_SALT OSM (MOD_LALT | MOD_LSFT) +#define OS_SGUI OSM (MOD_LGUI | MOD_LSFT) + +#ifdef CENTER_TT +#ifdef BEAKLSP +#define CNTR_TL OSM (MOD_LSFT) +#else +#define CNTR_TL TT (_TTFNCKEY) +#endif +#define CNTR_TR KC_CAPS +#define CNTR_HL TT (_TTCURSOR) +#define CNTR_HR TT (_TTMOUSE) +#define CNTR_BL TT (_TTNUMBER) +#define CNTR_BR TT (_TTREGEX) +#else +#define CNTR_TL OSM (MOD_LALT | MOD_LCTL) +#define CNTR_TR OSM (MOD_LGUI | MOD_LCTL) +#define CNTR_HL OSM (MOD_LALT | MOD_LSFT) +#define CNTR_HR OSM (MOD_LGUI | MOD_LSFT) +#define CNTR_BL TD (_CAPS) +#define CNTR_BR OSM (MOD_LSFT | MOD_LCTL) +#endif + +#ifdef THUMB_0 +#define LT_EQL LT (_ADJUST, KC_EQL) +#else +#define LT_0 LT (_ADJUST, KC_0) +#endif +#ifndef SHIFT_SYMBOLS +#define LT_A LT (_NUMSYM, KC_A) +#define LT_LFTX LT (_SYMREG, KC_LEFT) +#endif + +// ........................................................ Default Alpha Layout + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +#include "beakl.h" +#include "colemak.h" +#include "qwerty.h" +#include "steno_layout.h" + +// ...................................................... Number / Function Keys + +#include "number_fkey_layout.h" + +// ......................................................... Symbol / Navigation + +#include "symbol_guifn_layout.h" + +// ............................................................... Toggle Layers + +#ifdef CENTER_TT +#include "toggle_layout.h" +#endif + +// ......................................................... Short Cuts / Adjust + +#include "chord_layout.h" + +}; + +// ...................................................................... Sounds + +#include "sounds.h" + +// ........................................................... User Keycode Trap + +#include "keycode_functions.h" + +#define BASE_1 1 +#define BASE_2 2 +#define BASE_12 3 +static uint8_t base_n = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) +{ + switch (keycode) { + case BASE1: + if (record->event.pressed) { + base_n = base_n | BASE_1; + if (base_n == BASE_12) { + base_layer(); + } + } + else { + base_n = base_n & ~BASE_1; + } + return false; + case BASE2: + if (record->event.pressed) { + base_n = base_n | BASE_2; + if (base_n == BASE_12) { + base_layer(); + } + } + else { + base_n = base_n & ~BASE_2; + } + return false; + case AT_DOWN: +#ifdef HOME_MODS + case HOME_E: +#if defined(BEAKLMU) || defined(BEAKLSP) + case HOME_R: +#else + case HOME_S: +#endif +#endif + tap_mods(record, KC_LALT); + break; + case CT_RGHT: +#ifdef HOME_MODS + case HOME_K: +#if defined(BEAKLMU) || defined(BEAKLSP) + case HOME_W: +#else + case HOME_B: +#endif +#endif + tap_mods(record, KC_LCTL); + break; + case GT_UP: +#ifdef HOME_MODS + case HOME_H: +#if defined(BEAKLMU) || defined(BEAKLSP) + case HOME_S: +#else + case HOME_N: +#endif +#endif + tap_mods(record, KC_LGUI); + break; +#ifdef HOME_MODS + case HOME_A: + case HOME_T: + tap_mods(record, KC_LSFT); + break; +#endif +#ifdef CENTER_TT + case TT_ESC: + clear_tt(); // exit TT layer + return false; +#endif + case LT_ESC: +#ifdef CENTER_TT + if (tt_keycode != 0) { + clear_tt(); // exit TT layer + return false; + } +#endif + tap_layer(record, _NUMBER); + break; + case LT_LEFT: + case SP_BSPC: + tap_layer(record, _SYMBOL); + // LT (_SYMBOL, KC_LEFT) left right combination layer + thumb_layer(record, RIGHT, 0, 0, _SYMBOL, _LSHIFT); + break; + case OS_ALT: + tap_mods(record, KC_LALT); + break; + case OS_CTL: + tap_mods(record, KC_LCTL); + break; + case OS_GUI: + tap_mods(record, KC_LGUI); + break; + case SM_CIRC: + // GUI_T(S(KC_6)) + mt_shift(record, KC_LGUI, 0, KC_6); + break; + case SM_DLR: + // SFT_T(S(KC_4)) + mt_shift(record, KC_LSFT, 0, KC_4); + break; + case SM_G: + // MT(MOD_LALT | MOD_LSFT, S(KC_G)) + mt_shift(record, KC_LALT, KC_LSFT, KC_G); + break; + case SM_LPRN: + // CTL_T(S(KC_9)) + mt_shift(record, KC_LCTL, 0, KC_9); + break; + case SM_PERC: + // ALT_T(S(KC_5)) + mt_shift(record, KC_LALT, 0, KC_5); + break; + case LT_BSLS: + tap_layer(record, _MOUSE); + // LT (_MOUSE, KC_BSLS) left right combination layer, see #define LT_BSLS + thumb_layer(record, LEFT, 0, 0, _MOUSE, _SYMBOL); + break; + case SL_LEFT: + tap_layer(record, _MOUSE); + // LT (_MOUSE, S(KC_LEFT)) left right combination layer + thumb_layer(record, RIGHT, SHIFT, KC_LEFT, _MOUSE, _LSHIFT); + break; + case SP_DEL: + tap_layer(record, _MOUSE); + // LT (_MOUSE, S(KC_LEFT)) left right combination layer + thumb_layer(record, RIGHT, NOSHIFT, KC_DEL, _MOUSE, _LSHIFT); + break; + case SL_PIPE: + // LT (_ADJUST, S(KC_BSLS)) emulation + lt_shift(record, KC_BSLS, _ADJUST); + break; + case SL_TAB: + // LT (_FNCKEY, S(KC_TAB)) emulation + lt_shift(record, KC_TAB, _FNCKEY); + break; + case TD_ENT: + tap_layer(record, _RSHIFT); + // LT (_RSHIFT, KC_ENT) emulation, see tap dance enter + break; + case TD_SPC: + tap_layer(record, _LSHIFT); + // LT (_LSHIFT, KC_SPC) left right combination layer, see tap dance TD_SPC + thumb_layer(record, LEFT, 0, 0, _LSHIFT, _SYMBOL); + break; +#ifdef CENTER_TT + case CNTR_TL: + case CNTR_TR: + case CNTR_HL: + case CNTR_HR: + case CNTR_BL: + case CNTR_BR: + if (tt_keycode != keycode && tt_keycode != 0) { + clear_tt(); // return to base layer first if different TT layer selected + } + tt_keycode = keycode; + break; +#endif +// #ifdef STENO_ENABLE +// case PS_STNA: +// stn_layer(record, STN_A, _NUMBER); +// break; +// case PS_STNO: +// stn_layer(record, STN_O, _FNCKEY); +// break; +// case PS_STNE: +// stn_layer(record, STN_E, _EDIT); +// break; +// case PS_STNU: +// stn_layer(record, STN_U, _SYMBOL); +// break; +// #endif + case PS_BASE: + if (record->event.pressed) { + base_layer(); + } + return false; + case PLOVER: + steno(record); + return false; + case PLOEXIT: + steno_exit(record); + return false; + } + return true; +} + +#include "init.h" diff --git a/keyboards/planck/keymaps/sdothum/qwerty.h b/keyboards/planck/keymaps/sdothum/qwerty.h new file mode 100644 index 000000000000..d11d0478b3f4 --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/qwerty.h @@ -0,0 +1,64 @@ + +// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ...................................................................... Qwerty +#ifdef QWERTY + // ,-----------------------------------------------------------------------------------. + // | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | ; | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | X | C | V | B | Caps |^Shift| N | M | , | . | " | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_BASE] = { + {KC_Q, KC_W, KC_E, KC_R, KC_T, CNTR_TL, CNTR_TR, KC_Y, KC_U, KC_I, KC_O, KC_P }, + {KC_A, KC_S, KC_D, KC_F, KC_G, CNTR_HL, CNTR_HR, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, + {KC_Z, KC_X, KC_C, KC_V, KC_B, CNTR_BL, CNTR_BR, KC_N, KC_M, KC_COMM, KC_DOT, TD_QUOT}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + [_SHIFT] = { + {S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P)}, + {S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), KC_SCLN}, + {S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), KC_COMM, KC_DOT, TD_QUOT}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | : | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | X | C | V | B | Caps |^Shift| N | M | / | ? | " | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | - | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_LSHIFT] = { + {S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P)}, + {S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), TD_COLN}, + {S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), KC_SLSH, KC_QUES, TD_DQOT}, + {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_MINS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, + + // ,-----------------------------------------------------------------------------------. + // | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P | + // |------+------+------+------+------+-------------+------+------+------+------+------| + // | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | : | + // |------+------+------+------+------+------|------+------+------+------+------+------| + // | Z | X | C | V | B | Caps |^Shift| N | M | ~ | ` | " | + // |------+------+------+------+------+------+------+------+------+------+------+------| + // | Ctrl | GUI | Alt | Caps | _ | ↑Tab | Bksp | f() | Left | Down | Up | Right| + // `-----------------------------------------------------------------------------------' + + [_RSHIFT] = { + {S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P)}, + {S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), TD_COLN}, + {S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), TD_TILD, TD_GRV, TD_DQOT}, + {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_UNDS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, + }, +#endif + diff --git a/keyboards/planck/keymaps/sdothum/readme.md b/keyboards/planck/keymaps/sdothum/readme.md new file mode 100644 index 000000000000..58f73e3b445a --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/readme.md @@ -0,0 +1,10 @@ +# The sdothum extended Default Planck Layout + +- Colemak-DH layout layer with shift/tab key overlays +- Number and symbol/function key layer +- Hexadecimal keypad layer +- Navigation keypad layer +- Dynamic macro layer +- Autocompletion tap key pairs (),[],{} +- Normalized enter and esc key position across keyboard layers +- Extensive use of tap keys diff --git a/keyboards/planck/keymaps/sdothum/rules.mk b/keyboards/planck/keymaps/sdothum/rules.mk new file mode 100644 index 000000000000..40f153844c19 --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/rules.mk @@ -0,0 +1,26 @@ +# Build Options: +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically + +BOOTMAGIC_ENABLE = no # virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # mouse keys(+4700) +EXTRAKEY_ENABLE = no # audio control and System control(+450) +CONSOLE_ENABLE = no # console for debug(+400) +COMMAND_ENABLE = no # commands for debug and configuration +NKRO_ENABLE = yes # nkey rollover +BACKLIGHT_ENABLE = no # enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # audio output on port C6 +UNICODE_ENABLE = no # unicode +BLUETOOTH_ENABLE = no # enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # enable WS2812 RGB underlight, do not enable this with audio at the same time. +STENO_ENABLE = yes # enable TX Bolt protocol, requires VIRTSER and may not work with mouse keys + +# do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # breathing sleep LED during USB suspend + +TAP_DANCE_ENABLE = yes # enable double tap completion of (),[],{} + +ifndef QUANTUM_DIR +include ../../../../Makefile +endif From 824e48f294a9de0a2c4816d294da5d93ec295bf1 Mon Sep 17 00:00:00 2001 From: Nick Choi Date: Fri, 4 May 2018 21:39:59 -0400 Subject: [PATCH 344/578] infinite emoji (#2898) --- .../frosty_flake/keymaps/nikchi/keymap.c | 147 ++++++++---------- 1 file changed, 66 insertions(+), 81 deletions(-) diff --git a/keyboards/frosty_flake/keymaps/nikchi/keymap.c b/keyboards/frosty_flake/keymaps/nikchi/keymap.c index f9cff0b84a07..bf7c5e588371 100644 --- a/keyboards/frosty_flake/keymaps/nikchi/keymap.c +++ b/keyboards/frosty_flake/keymaps/nikchi/keymap.c @@ -6,15 +6,16 @@ #include "quantum.h" #define _______ KC_TRNS -#define EMOJIBLOCK 5 +#define MAXEMOJITAPS 80 //declarations for tap dancing emojis void register_hex32(uint32_t hex); void cycleEmojis(qk_tap_dance_state_t *state, void *user_data); void cycleAnimals(qk_tap_dance_state_t *state, void *user_data); -void cycleHands(qk_tap_dance_state_t *state, void *user_data); -void cycleMemes(qk_tap_dance_state_t *state, void *user_data); +void cycleFoods(qk_tap_dance_state_t *state, void *user_data); +void cycleEtc(qk_tap_dance_state_t *state, void *user_data); +void cycleAll(qk_tap_dance_state_t *state, void *user_data); void tap(uint16_t keycode){ register_code(keycode); @@ -28,36 +29,20 @@ enum taps{ ANIMAL, HAND, MEMES, - COPA + COPA, + ALLS }; -enum unicode_name { // split every five emojis - THINK = 1, // thinking face 🤔 - GRIN, // grinning face 😊 - SMRK, // smirk 😏 - WEARY, // good shit 😩 - UNAMU, // unamused 😒 - - SNEK, // snke 🐍 - PENGUIN, // 🐧 - DRAGON, // 🐉 - MONKEY, // 🐒 - CHICK, // 🐥 - - OKOK, // 👌 - EFFU, // 🖕 - INUP, // 👆 - THUP, // 👍 - THDN, // 👎 - - BBB, // dat B 🅱 - AVO, // avocado 🥑 - BRED, // unicode consortium pls make toast 🍞 - EGGPL, // EGGPLANT 🍆 - WATER, // wet 💦 - - LIT // fire 🔥 - +enum unicode_name { + EMOTIS = 1,//80, //1F60x - 1F64x + ANIMALS, //64, //1F40x - 1F43x + SYMBOLS,// = 45, //1F300 - 1F32C + FOODS,// = 87 , //1F32D - + ETC,// = 192, //1F44x -1F4Fx + VEHICLES,// = 83, //1F68x - 1F6Dx + SUPPLEMENT,// = 32, //1F91x-1F92x + ALCHEMY,// = 116 //1F70x - 1F773 + }; enum my_macros { @@ -75,8 +60,12 @@ qk_tap_dance_action_t tap_dance_actions[] = { [COPA] = ACTION_TAP_DANCE_DOUBLE(LCTL(KC_C), LCTL(KC_V)), [EMOJIS] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleEmojis, NULL, NULL, 800), [ANIMAL] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleAnimals, NULL, NULL, 800), - [HAND] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleHands, NULL, NULL, 800), - [MEMES] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleMemes, NULL, NULL, 800) + //[SYMBOLS] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleSymbols, NULL, NULL, 800), + [FOODS] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleFoods, NULL, NULL, 800), + [ETC] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleEtc, NULL, NULL, 800), + //[VEHICLES] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleVehicles, NULL, NULL, 800), + //[SUPPLEMENT] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleSupplement, NULL, NULL, 800), + [ALLS] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleAll, NULL, NULL, 800) // Other declarations would go here, separated by commas, if you have them }; @@ -107,29 +96,17 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { return MACRO_NONE; }; + // emojis in unicode const uint32_t PROGMEM unicode_map[] = { - [THINK] = 0x1F914, - [GRIN] = 0x1F600, - [BBB] = 0x1F171, - [AVO] = 0x1F951, - [BRED] = 0x1F35E, - [SMRK] = 0x1F60F, - [WEARY] = 0x1F629, - [EGGPL] = 0x1F346, - [WATER] = 0x1F4A6, - [LIT] = 0x1F525, - [UNAMU] = 0x1F612, - [SNEK] = 0x1F40D, - [PENGUIN] = 0x1F427, - [MONKEY] = 0x1F412, - [CHICK] = 0x1F425, - [DRAGON] = 0x1F409, - [OKOK] = 0x1F44C, - [EFFU] = 0x1F595, - [INUP] = 0x1F446, - [THDN] = 0x1F44E, - [THUP] = 0x1F44D + [EMOTIS] = 0x1F600, + [ANIMALS] = 0x1F400, + [SYMBOLS] = 0x1F300, + [FOODS] = 0x1F32D, + [ETC] = 0x1F440, + [VEHICLES] = 0x1F680, + [SUPPLEMENT] = 0x1F910, + [ALCHEMY] = 0x1F700 }; // Layouts const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -141,11 +118,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSPO,KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH, KC_RSPC, KC_UP, KC_P1, KC_P2, KC_P3,KC_PENT, \ TD(TD_CTCPS),KC_LGUI,KC_LALT, KC_SPC, KC_LEAD,KC_RGUI, KC_APP,MO(1) , KC_LEFT,KC_DOWN,KC_RGHT, KC_P0,KC_PDOT), [1] = KEYMAP(\ - KC_ESC, 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_PSCR,KC_SLCK,KC_PAUS, \ - TD(EMOJIS),TD(ANIMAL),TD(HAND),TD(MEMES),X(WEARY),X(UNAMU), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,KC_BSPC, KC_MPRV,KC_MPLY,KC_MNXT, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \ - KC_TAB, KC_Q, M(0), KC_E, KC_R,X(EGGPL),X(WATER), KC_U, KC_I, KC_O, KC_P, KC_UP ,KC_RBRC,KC_BSLS, KC_MUTE,KC_VOLD,KC_VOLU, KC_P7, KC_P8, KC_P9,KC_PPLS, \ - KC_LCTL, M(1), M(3), M(2), KC_F, X(LIT), X(SNEK), KC_J, KC_K, KC_L,KC_LEFT,KC_RGHT, KC_ENT, KC_P4, KC_P5, KC_P6, \ - KC_LSFT,KC_NUBS, KC_Z, KC_X, KC_C, TD(COPA), X(BBB), X(AVO), KC_M,KC_COMM, KC_DOT,KC_DOWN, KC_RSFT, KC_MS_U, KC_P1, KC_P2, KC_P3,KC_PENT, \ + TD(ALLS), 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_PSCR,KC_SLCK,KC_PAUS, \ + KC_GRV, TD(EMOJIS),TD(ANIMAL),TD(ETC),TD(FOODS), KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL,KC_BSPC, KC_MPRV,KC_MPLY,KC_MNXT, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \ + KC_TAB, KC_Q, M(0), KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_UP ,KC_RBRC,KC_BSLS, KC_MUTE,KC_VOLD,KC_VOLU, KC_P7, KC_P8, KC_P9,KC_PPLS, \ + KC_LCTL, M(1), M(3), M(2), KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_LEFT,KC_RGHT, KC_ENT, KC_P4, KC_P5, KC_P6, \ + KC_LSFT,KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_DOWN, KC_RSFT, KC_MS_U, KC_P1, KC_P2, KC_P3,KC_PENT, \ KC_BTN1,KC_BTN3,KC_BTN2, KC_SPC, KC_RALT,KC_RGUI, TG(2),_______ , KC_MS_L,KC_MS_D,KC_MS_R, KC_P0,KC_PDOT), [2] = KEYMAP(\ KC_ESC, 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_PSCR,KC_SLCK,KC_PAUS, \ @@ -153,7 +130,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_BSLS, KC_MUTE,KC_VOLD,KC_VOLU, KC_P7, KC_P8, KC_P9,KC_PPLS, \ KC_LCTL, KC_D, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_SCLN,KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ KC_LSFT,KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH, KC_RSFT, KC_MS_U, KC_P1, KC_P2, KC_P3,KC_PENT, \ - KC_BTN1,KC_BTN3,KC_BTN2, KC_SPC, KC_RALT,KC_RGUI, _______, _______, KC_MS_L,KC_MS_D,KC_MS_R, KC_P0,KC_PDOT), + KC_BTN1,KC_BTN3,KC_BTN2, KC_SPC, KC_RALT,KC_RGUI, TG(2) , KC_NO , KC_MS_L,KC_MS_D,KC_MS_R, KC_P0,KC_PDOT), }; LEADER_EXTERNS(); @@ -169,12 +146,6 @@ void matrix_scan_user(void) { tap(KC_C); unregister_code(KC_LCTL); } - SEQ_THREE_KEYS(KC_L,KC_I,KC_T) { // 🔥🔥 - unicode_input_start(); - register_hex32(pgm_read_dword(&unicode_map[LIT])); - unicode_input_finish(); - } - } } @@ -183,17 +154,31 @@ void matrix_init_user(void) { set_unicode_input_mode(UC_WINC); }; +void cycleAll(qk_tap_dance_state_t *state, void *user_data) { + if(state->count == 1) { + unicode_input_start(); + register_hex32(pgm_read_dword(&unicode_map[EMOTIS])); + unicode_input_finish(); + } + else if(state->count <= 1642) { + tap(KC_BSPC); + unicode_input_start(); + register_hex32(pgm_read_dword(&unicode_map[1])+state->count); + unicode_input_finish(); + } +}; + void cycleEmojis(qk_tap_dance_state_t *state, void *user_data) { if(state->count == 1) { unicode_input_start(); - register_hex32(pgm_read_dword(&unicode_map[state->count])); + register_hex32(pgm_read_dword(&unicode_map[EMOTIS])); unicode_input_finish(); } - else if(state->count <= EMOJIBLOCK) { + else if(state->count <= 80) { tap(KC_BSPC); unicode_input_start(); - register_hex32(pgm_read_dword(&unicode_map[state->count])); + register_hex32(pgm_read_dword(&unicode_map[EMOTIS])+state->count); unicode_input_finish(); } }; @@ -201,43 +186,43 @@ void cycleEmojis(qk_tap_dance_state_t *state, void *user_data) { void cycleAnimals(qk_tap_dance_state_t *state, void *user_data) { if(state->count == 1) { unicode_input_start(); - register_hex32(pgm_read_dword(&unicode_map[state->count+5])); + register_hex32(pgm_read_dword(&unicode_map[ANIMALS])); unicode_input_finish(); } - else if(state->count <= EMOJIBLOCK) { + else if(state->count <= MAXEMOJITAPS) { tap(KC_BSPC); unicode_input_start(); - register_hex32(pgm_read_dword(&unicode_map[state->count+5])); + register_hex32(pgm_read_dword(&unicode_map[ANIMALS])+state->count); unicode_input_finish(); } }; -void cycleHands(qk_tap_dance_state_t *state, void *user_data) { +void cycleFoods(qk_tap_dance_state_t *state, void *user_data) { if(state->count == 1) { unicode_input_start(); - register_hex32(pgm_read_dword(&unicode_map[state->count+10])); + register_hex32(pgm_read_dword(&unicode_map[FOODS])); unicode_input_finish(); } - else if(state->count <= EMOJIBLOCK) { + else if(state->count <= 87) { tap(KC_BSPC); unicode_input_start(); - register_hex32(pgm_read_dword(&unicode_map[state->count+10])); + register_hex32(pgm_read_dword(&unicode_map[FOODS])+state->count); unicode_input_finish(); } }; -void cycleMemes(qk_tap_dance_state_t *state, void *user_data) { + +void cycleEtc(qk_tap_dance_state_t *state, void *user_data) { if(state->count == 1) { unicode_input_start(); - register_hex32(pgm_read_dword(&unicode_map[state->count+15])); + register_hex32(pgm_read_dword(&unicode_map[ETC])); unicode_input_finish(); } - else if(state->count <= EMOJIBLOCK) { + else if(state->count <= MAXEMOJITAPS) { tap(KC_BSPC); unicode_input_start(); - register_hex32(pgm_read_dword(&unicode_map[state->count+15])); + register_hex32(pgm_read_dword(&unicode_map[ETC])+state->count); unicode_input_finish(); } }; - From c9108f4b371bd39f728e5fdbc00407ab514aa8d6 Mon Sep 17 00:00:00 2001 From: Pim Ostendorf Date: Sat, 5 May 2018 19:47:32 +0200 Subject: [PATCH 345/578] Added Tanuki Keyboard (#2894) * added tanuki * updated definitions to new qmk standard * complying with suggestions made by drashna * update rulesfile * used qmk template for readme file --- keyboards/tanuki/config.h | 82 +++++++++++++ keyboards/tanuki/keymaps/default/keymap.c | 141 ++++++++++++++++++++++ keyboards/tanuki/readme.md | 15 +++ keyboards/tanuki/rules.mk | 70 +++++++++++ keyboards/tanuki/tanuki.c | 10 ++ keyboards/tanuki/tanuki.h | 22 ++++ 6 files changed, 340 insertions(+) create mode 100644 keyboards/tanuki/config.h create mode 100644 keyboards/tanuki/keymaps/default/keymap.c create mode 100644 keyboards/tanuki/readme.md create mode 100644 keyboards/tanuki/rules.mk create mode 100644 keyboards/tanuki/tanuki.c create mode 100644 keyboards/tanuki/tanuki.h diff --git a/keyboards/tanuki/config.h b/keyboards/tanuki/config.h new file mode 100644 index 000000000000..1e42f13d4ff2 --- /dev/null +++ b/keyboards/tanuki/config.h @@ -0,0 +1,82 @@ +/* +Copyright 2015 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6464 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Seth +#define PRODUCT Tanuki PCB version +#define DESCRIPTION Handwired 40% keyboard + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 11 + +#define MATRIX_COL_PINS { B3 , B2 , B6 , B5 , B4 , E6 , D7 , C6 , F4 , F5 , F6 } +#define MATRIX_ROW_PINS { F7 , B1 , D4 , D0 } +#define UNUSED_PINS + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +#define RGB_DI_PIN D1 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 5 +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + + +#define TAPPING_TERM 200 +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/tanuki/keymaps/default/keymap.c b/keyboards/tanuki/keymaps/default/keymap.c new file mode 100644 index 000000000000..607b197f50a9 --- /dev/null +++ b/keyboards/tanuki/keymaps/default/keymap.c @@ -0,0 +1,141 @@ +#include QMK_KEYBOARD_H +#include "rgblight.h" + +//Layer definitions +#define _BL 0 +#define _DL 1 +#define _UL 2 +#define _GL 3 +#define _BK 4 + + +//other variables +int mCalled = 0; +bool blockToggle = false; +bool lRGB = true; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_BL] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, TG(_GL), \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_QUOT, KC_SLSH, KC_ENT, \ + KC_TAB, KC_ESC, KC_LCTL, KC_LALT, KC_COMMA, LT(_DL,KC_SPC), LT(_UL,KC_SPC), KC_DOT, KC_LGUI), + +[_DL] = LAYOUT( + KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,\ + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,\ + KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_F1, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +[_UL] = LAYOUT( + KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, KC_PIPE, KC_BSLS, KC_PLUS, KC_UNDS, KC_MINS, KC_EQL, KC_DEL,\ + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, \ + KC_TRNS, KC_FN0, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_GRV, KC_TRNS, RGB_MOD, RGB_HUI, KC_TRNS, KC_TRNS, RGB_SAI, RGB_VAI), + +[_GL] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +[_BK] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_TRNS, KC_FN1, KC_NO, KC_NO), + +}; + + +//KC_MPLY, KC_VOLU, KC_VOLD, KC_TRNS, KC_TRNS, KC_MNXT, KC_MPRV +//function to toggle the interactive rgb variable +bool toggleLayerRGB(void){ + if(lRGB == true){ + return false; + } + else{ + return true; + } +} + +void matrix_init_user(void){ + rgblight_enable(); + rgblight_mode(1); + rgblight_sethsv(0,10,255); +} + +//check for layer and if there was a keypress change underglow lighting +void matrix_scan_kb(void){ + if(lRGB == true) + { + + + + //base layer + if(layer_state == 0x00000000 && mCalled == 1 ){ + rgblight_sethsv(0,10,255); + mCalled = 0; + } + + //down layer + else if(layer_state == 0x00000002 && mCalled == 1){ + rgblight_sethsv(160,255,255); + mCalled = 0; + } + + + //up layer with rgb access blocked + else if(layer_state == 0x00000004 && mCalled == 1 && lRGB == true){ + //blockToggle = true; + layer_state = 0x00000014; + rgblight_sethsv(180,255,255); + mCalled = 0; + } + + //arrow cluster layer + else if(layer_state == 0x00000008 && mCalled == 1){ + rgblight_sethsv(0,180,255); + mCalled = 0; + } + + //if on blocked layer and the spacebar has been released reset to baselayer and set colours to white + else if(layer_state == 0x00000014 && blockToggle == true ) + { + blockToggle = false; + layer_state = 0x00000000; + rgblight_sethsv(0,10,255); + } + + } +} + +//set mCalled to 1 when a button is pressed to make sure the leds aren't continuesly updated. +bool process_record_user (uint16_t keycode, keyrecord_t *record) { + mCalled = 1; + + //uncommenting the line below causes the lights to flicker when typing on the keyboard. + //rgblight_sethsv(0,255,0); + + if(keycode == KC_FN0 && record->event.pressed){ + //set the toggle and make sure to set the colour back to white + lRGB = toggleLayerRGB(); + rgblight_enable(); + rgblight_mode(1); + rgblight_sethsv(0,255,255); + layer_state =0x00000000; + + return false; + } + + //check if spacebar is released when on a different layer + if(keycode == KC_FN1){ + if(record ->event.pressed){ + }else{ + blockToggle = true; + } + } + + return true; +} diff --git a/keyboards/tanuki/readme.md b/keyboards/tanuki/readme.md new file mode 100644 index 000000000000..331df5b2eacb --- /dev/null +++ b/keyboards/tanuki/readme.md @@ -0,0 +1,15 @@ +# Tanuki + +![Tanuki](https://github.com/SethSenpai/Tanuki/blob/master/Img/glamour1.jpg?raw=true) + +The QMK firmware for the Tanuki 40% keyboard. The other files needed for construction can be found in the [Tanuki repo](https://github.com/SethSenpai/Tanuki). + +Keyboard Maintainer: [SethSenpai](https://github.com/SethSenpai) +Hardware Supported: Tanuki pcb, pro micro +Hardware Availability: [Tanuki repo](https://github.com/SethSenpai/Tanuki) + +Make example for this keyboard (after setting up your build environment): + + make tanuki:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/tanuki/rules.mk b/keyboards/tanuki/rules.mk new file mode 100644 index 000000000000..cc3734152fba --- /dev/null +++ b/keyboards/tanuki/rules.mk @@ -0,0 +1,70 @@ + + +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +BOOTLOADER=caterina + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +RGBLIGHT_ENABLE =yes # Enable keyboard underlight functionality (+4870) +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality (+1150) +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +TAP_DANCE_ENABLE = no + +ifndef QUANTUM_DIR + include ../../Makefile +endif diff --git a/keyboards/tanuki/tanuki.c b/keyboards/tanuki/tanuki.c new file mode 100644 index 000000000000..573e20061114 --- /dev/null +++ b/keyboards/tanuki/tanuki.c @@ -0,0 +1,10 @@ +#include "tanuki.h" +#include "rgblight.h" +#include "config.h" +#include "rgblight.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + +}; diff --git a/keyboards/tanuki/tanuki.h b/keyboards/tanuki/tanuki.h new file mode 100644 index 000000000000..6b686adafa8e --- /dev/null +++ b/keyboards/tanuki/tanuki.h @@ -0,0 +1,22 @@ +#include "quantum.h" + + +// readability +#define XXX KC_NO + +// The first section contains all of the arguments +// The second converts the arguments into a two-dimensional array +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, \ + k30, k31, k32, k33, k34, k35, k36, k38, k39 \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a}, \ + {k30, k31, k32, k33, k34, k35, k36, XXX, k38, k39, XXX} \ +} + + From 24efce0ecadc89d98358c02df9c90c96eb82ecae Mon Sep 17 00:00:00 2001 From: hdbx <38972365+hdbx@users.noreply.github.com> Date: Sun, 6 May 2018 02:48:28 +0900 Subject: [PATCH 346/578] Fixed hdbx keymaps (#2899) * Add * Revert "Add" This reverts commit 4b10fef88712a63f4a91410410b4c99346fa1b24. * Add Ergo42 keymaps for JIS layout * Fix hdbx keymap for Ergo42 Changed some keys layout and add description. --- keyboards/ergo42/keymaps/hdbx/keymap.c | 60 +++++++++++++------------ keyboards/ergo42/keymaps/hdbx/readme.md | 10 ++--- 2 files changed, 35 insertions(+), 35 deletions(-) diff --git a/keyboards/ergo42/keymaps/hdbx/keymap.c b/keyboards/ergo42/keymaps/hdbx/keymap.c index 29a419bce1bd..8b3df3f4aba7 100644 --- a/keyboards/ergo42/keymaps/hdbx/keymap.c +++ b/keyboards/ergo42/keymaps/hdbx/keymap.c @@ -1,11 +1,15 @@ +// WindowsでJIS配列として認識しているときに、US配列として使うためのキーマップ +// @leopard_gecko さんがPlanck用に作成されたキーマップをかなり参考にしています。 + #include "ergo42.h" #include "action_layer.h" #include "eeconfig.h" -#include "keymap_jp.h" // qmk_firmware-master/quantum/keymap_extras/keymap_jp.h {L[{[hݒp -#include // macro sendstring for jis keyboard }N񑗐Mɓ{L[{[hݒł̕ +#include "keymap_jp.h" // qmk_firmware-master/quantum/keymap_extras/keymap_jp.h 日本語キーボード設定用 +#include // macro sendstring for jis keyboard マクロ文字列送信時に日本語キーボード設定での文字化け回避 extern keymap_config_t keymap_config; +// レイヤー #define _QWERTY 0 #define _LOWER 1 #define _RAISE 2 @@ -13,12 +17,12 @@ extern keymap_config_t keymap_config; #define _ADJUST 4 enum custom_keycodes { - QWERTY = SAFE_RANGE, - MCR1, - MCR2, - MCR3, - DYNAMIC_MACRO_RANGE, - WN_SCLN, // ^bvJIŚu:v VtgJIŚu;v (Windows) + QWERTY = SAFE_RANGE, // デフォルトレイヤー用 + MCR1, // マクロ1 + MCR2, // マクロ2 + MCR3, // マクロ3 + DYNAMIC_MACRO_RANGE, // ダイナミックマクロ + WN_SCLN, // タップでJISの「:」 シフトでJISの「;」 (Windows) }; // Use Dynamic macro @@ -27,14 +31,14 @@ enum custom_keycodes { // Fillers to make layering more clear #define _______ KC_TRNS #define XXXXXXX KC_NO -#define KC_LOWR LT(_LOWER, KC_MHEN) // ^bvŖϊ z[hLower -#define KC_RASE LT(_RAISE, KC_HENK) // ^bvŕϊ z[hRaise +#define KC_LOWR LT(_LOWER, KC_MHEN) // タップで無変換 ホールドでLower +#define KC_RASE LT(_RAISE, KC_HENK) // タップで変換 ホールドでRaise +#define KC_LSLB MT(MOD_LSFT, JP_LBRC) // タップで[ ホールドで左Shift +#define KC_RSRB MT(MOD_RSFT, JP_RBRC) // タップで] ホールドで右Shift +#define KC_ALTB MT(MOD_LALT, KC_TAB) // タップでTAB ホールドで左ALT +#define KC_ESCA LT(_ADJUST,KC_ESC) // タップでESC ホールドでADJUSTレイヤーon +#define CTL_ZH CTL_T(KC_ZKHK) // タップで半角/全角 ホールドで左Control (Windows) #define KC_ALPS LALT(KC_PSCR) // Alt + PrintScreen -#define KC_LSLP MT(MOD_LSFT, JP_LPRN) // ^bv( z[hōShift -#define KC_RSRP MT(MOD_RSFT, JP_RPRN) // ^bv) z[hʼnEShift -#define KC_ALTB MT(MOD_LALT, KC_TAB) // ^bvTAB z[hōALT -#define KC_ESCA LT(_ADJUST,KC_ESC) // ^bvESC z[hADJUSTC[on - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -42,19 +46,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-------------------------------------------------------. ,-------------------------------------------------------. * |Tab/Alt| Q | W | E | R | T | - | | ~ | Y | U | I | O | P | BSPC | * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| - * | Ctrl | A | S | D | F | G | [ | | ] | H | J | K | L | : | ' | + * |ZH/Ctrl| A | S | D | F | G | ( | | ) | H | J | K | L | : | ' | * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| - * | (/Sft | Z | X | C | V | B | F2 | | Home | N | M | , | . | / | )/Sft | + * | [/Sft | Z | X | C | V | B | F2 | | Home | N | M | , | . | / | ]/Sft | * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| * | TT | GUI | \ | Esc/ | LOWER | Enter | Del | | End | Space | RAISE | Left | Down | Up | Right | - * |(_GAME)| | |_ADJUST| ϊ| | | | | | ϊ | | | | | + * |(_GAME)| | |_ADJUST| 無変換| | | | | | 変換 | | | | | * `-------------------------------------------------------' `-------------------------------------------------------' */ [_QWERTY] = KEYMAP( \ KC_ALTB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MINS, JP_TILD, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, JP_LBRC, JP_RBRC, KC_H, KC_J, KC_K, KC_L, WN_SCLN, JP_QUOT, \ - KC_LSLP, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F2, KC_HOME, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSRP, \ + CTL_ZH, KC_A, KC_S, KC_D, KC_F, KC_G, JP_LPRN, JP_RPRN, KC_H, KC_J, KC_K, KC_L, WN_SCLN, JP_QUOT, \ + KC_LSLB, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F2, KC_HOME, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSRB, \ TT(_GAME),KC_LGUI, JP_YEN, KC_ESCA, KC_LOWR, KC_ENT, KC_DEL, KC_END, KC_SPC, KC_RASE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ ), @@ -62,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-------------------------------------------------------. ,-------------------------------------------------------. * |Tab/Alt| 1 | 2 | 3 | 4 | 5 | 6 | | Esc | 7 | 8 | 9 | O | = | BSPC | * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| - * | Ctrl | F1 | F2 | F3 | F4 | F5 | F6 | | F2 | 4 | 5 | 6 | - | / | Enter | + * |ZH/Ctrl| F1 | F2 | F3 | F4 | F5 | F6 | | F2 | 4 | 5 | 6 | - | / | Enter | * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| * | Shift | F7 | F8 | F9 | F10 | F11 | F12 | | Home | 1 | 2 | 3 | + | * | Shift | * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| @@ -81,7 +85,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-------------------------------------------------------. ,-------------------------------------------------------. * |Tab/Alt| ! | @ | # | $ | % | _ | | ` | ^ | & | Ins | \ |PrntScr| BSPC | * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| - * | Ctrl |XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| { | | } | Left | Down | Up | Right | ; | " | + * |ZH/Ctrl|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| { | | } | Left | Down | Up | Right | ; | " | * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| * | Shift |XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX| |PageUp |XXXXXXX|XXXXXXX| < | > | ? | Shift | * |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| @@ -91,9 +95,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_RAISE] = KEYMAP( \ _______, KC_EXLM, JP_AT, KC_HASH, KC_DLR, KC_PERC, JP_UNDS, JP_GRV, JP_CIRC, JP_AMPR, KC_INS, JP_YEN, KC_ALPS, _______, \ - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, JP_LBRC, JP_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_SCLN, JP_DQT, \ + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, JP_LCBR, JP_RCBR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_SCLN, JP_DQT, \ KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, XXXXXXX, XXXXXXX, KC_LT, KC_GT, KC_QUES, KC_RSFT, \ - _______, _______, KC_PIPE, KC_ESC, XXXXXXX, _______, _______, KC_PGDN, _______, _______, _______, _______, _______, _______ \ + _______, _______, JP_PIPE, KC_ESC, XXXXXXX, _______, _______, KC_PGDN, _______, _______, _______, _______, _______, _______ \ ), /* GAME @@ -151,7 +155,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; - case WN_SCLN: // Ru;:v + case WN_SCLN: // コロン「;:」 if (record->event.pressed) { lshift = keyboard_report->mods & MOD_BIT(KC_LSFT); if (lshift) { @@ -167,19 +171,19 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; case MCR1: if (record->event.pressed) { - SEND_STRING("hogehoge"); // M + SEND_STRING("hogehoge"); // 送信文字列 } return false; break; case MCR2: if (record->event.pressed) { - SEND_STRING("hogehogehoge"SS_TAP(X_ENTER)); // M + SEND_STRING("hogehogehoge"SS_TAP(X_ENTER)); // 送信文字列 } return false; break; case MCR3: if (record->event.pressed) { - SEND_STRING("hoge@hoge.co.jp"); // M + SEND_STRING("hoge@hoge.co.jp"); // 送信文字列 } return false; break; diff --git a/keyboards/ergo42/keymaps/hdbx/readme.md b/keyboards/ergo42/keymaps/hdbx/readme.md index 2aeebfe41ca1..fe76fc7cf765 100644 --- a/keyboards/ergo42/keymaps/hdbx/readme.md +++ b/keyboards/ergo42/keymaps/hdbx/readme.md @@ -9,14 +9,13 @@ QWERTY ,-------------------------------------------------------. ,-------------------------------------------------------. |Tab/Alt| Q | W | E | R | T | - | | ~ | Y | U | I | O | P | BSPC | |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| -| Ctrl | A | S | D | F | G | [ | | ] | H | J | K | L | : | ' | +|ZH/Ctrl| A | S | D | F | G | ( | | ) | H | J | K | L | : | ' | |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| -| (/Sft | Z | X | C | V | B | F2 | | Home | N | M | , | . | / | )/Sft | +| [/Sft | Z | X | C | V | B | F2 | | Home | N | M | , | . | / | ]/Sft | |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | TT | GUI | \ | Esc/ | LOWER | Enter | Del | | End | Space | RAISE | Left | Down | Up | Right | -|(_GAME)| | |_ADJUST| ϊ| | | | | | ϊ | | | | | +|(_GAME)| | |_ADJUST| –³•ÏŠ·| | | | | | •ÏŠ· | | | | | `-------------------------------------------------------' `-------------------------------------------------------' - */ LOWER ,-------------------------------------------------------. ,-------------------------------------------------------. @@ -28,7 +27,6 @@ LOWER |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| |XXXXXXX| GUI |XXXXXXX| Esc | | Enter | Del | | End | 0 | . | Left | Down | Up | Right | `-------------------------------------------------------' `-------------------------------------------------------' - */ RAISE ,-------------------------------------------------------. ,-------------------------------------------------------. @@ -40,7 +38,6 @@ RAISE |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| |XXXXXXX| GUI | | | Esc |XXXXXXX| Enter | Del | |PageDwn| Space | | Left | Down | Up | Right | `-------------------------------------------------------' `-------------------------------------------------------' - */ GAME ,-------------------------------------------------------. ,-------------------------------------------------------. @@ -52,7 +49,6 @@ GAME |-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | | GUI | Tab | Alt | Space | Enter | Del | |PageDwn| Space |XXXXXXX| Left | Down | Up | Right | `-------------------------------------------------------' `-------------------------------------------------------' - */ ADJUST ,-------------------------------------------------------. ,-------------------------------------------------------. From 280c10cb094bddc229bfd181c3e9321c2ac1d5fc Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Mon, 7 May 2018 08:38:09 -0700 Subject: [PATCH 347/578] Thanks to talljoe, 1up60 actually only has 16, not 20 RGB LEDs (#2906) --- keyboards/1up60rgb/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/1up60rgb/config.h b/keyboards/1up60rgb/config.h index 2668ab21b898..bfdf354af7da 100644 --- a/keyboards/1up60rgb/config.h +++ b/keyboards/1up60rgb/config.h @@ -49,7 +49,7 @@ #define RGB_DI_PIN E2 #ifdef RGB_DI_PIN #define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 20 +#define RGBLED_NUM 16 #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 From 06e5f9b25e640f05814e158c701263e209b33ef2 Mon Sep 17 00:00:00 2001 From: Hannes Egler Date: Mon, 7 May 2018 17:41:56 +0200 Subject: [PATCH 348/578] added additional configurator support (#2905) * added additional configurator support Added support for choosing between 5 configurator options: Layout (supports all keys) Layout_ansi_1u Layout_iso_1u Layout_ansi Layout_iso * confirming to conventions replaced .h filenames with QMK_KEYBOARD_H --- keyboards/kbd75/info.json | 460 ++++++++++++++++++++++- keyboards/kbd75/kbd75.h | 68 +++- keyboards/kbd75/keymaps/adit/keymap.c | 6 +- keyboards/kbd75/keymaps/default/keymap.c | 36 +- keyboards/kbd75/keymaps/iso/keymap.c | 115 +----- keyboards/kbd75/keymaps/smt/keymap.c | 12 +- 6 files changed, 550 insertions(+), 147 deletions(-) diff --git a/keyboards/kbd75/info.json b/keyboards/kbd75/info.json index e134a854ac0a..2eb1412f2ab4 100644 --- a/keyboards/kbd75/info.json +++ b/keyboards/kbd75/info.json @@ -1,12 +1,456 @@ { - "keyboard_name": "KBD75", - "url": "", - "maintainer": "qmk", - "width": 16, - "height": 6, + "keyboard_name": "KBD75", + "url": "", + "maintainer": "qmk", + "width": 16, + "height": 6, "layouts": { - "KEYMAP_ALL": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Delete", "x":15, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"label":"Home", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Page Up", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Page Down", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"End", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":2.25}, {"x":6, "y":5}, {"x":7, "y":5, "w":3}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}] + "LAYOUT": { + "key_count": 88, + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1, "y":0}, + {"label":"F2", "x":2, "y":0}, + {"label":"F3", "x":3, "y":0}, + {"label":"F4", "x":4, "y":0}, + {"label":"F5", "x":5, "y":0}, + {"label":"F6", "x":6, "y":0}, + {"label":"F7", "x":7, "y":0}, + {"label":"F8", "x":8, "y":0}, + {"label":"F9", "x":9, "y":0}, + {"label":"F10", "x":10, "y":0}, + {"label":"F11", "x":11, "y":0}, + {"label":"F12", "x":12, "y":0}, + {"label":"PrtSc", "x":13, "y":0}, + {"label":"Pause", "x":14, "y":0}, + {"label":"Delete", "x":15, "y":0}, + {"label":"~", "x":0, "y":1}, + {"label":"1", "x":1, "y":1}, + {"label":"2", "x":2, "y":1}, + {"label":"3", "x":3, "y":1}, + {"label":"4", "x":4, "y":1}, + {"label":"5", "x":5, "y":1}, + {"label":"6", "x":6, "y":1}, + {"label":"7", "x":7, "y":1}, + {"label":"8", "x":8, "y":1}, + {"label":"9", "x":9, "y":1}, + {"label":"0", "x":10, "y":1}, + {"label":"_", "x":11, "y":1}, + {"label":"+", "x":12, "y":1}, + {"x":13, "y":1}, + {"x":14, "y":1}, + {"label":"Home", "x":15, "y":1}, + {"label":"Tab", "x":0, "y":2, "w":1.5}, + {"label":"Q", "x":1.5, "y":2}, + {"label":"W", "x":2.5, "y":2}, + {"label":"E", "x":3.5, "y":2}, + {"label":"R", "x":4.5, "y":2}, + {"label":"T", "x":5.5, "y":2}, + {"label":"Y", "x":6.5, "y":2}, + {"label":"U", "x":7.5, "y":2}, + {"label":"I", "x":8.5, "y":2}, + {"label":"O", "x":9.5, "y":2}, + {"label":"P", "x":10.5, "y":2}, + {"label":"{", "x":11.5, "y":2}, + {"label":"}", "x":12.5, "y":2}, + {"label":"|", "x":13.5, "y":2, "w":1.5}, + {"label":"Page Up", "x":15, "y":2}, + {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, + {"label":"A", "x":1.75, "y":3}, + {"label":"S", "x":2.75, "y":3}, + {"label":"D", "x":3.75, "y":3}, + {"label":"F", "x":4.75, "y":3}, + {"label":"G", "x":5.75, "y":3}, + {"label":"H", "x":6.75, "y":3}, + {"label":"J", "x":7.75, "y":3}, + {"label":"K", "x":8.75, "y":3}, + {"label":"L", "x":9.75, "y":3}, + {"label":":", "x":10.75, "y":3}, + {"label":"\"", "x":11.75, "y":3}, + {"label":"Enter", "x":12.75, "y":3, "w":2.25}, + {"label":"Page Down", "x":15, "y":3}, + {"label":"Shift", "x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4}, + {"label":"Z", "x":2.25, "y":4}, + {"label":"X", "x":3.25, "y":4}, + {"label":"C", "x":4.25, "y":4}, + {"label":"V", "x":5.25, "y":4}, + {"label":"B", "x":6.25, "y":4}, + {"label":"N", "x":7.25, "y":4}, + {"label":"M", "x":8.25, "y":4}, + {"label":"<", "x":9.25, "y":4}, + {"label":">", "x":10.25, "y":4}, + {"label":"?", "x":11.25, "y":4}, + {"label":"Shift", "x":12.25, "y":4, "w":1.75}, + {"label":"\u2191", "x":14, "y":4}, + {"label":"End", "x":15, "y":4}, + {"label":"Ctrl", "x":0, "y":5, "w":1.25}, + {"label":"Win", "x":1.25, "y":5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5, "w":1.25}, + {"x":3.75, "y":5, "w":2.25}, + {"x":6, "y":5}, + {"x":7, "y":5, "w":3}, + {"label":"Alt", "x":10, "y":5}, + {"label":"Fn", "x":11, "y":5}, + {"label":"Ctrl", "x":12, "y":5}, + {"label":"\u2190", "x":13, "y":5}, + {"label":"\u2193", "x":14, "y":5}, + {"label":"\u2192", "x":15, "y":5}] + }, + + "LAYOUT_ansi_1u": { + "key_count": 84, + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1, "y":0}, + {"label":"F2", "x":2, "y":0}, + {"label":"F3", "x":3, "y":0}, + {"label":"F4", "x":4, "y":0}, + {"label":"F5", "x":5, "y":0}, + {"label":"F6", "x":6, "y":0}, + {"label":"F7", "x":7, "y":0}, + {"label":"F8", "x":8, "y":0}, + {"label":"F9", "x":9, "y":0}, + {"label":"F10", "x":10, "y":0}, + {"label":"F11", "x":11, "y":0}, + {"label":"F12", "x":12, "y":0}, + {"label":"PrtSc", "x":13, "y":0}, + {"label":"Pause", "x":14, "y":0}, + {"label":"Delete", "x":15, "y":0}, + {"label":"~", "x":0, "y":1}, + {"label":"1", "x":1, "y":1}, + {"label":"2", "x":2, "y":1}, + {"label":"3", "x":3, "y":1}, + {"label":"4", "x":4, "y":1}, + {"label":"5", "x":5, "y":1}, + {"label":"6", "x":6, "y":1}, + {"label":"7", "x":7, "y":1}, + {"label":"8", "x":8, "y":1}, + {"label":"9", "x":9, "y":1}, + {"label":"0", "x":10, "y":1}, + {"label":"_", "x":11, "y":1}, + {"label":"+", "x":12, "y":1}, + {"label":"delete", "x":13, "y":1, "w":2}, + {"label":"Home", "x":15, "y":1}, + {"label":"Tab", "x":0, "y":2, "w":1.5}, + {"label":"Q", "x":1.5, "y":2}, + {"label":"W", "x":2.5, "y":2}, + {"label":"E", "x":3.5, "y":2}, + {"label":"R", "x":4.5, "y":2}, + {"label":"T", "x":5.5, "y":2}, + {"label":"Y", "x":6.5, "y":2}, + {"label":"U", "x":7.5, "y":2}, + {"label":"I", "x":8.5, "y":2}, + {"label":"O", "x":9.5, "y":2}, + {"label":"P", "x":10.5, "y":2}, + {"label":"{", "x":11.5, "y":2}, + {"label":"}", "x":12.5, "y":2}, + {"label":"|", "x":13.5, "y":2, "w":1.5}, + {"label":"Page Up", "x":15, "y":2}, + {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, + {"label":"A", "x":1.75, "y":3}, + {"label":"S", "x":2.75, "y":3}, + {"label":"D", "x":3.75, "y":3}, + {"label":"F", "x":4.75, "y":3}, + {"label":"G", "x":5.75, "y":3}, + {"label":"H", "x":6.75, "y":3}, + {"label":"J", "x":7.75, "y":3}, + {"label":"K", "x":8.75, "y":3}, + {"label":"L", "x":9.75, "y":3}, + {"label":":", "x":10.75, "y":3}, + {"label":"\"", "x":11.75, "y":3}, + {"label":"Enter", "x":12.75, "y":3, "w":2.25}, + {"label":"Page Down", "x":15, "y":3}, + {"label":"Shift", "x":0, "y":4, "w":2.25}, + {"label":"Z", "x":2.25, "y":4}, + {"label":"X", "x":3.25, "y":4}, + {"label":"C", "x":4.25, "y":4}, + {"label":"V", "x":5.25, "y":4}, + {"label":"B", "x":6.25, "y":4}, + {"label":"N", "x":7.25, "y":4}, + {"label":"M", "x":8.25, "y":4}, + {"label":"<", "x":9.25, "y":4}, + {"label":">", "x":10.25, "y":4}, + {"label":"?", "x":11.25, "y":4}, + {"label":"Shift", "x":12.25, "y":4, "w":1.75}, + {"label":"\u2191", "x":14, "y":4}, + {"label":"End", "x":15, "y":4}, + {"label":"Ctrl", "x":0, "y":5, "w":1.25}, + {"label":"Win", "x":1.25, "y":5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5, "w":1.25}, + {"x":3.75, "y":5, "w":6.75}, + {"label":"Alt", "x":10, "y":5}, + {"label":"Fn", "x":11, "y":5}, + {"label":"Ctrl", "x":12, "y":5}, + {"label":"\u2190", "x":13, "y":5}, + {"label":"\u2193", "x":14, "y":5}, + {"label":"\u2192", "x":15, "y":5}] + }, + + "LAYOUT_iso_1u": { + "key_count": 85, + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1, "y":0}, + {"label":"F2", "x":2, "y":0}, + {"label":"F3", "x":3, "y":0}, + {"label":"F4", "x":4, "y":0}, + {"label":"F5", "x":5, "y":0}, + {"label":"F6", "x":6, "y":0}, + {"label":"F7", "x":7, "y":0}, + {"label":"F8", "x":8, "y":0}, + {"label":"F9", "x":9, "y":0}, + {"label":"F10", "x":10, "y":0}, + {"label":"F11", "x":11, "y":0}, + {"label":"F12", "x":12, "y":0}, + {"label":"PrtSc", "x":13, "y":0}, + {"label":"Pause", "x":14, "y":0}, + {"label":"Delete", "x":15, "y":0}, + {"label":"~", "x":0, "y":1}, + {"label":"1", "x":1, "y":1}, + {"label":"2", "x":2, "y":1}, + {"label":"3", "x":3, "y":1}, + {"label":"4", "x":4, "y":1}, + {"label":"5", "x":5, "y":1}, + {"label":"6", "x":6, "y":1}, + {"label":"7", "x":7, "y":1}, + {"label":"8", "x":8, "y":1}, + {"label":"9", "x":9, "y":1}, + {"label":"0", "x":10, "y":1}, + {"label":"_", "x":11, "y":1}, + {"label":"+", "x":12, "y":1}, + {"label":"delete", "x":13, "y":1, "w":2}, + {"label":"Home", "x":15, "y":1}, + {"label":"Tab", "x":0, "y":2, "w":1.5}, + {"label":"Q", "x":1.5, "y":2}, + {"label":"W", "x":2.5, "y":2}, + {"label":"E", "x":3.5, "y":2}, + {"label":"R", "x":4.5, "y":2}, + {"label":"T", "x":5.5, "y":2}, + {"label":"Y", "x":6.5, "y":2}, + {"label":"U", "x":7.5, "y":2}, + {"label":"I", "x":8.5, "y":2}, + {"label":"O", "x":9.5, "y":2}, + {"label":"P", "x":10.5, "y":2}, + {"label":"{", "x":11.5, "y":2}, + {"label":"}", "x":12.5, "y":2}, + {"label":"Enter", "x":13.75, "y":2, "KS":[ [0,0], [1.5,0], [1.5,2], [0.25,2], [0.25,1], [0,1], [0,0] ]}, + {"label":"Page Up", "x":15, "y":2}, + {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, + {"label":"A", "x":1.75, "y":3}, + {"label":"S", "x":2.75, "y":3}, + {"label":"D", "x":3.75, "y":3}, + {"label":"F", "x":4.75, "y":3}, + {"label":"G", "x":5.75, "y":3}, + {"label":"H", "x":6.75, "y":3}, + {"label":"J", "x":7.75, "y":3}, + {"label":"K", "x":8.75, "y":3}, + {"label":"L", "x":9.75, "y":3}, + {"label":":", "x":10.75, "y":3}, + {"label":"@", "x":11.75, "y":3}, + {"label":"~", "x":12.75, "y":3}, + {"label":"Page Down", "x":15, "y":3}, + {"label":"Shift", "x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4}, + {"label":"Z", "x":2.25, "y":4}, + {"label":"X", "x":3.25, "y":4}, + {"label":"C", "x":4.25, "y":4}, + {"label":"V", "x":5.25, "y":4}, + {"label":"B", "x":6.25, "y":4}, + {"label":"N", "x":7.25, "y":4}, + {"label":"M", "x":8.25, "y":4}, + {"label":"<", "x":9.25, "y":4}, + {"label":">", "x":10.25, "y":4}, + {"label":"?", "x":11.25, "y":4}, + {"label":"Shift", "x":12.25, "y":4, "w":1.75}, + {"label":"\u2191", "x":14, "y":4}, + {"label":"End", "x":15, "y":4}, + {"label":"Ctrl", "x":0, "y":5, "w":1.25}, + {"label":"Win", "x":1.25, "y":5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5, "w":1.25},{"x":3.75, "y":5, "w":2.25}, {"x":6, "y":5}, {"x":7, "y":5, "w":3}, + {"label":"Alt", "x":10, "y":5}, + {"label":"Fn", "x":11, "y":5}, + {"label":"Ctrl", "x":12, "y":5}, + {"label":"\u2190", "x":13, "y":5}, + {"label":"\u2193", "x":14, "y":5}, + {"label":"\u2192", "x":15, "y":5}] + }, + + "LAYOUT_ansi": { + "key_count": 83, + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1, "y":0}, + {"label":"F2", "x":2, "y":0}, + {"label":"F3", "x":3, "y":0}, + {"label":"F4", "x":4, "y":0}, + {"label":"F5", "x":5, "y":0}, + {"label":"F6", "x":6, "y":0}, + {"label":"F7", "x":7, "y":0}, + {"label":"F8", "x":8, "y":0}, + {"label":"F9", "x":9, "y":0}, + {"label":"F10", "x":10, "y":0}, + {"label":"F11", "x":11, "y":0}, + {"label":"F12", "x":12, "y":0}, + {"label":"PrtSc", "x":13, "y":0}, + {"label":"Pause", "x":14, "y":0}, + {"label":"Delete", "x":15, "y":0}, + {"label":"~", "x":0, "y":1}, + {"label":"1", "x":1, "y":1}, + {"label":"2", "x":2, "y":1}, + {"label":"3", "x":3, "y":1}, + {"label":"4", "x":4, "y":1}, + {"label":"5", "x":5, "y":1}, + {"label":"6", "x":6, "y":1}, + {"label":"7", "x":7, "y":1}, + {"label":"8", "x":8, "y":1}, + {"label":"9", "x":9, "y":1}, + {"label":"0", "x":10, "y":1}, + {"label":"_", "x":11, "y":1}, + {"label":"+", "x":12, "y":1}, + {"label":"delete", "x":13, "y":1, "w":2}, + {"label":"Home", "x":15, "y":1}, + {"label":"Tab", "x":0, "y":2, "w":1.5}, + {"label":"Q", "x":1.5, "y":2}, + {"label":"W", "x":2.5, "y":2}, + {"label":"E", "x":3.5, "y":2}, + {"label":"R", "x":4.5, "y":2}, + {"label":"T", "x":5.5, "y":2}, + {"label":"Y", "x":6.5, "y":2}, + {"label":"U", "x":7.5, "y":2}, + {"label":"I", "x":8.5, "y":2}, + {"label":"O", "x":9.5, "y":2}, + {"label":"P", "x":10.5, "y":2}, + {"label":"{", "x":11.5, "y":2}, + {"label":"}", "x":12.5, "y":2}, + {"label":"|", "x":13.5, "y":2, "w":1.5}, + {"label":"Page Up", "x":15, "y":2}, + {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, + {"label":"A", "x":1.75, "y":3}, + {"label":"S", "x":2.75, "y":3}, + {"label":"D", "x":3.75, "y":3}, + {"label":"F", "x":4.75, "y":3}, + {"label":"G", "x":5.75, "y":3}, + {"label":"H", "x":6.75, "y":3}, + {"label":"J", "x":7.75, "y":3}, + {"label":"K", "x":8.75, "y":3}, + {"label":"L", "x":9.75, "y":3}, + {"label":":", "x":10.75, "y":3}, + {"label":"\"", "x":11.75, "y":3}, + {"label":"Enter", "x":12.75, "y":3, "w":2.25}, + {"label":"Page Down", "x":15, "y":3}, + {"label":"Shift", "x":0, "y":4, "w":2.25}, + {"label":"Z", "x":2.25, "y":4}, + {"label":"X", "x":3.25, "y":4}, + {"label":"C", "x":4.25, "y":4}, + {"label":"V", "x":5.25, "y":4}, + {"label":"B", "x":6.25, "y":4}, + {"label":"N", "x":7.25, "y":4}, + {"label":"M", "x":8.25, "y":4}, + {"label":"<", "x":9.25, "y":4}, + {"label":">", "x":10.25, "y":4}, + {"label":"?", "x":11.25, "y":4}, + {"label":"Shift", "x":12.25, "y":4, "w":1.75}, + {"label":"\u2191", "x":14, "y":4}, + {"label":"End", "x":15, "y":4}, + {"label":"Ctrl", "x":0, "y":5, "w":1.25}, + {"label":"Win", "x":1.25, "y":5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5, "w":1.25}, + {"x":3.75, "y":5, "w":6.75}, + {"label":"Alt", "x":10, "y":5, "w":1.5}, + {"label":"Ctrl", "x":11.5, "y":5, "w":1.5}, + {"label":"\u2190", "x":13, "y":5}, + {"label":"\u2193", "x":14, "y":5}, + {"label":"\u2192", "x":15, "y":5}] + }, + + "LAYOUT_iso": { + "key_count": 84, + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1, "y":0}, + {"label":"F2", "x":2, "y":0}, + {"label":"F3", "x":3, "y":0}, + {"label":"F4", "x":4, "y":0}, + {"label":"F5", "x":5, "y":0}, + {"label":"F6", "x":6, "y":0}, + {"label":"F7", "x":7, "y":0}, + {"label":"F8", "x":8, "y":0}, + {"label":"F9", "x":9, "y":0}, + {"label":"F10", "x":10, "y":0}, + {"label":"F11", "x":11, "y":0}, + {"label":"F12", "x":12, "y":0}, + {"label":"PrtSc", "x":13, "y":0}, + {"label":"Pause", "x":14, "y":0}, + {"label":"Delete", "x":15, "y":0}, + {"label":"~", "x":0, "y":1}, + {"label":"1", "x":1, "y":1}, + {"label":"2", "x":2, "y":1}, + {"label":"3", "x":3, "y":1}, + {"label":"4", "x":4, "y":1}, + {"label":"5", "x":5, "y":1}, + {"label":"6", "x":6, "y":1}, + {"label":"7", "x":7, "y":1}, + {"label":"8", "x":8, "y":1}, + {"label":"9", "x":9, "y":1}, + {"label":"0", "x":10, "y":1}, + {"label":"_", "x":11, "y":1}, + {"label":"+", "x":12, "y":1}, + {"label":"delete", "x":13, "y":1, "w":2}, + {"label":"Home", "x":15, "y":1}, + {"label":"Tab", "x":0, "y":2, "w":1.5}, + {"label":"Q", "x":1.5, "y":2}, + {"label":"W", "x":2.5, "y":2}, + {"label":"E", "x":3.5, "y":2}, + {"label":"R", "x":4.5, "y":2}, + {"label":"T", "x":5.5, "y":2}, + {"label":"Y", "x":6.5, "y":2}, + {"label":"U", "x":7.5, "y":2}, + {"label":"I", "x":8.5, "y":2}, + {"label":"O", "x":9.5, "y":2}, + {"label":"P", "x":10.5, "y":2}, + {"label":"{", "x":11.5, "y":2}, + {"label":"}", "x":12.5, "y":2}, + {"label":"Enter", "x":13.75, "y":2, "KS":[ [0,0], [1.5,0], [1.5,2], [0.25,2], [0.25,1], [0,1], [0,0] ]}, + {"label":"Page Up", "x":15, "y":2}, + {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, + {"label":"A", "x":1.75, "y":3}, + {"label":"S", "x":2.75, "y":3}, + {"label":"D", "x":3.75, "y":3}, + {"label":"F", "x":4.75, "y":3}, + {"label":"G", "x":5.75, "y":3}, + {"label":"H", "x":6.75, "y":3}, + {"label":"J", "x":7.75, "y":3}, + {"label":"K", "x":8.75, "y":3}, + {"label":"L", "x":9.75, "y":3}, + {"label":":", "x":10.75, "y":3}, + {"label":"@", "x":11.75, "y":3}, + {"label":"~", "x":12.75, "y":3}, + {"label":"Page Down", "x":15, "y":3}, + {"label":"Shift", "x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4}, + {"label":"Z", "x":2.25, "y":4}, + {"label":"X", "x":3.25, "y":4}, + {"label":"C", "x":4.25, "y":4}, + {"label":"V", "x":5.25, "y":4}, + {"label":"B", "x":6.25, "y":4}, + {"label":"N", "x":7.25, "y":4}, + {"label":"M", "x":8.25, "y":4}, + {"label":"<", "x":9.25, "y":4}, + {"label":">", "x":10.25, "y":4}, + {"label":"?", "x":11.25, "y":4}, + {"label":"Shift", "x":12.25, "y":4, "w":1.75}, + {"label":"\u2191", "x":14, "y":4}, + {"label":"End", "x":15, "y":4}, + {"label":"Ctrl", "x":0, "y":5, "w":1.25}, + {"label":"Win", "x":1.25, "y":5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5, "w":1.25}, + {"x":3.75, "y":5, "w":6.75}, + {"label":"Alt", "x":10, "y":5, "w":1.5}, + {"label":"Ctrl", "x":11.5, "y":5, "w":1.5}, + {"label":"\u2190", "x":13, "y":5}, + {"label":"\u2193", "x":14, "y":5}, + {"label":"\u2192", "x":15, "y":5}] } - } + } } diff --git a/keyboards/kbd75/kbd75.h b/keyboards/kbd75/kbd75.h index 3648a15bd852..fa1c1a00a52a 100644 --- a/keyboards/kbd75/kbd75.h +++ b/keyboards/kbd75/kbd75.h @@ -4,7 +4,7 @@ #include "quantum.h" // LAYOUT for all possible switch positions on a KBD75 -#define KEYMAP_ALL( \ +#define LAYOUT( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ @@ -20,4 +20,68 @@ { K500, K501, KC_NO, K503, K504, KC_NO, K506, KC_NO, K508, KC_NO, K510, K511, K512, K513, K514, K515 } \ } -#endif \ No newline at end of file +#define LAYOUT_ansi_1u( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \ + K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \ + K500, K501, K503, K506, K510, K511, K512, K513, K514, K515 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ + { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \ + { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \ + { K500, K501, KC_NO, K503, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, K514, K515 } \ +} + +#define LAYOUT_iso_1u( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \ + K500, K501, K503, K506, K510, K511, K512, K513, K514, K515 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ + { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \ + { K500, K501, KC_NO, K503, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, K514, K515 } \ +} + +#define LAYOUT_ansi( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \ + K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \ + K500, K501, K503, K506, K510, K512, K513, K514, K515 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ + { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \ + { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \ + { K500, K501, KC_NO, K503, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, KC_NO, K512, K513, K514, K515 } \ +} + +#define LAYOUT_iso( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \ + K500, K501, K503, K506, K510, K512, K513, K514, K515 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ + { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \ + { K500, K501, KC_NO, K503, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, KC_NO, K512, K513, K514, K515 } \ +} + +#endif diff --git a/keyboards/kbd75/keymaps/adit/keymap.c b/keyboards/kbd75/keymaps/adit/keymap.c index 8bcc15affc14..23bf34e8c405 100644 --- a/keyboards/kbd75/keymaps/adit/keymap.c +++ b/keyboards/kbd75/keymaps/adit/keymap.c @@ -1,8 +1,8 @@ -#include "kbd75.h" +#include QMK_KEYBOARD_H #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - KEYMAP_ALL( + LAYOUT( KC_ESC, 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_PSCR, KC_SLCK, KC_DEL, KC_GRV, 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_TRNS, KC_BSPC, KC_HOME, 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_BSLS, KC_PGUP, @@ -10,7 +10,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, LT(1,KC_END), KC_CAPS, KC_LALT, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_RGUI, KC_TRNS, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - KEYMAP_ALL( + LAYOUT( RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/kbd75/keymaps/default/keymap.c b/keyboards/kbd75/keymaps/default/keymap.c index 3c96dee08791..107962e70162 100644 --- a/keyboards/kbd75/keymaps/default/keymap.c +++ b/keyboards/kbd75/keymaps/default/keymap.c @@ -1,16 +1,16 @@ -#include "kbd75.h" +#include QMK_KEYBOARD_H #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - KEYMAP_ALL( - LT(2, KC_ESC), 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_PSCR, MO(1), KC_DEL, + LAYOUT( + KC_ESC, 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_PSCR, MO(1), KC_DEL, KC_GRV, 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_DEL, KC_BSPC, KC_HOME, 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_BSLS, KC_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, KC_LSFT, MO(1), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - KEYMAP_ALL( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP_ALL( + LAYOUT( KC_TRNS, M(1), M(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP_ALL( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP_ALL( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP_ALL( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP_ALL( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -58,7 +58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP_ALL( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -66,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP_ALL( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -74,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP_ALL( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -82,7 +82,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP_ALL( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -90,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP_ALL( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -98,7 +98,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP_ALL( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -106,7 +106,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP_ALL( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -114,7 +114,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP_ALL( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -122,7 +122,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP_ALL( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/kbd75/keymaps/iso/keymap.c b/keyboards/kbd75/keymaps/iso/keymap.c index 49d6ad71682e..01aa35c6971a 100644 --- a/keyboards/kbd75/keymaps/iso/keymap.c +++ b/keyboards/kbd75/keymaps/iso/keymap.c @@ -1,16 +1,16 @@ -#include "kbd75.h" +#include QMK_KEYBOARD_H #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - KEYMAP_ALL( - LT(2, KC_ESC), 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_PSCR, MO(1), KC_DEL, + LAYOUT( + KC_ESC, 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_PSCR, MO(1), KC_DEL, KC_GRV, 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_DEL, KC_BSPC, KC_HOME, 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_BSLS, KC_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - KEYMAP_ALL( + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -18,118 +18,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - KEYMAP_ALL( + LAYOUT( KC_TRNS, M(1), M(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - - KEYMAP_ALL( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - - KEYMAP_ALL( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - - KEYMAP_ALL( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - - KEYMAP_ALL( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - - KEYMAP_ALL( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - - KEYMAP_ALL( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - - KEYMAP_ALL( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - - KEYMAP_ALL( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - - KEYMAP_ALL( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - - KEYMAP_ALL( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - - KEYMAP_ALL( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - - KEYMAP_ALL( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - - KEYMAP_ALL( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) - }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { diff --git a/keyboards/kbd75/keymaps/smt/keymap.c b/keyboards/kbd75/keymaps/smt/keymap.c index 1a549e59ec92..a29a7e8a9fa6 100644 --- a/keyboards/kbd75/keymaps/smt/keymap.c +++ b/keyboards/kbd75/keymaps/smt/keymap.c @@ -1,4 +1,4 @@ -#include "kbd75.h" +#include QMK_KEYBOARD_H #define _QWERTY 0 #define _COLEMAK 1 @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* 0: ANSI qwerty */ - [_QWERTY] = KEYMAP_ALL( + [_QWERTY] = LAYOUT( KC_ESC, 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_PSCR, KC_PAUS, KC_DEL, \ KC_GRV, 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, KC_INS, KC_HOME, \ HPR_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, KC_PGUP, \ @@ -65,7 +65,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* 1: ANSI colemak */ - [_COLEMAK] = KEYMAP_ALL( + [_COLEMAK] = LAYOUT( KC_ESC, 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_PSCR, KC_PAUS, KC_DEL, \ KC_GRV, 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, KC_INS, KC_HOME, \ HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGUP, \ @@ -90,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* 2: ANSI dvorak */ - [_DVORAK] = KEYMAP_ALL( + [_DVORAK] = LAYOUT( KC_ESC, 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_PSCR, KC_PAUS, KC_DEL, \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS, KC_HOME, \ HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSPC, KC_PGUP, \ @@ -115,7 +115,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* 3: ANSI Fn layer */ - [_FL] = KEYMAP_ALL( + [_FL] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ @@ -140,7 +140,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* 4: ANSI control layer */ - [_CL] = KEYMAP_ALL( + [_CL] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, \ _______, _______, _______, _______, RESET, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, RGB_VAI, \ From 9e5676650ec4ae71565201871c1aaf05e96a756b Mon Sep 17 00:00:00 2001 From: skullY Date: Mon, 7 May 2018 21:58:50 -0700 Subject: [PATCH 349/578] Use docsfy to replace gitbook --- docs/.nojekyll | 0 docs/README.md | 19 +- docs/_sidebar.md | 98 ++++++ docs/index.html | 32 ++ docs/qmk.css | 862 +++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 1005 insertions(+), 6 deletions(-) create mode 100644 docs/.nojekyll create mode 100644 docs/_sidebar.md create mode 100644 docs/index.html create mode 100644 docs/qmk.css diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/docs/README.md b/docs/README.md index 93347a42e1cd..d4587d2dfd11 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,18 +1,25 @@ # Quantum Mechanical Keyboard Firmware -## What is QMK Firmware? {#what-is-qmk-firmware} +[![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) +[![Build Status](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware) +[![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh) +[![Docs Status](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm) +[![GitHub contributors](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) +[![GitHub forks](https://img.shields.io/github/forks/qmk/qmk_firmware.svg?style=social&label=Fork)](https://github.com/qmk/qmk_firmware/) + +## What is QMK Firmware? QMK (*Quantum Mechanical Keyboard*) is an open source community that maintains QMK Firmware, QMK Flasher, qmk.fm, and these docs. QMK Firmware is a keyboard firmware based on the [tmk\_keyboard](http://github.com/tmk/tmk_keyboard) with some useful features for Atmel AVR controllers, and more specifically, the [OLKB product line](http://olkb.com), the [ErgoDox EZ](http://www.ergodox-ez.com) keyboard, and the [Clueboard product line](http://clueboard.co/). It has also been ported to ARM chips using ChibiOS. You can use it to power your own hand-wired or custom keyboard PCB. -## How to Get It {#how-to-get-it} +## How to Get It If you plan on contributing a keymap, keyboard, or features to QMK, the easiest thing to do is [fork the repo through Github](https://github.com/qmk/qmk_firmware#fork-destination-box), and clone your repo locally to make your changes, push them, then open a [Pull Request](https://github.com/qmk/qmk_firmware/pulls) from your fork. Otherwise, you can either download it directly ([zip](https://github.com/qmk/qmk_firmware/zipball/master), [tar](https://github.com/qmk/qmk_firmware/tarball/master)), or clone it via git (`git@github.com:qmk/qmk_firmware.git`), or https (`https://github.com/qmk/qmk_firmware.git`). -## How to Compile {#how-to-compile} +## How to Compile -Before you are able to compile, you'll need to [install an environment](getting_started_build_tools.md) for AVR or/and ARM development. Once that is complete, you'll use the `make` command to build a keyboard and keymap with the following notation: +Before you are able to compile, you'll need to [install an environment](01_Getting_Started/01_Install_Build_Tools.md) for AVR or/and ARM development. Once that is complete, you'll use the `make` command to build a keyboard and keymap with the following notation: make planck/rev4:default @@ -20,6 +27,6 @@ This would build the `rev4` revision of the `planck` with the `default` keymap. make preonic:default -## How to Customize {#how-to-customize} +## How to Customize -QMK has lots of [features](features.md) to explore, and a good deal of [reference documentation](http://docs.qmk.fm) to dig through. Most features are taken advantage of by modifying your [keymap](keymap.md), and changing the [keycodes](keycodes.md). +QMK has lots of [features](05_Features/index.md) to explore, and a good deal of [reference documentation](http://docs.qmk.fm) to dig through. Most features are taken advantage of by modifying your [keymap](07_Reference/Keymap_Overview.md), and changing the [keycodes](06_Keycodes/index.md). diff --git a/docs/_sidebar.md b/docs/_sidebar.md new file mode 100644 index 000000000000..318c526a8540 --- /dev/null +++ b/docs/_sidebar.md @@ -0,0 +1,98 @@ +* [Getting Started](README.md) + * [QMK Introduction](getting_started_introduction.md) + * [Install Build Tools](getting_started_build_tools.md) + * Alternative: [Vagrant Guide](getting_started_vagrant.md) + * [Build/Compile Instructions](getting_started_make_guide.md) + * [Flashing Firmware](flashing.md) + * [Contributing to QMK](contributing.md) + * [How to Use Github](getting_started_github.md) + * [Getting Help](getting_started_getting_help.md) + +* [Complete Newbs Guide](newbs.md) + * [Getting Started](newbs_getting_started.md) + * [Building Your First Firmware](newbs_building_firmware.md) + * [Flashing Firmware](newbs_flashing.md) + * [Testing and Debugging](newbs_testing_debugging.md) + +* [FAQ](faq.md) + * [General FAQ](faq_general.md) + * [Build/Compile QMK](faq_build.md) + * [Debugging/Troubleshooting QMK](faq_debug.md) + * [Keymap](faq_keymap.md) + +* [Hardware](hardware.md) + * [Keyboard Guidelines](hardware_keyboard_guidelines.md) + * [AVR Processors](hardware_avr.md) + * ARM Processors (TBD) + * [Drivers](hardware_drivers.md) + +* [Features](features.md) + * [Advanced Keycodes](feature_advanced_keycodes.md) + * [Audio](feature_audio.md) + * [Auto Shift](feature_auto_shift.md) + * [Backlight](feature_backlight.md) + * [Bootmagic](feature_bootmagic.md) + * [Command](feature_command.md) + * [Dynamic Macros](feature_dynamic_macros.md) + * [Grave Escape](feature_grave_esc.md) + * [Key Lock](feature_key_lock.md) + * [Layouts](feature_layouts.md) + * [Leader Key](feature_leader_key.md) + * [Macros](feature_macros.md) + * [Mouse Keys](feature_mouse_keys.md) + * [Pointing Device](feature_pointing_device.md) + * [PS/2 Mouse](feature_ps2_mouse.md) + * [RGB Lighting](feature_rgblight.md) + * [Space Cadet](feature_space_cadet.md) + * [Stenography](feature_stenography.md) + * [Swap Hands](feature_swap_hands.md) + * [Tap Dance](feature_tap_dance.md) + * [Terminal](feature_terminal.md) + * [Thermal Printer](feature_thermal_printer.md) + * [Unicode](feature_unicode.md) + * [Userspace](feature_userspace.md) + +* [Keycodes](keycodes.md) + * [Backlight](feature_backlight.md#backlight-keycodes) + * [Basic](keycodes_basic.md) + * [Bluetooth](feature_bluetooth.md#bluetooth-keycodes) + * [Bootmagic](feature_bootmagic.md#bootmagic-keycodes) + * [Layer Switching](feature_advanced_keycodes.md#switching-and-toggling-layers) + * [Mod+Key](feature_advanced_keycodes.md#modifier-keys) + * [Mod Tap](feature_advanced_keycodes.md#mod-tap) + * [One Shot Keys](feature_advanced_keycodes.md#one-shot-keys) + * [Quantum](quantum_keycodes.md) + * [RGB Light](feature_rgblight.md#rgblight-keycodes) + * [Shifted Keys](feature_advanced_keycodes.md#shifted-keycodes) + * [Stenography](feature_stenography.md#keycode-reference) + * [Thermal Printer](feature_thermal_printer.md#thermal-printer-keycodes) + * [US ANSI Shifted Keys](keycodes_us_ansi_shifted.md) + +* Reference + * [Config Options](config_options.md) + * [Customizing Functionality](custom_quantum_functions.md) + * [Documentation Best Practices](documentation_best_practices.md) + * [Documentation Templates](documentation_templates.md) + * [Glossary](reference_glossary.md) + * [Keymap Overview](keymap.md) + * [Unit Testing](unit_testing.md) + +* For Makers and Modders + * [Hand Wiring Guide](hand_wire.md) + * [ISP Flashing Guide](isp_flashing_guide.md) + +* For a Deeper Understanding + * [How Keyboards Work](how_keyboards_work.md) + * [Understanding QMK](understanding_qmk.md) + +* Other Topics + * [Using Eclipse with QMK](eclipse.md) + +* QMK Internals (In Progress) + * [Defines](internals_defines.md) + * [Input Callback Reg](internals_input_callback_reg.md) + * [Midi Device](internals_midi_device.md) + * [Midi Device Setup Process](internals_midi_device_setup_process.md) + * [Midi Util](internals_midi_util.md) + * [Send Functions](internals_send_functions.md) + * [Sysex Tools](internals_sysex_tools.md) diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 000000000000..c890b95ae7fb --- /dev/null +++ b/docs/index.html @@ -0,0 +1,32 @@ + + + + + Document + + + + + + +