All this stuff at once

This commit is contained in:
Robert O'Farrell 2025-02-13 21:56:52 +00:00
parent 35edec2998
commit 845289b763
14 changed files with 536 additions and 0 deletions

44
config_rpw.h Normal file
View file

@ -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)

View file

@ -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}
]
}
}
}

View file

@ -0,0 +1,3 @@
#pragma once
#include "config_rpw.h"

View file

@ -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, _______, _______, _______, _______, _______
)
};

View file

@ -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)

View file

@ -0,0 +1,2 @@
ROOT_DIR := $(dir $(realpath $(lastword $(MAKEFILE_LIST))))
include ${ROOT_DIR}../../../../../rules.mk

View file

@ -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}
]
}
}
}

View file

@ -0,0 +1,3 @@
#pragma once
#include "config_rpw.h"

View file

@ -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 <http://www.gnu.org/licenses/>.
*/
#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
}
*/

View file

@ -0,0 +1,2 @@
# The default keymap for Prime_E
This is the default keymap for Prime_E.

View file

@ -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).

View file

@ -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

14
rpw.c Normal file
View file

@ -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

1
rules.mk Normal file
View file

@ -0,0 +1 @@
ACHORDION_ENABLE = no