diff --git a/config_rpw.h b/config_rpw.h new file mode 100644 index 00000000..c3d2a3bf --- /dev/null +++ b/config_rpw.h @@ -0,0 +1,44 @@ +#pragma once + +/* QMK */ +// Amount of time before the hold function of a dual-function key +// is considered pressed +#define TAPPING_TERM 200 + +//#define TAPPING_TERM_PER_KEY + +// Ensure that a dual-function key isn't required to be held past the +// duration of the tapping term, to activate the hold function in +// combination with another key. +// Ref: https://docs.qmk.fm/tap_hold#permissive-hold +// +// For me permissive hold generally does more harm then good. The only +// exception to this is for Shift. For this reason, enable permissive hold +// per-key and configure only for our shifts. +#define PERMISSIVE_HOLD_PER_KEY + +// Ensure that if a dual-function key is held past the tapping term, +// but no other key is pressed before the dual-function is released, the +// tap function is sent. +// +// Ref: https://docs.qmk.fm/tap_hold#retro-tapping +#define RETRO_TAPPING + +// Enable Chordal Hold +// #define CHORDAL_HOLD + +// Left-hand home row mods +#define CTL_A LCTL_T(KC_A) +#define ALT_S LALT_T(KC_S) +#define SFT_D LSFT_T(KC_D) +#define GUI_F LGUI_T(KC_F) + +// Right-hand home row mods +#define GUI_J RGUI_T(KC_J) +#define SFT_K RSFT_T(KC_K) +#define ALT_L LALT_T(KC_L) +#define CTL_SCLN RCTL_T(KC_SCLN) + +#define CTL_ESC LCTL_T(KC_ESC) +#define SYM_ENT LT(_SYM, KC_ENT) +#define NUM_SPC LT(_NUM, KC_SPC) diff --git a/keyboards/keebio/laplace/keyboard.json b/keyboards/keebio/laplace/keyboard.json new file mode 100644 index 00000000..22cced0e --- /dev/null +++ b/keyboards/keebio/laplace/keyboard.json @@ -0,0 +1,101 @@ +{ + "keyboard_name": "Laplace", + "manufacturer": "Keebio", + "url": "https://keeb.io", + "maintainer": "nooges", + "usb": { + "vid": "0xCB10", + "pid": "0x1147", + "device_version": "1.0.0" + }, + "rgblight": { + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, + "ws2812": { + "pin": "D4" + }, + "features": { + "bootmagic": false, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["D1", "F6", "F7", "B1", "B3", "B2", "B6"], + "rows": ["D3", "F4", "D2", "F5", "D7", "B4", "C6", "E6"] + }, + "diode_direction": "COL2ROW", + "processor": "atmega32u4", + "bootloader": "caterina", + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [1, 6], "x": 7, "y": 0}, + {"matrix": [1, 5], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [1, 3], "x": 10, "y": 0}, + {"matrix": [1, 2], "x": 11, "y": 0}, + {"matrix": [1, 1], "x": 12, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.25}, + {"matrix": [2, 1], "x": 1.25, "y": 1}, + {"matrix": [2, 2], "x": 2.25, "y": 1}, + {"matrix": [2, 3], "x": 3.25, "y": 1}, + {"matrix": [2, 4], "x": 4.25, "y": 1}, + {"matrix": [2, 5], "x": 5.25, "y": 1}, + {"matrix": [2, 6], "x": 6.25, "y": 1}, + {"matrix": [3, 6], "x": 7.25, "y": 1}, + {"matrix": [3, 5], "x": 8.25, "y": 1}, + {"matrix": [3, 4], "x": 9.25, "y": 1}, + {"matrix": [3, 3], "x": 10.25, "y": 1}, + {"matrix": [3, 1], "x": 11.25, "y": 1, "w": 1.75}, + + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [4, 1], "x": 1.75, "y": 2}, + {"matrix": [4, 2], "x": 2.75, "y": 2}, + {"matrix": [4, 3], "x": 3.75, "y": 2}, + {"matrix": [4, 4], "x": 4.75, "y": 2}, + {"matrix": [4, 5], "x": 5.75, "y": 2}, + {"matrix": [4, 6], "x": 6.75, "y": 2}, + {"matrix": [5, 5], "x": 7.75, "y": 2}, + {"matrix": [5, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 3], "x": 9.75, "y": 2}, + {"matrix": [5, 2], "x": 10.75, "y": 2}, + {"matrix": [5, 1], "x": 11.75, "y": 2, "w": 1.25}, + + {"matrix": [6, 0], "x": 0, "y": 3}, + {"matrix": [6, 1], "x": 1, "y": 3}, + {"matrix": [6, 2], "x": 2, "y": 3}, + {"matrix": [6, 3], "x": 3, "y": 3}, + {"matrix": [6, 4], "x": 4, "y": 3, "w": 2.25}, + {"matrix": [6, 6], "x": 6.25, "y": 3, "w": 2.25}, + {"matrix": [7, 4], "x": 8.5, "y": 3}, + {"matrix": [7, 3], "x": 9.5, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 10.75, "y": 3}, + {"matrix": [7, 1], "x": 11.75, "y": 3, "w": 1.25} + ] + } + } +} diff --git a/keyboards/keebio/laplace/keymaps/rpw/config.h b/keyboards/keebio/laplace/keymaps/rpw/config.h new file mode 100644 index 00000000..e3b4254f --- /dev/null +++ b/keyboards/keebio/laplace/keymaps/rpw/config.h @@ -0,0 +1,3 @@ +#pragma once + +#include "config_rpw.h" diff --git a/keyboards/keebio/laplace/keymaps/rpw/keymap.c b/keyboards/keebio/laplace/keymaps/rpw/keymap.c new file mode 100644 index 00000000..b787dcca --- /dev/null +++ b/keyboards/keebio/laplace/keymaps/rpw/keymap.c @@ -0,0 +1,52 @@ +#include QMK_KEYBOARD_H + +#include "rpw.c" + +#define _BASE 0 +#define _SYM 1 +#define _NUM 2 +#define _NAV 3 +#define _NAV2 4 + +#define SP_FN1 LT(_NUM, KC_SPACE) +#define SP_FN2 LT(_NUM, KC_SPACE) +#define ENT_FN1 LT(_SYM, KC_ENT) +#define ENT_FN2 LT(_SYM, KC_ENT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = 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, + CTL_ESC, CTL_A, ALT_S, SFT_D, GUI_F, KC_G, KC_H, GUI_J, SFT_K, ALT_L, CTL_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, MO(_NAV2), + KC_LCTL, KC_LALT, KC_LGUI, _______, ENT_FN1, SP_FN2, MO(_NAV), KC_RALT, _______, KC_RCTL + ), + + [_SYM] = LAYOUT( + KC_TILD, KC_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_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, + UG_TOGG, _______, _______, _______, _______, KC_DEL, KC_0, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_NUM] = LAYOUT( + KC_TILD, KC_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_PGUP, KC_HOME, _______, _______, _______, _______, KC_COLN, _______, + _______, _______, _______, KC_DEL, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______ + ), + + [_NAV] = 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_INS, KC_PGUP, KC_HOME, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, + _______, _______, _______, KC_DEL, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______ + ), + + [_NAV2] = 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_INS, KC_PGUP, KC_HOME, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, + _______, _______, _______, KC_DEL, KC_PGDN, KC_END, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, + _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/keebio/laplace/readme.md b/keyboards/keebio/laplace/readme.md new file mode 100644 index 00000000..4292483b --- /dev/null +++ b/keyboards/keebio/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 keebio/laplace:default + +Example of flashing this keyboard: + + make keebio/laplace:default:avrdude + +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. + +A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io) diff --git a/keyboards/keebio/laplace/rules.mk b/keyboards/keebio/laplace/rules.mk new file mode 100644 index 00000000..b3170a78 --- /dev/null +++ b/keyboards/keebio/laplace/rules.mk @@ -0,0 +1,2 @@ +ROOT_DIR := $(dir $(realpath $(lastword $(MAKEFILE_LIST)))) +include ${ROOT_DIR}../../../../../rules.mk diff --git a/keyboards/primekb/prime_e/info.json b/keyboards/primekb/prime_e/info.json new file mode 100644 index 00000000..e7ed77e4 --- /dev/null +++ b/keyboards/primekb/prime_e/info.json @@ -0,0 +1,89 @@ +{ + "manufacturer": "PrimeKB", + "url": "https://www.primekb.com", + "maintainer": "holtenc", + "usb": { + "vid": "0x5052" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": false, + "nkro": true + }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "matrix_pins": { + "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "D6", "D4", "D5", "D3", "D2", "D1", "D0"], + "rows": ["E6", "C7", "B5", "B4"] + }, + "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 8 + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 7, "y": 0}, + {"matrix": [0, 7], "x": 8, "y": 0}, + {"matrix": [0, 8], "x": 9, "y": 0}, + {"matrix": [0, 9], "x": 10, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 1}, + {"matrix": [1, 2], "x": 2.25, "y": 1}, + {"matrix": [1, 3], "x": 3.25, "y": 1}, + {"matrix": [1, 4], "x": 4.25, "y": 1}, + {"matrix": [1, 5], "x": 5.25, "y": 1}, + + {"matrix": [1, 6], "x": 7.25, "y": 1}, + {"matrix": [1, 7], "x": 8.25, "y": 1}, + {"matrix": [1, 8], "x": 9.25, "y": 1}, + {"matrix": [1, 9], "x": 10.25, "y": 1}, + {"matrix": [1, 10], "x": 11.25, "y": 1}, + {"matrix": [1, 12], "x": 12.25, "y": 1, "w": 1.75}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 1.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, + {"matrix": [3, 3], "x": 3.5, "y": 3, "w": 1.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3, "w": 2}, + {"matrix": [3, 6], "x": 6.75, "y": 3, "w": 2.25}, + {"matrix": [3, 8], "x": 9, "y": 3, "w": 1.25}, + {"matrix": [3, 11], "x": 11.5, "y": 3, "w": 1.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3, "w": 1.25} + ] + } + } +} diff --git a/keyboards/primekb/prime_e/keymaps/rpw/config.h b/keyboards/primekb/prime_e/keymaps/rpw/config.h new file mode 100644 index 00000000..e3b4254f --- /dev/null +++ b/keyboards/primekb/prime_e/keymaps/rpw/config.h @@ -0,0 +1,3 @@ +#pragma once + +#include "config_rpw.h" diff --git a/keyboards/primekb/prime_e/keymaps/rpw/keymap.c b/keyboards/primekb/prime_e/keymaps/rpw/keymap.c new file mode 100644 index 00000000..95891652 --- /dev/null +++ b/keyboards/primekb/prime_e/keymaps/rpw/keymap.c @@ -0,0 +1,180 @@ +/* Copyright 2018 Holten Campbell + * + * 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 "rpw.c" + +#ifdef CHORDAL_HOLD +// Handedness for Chordal Hold (https://github.com/qmk/qmk_firmware/pull/24560) +const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM = + LAYOUT( + '*' , 'L' , 'L' , 'L' , 'L' , 'L' , + '*' , 'L' , 'L' , 'L' , 'L' , 'L' , + '*' , 'L' , 'L' , 'L' , 'L' , 'L' , + '*' , '*' , '*' , '*' , + + 'R' , 'R' , 'R' , 'R' , 'R' , 'R' , '*' , + 'R' , 'R' , 'R' , 'R' , 'R' , '*' , + '*' , 'R' , 'R' , 'R' , 'R' , 'R' , '*' , + '*' , '*' , '*' , '*' +); +#endif // CHORDAL_HOLD + +enum prime_e_layers { + /* _M_XYZ = Mac Os, _W_XYZ = Win/Linux */ + _QWERTY, + _GAME, + _NAV, + _SYM, + _NUM, + _NUMPAD, + _FUNC, + _PROG, + _APPS, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_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_BSLS, KC_BSPC, + CTL_ESC, CTL_A, ALT_S, SFT_D, GUI_F, KC_G, KC_H, GUI_J, SFT_K, ALT_L, CTL_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(_PROG), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_APPS), + KC_TRNS, KC_TRNS, MO(_NUMPAD), SYM_ENT, NUM_SPC, MO(_NAV), KC_TRNS, KC_TRNS + ), + + [_GAME] = LAYOUT( + 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, + 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, MO(_PROG), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_APPS), + KC_LCTL, KC_LOPT, KC_LGUI, KC_SPC, NUM_SPC, MO(_NAV), KC_TRNS, KC_TRNS + ), + + // Navigation + [_NAV] = LAYOUT( + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_TRNS, KC_TRNS, + BL_TOGG, BL_STEP, KC_TRNS, KC_TRNS, MO(_FUNC), KC_TRNS, KC_TRNS, KC_TRNS + ), + + // Symbol layer + [_SYM] = LAYOUT( + KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FUNC), KC_PDOT, KC_TRNS, KC_TRNS + ), + + // Numbers + [_NUM] = LAYOUT( + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, + 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, + BL_TOGG, BL_STEP, KC_TRNS, MO(_FUNC), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + // Numpad + [_NUMPAD] = LAYOUT( + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_7, KC_8, KC_9, KC_9, KC_0, KC_MINS, KC_BSPC, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_5, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_1, KC_2, KC_3, KC_TRNS, KC_DOT, KC_TRNS, + BL_TOGG, BL_STEP, KC_TRNS, MO(_FUNC), KC_0, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_FUNC] = LAYOUT( + QK_BOOT, KC_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_PROG] = LAYOUT( + QK_BOOT, KC_1, DF(_QWERTY), KC_3, KC_4, KC_5, KC_7, KC_8, KC_9, KC_9, DT_PRNT, DT_UP, DT_DOWN, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DF(_GAME), KC_4, KC_5, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_1, KC_2, KC_3, KC_TRNS, KC_DOT, KC_TRNS, + BL_TOGG, BL_STEP, KC_TRNS, MO(_FUNC), KC_0, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_APPS] = LAYOUT( + QK_BOOT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_7, KC_8, KC_9, KC_9, DT_PRNT, DT_UP, DT_DOWN, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_5, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_1, KC_2, LCAG(KC_S), LCAG(KC_C), KC_DOT, KC_TRNS, + BL_TOGG, BL_STEP, KC_TRNS, MO(_FUNC), KC_0, KC_TRNS, KC_TRNS, KC_TRNS + ), + +}; + +void matrix_init_user(void) { + // set CapsLock LED to output and low + setPinOutput(B1); + writePinLow(B1); + // set NumLock LED to output and low + setPinOutput(B2); + writePinLow(B2); + // set ScrollLock LED to output and low + setPinOutput(B3); + writePinLow(B3); +} + +void matrix_scan_user(void) { + +} + + +void led_set_user(uint8_t usb_led) { +/* + if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) { + writePinHigh(B2); + } else { + writePinLow(B2); + } + if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { + writePinHigh(B1); + } else { + writePinLow(B1); + } + if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) { + writePinHigh(B3); + } else { + writePinLow(B3); + } +*/ +} + +//function for layer indicator LED +layer_state_t layer_state_set_user(layer_state_t state) +{ + if (get_highest_layer(state) == 1) { + writePinHigh(B1); + } else { + writePinLow(B1); + } + + if (get_highest_layer(state) == 2) { + writePinHigh(B2); + } else { + writePinLow(B2); + } + return state; +} + +/* +bool led_update_keymap(led_t led_state) { + writePin(TOP_LED, LED_ON(IS_LAYER_ON(_FN1))); // Use for Layer 1 + writePin(MIDDLE_LED, LED_ON(IS_LAYER_ON(_FN2))); // Use for Layer 2 + writePin(BOTTOM_LED, LED_ON(led_state.caps_lock)); // Use for Caps Lock + return false; // Override default set by KB +} +*/ diff --git a/keyboards/primekb/prime_e/keymaps/rpw/readme.md b/keyboards/primekb/prime_e/keymaps/rpw/readme.md new file mode 100644 index 00000000..5266526e --- /dev/null +++ b/keyboards/primekb/prime_e/keymaps/rpw/readme.md @@ -0,0 +1,2 @@ +# The default keymap for Prime_E +This is the default keymap for Prime_E. \ No newline at end of file diff --git a/keyboards/primekb/prime_e/readme.md b/keyboards/primekb/prime_e/readme.md new file mode 100644 index 00000000..3503ad41 --- /dev/null +++ b/keyboards/primekb/prime_e/readme.md @@ -0,0 +1,20 @@ +# Prime_E + +![Prime_E](https://imgur.com/7Rl4JOA.jpg) + +An ergonomic 45%. + +*Keyboard Maintainer: [Holtenc](https://github.com/holtenc/) +*Hardware Supported: + * [Prime_E Standard](std/) PCBs, ATmega32u4 (in switch LED backlights) + * [Prime_E RGB](rgb/) PCBs, Atmega32u4 (RGB underglow) +*Hardware Availability: [Store Link](https://www.primekb.com) + +Make example for this keyboard (after setting up your build environment): + + *make primekb/prime_e/std:default + *make primekb/prime_e/rgb:default + *make primekb/prime_e/std:via + *make primekb/prime_e/rgb:via + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/primekb/prime_e/rules.mk b/keyboards/primekb/prime_e/rules.mk new file mode 100644 index 00000000..b387c36f --- /dev/null +++ b/keyboards/primekb/prime_e/rules.mk @@ -0,0 +1,5 @@ +DEFAULT_FOLDER = primekb/prime_e/std +DEFERRED_EXEC_ENABLE = yes + +ROOT_DIR := $(dir $(realpath $(lastword $(MAKEFILE_LIST)))) +include ${ROOT_DIR}../../../../../rules.mk diff --git a/rpw.c b/rpw.c new file mode 100644 index 00000000..2db66af8 --- /dev/null +++ b/rpw.c @@ -0,0 +1,14 @@ +#ifdef PERMISSIVE_HOLD_PER_KEY +// true: Immediately select the hold action when another key is tapped. +// false: Do not select the hold action when another key is tapped. +bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case SFT_D: + return true; + case SFT_K: + return true; + default: + return false; + } +} +#endif diff --git a/rules.mk b/rules.mk new file mode 100644 index 00000000..542ac67f --- /dev/null +++ b/rules.mk @@ -0,0 +1 @@ +ACHORDION_ENABLE = no