mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-09-10 17:15:43 +00:00
Compare commits
28 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
317b809564 | ||
|
|
67e0c951af | ||
|
|
db0c179552 | ||
|
|
9639f44f48 | ||
|
|
8af3fe0c7d | ||
|
|
810c8db770 | ||
|
|
5f0ab5a24b | ||
|
|
a825bbf5ea | ||
|
|
4a43a947bd | ||
|
|
628e08c606 | ||
|
|
2d15961855 | ||
|
|
d5f0327b97 | ||
|
|
70285f5ed9 | ||
|
|
875ae08692 | ||
|
|
7f65844f75 | ||
|
|
6bdcbfb25a | ||
|
|
c6850bad74 | ||
|
|
83754c1146 | ||
|
|
53a81fc2f6 | ||
|
|
fff526cb00 | ||
|
|
5f69ca47ff | ||
|
|
d34b71f008 | ||
|
|
1cd26607bd | ||
|
|
03ce37052f | ||
|
|
61b884d865 | ||
|
|
f4840139a2 | ||
|
|
29824f3cf7 | ||
|
|
5343eaf89a |
@@ -76,11 +76,11 @@ This is a C header file that is one of the first things included, and will persi
|
||||
* `#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
|
||||
* pin of the backlight - `B5`, `B6`, `B7` and `C6` (and `D4` on ATmega32A) use hardware PWM, others use software implementation
|
||||
* `#define BACKLIGHT_LEVELS 3`
|
||||
* number of levels your backlight will have (maximum 15 excluding off)
|
||||
* `#define BACKLIGHT_BREATHING`
|
||||
* enables backlight breathing (only works with backlight pins B5, B6 and B7)
|
||||
* enables backlight breathing
|
||||
* `#define BREATHING_PERIOD 6`
|
||||
* the length of one backlight "breath" in seconds
|
||||
* `#define DEBOUNCE 5`
|
||||
@@ -93,8 +93,8 @@ This is a C header file that is one of the first things included, and will persi
|
||||
* 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)
|
||||
* `#define SCL_CLOCK 100000L`
|
||||
* sets the SCL_CLOCK speed for split keyboards. The default is `100000L` but some boards can be set to `400000L`.
|
||||
* `#define F_SCL 100000L`
|
||||
* sets the I2C clock rate speed for keyboards using I2C. The default is `400000L`, except for keyboards using `split_common`, where the default is `100000L`.
|
||||
|
||||
## Features That Can Be Disabled
|
||||
|
||||
|
||||
@@ -34,13 +34,14 @@ Hardware PWM is only supported on certain pins of the MCU, so if the backlightin
|
||||
|
||||
Hardware PWM is supported according to the following table:
|
||||
|
||||
| Backlight Pin | Hardware timer |
|
||||
|---------------|----------------|
|
||||
|`B5` | Timer 1 |
|
||||
|`B6` | Timer 1 |
|
||||
|`B7` | Timer 1 |
|
||||
|`C6` | Timer 3 |
|
||||
| other | Software PWM |
|
||||
| Backlight Pin | Hardware timer |
|
||||
|---------------|-------------------------|
|
||||
|`B5` | Timer 1 |
|
||||
|`B6` | Timer 1 |
|
||||
|`B7` | Timer 1 |
|
||||
|`C6` | Timer 3 |
|
||||
|`D4` | Timer 1 (ATmega32A only)|
|
||||
| other | Software PWM |
|
||||
|
||||
The [audio feature](feature_audio.md) also uses hardware timers. Please refer to the following table to know what hardware timer the software PWM will use depending on the audio configuration:
|
||||
|
||||
@@ -63,11 +64,17 @@ To change the behaviour of the backlighting, `#define` these in your `config.h`:
|
||||
|Define |Default |Description |
|
||||
|---------------------|-------------|-------------------------------------------------------------------------------------------------------------|
|
||||
|`BACKLIGHT_PIN` |`B7` |The pin that controls the LEDs. Unless you are designing your own keyboard, you shouldn't need to change this|
|
||||
|`BACKLIGHT_PINS` |*Not defined*|experimental: see below for more information|
|
||||
|`BACKLIGHT_PINS` |*Not defined*|experimental: see below for more information |
|
||||
|`BACKLIGHT_LEVELS` |`3` |The number of brightness levels (maximum 15 excluding off) |
|
||||
|`BACKLIGHT_CAPS_LOCK`|*Not defined*|Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) |
|
||||
|`BACKLIGHT_BREATHING`|*Not defined*|Enable backlight breathing, if supported |
|
||||
|`BACKLIGHT_BREATHING`|*Not defined*|Enable backlight breathing, if supported |
|
||||
|`BREATHING_PERIOD` |`6` |The length of one backlight "breath" in seconds |
|
||||
|`BACKLIGHT_ON_STATE` |`0` |The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low |
|
||||
|
||||
## Backlight On State
|
||||
|
||||
Most backlight circuits are driven by an N-channel MOSFET or NPN transistor. This means that to turn the transistor *on* and light the LEDs, you must drive the backlight pin, connected to the gate or base, *low*.
|
||||
Sometimes, however, a P-channel MOSFET, or a PNP transistor is used. In this case you must `#define BACKLIGHT_ON_STATE 1`, so that when the transistor is on, the pin is driven *high* instead.
|
||||
|
||||
## Multiple backlight pins
|
||||
|
||||
|
||||
@@ -59,6 +59,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
#define RGBLIGHT_SLEEP
|
||||
#endif
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
|
||||
24
keyboards/40percentclub/gherkin/keymaps/midi/config.h
Normal file
24
keyboards/40percentclub/gherkin/keymaps/midi/config.h
Normal file
@@ -0,0 +1,24 @@
|
||||
/*
|
||||
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
||||
|
||||
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/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#undef TAPPING_TERM
|
||||
#define TAPPING_TERM 190
|
||||
|
||||
#define MUSIC_MASK (keycode != KC_NO)
|
||||
#define MIDI_ADVANCED
|
||||
115
keyboards/40percentclub/gherkin/keymaps/midi/keymap.c
Normal file
115
keyboards/40percentclub/gherkin/keymaps/midi/keymap.c
Normal file
@@ -0,0 +1,115 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layer_number {
|
||||
_IONIAN = 0,
|
||||
_DORIAN,
|
||||
_PHRYGIAN,
|
||||
_LYDIAN,
|
||||
_MIXOLYDIAN,
|
||||
_AEOLIAN,
|
||||
_LOCRIAN,
|
||||
_MENU
|
||||
};
|
||||
|
||||
enum custom_keycodes {
|
||||
IONIAN = SAFE_RANGE,
|
||||
DORIAN,
|
||||
PHRYGIAN,
|
||||
LYDIAN,
|
||||
MIXOLYDIAN,
|
||||
AEOLIAN,
|
||||
LOCRIAN,
|
||||
};
|
||||
|
||||
#define MENU MO(_MENU)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_IONIAN] = LAYOUT_ortho_3x10(
|
||||
MI_C_1, MI_F_1, MI_B_1, MI_E_2, MI_A_2, MI_D_3, MI_G_3, MI_C_4, MI_OCTD, MI_OCTU,
|
||||
MI_D_1, MI_G_1, MI_C_2, MI_F_2, MI_B_2, MI_E_3, MI_A_3, MI_D_4, MI_TRNSD, MI_TRNSU,
|
||||
MI_E_1, MI_A_1, MI_D_2, MI_G_2, MI_C_3, MI_F_3, MI_B_3, MI_E_4, MI_SUS, MENU
|
||||
),
|
||||
|
||||
[_DORIAN] = LAYOUT_ortho_3x10(
|
||||
MI_C_1, MI_F_1, MI_As_1, MI_Ds_2, MI_A_2, MI_D_3, MI_G_3, MI_C_4, _______, _______,
|
||||
MI_D_1, MI_G_1, MI_C_2, MI_F_2, MI_As_2, MI_Ds_3, MI_A_3, MI_D_4, _______, _______,
|
||||
MI_Ds_1, MI_A_1, MI_D_2, MI_G_2, MI_C_3, MI_F_3, MI_As_3, MI_Ds_4, _______, _______
|
||||
),
|
||||
|
||||
[_PHRYGIAN] = LAYOUT_ortho_3x10(
|
||||
MI_C_1, MI_F_1, MI_As_1, MI_Ds_2, MI_Gs_2, MI_Cs_3, MI_G_3, MI_C_4, _______, _______,
|
||||
MI_Cs_1, MI_G_1, MI_C_2, MI_F_2, MI_As_2, MI_Ds_3, MI_Gs_3, MI_Cs_4, _______, _______,
|
||||
MI_Ds_1, MI_Gs_1, MI_Cs_2, MI_G_2, MI_C_3, MI_F_3, MI_As_3, MI_Ds_4, _______, _______
|
||||
),
|
||||
|
||||
[_LYDIAN] = LAYOUT_ortho_3x10(
|
||||
MI_C_1, MI_Fs_1, MI_B_1, MI_E_2, MI_A_2, MI_D_3, MI_G_3, MI_C_4, _______, _______,
|
||||
MI_D_1, MI_G_1, MI_C_2, MI_Fs_2, MI_B_2, MI_E_3, MI_A_3, MI_D_4, _______, _______,
|
||||
MI_E_1, MI_A_1, MI_D_2, MI_G_2, MI_C_3, MI_Fs_3, MI_B_3, MI_E_4, _______, _______
|
||||
),
|
||||
|
||||
[_MIXOLYDIAN] = LAYOUT_ortho_3x10(
|
||||
MI_C_1, MI_F_1, MI_As_1, MI_E_2, MI_A_2, MI_D_3, MI_G_3, MI_C_4, _______, _______,
|
||||
MI_D_1, MI_G_1, MI_C_2, MI_F_2, MI_As_2, MI_E_3, MI_A_3, MI_D_4, _______, _______,
|
||||
MI_E_1, MI_A_1, MI_D_2, MI_G_2, MI_C_3, MI_F_3, MI_As_3, MI_E_4, _______, _______
|
||||
),
|
||||
|
||||
[_AEOLIAN] = LAYOUT_ortho_3x10(
|
||||
MI_C_1, MI_F_1, MI_As_1, MI_Ds_2, MI_Gs_2, MI_D_3, MI_G_3, MI_C_4, _______, _______,
|
||||
MI_D_1, MI_G_1, MI_C_2, MI_F_2, MI_As_2, MI_Ds_3, MI_Gs_3, MI_D_4, _______, _______,
|
||||
MI_Ds_1, MI_Gs_1, MI_D_2, MI_G_2, MI_C_3, MI_F_3, MI_As_3, MI_Ds_4, _______, _______
|
||||
),
|
||||
|
||||
[_LOCRIAN] = LAYOUT_ortho_3x10(
|
||||
MI_C_1, MI_F_1, MI_As_1, MI_Ds_2, MI_Gs_2, MI_Cs_3, MI_Fs_3, MI_C_4, _______, _______,
|
||||
MI_Cs_1, MI_Fs_1, MI_C_2, MI_F_2, MI_As_2, MI_Ds_3, MI_Gs_3, MI_Cs_4, _______, _______,
|
||||
MI_Ds_1, MI_Gs_1, MI_Cs_2, MI_Fs_2, MI_C_3, MI_F_3, MI_As_3, MI_Ds_4, _______, _______
|
||||
),
|
||||
|
||||
[_MENU] = LAYOUT_ortho_3x10(
|
||||
IONIAN, LYDIAN, LOCRIAN, _______, _______, _______, _______, _______, _______, _______,
|
||||
DORIAN, MIXOLYDIAN, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
PHRYGIAN, AEOLIAN, _______, _______, _______, _______, _______, _______, RESET, _______
|
||||
)
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case IONIAN:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_IONIAN);
|
||||
}
|
||||
break;
|
||||
case DORIAN:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_DORIAN);
|
||||
}
|
||||
break;
|
||||
case PHRYGIAN:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_PHRYGIAN);
|
||||
}
|
||||
break;
|
||||
case LYDIAN:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_LYDIAN);
|
||||
}
|
||||
break;
|
||||
case MIXOLYDIAN:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_MIXOLYDIAN);
|
||||
}
|
||||
break;
|
||||
case AEOLIAN:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_AEOLIAN);
|
||||
}
|
||||
break;
|
||||
case LOCRIAN:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_LOCRIAN);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
14
keyboards/40percentclub/gherkin/keymaps/midi/readme.md
Normal file
14
keyboards/40percentclub/gherkin/keymaps/midi/readme.md
Normal file
@@ -0,0 +1,14 @@
|
||||
### Gherkin Midi
|
||||
A gherkin midi layout that should cover most midi note playing needs.
|
||||
|
||||
A 3x8 grid of notes written bottom left to right upwards as notes for the selected mode, with octave and transpose note controls at the top. Menu accesses other mode layouts, persisted to keyboard settings, and a reset for firmware programming.
|
||||
|
||||
Modes are set by pressing Menu and their corresponding note from the C Ionian layout. That is, for Aeolian, press Menu and A 1. For Phrygian, press Menu and E 1.
|
||||
|
||||
#### Keyboard Default Layout
|
||||

|
||||
|
||||
Keyboard Editor Gist [link](https://gist.github.com/scottsheffield/c57859fe1a85d703f5387bf8ce41028c)
|
||||
|
||||
#### Glamour Shot
|
||||

|
||||
8
keyboards/40percentclub/gherkin/keymaps/midi/rules.mk
Normal file
8
keyboards/40percentclub/gherkin/keymaps/midi/rules.mk
Normal file
@@ -0,0 +1,8 @@
|
||||
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
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no
|
||||
MIDI_ENABLE = yes
|
||||
@@ -128,7 +128,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{KC_SPC, XXXXXXX, _______, _______, _______, _______, _______, _______, G_0, _______, _______, _______}
|
||||
{KC_SPC, XXXXXXX, _______, _______, _______, KC_LCTL, KC_LCTL, _______, G_0, _______, _______, _______}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
#define PERMISSIVE_HOLD
|
||||
#define TAPPING_TERM 150
|
||||
|
||||
#define TAP_HOLD_CAPS_DELAY 0
|
||||
|
||||
#undef DISABLE_RGB_MATRIX_SPLASH
|
||||
#undef DISABLE_RGB_MATRIX_MULTISPLASH
|
||||
#undef DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
||||
|
||||
@@ -6,12 +6,15 @@
|
||||
|
||||
|
||||
#undef TAPPING_TERM
|
||||
#define TAPPING_TERM 200
|
||||
#define TAPPING_TERM 175
|
||||
|
||||
#undef DEBOUNCE
|
||||
#define DEBOUNCE 10
|
||||
#define DEBOUNCE 15
|
||||
|
||||
#undef IGNORE_MOD_TAP_INTERRUPT
|
||||
#define IGNORE_MOD_TAP_INTERRUPT
|
||||
|
||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED true
|
||||
|
||||
#undef FORCE_NKRO
|
||||
#define FORCE_NKRO
|
||||
@@ -20,12 +23,13 @@
|
||||
#define TAPPING_TOGGLE 5
|
||||
|
||||
#define LEADER_TIMEOUT 1000
|
||||
#define IGNORE_MOD_TAP_INTERRUPT
|
||||
#define PERMISSIVE_HOLD
|
||||
#define QMK_KEYS_PER_SCAN 4
|
||||
#define DANCING_TERM 175
|
||||
|
||||
#define ONESHOT_TAP_TOGGLE 5
|
||||
|
||||
#undef ONESHOT_TIMEOUT
|
||||
#define ONESHOT_TIMEOUT 5000
|
||||
|
||||
#define COMBO_COUNT 4
|
||||
|
||||
@@ -1,19 +1,22 @@
|
||||
let gulp = require('gulp');
|
||||
let run = require('gulp-run-command').default;
|
||||
const gulp = require('gulp');
|
||||
const run = require('gulp-run-command').default;
|
||||
|
||||
|
||||
gulp.task('clean', run('rm -rf ../../../../.build'));
|
||||
const ROOT_DIR = '../../../../';
|
||||
const BUILD_DIR = `${ROOT_DIR}.build`;
|
||||
const HACKER_DVORAK_DIR = './**/*';
|
||||
|
||||
gulp.task('build', ['clean'], run('make -C ../../../../ ergodox_ez:hacker_dvorak', {
|
||||
ignoreErrors: true
|
||||
const CLEAN_CMD = `rm -rf ${BUILD_DIR}`;
|
||||
const BUILD_CMD = `make -C ${ROOT_DIR} ergodox_ez:hacker_dvorak`;
|
||||
|
||||
gulp.task('clean', run(CLEAN_CMD));
|
||||
|
||||
gulp.task('build', gulp.series('clean', run(BUILD_CMD, {
|
||||
ignoreErrors: true
|
||||
})));
|
||||
|
||||
gulp.task('watch', gulp.series('build', () => {
|
||||
gulp.watch(HACKER_DVORAK_DIR, gulp.series('build'));
|
||||
}));
|
||||
|
||||
gulp.task('watch', ['build'], () => {
|
||||
gulp.watch([
|
||||
'keymap.c',
|
||||
'config.h',
|
||||
'rules.mk',
|
||||
], ['build']);
|
||||
});
|
||||
|
||||
gulp.task('default', ['watch']);
|
||||
gulp.task('default', gulp.series('watch'));
|
||||
|
||||
@@ -13,21 +13,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
// TAB | MOD TAP: ALT+SHIFT | MOD TAP: CTRL+ALT | MOD TAP: CTRL+SHIFT | P | Y | //
|
||||
// | | | | | | //
|
||||
KC_TAB, TD(NONE_LEAD), TD(QUOT_DQUO), TD(DOT_COMM), ALL_T(KC_P), MEH_T(KC_Y), DYN_MACRO_PLAY1, //
|
||||
KC_TAB, TD(NONE_LEAD), TD(QUOT_DQUO), TD(DOT_COMM), LCG_T(KC_P), LAG_T(KC_Y), DYN_MACRO_PLAY1, //
|
||||
// | LEAD | " | , | | | //
|
||||
// | TAP DANCE: NONE | TAP DANCE: ' | TAP DANCE: . | MOD TAP: HYPER | MOD TAP: MEH | //
|
||||
// | TAP DANCE: NONE | TAP DANCE: ' | TAP DANCE: . | MOD TAP: CTRL+GUI | MOD TAP: ALT+GUI | //
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------| PLAY DYNAMIC MACRO 1 //
|
||||
// | MOD TAP: ALT | MOD TAP: CTRL | LAYER TAP: SHIFT | LAYER TAP: ARROW KEYS | MOD TAP: GUI | //
|
||||
// | MOD TAP: ALT | MOD TAP: CTRL | LAYER TAP: SHIFT | M TAP DANCE: ARROWS/GUI | MOD TAP: SHIFT+GUI | //
|
||||
// | | | | Ü | | //
|
||||
TD(EQL_PLUS), ALT_T(KC_A), CTL_T(KC_O), SFT_T(KC_E), LT(ARROWS, KC_U), LGUI_T(KC_I), //-----------------------//
|
||||
TD(EQL_PLUS), LALT_T(KC_A), LCTL_T(KC_O), LSFT_T(KC_E), TD(U_ARR_GUI), SGUI_T(KC_I), //-----------------------//
|
||||
// + | Á | Ó | É | Ú | Í | //
|
||||
// TAP DANCE: = | TAP DANCE: A | TAP DANCE: O | TAP DANCE: E | TAP DANCE: U | TAP DANCE: I | //
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------| META //
|
||||
// STOP RECORDING | MOD TAP: GUI+SHIFT+ALT | Q | J | K | X | //
|
||||
// | | | | | | //
|
||||
DYN_REC_STOP, TD(SCLN_COLN), SGUI_T(KC_Q), LT(MEDIA_FN, KC_J), LT(NUMPAD, KC_K), LCAG_T(KC_X), KC_LGUI, //
|
||||
DYN_REC_STOP, TD(SCLN_COLN), LCAG_T(KC_Q), TD(J_MED_MEH), TD(K_NUM_HYP), LCSG_T(KC_X), KC_LGUI, //
|
||||
// | : | | | | | //
|
||||
// DYNAMIC MACRO | TAP DANCE: ; | MOD TAP: SHIFT+GUI | LAYER TAP: MEDIA/F-KEYS | LAYER TAP: ATM NUMPAD | MOD TAP: CTL+ALT+GUI | //
|
||||
// DYNAMIC MACRO | TAP DANCE: ; | MOD TAP: SHIFT+GUI | M TAP DANCE: MEDIA/MEH | M TAP DANCE: ATM/HYPER | MOD TAP: CTL+SHIFT+GUI | //
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
// LAYERS SWITCHER | APPLICATION MENU | | | //
|
||||
// | | | | SCROLL //
|
||||
@@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
//-------------------------+-------------------------+------------------------//
|
||||
// | | HOME //
|
||||
// | | //
|
||||
/* SPACE | BACKSPACE */ KC_HOME, //
|
||||
/* SPACE | BACKSPACE */ KC_HOME, //
|
||||
// | | //
|
||||
// | | //
|
||||
KC_SPC, KC_BSPC, //-----------------------//
|
||||
@@ -69,19 +69,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
// | | | | | | //
|
||||
// | | | | | | //
|
||||
DYN_MACRO_PLAY2, MEH_T(KC_F), ALL_T(KC_G), C_S_T(KC_C), LCA_T(KC_R), LAS_T(KC_L), TD(SLSH_BSLS), //
|
||||
DYN_MACRO_PLAY2, LAG_T(KC_F), LCG_T(KC_G), C_S_T(KC_C), LCA_T(KC_R), LAS_T(KC_L), TD(SLSH_BSLS), //
|
||||
// | | | | | | //
|
||||
// | | | | | | //
|
||||
// |-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
// | | | | | | //
|
||||
// | | | | | | //
|
||||
/*-----------------------*/ LGUI_T(KC_D), LT(MOUSE, KC_H), SFT_T(KC_T), CTL_T(KC_N), ALT_T(KC_S), TD(MINS_UNDS), //
|
||||
/*-----------------------*/ SGUI_T(KC_D), TD(H_MOU_GUI), LSFT_T(KC_T), LCTL_T(KC_N), LALT_T(KC_S), TD(MINS_UNDS), //
|
||||
// | | | | | | //
|
||||
// | | | | | | //
|
||||
// |-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
// | | | | | | //
|
||||
// | | | | | | //
|
||||
KC_LGUI, LCAG_T(KC_B), LT(HYPER, KC_M), LT(MEDIA_FN, KC_W), SGUI_T(KC_V), LGAS_T(KC_Z), COMPOSE, //
|
||||
KC_LGUI, LCSG_T(KC_B), TD(M_CHO_HYP), TD(W_MED_MEH), LCAG_T(KC_V), LASG_T(KC_Z), COMPOSE, //
|
||||
// | | | | | | //
|
||||
// | | | | | | ⎄ //
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
@@ -163,7 +163,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_RBRC, KC_LEFT, KC_DOWN, KC_RIGHT, XXXXXXX,
|
||||
|
||||
// right thumb
|
||||
KC_MS_BTN5, MO(HYPER),
|
||||
KC_MS_BTN5, MO(CHORD),
|
||||
KC_MS_BTN4,
|
||||
KC_MS_BTN3, KC_MS_BTN2, KC_MS_BTN1
|
||||
),
|
||||
@@ -295,10 +295,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// right thumb
|
||||
XXXXXXX, XXXXXXX,
|
||||
XXXXXXX,
|
||||
RGB_GREEN, XXXXXXX, XXXXXXX
|
||||
XXXXXXX, XXXXXXX, XXXXXXX
|
||||
),
|
||||
|
||||
[HYPER] = LAYOUT_ergodox(
|
||||
[CHORD] = LAYOUT_ergodox(
|
||||
// left hand
|
||||
XXXXXXX, HYPR(KC_F1), HYPR(KC_F2), HYPR(KC_F3), HYPR(KC_F4), HYPR(KC_F5), XXXXXXX,
|
||||
XXXXXXX, HYPR(KC_F6), HYPR(KC_F7), HYPR(KC_F8), HYPR(KC_F9), HYPR(KC_F10), XXXXXXX,
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
// Keycode aliases
|
||||
// Compound keycode aliases
|
||||
#define SCTL(kc) LSFT(LCTL(kc)) // Modifier keys: SHIFT+CTRL+kc combination.
|
||||
#define LGAS_T(kc) MT(MOD_LGUI | MOD_LALT | MOD_LSFT, kc) // Mod tap: kc when tapped, GUI+ALT+SHIFT when held.
|
||||
#define LAS_T(kc) MT(MOD_LALT | MOD_LSFT, kc) // Mod tap: kc when tapped, ALT+SHIFT whin held.
|
||||
|
||||
// Tap
|
||||
#define LASG_T(kc) MT(MOD_LGUI | MOD_LALT | MOD_LSFT, kc) // Mod tap: kc when tapped, GUI+ALT+SHIFT when held.
|
||||
#define LCSG_T(kc) MT(MOD_LGUI | MOD_LSFT | MOD_LCTL, kc) // Mod tap: kc when tapped, GUI+CTL+SHIFT when held.
|
||||
|
||||
#define LCG_T(kc) MT(MOD_LCTL | MOD_LGUI, kc) // Mod tap: kc when tapped, CTL+GUI when held.
|
||||
#define LAS_T(kc) MT(MOD_LALT | MOD_LSFT, kc) // Mod tap: kc when tapped, ALT+SHIFT when held.
|
||||
#define LAG_T(kc) MT(MOD_LALT | MOD_LGUI, kc) // Mod tap: kc when tapped, ALT+GUI when held.
|
||||
|
||||
// Others
|
||||
#define COMPOSE KC_RALT // Compose key (used to input characters like á, ñ, ü).
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
// Define custom user keycodes:
|
||||
enum custom_keycodes {
|
||||
PLACEHOLDER = SAFE_RANGE, // Can always be here.
|
||||
RGB_GREEN, // To set default RGB layer as green once.
|
||||
MY_CUSTOM_MACRO, // Custom macro example.
|
||||
MY_OTHER_MACRO, // Custom macro example.
|
||||
DYNAMIC_MACRO_RANGE // Should always be the last.
|
||||
|
||||
@@ -9,6 +9,15 @@
|
||||
#include "tap_dance/tap_dances.c"
|
||||
#include "user/matrix_scan_user.c"
|
||||
#include "tap_dance/mod_tap_layer_dances/none_lead.c"
|
||||
#include "tap_dance/mod_tap_layer_dances/dot_comm.c"
|
||||
#include "tap_dance/mod_tap_layer_dances/quot_dquot.c"
|
||||
#include "tap_dance/mod_tap_layer_dances/scln_coln.c"
|
||||
#include "tap_dance/mod_tap_layer_dances/u_arrows_gui.c"
|
||||
#include "tap_dance/mod_tap_layer_dances/h_mouse_gui.c"
|
||||
#include "tap_dance/mod_tap_layer_dances/j_media_meh.c"
|
||||
#include "tap_dance/mod_tap_layer_dances/w_media_meh.c"
|
||||
#include "tap_dance/mod_tap_layer_dances/k_numpad_hyper.c"
|
||||
#include "tap_dance/mod_tap_layer_dances/m_chords_hyper.c"
|
||||
#include "tap_dance/tap_dance_actions.c"
|
||||
#include "keycodes/custom_keycodes.c"
|
||||
#include "dynamic_macro.h" // Includes dynamic macro definitions, needed *after* the custom keycodes.
|
||||
|
||||
@@ -7,6 +7,6 @@ enum layers { // Hacker Dvorak keyboard layers:
|
||||
NUMPAD = 5, // * ATM style numpad with symbols and letters that should suffice to input any numeric literal.
|
||||
LAYERS = 6, // * Layer switcher used to change between DVORAK, PLOVER and GAMING layers.
|
||||
MEDIA_FN = 7, // * Media, RGB and function keys from F1 to F24 in symmetric fashion.
|
||||
HYPER = 8, // * Hot keys layer (uses hyper + F1 .. F24) suitable for global shortcut tasks.
|
||||
CHORD = 8, // * Hot keys layer (uses hyper + F1 .. F24) suitable for global shortcut tasks.
|
||||
FIRMWARE = 9 // * Layer with firmware related functionality, like the reset and EEPROM keys.
|
||||
};
|
||||
|
||||
@@ -1,14 +1 @@
|
||||
LEADER_EXTERNS();
|
||||
|
||||
void qk_leader_start(void) {
|
||||
if (!leading) {
|
||||
leading = true;
|
||||
leader_time = timer_read();
|
||||
leader_sequence_size = 0;
|
||||
leader_sequence[0] = 0;
|
||||
leader_sequence[1] = 0;
|
||||
leader_sequence[2] = 0;
|
||||
leader_sequence[3] = 0;
|
||||
leader_sequence[4] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"author": "SalchiPapa",
|
||||
"license": "GPL-2.0",
|
||||
"dependencies": {
|
||||
"gulp": "^3.9.1",
|
||||
"gulp": "^4.0.0",
|
||||
"gulp-run-command": "0.0.9"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Set any rules.mk overrides for your specific keymap here.
|
||||
# See rules at https://docs.qmk.fm/#/config_options?id=the-rulesmk-file
|
||||
|
||||
LINK_TIME_OPTIMIZATION_ENABLE = yes
|
||||
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
TAP_DANCE_ENABLE = yes
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700b).
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
//instanalize an instance of 'tap' for the Dot - Comma tap dance.
|
||||
static tap dot_comm_state = {
|
||||
.is_press_action = true,
|
||||
.state = 0
|
||||
};
|
||||
|
||||
void dot_comm_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
dot_comm_state.state = current_dance(state);
|
||||
switch (dot_comm_state.state) {
|
||||
case SINGLE_TAP:
|
||||
register_code(KC_DOT);
|
||||
break;
|
||||
|
||||
case SINGLE_HOLD:
|
||||
register_code(KC_LCTL);
|
||||
register_code(KC_LSFT);
|
||||
break;
|
||||
|
||||
case DOUBLE_TAP:
|
||||
register_code(KC_COMM);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void dot_comm_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
switch (dot_comm_state.state) {
|
||||
case SINGLE_TAP:
|
||||
unregister_code(KC_DOT);
|
||||
break;
|
||||
|
||||
case SINGLE_HOLD:
|
||||
unregister_code(KC_LCTL);
|
||||
unregister_code(KC_LSFT);
|
||||
break;
|
||||
|
||||
case DOUBLE_TAP:
|
||||
unregister_code(KC_COMM);
|
||||
break;
|
||||
}
|
||||
dot_comm_state.state = 0;
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
//instanalize an instance of 'tap' for the H - Mouse - Gui tap dance.
|
||||
static tap h_mouse_gui_state = {
|
||||
.is_press_action = true,
|
||||
.state = 0
|
||||
};
|
||||
|
||||
void h_mouse_gui_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
h_mouse_gui_state.state = current_dance(state);
|
||||
switch (h_mouse_gui_state.state) {
|
||||
case SINGLE_TAP:
|
||||
register_code(KC_H);
|
||||
break;
|
||||
|
||||
case SINGLE_HOLD:
|
||||
layer_on(MOUSE);
|
||||
break;
|
||||
|
||||
case DOUBLE_HOLD:
|
||||
register_code(KC_LGUI);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void h_mouse_gui_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
switch (h_mouse_gui_state.state) {
|
||||
case SINGLE_TAP:
|
||||
unregister_code(KC_H);
|
||||
break;
|
||||
|
||||
case SINGLE_HOLD:
|
||||
layer_off(MOUSE);
|
||||
break;
|
||||
|
||||
case DOUBLE_HOLD:
|
||||
unregister_code(KC_LGUI);
|
||||
break;
|
||||
}
|
||||
h_mouse_gui_state.state = 0;
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
//instanalize an instance of 'tap' for the J - Media - Meh tap dance.
|
||||
static tap j_media_meh_state = {
|
||||
.is_press_action = true,
|
||||
.state = 0
|
||||
};
|
||||
|
||||
void j_media_meh_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
j_media_meh_state.state = current_dance(state);
|
||||
switch (j_media_meh_state.state) {
|
||||
case SINGLE_TAP:
|
||||
register_code(KC_J);
|
||||
break;
|
||||
|
||||
case SINGLE_HOLD:
|
||||
layer_on(MEDIA_FN);
|
||||
break;
|
||||
|
||||
case DOUBLE_HOLD:
|
||||
register_code(KC_LCTL);
|
||||
register_code(KC_LSFT);
|
||||
register_code(KC_LALT);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void j_media_meh_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
switch (j_media_meh_state.state) {
|
||||
case SINGLE_TAP:
|
||||
unregister_code(KC_J);
|
||||
break;
|
||||
|
||||
case SINGLE_HOLD:
|
||||
layer_off(MEDIA_FN);
|
||||
break;
|
||||
|
||||
case DOUBLE_HOLD:
|
||||
unregister_code(KC_LCTL);
|
||||
unregister_code(KC_LSFT);
|
||||
unregister_code(KC_LALT);
|
||||
break;
|
||||
}
|
||||
j_media_meh_state.state = 0;
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
//instanalize an instance of 'tap' for the K - Numpad - Hyper tap dance.
|
||||
static tap k_numpad_hyper_state = {
|
||||
.is_press_action = true,
|
||||
.state = 0
|
||||
};
|
||||
|
||||
void k_numpad_hyper_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
k_numpad_hyper_state.state = current_dance(state);
|
||||
switch (k_numpad_hyper_state.state) {
|
||||
case SINGLE_TAP:
|
||||
register_code(KC_K);
|
||||
break;
|
||||
|
||||
case SINGLE_HOLD:
|
||||
layer_on(NUMPAD);
|
||||
break;
|
||||
|
||||
case DOUBLE_HOLD:
|
||||
register_code(KC_LCTL);
|
||||
register_code(KC_LSFT);
|
||||
register_code(KC_LALT);
|
||||
register_code(KC_LGUI);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void k_numpad_hyper_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
switch (k_numpad_hyper_state.state) {
|
||||
case SINGLE_TAP:
|
||||
unregister_code(KC_K);
|
||||
break;
|
||||
|
||||
case SINGLE_HOLD:
|
||||
layer_off(NUMPAD);
|
||||
break;
|
||||
|
||||
case DOUBLE_HOLD:
|
||||
unregister_code(KC_LCTL);
|
||||
unregister_code(KC_LSFT);
|
||||
unregister_code(KC_LALT);
|
||||
unregister_code(KC_LGUI);
|
||||
break;
|
||||
}
|
||||
k_numpad_hyper_state.state = 0;
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
//instanalize an instance of 'tap' for the M - Chords - Hyper tap dance.
|
||||
static tap m_chords_hyper_state = {
|
||||
.is_press_action = true,
|
||||
.state = 0
|
||||
};
|
||||
|
||||
void m_chords_hyper_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
m_chords_hyper_state.state = current_dance(state);
|
||||
switch (m_chords_hyper_state.state) {
|
||||
case SINGLE_TAP:
|
||||
register_code(KC_M);
|
||||
break;
|
||||
|
||||
case SINGLE_HOLD:
|
||||
layer_on(CHORD);
|
||||
break;
|
||||
|
||||
case DOUBLE_HOLD:
|
||||
register_code(KC_LCTL);
|
||||
register_code(KC_LSFT);
|
||||
register_code(KC_LALT);
|
||||
register_code(KC_LGUI);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void m_chords_hyper_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
switch (m_chords_hyper_state.state) {
|
||||
case SINGLE_TAP:
|
||||
unregister_code(KC_M);
|
||||
break;
|
||||
|
||||
case SINGLE_HOLD:
|
||||
layer_off(CHORD);
|
||||
break;
|
||||
|
||||
case DOUBLE_HOLD:
|
||||
unregister_code(KC_LCTL);
|
||||
unregister_code(KC_LSFT);
|
||||
unregister_code(KC_LALT);
|
||||
unregister_code(KC_LGUI);
|
||||
break;
|
||||
}
|
||||
m_chords_hyper_state.state = 0;
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
//instanalize an instance of 'tap' for the None - Lead tap dance.
|
||||
static tap none_lead_state = {
|
||||
.is_press_action = true,
|
||||
.state = 0
|
||||
.is_press_action = true,
|
||||
.state = 0
|
||||
};
|
||||
|
||||
void none_lead_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
//instanalize an instance of 'tap' for the Quote - Double Quote tap dance.
|
||||
static tap quot_dquot_state = {
|
||||
.is_press_action = true,
|
||||
.state = 0
|
||||
};
|
||||
|
||||
void quot_dquot_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
quot_dquot_state.state = current_dance(state);
|
||||
switch (quot_dquot_state.state) {
|
||||
case SINGLE_TAP:
|
||||
register_code(KC_QUOT);
|
||||
break;
|
||||
|
||||
case SINGLE_HOLD:
|
||||
register_code(KC_LCTL);
|
||||
register_code(KC_LALT);
|
||||
break;
|
||||
|
||||
case DOUBLE_TAP:
|
||||
register_code16(KC_DQUO);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void quot_dquot_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
switch (quot_dquot_state.state) {
|
||||
case SINGLE_TAP:
|
||||
unregister_code(KC_QUOT);
|
||||
break;
|
||||
|
||||
case SINGLE_HOLD:
|
||||
unregister_code(KC_LCTL);
|
||||
unregister_code(KC_LALT);
|
||||
break;
|
||||
|
||||
case DOUBLE_TAP:
|
||||
unregister_code16(KC_DQUO);
|
||||
break;
|
||||
}
|
||||
quot_dquot_state.state = 0;
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
//instanalize an instance of 'tap' for the Semicolon - Colon tap dance.
|
||||
static tap scln_coln_state = {
|
||||
.is_press_action = true,
|
||||
.state = 0
|
||||
};
|
||||
|
||||
void scln_coln_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
scln_coln_state.state = current_dance(state);
|
||||
switch (scln_coln_state.state) {
|
||||
case SINGLE_TAP:
|
||||
register_code(KC_SCLN);
|
||||
break;
|
||||
|
||||
case SINGLE_HOLD:
|
||||
register_code(KC_LALT);
|
||||
register_code(KC_LSFT);
|
||||
register_code(KC_LGUI);
|
||||
break;
|
||||
|
||||
case DOUBLE_TAP:
|
||||
register_code16(KC_COLN);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void scln_coln_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
switch (scln_coln_state.state) {
|
||||
case SINGLE_TAP:
|
||||
unregister_code(KC_SCLN);
|
||||
break;
|
||||
|
||||
case SINGLE_HOLD:
|
||||
unregister_code(KC_LALT);
|
||||
unregister_code(KC_LSFT);
|
||||
unregister_code(KC_LGUI);
|
||||
break;
|
||||
|
||||
case DOUBLE_TAP:
|
||||
unregister_code16(KC_COLN);
|
||||
break;
|
||||
}
|
||||
scln_coln_state.state = 0;
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
//instanalize an instance of 'tap' for the U - Arrows - Gui tap dance.
|
||||
static tap u_arrows_gui_state = {
|
||||
.is_press_action = true,
|
||||
.state = 0
|
||||
};
|
||||
|
||||
void u_arrows_gui_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
u_arrows_gui_state.state = current_dance(state);
|
||||
switch (u_arrows_gui_state.state) {
|
||||
case SINGLE_TAP:
|
||||
register_code(KC_U);
|
||||
break;
|
||||
|
||||
case SINGLE_HOLD:
|
||||
layer_on(ARROWS);
|
||||
break;
|
||||
|
||||
case DOUBLE_HOLD:
|
||||
register_code(KC_LGUI);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void u_arrows_gui_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
switch (u_arrows_gui_state.state) {
|
||||
case SINGLE_TAP:
|
||||
unregister_code(KC_U);
|
||||
break;
|
||||
|
||||
case SINGLE_HOLD:
|
||||
layer_off(ARROWS);
|
||||
break;
|
||||
|
||||
case DOUBLE_HOLD:
|
||||
unregister_code(KC_LGUI);
|
||||
break;
|
||||
}
|
||||
u_arrows_gui_state.state = 0;
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
//instanalize an instance of 'tap' for the W - Media - Meh tap dance.
|
||||
static tap w_media_meh_state = {
|
||||
.is_press_action = true,
|
||||
.state = 0
|
||||
};
|
||||
|
||||
void w_media_meh_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
w_media_meh_state.state = current_dance(state);
|
||||
switch (w_media_meh_state.state) {
|
||||
case SINGLE_TAP:
|
||||
register_code(KC_W);
|
||||
break;
|
||||
|
||||
case SINGLE_HOLD:
|
||||
layer_on(MEDIA_FN);
|
||||
break;
|
||||
|
||||
case DOUBLE_HOLD:
|
||||
register_code(KC_LCTL);
|
||||
register_code(KC_LSFT);
|
||||
register_code(KC_LALT);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void w_media_meh_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
switch (w_media_meh_state.state) {
|
||||
case SINGLE_TAP:
|
||||
unregister_code(KC_W);
|
||||
break;
|
||||
|
||||
case SINGLE_HOLD:
|
||||
layer_off(MEDIA_FN);
|
||||
break;
|
||||
|
||||
case DOUBLE_HOLD:
|
||||
unregister_code(KC_LCTL);
|
||||
unregister_code(KC_LSFT);
|
||||
unregister_code(KC_LALT);
|
||||
break;
|
||||
}
|
||||
w_media_meh_state.state = 0;
|
||||
}
|
||||
@@ -1,20 +1,26 @@
|
||||
// Register the double tap dances:
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[EQL_PLUS] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, KC_PLUS),
|
||||
[MINS_UNDS] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, KC_UNDS),
|
||||
[SLSH_BSLS] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_BSLS),
|
||||
[GRV_TILD] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, KC_TILD),
|
||||
[QUOT_DQUO] = ACTION_TAP_DANCE_DOUBLE(KC_QUOT, KC_DQUO),
|
||||
[SCLN_COLN] = ACTION_TAP_DANCE_DOUBLE(KC_SCLN, KC_COLN),
|
||||
[ASTR_CIRC] = ACTION_TAP_DANCE_DOUBLE(KC_ASTR, KC_CIRC),
|
||||
[APMR_PIPE] = ACTION_TAP_DANCE_DOUBLE(KC_AMPR, KC_PIPE),
|
||||
[EXLM_QUES] = ACTION_TAP_DANCE_DOUBLE(KC_EXLM, KC_QUES),
|
||||
[HASH_PERC] = ACTION_TAP_DANCE_DOUBLE(KC_HASH, KC_PERC),
|
||||
[AT_DLR] = ACTION_TAP_DANCE_DOUBLE(KC_AT, KC_DLR),
|
||||
[LPRN_LBRC] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_LBRC),
|
||||
[RPRN_RBRC] = ACTION_TAP_DANCE_DOUBLE(KC_RPRN, KC_RBRC),
|
||||
[LCBR_LABK] = ACTION_TAP_DANCE_DOUBLE(KC_LCBR, KC_LABK),
|
||||
[RCBR_RABK] = ACTION_TAP_DANCE_DOUBLE(KC_RCBR, KC_RABK),
|
||||
[DOT_COMM] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, KC_COMM),
|
||||
[NONE_LEAD] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, none_lead_finished, none_lead_reset, DANCING_TERM)
|
||||
[EQL_PLUS] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, KC_PLUS),
|
||||
[MINS_UNDS] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, KC_UNDS),
|
||||
[SLSH_BSLS] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_BSLS),
|
||||
[GRV_TILD] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, KC_TILD),
|
||||
[ASTR_CIRC] = ACTION_TAP_DANCE_DOUBLE(KC_ASTR, KC_CIRC),
|
||||
[APMR_PIPE] = ACTION_TAP_DANCE_DOUBLE(KC_AMPR, KC_PIPE),
|
||||
[EXLM_QUES] = ACTION_TAP_DANCE_DOUBLE(KC_EXLM, KC_QUES),
|
||||
[HASH_PERC] = ACTION_TAP_DANCE_DOUBLE(KC_HASH, KC_PERC),
|
||||
[AT_DLR] = ACTION_TAP_DANCE_DOUBLE(KC_AT, KC_DLR),
|
||||
[LPRN_LBRC] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_LBRC),
|
||||
[RPRN_RBRC] = ACTION_TAP_DANCE_DOUBLE(KC_RPRN, KC_RBRC),
|
||||
[LCBR_LABK] = ACTION_TAP_DANCE_DOUBLE(KC_LCBR, KC_LABK),
|
||||
[RCBR_RABK] = ACTION_TAP_DANCE_DOUBLE(KC_RCBR, KC_RABK),
|
||||
[SCLN_COLN] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, scln_coln_finished, scln_coln_reset, DANCING_TERM),
|
||||
[QUOT_DQUO] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, quot_dquot_finished, quot_dquot_reset, DANCING_TERM),
|
||||
[DOT_COMM] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, dot_comm_finished, dot_comm_reset, DANCING_TERM),
|
||||
[NONE_LEAD] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, none_lead_finished, none_lead_reset, DANCING_TERM),
|
||||
[U_ARR_GUI] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, u_arrows_gui_finished, u_arrows_gui_reset, DANCING_TERM),
|
||||
[H_MOU_GUI] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, h_mouse_gui_finished, h_mouse_gui_reset, DANCING_TERM),
|
||||
[J_MED_MEH] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, j_media_meh_finished, j_media_meh_reset, DANCING_TERM),
|
||||
[W_MED_MEH] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, w_media_meh_finished, w_media_meh_reset, DANCING_TERM),
|
||||
[K_NUM_HYP] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, k_numpad_hyper_finished, k_numpad_hyper_reset, DANCING_TERM),
|
||||
[M_CHO_HYP] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, m_chords_hyper_finished, m_chords_hyper_reset, DANCING_TERM),
|
||||
};
|
||||
|
||||
@@ -4,71 +4,95 @@
|
||||
// Mod tap dances: // | | | | | //
|
||||
enum tap_dances { //--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
EQL_PLUS = 0, // = | + | | | | //
|
||||
EQL_PLUS = 0, // = | | + | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
MINS_UNDS = 1, // - | _ | | | | //
|
||||
MINS_UNDS = 1, // - | | _ | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
SLSH_BSLS = 2, // / | \ | | | | //
|
||||
SLSH_BSLS = 2, // / | | \ | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
GRV_TILD = 3, // ` | ~ | | | | //
|
||||
GRV_TILD = 3, // ` | | ~ | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
QUOT_DQUO = 4, // ' | " | | | | //
|
||||
QUOT_DQUO = 4, // ' | CTRL+ALT | " | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
SCLN_COLN = 5, // ; | : | | | | //
|
||||
SCLN_COLN = 5, // ; |ALT+SHIFT+META | : | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
ASTR_CIRC = 6, // * | ^ | | | | //
|
||||
ASTR_CIRC = 6, // * | | ^ | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
APMR_PIPE = 7, // & | | | | | | //
|
||||
APMR_PIPE = 7, // & | | | | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
EXLM_QUES = 8, // ! | ? | | | | //
|
||||
EXLM_QUES = 8, // ! | | ? | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
HASH_PERC = 9, // # | % | | | | //
|
||||
HASH_PERC = 9, // # | | % | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
AT_DLR = 10, // @ | $ | | | | //
|
||||
AT_DLR = 10, // @ | | $ | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
LPRN_LBRC = 11, // ( | [ | | | | //
|
||||
LPRN_LBRC = 11, // ( | | [ | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
RPRN_RBRC = 12, // ) | ] | | | | //
|
||||
RPRN_RBRC = 12, // ) | | ] | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
LCBR_LABK = 13, // { | < | | | | //
|
||||
LCBR_LABK = 13, // { | | < | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
RCBR_RABK = 14, // } | > | | | | //
|
||||
RCBR_RABK = 14, // } | | > | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
DOT_COMM = 15, // . | , | | | | //
|
||||
DOT_COMM = 15, // . | CTRL+SHIFT | , | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
NONE_LEAD = 16, // NONE | ALT+SHIFT | LEAD | | | //
|
||||
NONE_LEAD = 16, // NONE | ALT+SHIFT | LEAD | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
U_ARR_GUI = 17, // U | ARROWS | | GUI | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
H_MOU_GUI = 18, // H | MOUSE | | GUI | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
J_MED_MEH = 19, // J | MEDIA_FN | | MEH | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
W_MED_MEH = 20, // W | MEDIA_FN | | MEH | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
K_NUM_HYP = 21, // K | NUMPAD | | HYPER | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
M_CHO_HYP = 22, // M | CHORD | | HYPER | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
};
|
||||
|
||||
@@ -91,7 +91,7 @@ uint32_t layer_state_set_user(uint32_t state) {
|
||||
|
||||
break;
|
||||
|
||||
case HYPER:
|
||||
case CHORD:
|
||||
rgblight_sethsv_noeeprom_magenta();
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
|
||||
|
||||
|
||||
8
keyboards/fc660c/keymaps/siroleo/README.md
Normal file
8
keyboards/fc660c/keymaps/siroleo/README.md
Normal file
@@ -0,0 +1,8 @@
|
||||
# Sid's mods for the fc660c
|
||||
|
||||
Emulates original keymap with modifications for:
|
||||
|
||||
- Media keys
|
||||
- Grave key(s)
|
||||
- Reset on the function layer
|
||||
- Mouse keys ala Tada68
|
||||
19
keyboards/fc660c/keymaps/siroleo/config.h
Normal file
19
keyboards/fc660c/keymaps/siroleo/config.h
Normal file
@@ -0,0 +1,19 @@
|
||||
/* Copyright 2019 Khader Syed
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// place overrides here
|
||||
60
keyboards/fc660c/keymaps/siroleo/keymap.c
Normal file
60
keyboards/fc660c/keymaps/siroleo/keymap.c
Normal file
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
Copyright 2019 Khader Syed
|
||||
|
||||
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
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* BASE layer: Default Layer
|
||||
* ,--------------------------------------------------------------------------------------------------.
|
||||
* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace | | ` |
|
||||
* |-----------------------------------------------------------------------------------------+ +-----+
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp | | Del |
|
||||
* |-----------------------------------------------------------------------------------------+ +-----+
|
||||
* | ` | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
|
||||
* |--------------------------------------------------------------------------------------------+
|
||||
* | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Up |
|
||||
* +--------------------------------------------------------------------------------------------+-----+
|
||||
* | Ctrl | Alt | Gui | Space | Fn | Ctrl | Alt | Left| Down|Right|
|
||||
* `--------------------------------------------------------------------------------------------------´
|
||||
*/
|
||||
[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_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,
|
||||
KC_GRV ,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, MO(1),KC_RCTL,KC_RALT, KC_LEFT,KC_DOWN,KC_RGHT
|
||||
),
|
||||
/* FN layer
|
||||
* ,--------------------------------------------------------------------------------------------------.
|
||||
* | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Mute| | Vol-|
|
||||
* |-----------------------------------------------------------------------------------------+ +-----+
|
||||
* | | | | | | | | |PrtSc| Slck| Paus| | | | | Vol+|
|
||||
* |-----------------------------------------------------------------------------------------+ +-----+
|
||||
* | | | | | | | | | Home| PgUp| | | |
|
||||
* |--------------------------------------------------------------------------------------------+
|
||||
* | | | | | | | | | End | PgDn| | Mouse Btn 1 | MsU |
|
||||
* +--------------------------------------------------------------------------------------------+-----+
|
||||
* | | Reset | | | | | | MsL | MsD | MsR |
|
||||
* `--------------------------------------------------------------------------------------------------´
|
||||
*/
|
||||
[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_MUTE, KC_VOLU,
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK,KC_PAUS,_______,_______,_______, KC_VOLD,
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,KC_HOME,KC_PGUP,_______,_______, _______,
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,KC_END, KC_PGDN,_______,KC_BTN1, KC_MS_U,
|
||||
_______, RESET,_______, _______, MO(1), _______,_______, KC_MS_L,KC_MS_D,KC_MS_R
|
||||
)
|
||||
};
|
||||
@@ -36,7 +36,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#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 EXPANDER_COL_REGISTER GPIOA
|
||||
#define EXPANDER_ROW_REGISTER GPIOB
|
||||
#define MATRIX_EXPANDER_COL_PINS {0, 1, 2, 3, 4, 5}
|
||||
#define MATRIX_EXPANDER_ROW_PINS {0, 1, 2, 3, 4, 5}
|
||||
|
||||
|
||||
@@ -82,10 +82,6 @@ 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) {}
|
||||
@@ -166,17 +162,17 @@ void init_expander(void) {
|
||||
|
||||
/*
|
||||
Pin direction and pull-up depends on both the diode direction
|
||||
and on whether the column register is 0 ("A") or 1 ("B"):
|
||||
and on whether the column register is GPIOA or GPIOB
|
||||
+-------+---------------+---------------+
|
||||
| | ROW2COL | COL2ROW |
|
||||
+-------+---------------+---------------+
|
||||
| Reg 0 | input, output | output, input |
|
||||
| GPIOA | input, output | output, input |
|
||||
+-------+---------------+---------------+
|
||||
| Reg 1 | output, input | input, output |
|
||||
| GPIOB | output, input | input, output |
|
||||
+-------+---------------+---------------+
|
||||
*/
|
||||
|
||||
#if (EXPANDER_COLUMN_REGISTER == 0)
|
||||
#if (EXPANDER_COL_REGISTER == GPIOA)
|
||||
# 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;
|
||||
@@ -184,7 +180,7 @@ void init_expander(void) {
|
||||
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)
|
||||
#elif (EXPANDER_COL_REGISTER == GPIOB)
|
||||
# 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;
|
||||
@@ -202,7 +198,7 @@ void init_expander(void) {
|
||||
// - 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 (EXPANDER_COL_REGISTER == GPIOA)
|
||||
# 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;
|
||||
@@ -210,7 +206,7 @@ void init_expander(void) {
|
||||
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)
|
||||
#elif (EXPANDER_COL_REGISTER == GPIOB)
|
||||
# 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;
|
||||
@@ -365,11 +361,11 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)
|
||||
|
||||
// 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;
|
||||
expander_status = i2c_start(I2C_ADDR_WRITE); if (expander_status) goto out;
|
||||
expander_status = i2c_write(EXPANDER_COL_REGISTER); 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;
|
||||
current_matrix[current_row] |= (~i2c_readNak()) & expander_input_pin_mask;
|
||||
|
||||
out:
|
||||
i2c_stop();
|
||||
@@ -394,9 +390,9 @@ static void select_row(uint8_t row) {
|
||||
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<<row)); if (expander_status) goto out;
|
||||
expander_status = i2c_start(I2C_ADDR_WRITE); if (expander_status) goto out;
|
||||
expander_status = i2c_write(EXPANDER_ROW_REGISTER); if (expander_status) goto out;
|
||||
expander_status = i2c_write(0xFF & ~(1<<row)); if (expander_status) goto out;
|
||||
out:
|
||||
i2c_stop();
|
||||
}
|
||||
@@ -454,9 +450,9 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col)
|
||||
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;
|
||||
expander_status = i2c_start(I2C_ADDR_WRITE); if (expander_status) goto out;
|
||||
expander_status = i2c_write(EXPANDER_ROW_REGISTER); if (expander_status) goto out;
|
||||
expander_status = i2c_start(I2C_ADDR_READ); if (expander_status) goto out;
|
||||
column_state = i2c_readNak();
|
||||
|
||||
out:
|
||||
@@ -504,9 +500,9 @@ static void select_col(uint8_t col)
|
||||
} else {
|
||||
// set active col low : 0
|
||||
// set other cols hi-Z : 1
|
||||
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_write(0xFF & ~(1<<col)); if (expander_status) goto out;
|
||||
expander_status = i2c_start(I2C_ADDR_WRITE); if (expander_status) goto out;
|
||||
expander_status = i2c_write(EXPANDER_COL_REGISTER); if (expander_status) goto out;
|
||||
expander_status = i2c_write(0xFF & ~(1<<col)); if (expander_status) goto out;
|
||||
out:
|
||||
i2c_stop();
|
||||
}
|
||||
|
||||
49
keyboards/handwired/jopr/config.h
Normal file
49
keyboards/handwired/jopr/config.h
Normal file
@@ -0,0 +1,49 @@
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x4DAE
|
||||
#define PRODUCT_ID 0x1000
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER joelproko
|
||||
#define PRODUCT jopr-106-Nl2SR-Cl2nL
|
||||
#define DESCRIPTION jopr-106 Mechanical Keyboard
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 10
|
||||
#define MATRIX_COLS 11
|
||||
|
||||
/* key matrix pins */
|
||||
#define MATRIX_ROW_PINS { D0, D6, D2, D4, D3, D5, D7, C6, B6, F5 }
|
||||
#define MATRIX_COL_PINS { B3, B2, B1, B0, F7, E6, F6, B5, C7, B4, D1 }
|
||||
#define UNUSED_PINS { B7 }
|
||||
|
||||
/* 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 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
|
||||
/* #define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) */
|
||||
#define NO_ACTION_ONESHOT
|
||||
#define TAPPING_TOGGLE 3
|
||||
|
||||
/*#define RGB_DI_PIN F4*/
|
||||
#ifdef RGB_DI_PIN
|
||||
/*#define RGBLIGHT_ANIMATIONS*/
|
||||
#define RGBLED_NUM 1
|
||||
#define RGBLIGHT_HUE_STEP 1
|
||||
#define RGBLIGHT_SAT_STEP 1
|
||||
#define RGBLIGHT_VAL_STEP 1
|
||||
#endif
|
||||
562
keyboards/handwired/jopr/info.json
Normal file
562
keyboards/handwired/jopr/info.json
Normal file
@@ -0,0 +1,562 @@
|
||||
{
|
||||
"keyboard_name": "jopr-106",
|
||||
"url": "https://github.com/joelproko/keyboard_layout_jopr",
|
||||
"maintainer": "joelproko",
|
||||
"width": 22.5,
|
||||
"height": 6.25,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"key_count": 106,
|
||||
"layout": [
|
||||
{
|
||||
"label": "MX_A0",
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "MX_B0",
|
||||
"x": 1.25,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "MX_C0",
|
||||
"x": 2.25,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "MX_D0",
|
||||
"x": 3.25,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "MX_E0",
|
||||
"x": 4.25,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "MX_F0",
|
||||
"x": 5.5,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "MX_G0",
|
||||
"x": 6.5,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "MX_H0",
|
||||
"x": 7.5,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "MX_I0",
|
||||
"x": 8.5,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "MX_J0",
|
||||
"x": 9.75,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "MX_A6",
|
||||
"x": 10.75,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "MX_B6",
|
||||
"x": 11.75,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "MX_C6",
|
||||
"x": 12.75,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "MX_D6",
|
||||
"x": 14,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "MX_E6",
|
||||
"x": 15.25,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "MX_F6",
|
||||
"x": 16.25,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "MX_G6",
|
||||
"x": 17.25,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "MX_H6",
|
||||
"x": 18.25,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "MX_A1",
|
||||
"x": 0,
|
||||
"y": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_B1",
|
||||
"x": 1,
|
||||
"y": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_C1",
|
||||
"x": 2,
|
||||
"y": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_D1",
|
||||
"x": 3,
|
||||
"y": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_E1",
|
||||
"x": 4,
|
||||
"y": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_F1",
|
||||
"x": 5,
|
||||
"y": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_G1",
|
||||
"x": 6,
|
||||
"y": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_H1",
|
||||
"x": 7,
|
||||
"y": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_I1",
|
||||
"x": 8,
|
||||
"y": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_J1",
|
||||
"x": 9,
|
||||
"y": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_A7",
|
||||
"x": 10,
|
||||
"y": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_B7",
|
||||
"x": 11,
|
||||
"y": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_C7",
|
||||
"x": 12,
|
||||
"y": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_D7",
|
||||
"x": 13,
|
||||
"y": 1.25,
|
||||
"w": 2
|
||||
},
|
||||
{
|
||||
"label": "MX_E7",
|
||||
"x": 15.25,
|
||||
"y": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_F7",
|
||||
"x": 16.25,
|
||||
"y": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_G7",
|
||||
"x": 17.25,
|
||||
"y": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_H7",
|
||||
"x": 18.25,
|
||||
"y": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_A2",
|
||||
"x": 0,
|
||||
"y": 2.25,
|
||||
"w": 1.5
|
||||
},
|
||||
{
|
||||
"label": "MX_B2",
|
||||
"x": 1.5,
|
||||
"y": 2.25
|
||||
},
|
||||
{
|
||||
"label": "MX_C2",
|
||||
"x": 2.5,
|
||||
"y": 2.25
|
||||
},
|
||||
{
|
||||
"label": "MX_D2",
|
||||
"x": 3.5,
|
||||
"y": 2.25
|
||||
},
|
||||
{
|
||||
"label": "MX_E2",
|
||||
"x": 4.5,
|
||||
"y": 2.25
|
||||
},
|
||||
{
|
||||
"label": "MX_F2",
|
||||
"x": 5.5,
|
||||
"y": 2.25
|
||||
},
|
||||
{
|
||||
"label": "MX_G2",
|
||||
"x": 6.5,
|
||||
"y": 2.25
|
||||
},
|
||||
{
|
||||
"label": "MX_H2",
|
||||
"x": 7.5,
|
||||
"y": 2.25
|
||||
},
|
||||
{
|
||||
"label": "MX_I2",
|
||||
"x": 8.5,
|
||||
"y": 2.25
|
||||
},
|
||||
{
|
||||
"label": "MX_J2",
|
||||
"x": 9.5,
|
||||
"y": 2.25
|
||||
},
|
||||
{
|
||||
"label": "MX_A8",
|
||||
"x": 10.5,
|
||||
"y": 2.25
|
||||
},
|
||||
{
|
||||
"label": "MX_B8",
|
||||
"x": 11.5,
|
||||
"y": 2.25
|
||||
},
|
||||
{
|
||||
"label": "MX_C8",
|
||||
"x": 12.5,
|
||||
"y": 2.25
|
||||
},
|
||||
{
|
||||
"label": "MX_D8",
|
||||
"x": 13.75,
|
||||
"y": 2.25,
|
||||
"w": 1.25,
|
||||
"h": 2
|
||||
},
|
||||
{
|
||||
"label": "MX_E8",
|
||||
"x": 15.25,
|
||||
"y": 2.25
|
||||
},
|
||||
{
|
||||
"label": "MX_F8",
|
||||
"x": 16.25,
|
||||
"y": 2.25
|
||||
},
|
||||
{
|
||||
"label": "MX_G8",
|
||||
"x": 17.25,
|
||||
"y": 2.25
|
||||
},
|
||||
{
|
||||
"label": "MX_H8",
|
||||
"x": 18.25,
|
||||
"y": 2.25,
|
||||
"h": 2
|
||||
},
|
||||
{
|
||||
"label": "MX_A3",
|
||||
"x": 0,
|
||||
"y": 3.25,
|
||||
"w": 1.75
|
||||
},
|
||||
{
|
||||
"label": "MX_B3",
|
||||
"x": 1.75,
|
||||
"y": 3.25
|
||||
},
|
||||
{
|
||||
"label": "MX_C3",
|
||||
"x": 2.75,
|
||||
"y": 3.25
|
||||
},
|
||||
{
|
||||
"label": "MX_D3",
|
||||
"x": 3.75,
|
||||
"y": 3.25
|
||||
},
|
||||
{
|
||||
"label": "MX_E3",
|
||||
"x": 4.75,
|
||||
"y": 3.25
|
||||
},
|
||||
{
|
||||
"label": "MX_F3",
|
||||
"x": 5.75,
|
||||
"y": 3.25
|
||||
},
|
||||
{
|
||||
"label": "MX_G3",
|
||||
"x": 6.75,
|
||||
"y": 3.25
|
||||
},
|
||||
{
|
||||
"label": "MX_H3",
|
||||
"x": 7.75,
|
||||
"y": 3.25
|
||||
},
|
||||
{
|
||||
"label": "MX_I3",
|
||||
"x": 8.75,
|
||||
"y": 3.25
|
||||
},
|
||||
{
|
||||
"label": "MX_J3",
|
||||
"x": 9.75,
|
||||
"y": 3.25
|
||||
},
|
||||
{
|
||||
"label": "MX_A9",
|
||||
"x": 10.75,
|
||||
"y": 3.25
|
||||
},
|
||||
{
|
||||
"label": "MX_B9",
|
||||
"x": 11.75,
|
||||
"y": 3.25
|
||||
},
|
||||
{
|
||||
"label": "MX_C9",
|
||||
"x": 12.75,
|
||||
"y": 3.25
|
||||
},
|
||||
{
|
||||
"label": "MX_E9",
|
||||
"x": 15.25,
|
||||
"y": 3.25
|
||||
},
|
||||
{
|
||||
"label": "MX_F9",
|
||||
"x": 16.25,
|
||||
"y": 3.25
|
||||
},
|
||||
{
|
||||
"label": "MX_G9",
|
||||
"x": 17.25,
|
||||
"y": 3.25
|
||||
},
|
||||
{
|
||||
"label": "MX_H9",
|
||||
"x": 19.5,
|
||||
"y": 3.25
|
||||
},
|
||||
{
|
||||
"label": "MX_K1",
|
||||
"x": 20.5,
|
||||
"y": 3.25
|
||||
},
|
||||
{
|
||||
"label": "MX_K0",
|
||||
"x": 21.5,
|
||||
"y": 3.25
|
||||
},
|
||||
{
|
||||
"label": "MX_A4",
|
||||
"x": 0,
|
||||
"y": 4.25,
|
||||
"w": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_B4",
|
||||
"x": 1.25,
|
||||
"y": 4.25
|
||||
},
|
||||
{
|
||||
"label": "MX_C4",
|
||||
"x": 2.25,
|
||||
"y": 4.25
|
||||
},
|
||||
{
|
||||
"label": "MX_D4",
|
||||
"x": 3.25,
|
||||
"y": 4.25
|
||||
},
|
||||
{
|
||||
"label": "MX_E4",
|
||||
"x": 4.25,
|
||||
"y": 4.25
|
||||
},
|
||||
{
|
||||
"label": "MX_F4",
|
||||
"x": 5.25,
|
||||
"y": 4.25
|
||||
},
|
||||
{
|
||||
"label": "MX_G4",
|
||||
"x": 6.25,
|
||||
"y": 4.25
|
||||
},
|
||||
{
|
||||
"label": "MX_H4",
|
||||
"x": 7.25,
|
||||
"y": 4.25
|
||||
},
|
||||
{
|
||||
"label": "MX_I4",
|
||||
"x": 8.25,
|
||||
"y": 4.25
|
||||
},
|
||||
{
|
||||
"label": "MX_J4",
|
||||
"x": 9.25,
|
||||
"y": 4.25
|
||||
},
|
||||
{
|
||||
"label": "MX_I9",
|
||||
"x": 10.25,
|
||||
"y": 4.25
|
||||
},
|
||||
{
|
||||
"label": "MX_I8",
|
||||
"x": 11.25,
|
||||
"y": 4.25
|
||||
},
|
||||
{
|
||||
"label": "MX_I7",
|
||||
"x": 12.25,
|
||||
"y": 4.25,
|
||||
"w": 2.75
|
||||
},
|
||||
{
|
||||
"label": "MX_I6",
|
||||
"x": 15.25,
|
||||
"y": 4.25
|
||||
},
|
||||
{
|
||||
"label": "MX_J9",
|
||||
"x": 16.25,
|
||||
"y": 4.25
|
||||
},
|
||||
{
|
||||
"label": "MX_J8",
|
||||
"x": 17.25,
|
||||
"y": 4.25
|
||||
},
|
||||
{
|
||||
"label": "MX_J7",
|
||||
"x": 18.25,
|
||||
"y": 4.25,
|
||||
"h": 2
|
||||
},
|
||||
{
|
||||
"label": "MX_J6",
|
||||
"x": 19.5,
|
||||
"y": 4.25
|
||||
},
|
||||
{
|
||||
"label": "MX_K3",
|
||||
"x": 20.5,
|
||||
"y": 4.25
|
||||
},
|
||||
{
|
||||
"label": "MX_K2",
|
||||
"x": 21.5,
|
||||
"y": 4.25
|
||||
},
|
||||
{
|
||||
"label": "MX_A5",
|
||||
"x": 0,
|
||||
"y": 5.25,
|
||||
"w": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_B5",
|
||||
"x": 1.25,
|
||||
"y": 5.25,
|
||||
"w": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_C5",
|
||||
"x": 2.5,
|
||||
"y": 5.25,
|
||||
"w": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_D5",
|
||||
"x": 3.75,
|
||||
"y": 5.25,
|
||||
"w": 6.25
|
||||
},
|
||||
{
|
||||
"label": "MX_J5",
|
||||
"x": 10,
|
||||
"y": 5.25,
|
||||
"w": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_I5",
|
||||
"x": 11.25,
|
||||
"y": 5.25,
|
||||
"w": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_K9",
|
||||
"x": 12.5,
|
||||
"y": 5.25,
|
||||
"w": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_E5",
|
||||
"x": 13.75,
|
||||
"y": 5.25,
|
||||
"w": 1.25
|
||||
},
|
||||
{
|
||||
"label": "MX_K8",
|
||||
"x": 15.25,
|
||||
"y": 5.25,
|
||||
"w": 2
|
||||
},
|
||||
{
|
||||
"label": "MX_K7",
|
||||
"x": 17.25,
|
||||
"y": 5.25
|
||||
},
|
||||
{
|
||||
"label": "MX_K6",
|
||||
"x": 19.5,
|
||||
"y": 5.25
|
||||
},
|
||||
{
|
||||
"label": "MX_K5",
|
||||
"x": 20.5,
|
||||
"y": 5.25
|
||||
},
|
||||
{
|
||||
"label": "MX_K4",
|
||||
"x": 21.5,
|
||||
"y": 5.25
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
11
keyboards/handwired/jopr/jopr.c
Normal file
11
keyboards/handwired/jopr/jopr.c
Normal file
@@ -0,0 +1,11 @@
|
||||
#include "jopr.h"
|
||||
void matrix_init_kb(void) {
|
||||
matrix_init_user();
|
||||
led_init_ports();
|
||||
};
|
||||
|
||||
void led_init_ports(void) {
|
||||
setPinOutput(F0);
|
||||
setPinOutput(F1);
|
||||
setPinOutput(F4);
|
||||
}
|
||||
24
keyboards/handwired/jopr/jopr.h
Normal file
24
keyboards/handwired/jopr/jopr.h
Normal file
@@ -0,0 +1,24 @@
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define LAYOUT( \
|
||||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K600, K601, K602, K603, K604, K605, K606, K607, \
|
||||
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K700, K701, K702, K703, K704, K705, K706, K707, \
|
||||
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K800, K801, K802, K803, K804, K805, K806, K807, \
|
||||
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K900, K901, K902, K904, K905, K906, K907, K110, K010, \
|
||||
K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K908, K808, K708, K608, K909, K809, K709, K609, K310, K210, \
|
||||
K500, K501, K502, K503, K509, K508, K910, K504, K810, K710, K610, K510, K410 \
|
||||
) \
|
||||
{ \
|
||||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010 }, \
|
||||
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110 }, \
|
||||
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210 }, \
|
||||
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310 }, \
|
||||
{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410 }, \
|
||||
{ K500, K501, K502, K503, K504, KC_NO, KC_NO, KC_NO, K508, K509, K510 }, \
|
||||
{ K600, K601, K602, K603, K604, K605, K606, K607, K608, K609, K610 }, \
|
||||
{ K700, K701, K702, K703, K704, K705, K706, K707, K708, K709, K710 }, \
|
||||
{ K800, K801, K802, K803, K804, K805, K806, K807, K808, K809, K810 }, \
|
||||
{ K900, K901, K902, KC_NO, K904, K905, K906, K907, K908, K909, K910 } \
|
||||
}
|
||||
59
keyboards/handwired/jopr/keymaps/default/keymap.c
Normal file
59
keyboards/handwired/jopr/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,59 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
#define _BL 0
|
||||
#define _FN 1
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_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_DEL, KC_NO, KC_CAPS, 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_PSCR, 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_ENT, KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||
KC_MHEN, 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_P4, KC_P5, KC_P6, KC_PGUP, KC_INS, 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_P1, KC_P2, KC_P3, KC_PENT, KC_HOME, KC_UP, KC_END,
|
||||
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, LT(_FN,KC_APP), KC_RCTL, KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[_FN] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SYSREQ, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MSTP, KC_VOLU, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_MUTE, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, _______, _______, KC_VOLD, KC_MSTP, KC_VOLU,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT
|
||||
)
|
||||
};
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
|
||||
writePinHigh(F1);
|
||||
} else {
|
||||
writePinLow(F1);
|
||||
}
|
||||
|
||||
if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
|
||||
writePinHigh(F0);
|
||||
} else {
|
||||
writePinLow(F0);
|
||||
}
|
||||
|
||||
if (!(IS_LED_ON(usb_led, USB_LED_NUM_LOCK))) {
|
||||
tap_code(KC_NUMLOCK);
|
||||
}
|
||||
}
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
static bool sysreq_led = false;
|
||||
if (record->event.pressed) {
|
||||
if (sysreq_led) {
|
||||
sysreq_led = false;
|
||||
writePinLow(F4);
|
||||
}
|
||||
else {
|
||||
switch(keycode) {
|
||||
case KC_SYSREQ:
|
||||
sysreq_led = true;
|
||||
writePinHigh(F4);
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
59
keyboards/handwired/jopr/keymaps/modded_white/keymap.c
Normal file
59
keyboards/handwired/jopr/keymaps/modded_white/keymap.c
Normal file
@@ -0,0 +1,59 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
#define _BL 0
|
||||
#define _FN 1
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_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_DEL, KC_NO, KC_CAPS, KC_SLCK, KC_PAUS,
|
||||
KC_NUHS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NUBS, KC_SLSH, KC_BSPC, KC_PSCR, KC_PSLS, KC_PAST, KC_PMNS,
|
||||
KC_TAB, KC_V, KC_Y, KC_D, KC_COMM, KC_QUOT, KC_INT1, KC_J, KC_M, KC_L, KC_U, KC_LBRC, KC_RBRC, KC_ENT, KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||
KC_MHEN, KC_A, KC_T, KC_H, KC_E, KC_B, KC_MINS, KC_C, KC_S, KC_N, KC_O, KC_I, KC_EQL, KC_P4, KC_P5, KC_P6, KC_PGUP, KC_INS, KC_PGDN,
|
||||
KC_LSFT, KC_GRV, KC_P, KC_K, KC_G, KC_W, KC_Q, KC_X, KC_R, KC_F, KC_DOT, KC_Z, KC_RSFT, KC_P1, KC_P2, KC_P3, KC_PENT, KC_HOME, KC_UP, KC_END,
|
||||
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, LT(_FN,KC_APP), KC_RCTL, KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[_FN] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SYSREQ, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MSTP, KC_VOLU, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_MUTE, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, _______, _______, KC_VOLD, KC_MSTP, KC_VOLU,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT
|
||||
)
|
||||
};
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
|
||||
writePinHigh(F1);
|
||||
} else {
|
||||
writePinLow(F1);
|
||||
}
|
||||
|
||||
if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
|
||||
writePinHigh(F0);
|
||||
} else {
|
||||
writePinLow(F0);
|
||||
}
|
||||
|
||||
if (!(IS_LED_ON(usb_led, USB_LED_NUM_LOCK))) {
|
||||
tap_code(KC_NUMLOCK);
|
||||
}
|
||||
}
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
static bool sysreq_led = false;
|
||||
if (record->event.pressed) {
|
||||
if (sysreq_led) {
|
||||
sysreq_led = false;
|
||||
writePinLow(F4);
|
||||
}
|
||||
else {
|
||||
switch(keycode) {
|
||||
case KC_SYSREQ:
|
||||
sysreq_led = true;
|
||||
writePinHigh(F4);
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
17
keyboards/handwired/jopr/readme.md
Normal file
17
keyboards/handwired/jopr/readme.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# jopr-106-Nl2SR-Cl2MH
|
||||
|
||||
106-key based on ISO 105-key, NumLock to SysReq, CapsLock to Muhenkan/ROYA, NumLock state forced on
|
||||
|
||||

|
||||

|
||||
|
||||
Inspired by [KeyBored](https://github.com/itractus/KeyBored) and [white_keyboard_layout](https://github.com/mw8/white_keyboard_layout)
|
||||
|
||||
Keyboard Maintainer: [joelproko](https://github.com/joelproko)
|
||||
Hardware: https://github.com/joelproko/keyboard_layout_jopr
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make jopr:default
|
||||
|
||||
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).
|
||||
63
keyboards/handwired/jopr/rules.mk
Normal file
63
keyboards/handwired/jopr/rules.mk
Normal file
@@ -0,0 +1,63 @@
|
||||
# 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
|
||||
|
||||
|
||||
# Bootloader selection
|
||||
# Teensy halfkay
|
||||
# Pro Micro caterina
|
||||
# Atmel DFU atmel-dfu
|
||||
# LUFA DFU lufa-dfu
|
||||
# QMK DFU qmk-dfu
|
||||
# atmega32a bootloadHID
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
|
||||
# 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
|
||||
UNICODE_ENABLE = yes
|
||||
RGBLIGHT_ENABLE = no
|
||||
23
keyboards/hecomi/keymaps/kakunpc/config.h
Normal file
23
keyboards/hecomi/keymaps/kakunpc/config.h
Normal file
@@ -0,0 +1,23 @@
|
||||
/* Copyright 2018 kakunpc
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// place overrides here
|
||||
#define MASTER_RIGHT
|
||||
#define RGBLIGHT_SLEEP
|
||||
#define RGBLIGHT_SPLIT { 8, 8 }
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
98
keyboards/hecomi/keymaps/kakunpc/keymap.c
Normal file
98
keyboards/hecomi/keymaps/kakunpc/keymap.c
Normal file
@@ -0,0 +1,98 @@
|
||||
/* Copyright 2018 takashiski
|
||||
* Copyright 2019 kakunpc
|
||||
*
|
||||
* 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
|
||||
|
||||
// Defines the keycodes used by our macros in process_record_user
|
||||
enum custom_keycodes {
|
||||
QMKBEST = SAFE_RANGE,
|
||||
QMKURL
|
||||
};
|
||||
|
||||
//R1:7 + 8 = 15
|
||||
//R2:7 + 8 = 15
|
||||
//R3:6 + 7 = 13
|
||||
//R4:6 + 8 = 14
|
||||
//R5:6 + 6 = 12
|
||||
//total : 69 keys
|
||||
//
|
||||
enum layers{
|
||||
DF,
|
||||
LW,
|
||||
FN
|
||||
};
|
||||
|
||||
#define KC_FN MO(FN)
|
||||
#define KC_LW MO(LW)
|
||||
#define KC_SFT(XXX) LSFT(XXX)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[DF]=LAYOUT(\
|
||||
KC_ESC,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_Y,KC_U,KC_I,KC_O,KC_P,KC_LBRC,KC_RBRC,KC_BSLS,
|
||||
KC_LCTRL ,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_B,KC_N,KC_M,KC_COMM,KC_DOT,KC_SLSH,KC_RSFT,KC_DEL,
|
||||
KC_LGUI,KC_NO,KC_LALT,KC_LW,KC_FN,KC_SPC, KC_SPC,KC_FN,KC_LEFT,KC_UP,KC_DOWN,KC_RIGHT
|
||||
),
|
||||
[LW]=LAYOUT(\
|
||||
KC_NO,KC_NO,RGB_VAD,RGB_VAI,RGB_HUI,RGB_HUD,KC_TRNS, RGB_MOD,RGB_RMOD,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,KC_NO,KC_NO,KC_NO,KC_NO, KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,
|
||||
KC_NO ,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO, KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,
|
||||
KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO, KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO
|
||||
),
|
||||
[FN]=LAYOUT(\
|
||||
KC_ESC,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_TAB ,KC_NO,KC_UP,KC_NO,KC_NO,KC_NO,KC_NO, KC_7,KC_8,KC_0,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,
|
||||
KC_LCTRL ,KC_LEFT,KC_DOWN,KC_RIGHT,KC_NO,KC_NO, KC_4,KC_5,KC_6,KC_NO,KC_NO,KC_NO,KC_NO,
|
||||
KC_LSFT ,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO, KC_1,KC_2,KC_3,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,
|
||||
KC_LGUI,KC_NO,KC_LALT,KC_MHEN,KC_NO,KC_SPC, KC_0,KC_NO,KC_HOME,KC_PGUP,KC_PGDOWN,KC_END
|
||||
),
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case QMKBEST:
|
||||
if (record->event.pressed) {
|
||||
// when keycode QMKBEST is pressed
|
||||
SEND_STRING("QMK is the best thing ever!");
|
||||
} else {
|
||||
// when keycode QMKBEST is released
|
||||
}
|
||||
break;
|
||||
case QMKURL:
|
||||
if (record->event.pressed) {
|
||||
// when keycode QMKURL is pressed
|
||||
SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER));
|
||||
} else {
|
||||
// when keycode QMKURL is released
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
rgblight_enable_noeeprom();
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
}
|
||||
1
keyboards/hecomi/keymaps/kakunpc/readme.md
Normal file
1
keyboards/hecomi/keymaps/kakunpc/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The kakunpc keymap for hecomi_alpha
|
||||
@@ -56,7 +56,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define RGB_DI_PIN E2
|
||||
#ifdef RGB_DI_PIN
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLED_NUM 18
|
||||
#define RGBLED_NUM 20
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
|
||||
27
keyboards/keebio/nyquist/keymaps/georgepetri/config.h
Normal file
27
keyboards/keebio/nyquist/keymaps/georgepetri/config.h
Normal file
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
Copyright 2017 Danny Nguyen <danny@hexwire.com>
|
||||
|
||||
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/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// #define USE_I2C
|
||||
|
||||
/* Select hand configuration */
|
||||
// #define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
|
||||
#undef RGBLED_NUM
|
||||
#define RGBLED_NUM 12
|
||||
91
keyboards/keebio/nyquist/keymaps/georgepetri/keymap.c
Normal file
91
keyboards/keebio/nyquist/keymaps/georgepetri/keymap.c
Normal file
@@ -0,0 +1,91 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
#define _BASE 0
|
||||
#define _L 1
|
||||
#define _R 2
|
||||
|
||||
enum custom_keycodes {
|
||||
QWERTY = SAFE_RANGE
|
||||
};
|
||||
|
||||
#define KC_TL LCTL(KC_PGUP)
|
||||
#define KC_TR LCTL(KC_PGDN)
|
||||
#define KC_TC LCTL(KC_W)
|
||||
#define KC_TRO LCTL(LSFT(KC_T))
|
||||
|
||||
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_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 ,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
KC_CAPS, KC_LCTL, KC_LGUI, KC_LALT, MO(_L) , KC_SPC , KC_SPC , TG(_R) , KC_LEFT, KC_DOWN, KC_UP , KC_RGHT
|
||||
//└────────┴────────┴────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┴────────┴────────┘
|
||||
),
|
||||
|
||||
[_L] = 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_MINS, KC_EQL , KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_PGUP, KC_HOME, KC_END , _______,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
//└────────┴────────┴────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┴────────┴────────┘
|
||||
),
|
||||
|
||||
[_R] = LAYOUT(
|
||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, KC_TL , KC_TR , KC_TC , KC_TRO , _______, _______, KC_TL , KC_TR , KC_TC , KC_TRO , _______,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, _______, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, _______, _______,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, KC_PGDN, KC_PGUP, KC_HOME, KC_END , _______, _______, KC_PGDN, KC_PGUP, KC_HOME, KC_END , _______,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
//└────────┴────────┴────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┴────────┴────────┘
|
||||
)
|
||||
};
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
rgblight_sethsv_noeeprom(HSV_BLUE);
|
||||
}
|
||||
|
||||
void update_led(void) {
|
||||
switch (biton32(layer_state)) {
|
||||
case _BASE:
|
||||
rgblight_sethsv_noeeprom(HSV_BLUE);
|
||||
break;
|
||||
case _L:
|
||||
rgblight_sethsv_noeeprom(HSV_CORAL);
|
||||
break;
|
||||
case _R:
|
||||
rgblight_sethsv_noeeprom(HSV_MAGENTA);
|
||||
break;
|
||||
}
|
||||
if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) {
|
||||
rgblight_sethsv_range(HSV_WHITE,0,3);
|
||||
rgblight_sethsv_range(HSV_WHITE,9,12);
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t layer_state_set_user(uint32_t state) {
|
||||
update_led();
|
||||
return state;
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
update_led();
|
||||
}
|
||||
52
keyboards/keebio/nyquist/keymaps/georgepetri/readme.md
Normal file
52
keyboards/keebio/nyquist/keymaps/georgepetri/readme.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# George Petri's Nyquist layout
|
||||
|
||||
```
|
||||
make keebio/nyquist/rev2:georgepetri
|
||||
```
|
||||
|
||||
Features a dedicated navigation layer on rise and current layer status on rgb underglow.
|
||||
|
||||
### Base Layer
|
||||
```
|
||||
┌──────┬──────┬──────┬──────┬──────┬──────┐ ┌──────┬──────┬──────┬──────┬──────┬──────┐
|
||||
│ GRAVE│ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ BSPC │
|
||||
├──────┼──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┼──────┤
|
||||
│ TAB │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ DEL │
|
||||
├──────┼──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┼──────┤
|
||||
│ ESC │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ SCLN│ QUOT │
|
||||
├──────┼──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┼──────┤
|
||||
│ LSFT│ Z │ X │ C │ V │ B │ │ N │ M │ COMM │ DOT │ SLSH│ ENT │
|
||||
├──────┼──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┼──────┤
|
||||
│ CAPS│ LCTL│ LGUI │ LALT │MO(_L)│ SPC │ │ SPC │MO(_R)│ LEFT │ DOWN│ UP │ RGHT │
|
||||
└──────┴──────┴──────┴──────┴──────┴──────┘ └──────┴──────┴──────┴──────┴──────┴──────┘
|
||||
```
|
||||
|
||||
### Lower
|
||||
```
|
||||
┌──────┬──────┬──────┬──────┬──────┬──────┐ ┌──────┬──────┬──────┬──────┬──────┬──────┐
|
||||
│ │ F1 │ F2 │ F3 │ F4 │ F5 │ │ F6 │ F7 │ F8 │ F9 │ F10 │ │
|
||||
├──────┼──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┼──────┤
|
||||
│ │ F11 │ F12 │ │ │ │ │ │ │ │ │ │ │
|
||||
├──────┼──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┼──────┤
|
||||
│ │ │ │ │ │ │ │ │ MINS│ EQL │ LBRC│ RBRC│ BSLS │
|
||||
├──────┼──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┼──────┤
|
||||
│ │ │ │ │ │ │ │ │ PGDN│ PGUP │ HOME│ END │ │
|
||||
├──────┼──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┼──────┤
|
||||
│ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
└──────┴──────┴──────┴──────┴──────┴──────┘ └──────┴──────┴──────┴──────┴──────┴──────┘
|
||||
```
|
||||
|
||||
### Rise
|
||||
```
|
||||
┌──────┬──────┬──────┬──────┬──────┬──────┐ ┌──────┬──────┬──────┬──────┬──────┬──────┐
|
||||
│ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
├──────┼──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┼──────┤
|
||||
│ │ TAB_L│ TAB_R│ TAB_C│ TAB_R│ │ │ │ TAB_L│ TAB_R│ TAB_C│ TAB_R│ │
|
||||
├──────┼──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┼──────┤
|
||||
│ │ LEFT │ DOWN │ UP │ RGHT │ │ │ LEFT │ DOWN │ UP │ RGHT │ │ │
|
||||
├──────┼──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┼──────┤
|
||||
│ │ PGDN │ PGUP │ HOME│ END │ │ │ │ PGDN │ PGUP │ HOME│ END │ │
|
||||
├──────┼──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┼──────┤
|
||||
│ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
└──────┴──────┴──────┴──────┴──────┴──────┘ └──────┴──────┴──────┴──────┴──────┴──────┘
|
||||
```
|
||||
3
keyboards/keebio/nyquist/keymaps/georgepetri/rules.mk
Normal file
3
keyboards/keebio/nyquist/keymaps/georgepetri/rules.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
RGBLIGHT_ENABLE = yes
|
||||
MOUSEKEY_ENABLE = no
|
||||
COMMAND_ENABLE = no
|
||||
@@ -3,15 +3,11 @@
|
||||
enum layer {
|
||||
LAYER_DEFAULT,
|
||||
LAYER_FUNCTION,
|
||||
LAYER_MOUSE,
|
||||
};
|
||||
|
||||
/* Switch to function layer when held. */
|
||||
#define LY_FUNC MO(LAYER_FUNCTION)
|
||||
|
||||
/* Switch to mouse layer when held; send menu key when tapped. */
|
||||
#define LY_MOUSE LT(LAYER_MOUSE, KC_APP)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Default layer: http://www.keyboard-layout-editor.com/#/gists/60a262432bb340b37d364a4424f3037b */
|
||||
[LAYER_DEFAULT] = LAYOUT_65(
|
||||
@@ -19,7 +15,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_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_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, LY_FUNC, KC_SPC, KC_SPC, XXXXXXX, KC_RALT, LY_FUNC, LY_MOUSE, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
KC_LCTL, KC_LGUI, KC_LALT, LY_FUNC, KC_SPC, KC_SPC, XXXXXXX, KC_RALT, LY_FUNC, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
/* Function layer: http://www.keyboard-layout-editor.com/#/gists/59636898946da51f91fb290f8e078b4d */
|
||||
@@ -30,13 +26,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
_______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_HUD,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD
|
||||
),
|
||||
|
||||
/* Mouse layer: http://www.keyboard-layout-editor.com/#/gists/05b9fbe8a34f65ed85ded659b3941152 */
|
||||
[LAYER_MOUSE] = LAYOUT_65(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN3,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_U,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_D,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN3, KC_BTN1, KC_MS_U, KC_BTN2,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R
|
||||
),
|
||||
};
|
||||
|
||||
@@ -2,16 +2,12 @@
|
||||
|
||||
This is pretty much a stock 65% split keyboard layout, with an HHKB-style
|
||||
(split) backspace, media keys in the function layer centered around the WASD
|
||||
cluster, and mouse keys on their own layer centered around the arrow cluster.
|
||||
cluster, and RGB controls in the function layer on the arrow/nav keys.
|
||||
|
||||
## Default layer
|
||||
|
||||

|
||||

|
||||
|
||||
## Function layer
|
||||
|
||||

|
||||
|
||||
## Mouse layer
|
||||
|
||||

|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
#define PERMISSIVE_HOLD
|
||||
#define TAPPING_TERM 150
|
||||
|
||||
#define TAP_HOLD_CAPS_DELAY 0
|
||||
|
||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
|
||||
// #define DISABLE_RGB_MATRIX_SOLID_COLOR
|
||||
|
||||
@@ -206,7 +206,7 @@ void rgb_matrix_indicators_user(void)
|
||||
rgb_matrix_set_color(71, 0x00, 0xFF, 0x01); //MAS_GRN
|
||||
rgb_matrix_set_color(72, 0xFF, 0xA5, 0x18); //MAS_CRM
|
||||
rgb_matrix_set_color(60, 0x81, 0x3C, 0xFF); //MAS_PRP
|
||||
rgb_matrix_set_color(26, 0xFF, 0xFF, 0xFF); //MAS_WHT
|
||||
rgb_matrix_set_color(43, 0xFF, 0xFF, 0xFF); //MAS_WHT
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -101,10 +101,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
*/
|
||||
|
||||
[_NAV] = LAYOUT_ortho(
|
||||
ALTF4, KC_PGDN, KC_UP, KC_PGUP, KC_HOME, XXXXXXX, XXXXXXX, XXXXXXX, GUIU, XXXXXXX, XXXXXXX, KC_DEL,
|
||||
_______, KC_PGDN, KC_UP, KC_PGUP, KC_HOME, XXXXXXX, XXXXXXX, XXXXXXX, GUIU, XXXXXXX, XXXXXXX, KC_DEL,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, XXXXXXX, XXXXXXX, GUIL, GUID, GUIR, EMOJI, KC_ENT,
|
||||
_______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, RGB_TOG, RGB_MOD, RGB_HUI, CU_RGBV, _______,
|
||||
RESET, CU_ESCT, _______, _______, _______, KC_SPC, CTLENT, RGB_M_P, _______, _______, _______, CU_GAME
|
||||
RESET, CU_ESCT, ALTF4, _______, _______, KC_SPC, CTLENT, RGB_M_P, _______, _______, _______, CU_GAME
|
||||
)
|
||||
|
||||
};
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
NK65
|
||||
=========
|
||||
|
||||
[NK65]()
|
||||

|
||||
|
||||
This is a standard fixed layout 65% PCB. It supports VIA and full per-key RGB.
|
||||
|
||||
|
||||
19
keyboards/plaid/keymaps/brickbots/config.h
Normal file
19
keyboards/plaid/keymaps/brickbots/config.h
Normal file
@@ -0,0 +1,19 @@
|
||||
/* Copyright 2019 Takuya Urakawa (dm9records.com)
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// place overrides here
|
||||
411
keyboards/plaid/keymaps/brickbots/keymap.c
Normal file
411
keyboards/plaid/keymaps/brickbots/keymap.c
Normal file
@@ -0,0 +1,411 @@
|
||||
/* Copyright 2019 Takuya Urakawa (dm9records.com)
|
||||
*
|
||||
* 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
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
enum plaid_layers {
|
||||
_QWERTY,
|
||||
_COLEMAK,
|
||||
_DVORAK,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_PLOVER,
|
||||
_ADJUST
|
||||
};
|
||||
|
||||
enum plaid_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
COLEMAK,
|
||||
DVORAK,
|
||||
PLOVER,
|
||||
EXT_PLV,
|
||||
LED_1,
|
||||
LED_2,
|
||||
LED_3,
|
||||
LED_4,
|
||||
LED_5,
|
||||
LED_6,
|
||||
LED_7,
|
||||
LED_8,
|
||||
LED_9,
|
||||
LED_0
|
||||
};
|
||||
|
||||
#define LOWER MO(_LOWER)
|
||||
#define RAISE MO(_RAISE)
|
||||
|
||||
// array of keys considered modifiers for led purposes
|
||||
const uint16_t modifiers[] = {
|
||||
KC_LCTL,
|
||||
KC_RCTL,
|
||||
KC_LALT,
|
||||
KC_RALT,
|
||||
KC_LSFT,
|
||||
KC_RSFT,
|
||||
KC_LGUI,
|
||||
KC_RGUI,
|
||||
LOWER,
|
||||
RAISE
|
||||
};
|
||||
|
||||
//Setup consts for LED modes
|
||||
#define LEDMODE_ON 1 //always on
|
||||
#define LEDMODE_OFF 0 //always off
|
||||
#define LEDMODE_MODS 2 //On with modifiers
|
||||
#define LEDMODE_BLINKIN 3 //blinkinlights - % chance toggle on keypress
|
||||
#define LEDMODE_KEY 4 //On with any keypress, off with key release
|
||||
#define LEDMODE_ENTER 5 // On with enter key
|
||||
|
||||
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 |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ltrl | Rctl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = LAYOUT_plaid_grid(
|
||||
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_LCTL, KC_RCTL, 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 |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | RAlt | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_COLEMAK] = LAYOUT_plaid_grid(
|
||||
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_LCTL, KC_RALT, 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 |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | RAlt | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_DVORAK] = LAYOUT_plaid_grid(
|
||||
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_LCTL, KC_RALT, 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] = LAYOUT_plaid_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_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] = LAYOUT_plaid_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_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] = LAYOUT_plaid_grid(
|
||||
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] = LAYOUT_plaid_grid(
|
||||
RESET,LED_1, LED_2, LED_3, LED_4, LED_5,LED_6, LED_7, LED_8, LED_9, LED_0,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, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
|
||||
|
||||
};
|
||||
|
||||
//Setup config struct for LED
|
||||
typedef union {
|
||||
uint32_t raw;
|
||||
struct {
|
||||
uint8_t red_mode :8;
|
||||
uint8_t green_mode :8;
|
||||
};
|
||||
} led_config_t;
|
||||
led_config_t led_config;
|
||||
|
||||
//Set leds to saved state during powerup
|
||||
void keyboard_post_init_user(void) {
|
||||
// Call the post init code.
|
||||
led_config.raw = eeconfig_read_user();
|
||||
|
||||
if(led_config.red_mode == LEDMODE_ON) {
|
||||
writePinHigh(LED_RED);
|
||||
}
|
||||
|
||||
if(led_config.green_mode == LEDMODE_ON) {
|
||||
writePinHigh(LED_GREEN);
|
||||
}
|
||||
}
|
||||
|
||||
void eeconfig_init_user(void) { // EEPROM is getting reset!
|
||||
led_config.raw = 0;
|
||||
led_config.red_mode = LEDMODE_ON;
|
||||
led_config.green_mode = LEDMODE_MODS;
|
||||
eeconfig_update_user(led_config.raw);
|
||||
eeconfig_update_user(led_config.raw);
|
||||
}
|
||||
|
||||
uint32_t layer_state_set_user(uint32_t state) {
|
||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
|
||||
void led_keypress_update(uint8_t led, uint8_t led_mode, uint16_t keycode, keyrecord_t *record) {
|
||||
switch (led_mode) {
|
||||
case LEDMODE_MODS:
|
||||
for (int i=0;i<sizeof(modifiers) / sizeof(modifiers[0]);i++) {
|
||||
if(keycode==modifiers[i]) {
|
||||
if (record->event.pressed) {
|
||||
writePinHigh(led);
|
||||
}
|
||||
else {
|
||||
writePinLow(led);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case LEDMODE_BLINKIN:
|
||||
if (record->event.pressed) {
|
||||
if(rand() % 2 == 1) {
|
||||
if(rand() % 2 == 0) {
|
||||
writePinLow(led);
|
||||
}
|
||||
else {
|
||||
writePinHigh(led);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case LEDMODE_KEY:
|
||||
if (record->event.pressed) {
|
||||
writePinHigh(led);
|
||||
return;
|
||||
}
|
||||
else {
|
||||
writePinLow(led);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case LEDMODE_ENTER:
|
||||
if (keycode==KC_ENT) {
|
||||
writePinHigh(led);
|
||||
}
|
||||
else {
|
||||
writePinLow(led);
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
/* If the either led mode is keypressed based, call the led updater
|
||||
then let it fall through the keypress handlers. Just to keep
|
||||
the logic out of this procedure */
|
||||
if (led_config.red_mode >= LEDMODE_MODS && led_config.red_mode <= LEDMODE_ENTER) {
|
||||
led_keypress_update(LED_RED, led_config.red_mode, keycode, record);
|
||||
}
|
||||
if (led_config.green_mode >= LEDMODE_MODS && led_config.green_mode <= LEDMODE_ENTER) {
|
||||
led_keypress_update(LED_GREEN, led_config.green_mode, keycode, 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 PLOVER:
|
||||
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);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case EXT_PLV:
|
||||
if (record->event.pressed) {
|
||||
layer_off(_PLOVER);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case LED_1:
|
||||
if (record->event.pressed) {
|
||||
if (led_config.red_mode==LEDMODE_ON) {
|
||||
led_config.red_mode=LEDMODE_OFF;
|
||||
writePinLow(LED_RED);
|
||||
}
|
||||
else {
|
||||
led_config.red_mode=LEDMODE_ON;
|
||||
writePinHigh(LED_RED);
|
||||
}
|
||||
}
|
||||
eeconfig_update_user(led_config.raw);
|
||||
return false;
|
||||
break;
|
||||
case LED_2:
|
||||
if (record->event.pressed) {
|
||||
if (led_config.green_mode==LEDMODE_ON) {
|
||||
led_config.green_mode=LEDMODE_OFF;
|
||||
writePinLow(LED_GREEN);
|
||||
}
|
||||
else {
|
||||
led_config.green_mode=LEDMODE_ON;
|
||||
writePinHigh(LED_GREEN);
|
||||
}
|
||||
}
|
||||
eeconfig_update_user(led_config.raw);
|
||||
return false;
|
||||
break;
|
||||
case LED_3:
|
||||
led_config.red_mode=LEDMODE_MODS;
|
||||
eeconfig_update_user(led_config.raw);
|
||||
return false;
|
||||
break;
|
||||
case LED_4:
|
||||
led_config.green_mode=LEDMODE_MODS;
|
||||
eeconfig_update_user(led_config.raw);
|
||||
return false;
|
||||
break;
|
||||
case LED_5:
|
||||
led_config.red_mode=LEDMODE_BLINKIN;
|
||||
eeconfig_update_user(led_config.raw);
|
||||
return false;
|
||||
break;
|
||||
case LED_6:
|
||||
led_config.green_mode=LEDMODE_BLINKIN;
|
||||
eeconfig_update_user(led_config.raw);
|
||||
return false;
|
||||
break;
|
||||
case LED_7:
|
||||
led_config.red_mode=LEDMODE_KEY;
|
||||
eeconfig_update_user(led_config.raw);
|
||||
return false;
|
||||
break;
|
||||
case LED_8:
|
||||
led_config.green_mode=LEDMODE_KEY;
|
||||
eeconfig_update_user(led_config.raw);
|
||||
return false;
|
||||
break;
|
||||
case LED_9:
|
||||
led_config.red_mode=LEDMODE_ENTER;
|
||||
eeconfig_update_user(led_config.raw);
|
||||
return false;
|
||||
break;
|
||||
case LED_0:
|
||||
led_config.green_mode=LEDMODE_ENTER;
|
||||
eeconfig_update_user(led_config.raw);
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
36
keyboards/plaid/keymaps/brickbots/readme.md
Normal file
36
keyboards/plaid/keymaps/brickbots/readme.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# Brickbots keymap for plaid
|
||||
Original copyright 2019 Takuya Urakawa (dm9records.com)
|
||||
LED Support added by Richard Sutherland (rich@brickbots.com)
|
||||
|
||||
This layout is based on the Planck layout, with esc/tab swapped and an extra
|
||||
ctrl key in the bottom left corner. It includes an adjust layer (6)
|
||||
accessible by holding the lower and raise modifiers (MO3 and MO4) together.
|
||||
The adjustment layer is used to set the behavior of the two LEDs:
|
||||
|
||||
**Modifier Mode:**
|
||||
Activates when any modifier (shift, alt, os, MO) key is held
|
||||
down. LED turns off when key is release
|
||||
|
||||
**Blinkinlights Mode:**
|
||||
Random chance of state change on each keystroke.
|
||||
|
||||
**Keypress Mode:**
|
||||
On for any keypress as long as the key is pressed
|
||||
|
||||
**Carriage Mode:**
|
||||
Turns on when enter is pressed, turns off when any next key is pressed
|
||||
|
||||
To set the behavior of an LED, and save it to eeprom, hold the
|
||||
raise/lower keys together to access the adjust layer, then use
|
||||
the keys indicated below to set the behaviors
|
||||
|
||||
* q = Toggle Red LED state, deactivates any other modes
|
||||
* w = Toggle Green LED state, deactivates any other modes
|
||||
* e = Set RED LED to modifier mode
|
||||
* r = Set GREEN LED to modifier mode
|
||||
* t = Set RED LED to Blinkinlights mode
|
||||
* y = set GREEN LED to Blinkinlights mode
|
||||
* u = set RED LED to Keypress mode
|
||||
* i = set GREEN LED to Keypress mode
|
||||
* o = set RED LED to Carriage mode
|
||||
* p = set GREEN LED to Carriage mode
|
||||
@@ -6,27 +6,30 @@ This layout is based on the Planck layout, and includes an adjust layer (6)
|
||||
accessible by holding the lower and raise modifiers (MO3 and MO4) together.
|
||||
The adjustment layer is used to set the behavior of the two LEDs:
|
||||
|
||||
Modifier Mode:
|
||||
|
||||
**Modifier Mode:**
|
||||
Activates when any modifier (shift, alt, os, MO) key is held
|
||||
down. LED turns off when key is release
|
||||
|
||||
Blinkinlights Mode:
|
||||
**Blinkinlights Mode:**
|
||||
Random chance of state change on each keystroke.
|
||||
|
||||
Keypress Mode:
|
||||
**Keypress Mode:**
|
||||
On for any keypress as long as the key is pressed
|
||||
|
||||
Carriage Mode:
|
||||
**Carriage Mode:**
|
||||
Turns on when enter is pressed, turns off when any next key is pressed
|
||||
|
||||
q = Toggle Red LED state, deactivates any other modes
|
||||
w = Toggle Green LED state, deactivates any other modes
|
||||
e = Set RED LED to modifier mode
|
||||
r = Set GREEN LED to modifier mode
|
||||
t = Set RED LED to Blinkinlights mode
|
||||
y = set GREEN LED to Blinkinlights mode
|
||||
u = set RED LED to Keypress mode
|
||||
i = set GREEN LED to Keypress mode
|
||||
o = set RED LED to Carriage mode
|
||||
p = set GREEN LED to Carriage mode
|
||||
To set the behavior of an LED, and save it to eeprom, hold the
|
||||
raise/lower keys together to access the adjust layer, then use
|
||||
the keys indicated below to set the behaviors
|
||||
|
||||
* q = Toggle Red LED state, deactivates any other modes
|
||||
* w = Toggle Green LED state, deactivates any other modes
|
||||
* e = Set RED LED to modifier mode
|
||||
* r = Set GREEN LED to modifier mode
|
||||
* t = Set RED LED to Blinkinlights mode
|
||||
* y = set GREEN LED to Blinkinlights mode
|
||||
* u = set RED LED to Keypress mode
|
||||
* i = set GREEN LED to Keypress mode
|
||||
* o = set RED LED to Carriage mode
|
||||
* p = set GREEN LED to Carriage mode
|
||||
|
||||
@@ -21,87 +21,32 @@
|
||||
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 \
|
||||
k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \
|
||||
) \
|
||||
{ \
|
||||
{ k00, k01, k02, k03, k04, k05 }, \
|
||||
{ k10, k11, k12, k13, k14, k15 }, \
|
||||
{ k20, k21, k22, k23, k24, k25 }, \
|
||||
{ k30, k31, k32, k39, k3a, k3b }, \
|
||||
{ k06, k07, k08, k09, k0a, k0b }, \
|
||||
{ k16, k17, k18, k19, k1a, k1b }, \
|
||||
{ k26, k27, k28, k29, k2a, k2b }, \
|
||||
{ k36, k37, k38, k33, k34, k35 } \
|
||||
{ k00, k01, k02, k03, k04, k05 }, \
|
||||
{ k10, k11, k12, k13, k14, k15 }, \
|
||||
{ k20, k21, k22, k23, k24, k25 }, \
|
||||
{ k30, k31, k32, k3a, k3b, KC_NO }, \
|
||||
{ k06, k07, k08, k09, k0a, k0b }, \
|
||||
{ k16, k17, k18, k19, k1a, k1b }, \
|
||||
{ k26, k27, k28, k29, k2a, k2b }, \
|
||||
{ k37, k38, k39, k33, k34, k35 } \
|
||||
}
|
||||
|
||||
#define LAYOUT_planck_1x2uR( \
|
||||
#define LAYOUT_ortho_4x12( \
|
||||
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 \
|
||||
) \
|
||||
LAYOUT_planck_1x2uC( \
|
||||
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 \
|
||||
) \
|
||||
{ \
|
||||
{ k00, k01, k02, k03, k04, k05 }, \
|
||||
{ k10, k11, k12, k13, k14, k15 }, \
|
||||
{ k20, k21, k22, k23, k24, k25 }, \
|
||||
{ k30, k31, k32, k39, k3a, k3b }, \
|
||||
{ k06, k07, k08, k09, k0a, k0b }, \
|
||||
{ k16, k17, k18, k19, k1a, k1b }, \
|
||||
{ k26, k27, k28, k29, k2a, k2b }, \
|
||||
{ k36, k37, k38, k33, k34, k35 } \
|
||||
}
|
||||
k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \
|
||||
)
|
||||
|
||||
#define LAYOUT_planck_1x2uL( \
|
||||
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 \
|
||||
) \
|
||||
{ \
|
||||
{ k00, k01, k02, k03, k04, k05 }, \
|
||||
{ k10, k11, k12, k13, k14, k15 }, \
|
||||
{ k20, k21, k22, k23, k24, k25 }, \
|
||||
{ k30, k31, k32, k39, k3a, k3b }, \
|
||||
{ k06, k07, k08, k09, k0a, k0b }, \
|
||||
{ k16, k17, k18, k19, k1a, k1b }, \
|
||||
{ k26, k27, k28, k29, k2a, k2b }, \
|
||||
{ k36, k37, k38, k33, k34, k35 } \
|
||||
}
|
||||
|
||||
#define LAYOUT_planck_2x2u( \
|
||||
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, k36, k37, k38, k39, k3a \
|
||||
) \
|
||||
{ \
|
||||
{ k00, k01, k02, k03, k04, k05 }, \
|
||||
{ k10, k11, k12, k13, k14, k15 }, \
|
||||
{ k20, k21, k22, k23, k24, k25 }, \
|
||||
{ k30, k31, k32, k39, k3a, k3b }, \
|
||||
{ k06, k07, k08, k09, k0a, k0b }, \
|
||||
{ k16, k17, k18, k19, k1a, k1b }, \
|
||||
{ k26, k27, k28, k29, k2a, k2b }, \
|
||||
{ k36, k37, k38, k33, k34, k35 } \
|
||||
}
|
||||
|
||||
#define LAYOUT_planck_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, \
|
||||
k30, k31, k32, k33, k34, k35, KC_NO, k36, k37, k38, k39, k3a \
|
||||
) \
|
||||
{ \
|
||||
{ k00, k01, k02, k03, k04, k05 }, \
|
||||
{ k10, k11, k12, k13, k14, k15 }, \
|
||||
{ k20, k21, k22, k23, k24, k25 }, \
|
||||
{ k30, k31, k32, k39, k3a, KC_NO }, \
|
||||
{ k06, k07, k08, k09, k0a, k0b }, \
|
||||
{ k16, k17, k18, k19, k1a, k1b }, \
|
||||
{ k26, k27, k28, k29, k2a, k2b }, \
|
||||
{ k36, k37, k38, k33, k34, k35 } \
|
||||
}
|
||||
|
||||
#define KEYMAP LAYOUT_planck_grid
|
||||
#define LAYOUT_ortho_4x12 LAYOUT_planck_grid
|
||||
#define KC_LAYOUT_ortho_4x12 KC_KEYMAP
|
||||
#define KEYMAP LAYOUT_ortho_4x12
|
||||
#define LAYOUT_planck_mit LAYOUT_planck_1x2uC
|
||||
#define LAYOUT_planck_grid LAYOUT_ortho_4x12
|
||||
|
||||
115
keyboards/planck/ez/info.json
Normal file
115
keyboards/planck/ez/info.json
Normal file
@@ -0,0 +1,115 @@
|
||||
{
|
||||
"keyboard_name": "Planck EZ",
|
||||
"keyboard_folder": "planck/ez",
|
||||
"url": "https://ergodox-ez.com/pages/planck",
|
||||
"maintainer": "jackhumbert",
|
||||
"width": 12,
|
||||
"height": 4,
|
||||
"layouts": {
|
||||
"LAYOUT_planck_1x2uC": {
|
||||
"key_count": 47,
|
||||
"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 }
|
||||
]
|
||||
},
|
||||
"LAYOUT_ortho_4x12": {
|
||||
"key_count": 48,
|
||||
"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 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
15
keyboards/planck/ez/readme.md
Normal file
15
keyboards/planck/ez/readme.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# Planck EZ
|
||||
|
||||

|
||||
|
||||
A variant of the Planck featuring a 2u spacebar and per-key RGB backlighting.
|
||||
|
||||
Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
|
||||
Hardware Supported: Planck EZ
|
||||
Hardware Availability: [ergodox-ez.com](https://ergodox-ez.com/pages/planck)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make planck/ez:default
|
||||
|
||||
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).
|
||||
@@ -274,19 +274,15 @@ void encoder_update(bool clockwise) {
|
||||
} else {
|
||||
if (clockwise) {
|
||||
#ifdef MOUSEKEY_ENABLE
|
||||
register_code(KC_MS_WH_DOWN);
|
||||
unregister_code(KC_MS_WH_DOWN);
|
||||
tap_code(KC_MS_WH_DOWN);
|
||||
#else
|
||||
register_code(KC_PGDN);
|
||||
unregister_code(KC_PGDN);
|
||||
tap_code(KC_PGDN);
|
||||
#endif
|
||||
} else {
|
||||
#ifdef MOUSEKEY_ENABLE
|
||||
register_code(KC_MS_WH_UP);
|
||||
unregister_code(KC_MS_WH_UP);
|
||||
tap_code(KC_MS_WH_UP);
|
||||
#else
|
||||
register_code(KC_PGUP);
|
||||
unregister_code(KC_PGUP);
|
||||
tap_code(KC_PGUP);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
39
keyboards/planck/keymaps/deft/config.h
Normal file
39
keyboards/planck/keymaps/deft/config.h
Normal file
@@ -0,0 +1,39 @@
|
||||
#pragma once
|
||||
|
||||
#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
|
||||
|
||||
/*
|
||||
* 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
|
||||
|
||||
// Most tactile encoders have detents every 4 stages
|
||||
#define ENCODER_RESOLUTION 4
|
||||
|
||||
141
keyboards/planck/keymaps/deft/deft-plank.json
Normal file
141
keyboards/planck/keymaps/deft/deft-plank.json
Normal file
@@ -0,0 +1,141 @@
|
||||
[
|
||||
{
|
||||
"backcolor": "#ffffff",
|
||||
"name": "Deft Plank",
|
||||
"author": "Michael Speiserß",
|
||||
"switchMount": "cherry",
|
||||
"switchBrand": "gateron",
|
||||
"switchType": "KS-3-Tea",
|
||||
"plate": true,
|
||||
"pcb": true
|
||||
},
|
||||
[
|
||||
{
|
||||
"c": "#ba0000",
|
||||
"sb": "gateron",
|
||||
"st": "KS-3-Tea",
|
||||
"a": 5
|
||||
},
|
||||
"\nDel\n\n\n\n\nEsc",
|
||||
{
|
||||
"c": "#cccccc",
|
||||
"a": 4
|
||||
},
|
||||
"\n\n!\n\n\n\n\n\n1\nQ\nAlt 1",
|
||||
"\n\n@\n\n\n\n\n\n2\nW\nAlt 2",
|
||||
"\n\n#\n\n\n\n\n\n3\nE\nAlt 3",
|
||||
"\n\n$\n\n\n\n\n\n4\nR\nAlt 4",
|
||||
"\n\n%\n\n\n\n\n\n5\nT\n(",
|
||||
"\n\n^\n\n\n\n\n\n6\nY\n)",
|
||||
"\n\n&\n\n\n\n\n\n7\nU\nNum 7",
|
||||
"\n\n*\n\n\n\n\n\n8\nI\nNum 8",
|
||||
"\n\n(\n\n\n\n\n\n9\nO\nNum 9",
|
||||
"\n\n)\n\n\n\n\n\n0\nP\nNum 0",
|
||||
{
|
||||
"c": "#ba0000",
|
||||
"a": 7
|
||||
},
|
||||
"Bksp"
|
||||
],
|
||||
[
|
||||
{
|
||||
"c": "#365eff"
|
||||
},
|
||||
"Tab",
|
||||
{
|
||||
"c": "#cccccc",
|
||||
"a": 4
|
||||
},
|
||||
"\n\n\n~\n\n\n\n\nF1\nA\n`",
|
||||
"\n\n\n|\n\n\n\n\nF2\nS\n\\",
|
||||
"\n\n\n+\n\n\n\n\nF3\nD\n=",
|
||||
{
|
||||
"n": true
|
||||
},
|
||||
"\n\n\n_\n\n\n\n\nF4\nF\n-",
|
||||
{
|
||||
"a": 5
|
||||
},
|
||||
"F5\n<\n\n\n\n\nG",
|
||||
"F6\n>\n\n\n\n\nH",
|
||||
{
|
||||
"n": true
|
||||
},
|
||||
"F7\nNum 4\n\n\n\n\nJ",
|
||||
"F8\nNum 5\n\n\n\n\nK",
|
||||
"F9\nNum 6\n\n\n\n\nL",
|
||||
{
|
||||
"a": 4
|
||||
},
|
||||
"\n\n\n\n\n\n\n:\nF10\n;\nNum .",
|
||||
"\n\n\n\n\n\n\n\"\n\n'\nNumLk"
|
||||
],
|
||||
[
|
||||
{
|
||||
"c": "#365eff",
|
||||
"a": 7
|
||||
},
|
||||
"Shift",
|
||||
{
|
||||
"c": "#cccccc",
|
||||
"a": 5
|
||||
},
|
||||
"F11\nNum /\n\n\n\n\nZ",
|
||||
"F12\nNum *\n\n\n\n\nX",
|
||||
"F13\nNum -\n\n\n\n\nC",
|
||||
"F14\nNum +\n\n\n\n\nV",
|
||||
"F15\n[\n\n\n\n\nB",
|
||||
"F16\n]\n\n\n\n\nN",
|
||||
"F17\nNum 1\n\n\n\n\nM",
|
||||
{
|
||||
"a": 4
|
||||
},
|
||||
"\n\n\n\n\n\n\n<\nF18\n,\nNum 2",
|
||||
"\n\n\n\n\n\n\n>\nF19\n.\nNum 3",
|
||||
{
|
||||
"c": "#365eff",
|
||||
"a": 5
|
||||
},
|
||||
"Vol+\nPgup\n\n\n\n\n↑",
|
||||
{
|
||||
"c": "#cccccc",
|
||||
"a": 4
|
||||
},
|
||||
"\n\n\n\n\n\n\n?\n\n/\nNum ="
|
||||
],
|
||||
[
|
||||
{
|
||||
"c": "#365eff",
|
||||
"a": 7
|
||||
},
|
||||
"Ctrl",
|
||||
{
|
||||
"a": 5
|
||||
},
|
||||
"\nOption\n\n\n\n\nAlt",
|
||||
"\n⌘\n\n\n\n\nWin",
|
||||
"Cut\nPaste\n\n\n\n\nCopy",
|
||||
{
|
||||
"c": "#3f8f00",
|
||||
"a": 7
|
||||
},
|
||||
"Lower",
|
||||
{
|
||||
"c": "#cccccc",
|
||||
"w": 2
|
||||
},
|
||||
"",
|
||||
{
|
||||
"c": "#3f8f00"
|
||||
},
|
||||
"Raise",
|
||||
{
|
||||
"c": "#365eff",
|
||||
"a": 5
|
||||
},
|
||||
"\nNumE\n\n\n\n\nReturn",
|
||||
"Play\nHome\n\n\n\n\n←",
|
||||
"Vol -\nPgdn\n\n\n\n\n↓",
|
||||
"Next\nEnd\n\n\n\n\n→"
|
||||
]
|
||||
]
|
||||
138
keyboards/planck/keymaps/deft/keymap.c
Normal file
138
keyboards/planck/keymaps/deft/keymap.c
Normal file
@@ -0,0 +1,138 @@
|
||||
/*
|
||||
* The Deft layout for the Planck Keyboard
|
||||
* Version 1.0
|
||||
*
|
||||
* A keyboard layout designed for efficiency in programming and transferability between ortholinear boards.
|
||||
* Deft is currently supported on the following boards:
|
||||
* Planck (12x4)
|
||||
*
|
||||
* The Deft keyboard layout was designed by Michael Speiser. You can find other Deft layouts at my Github:
|
||||
* https://github.com/Speiserm
|
||||
*
|
||||
* For questions, issues, or feedback, feel free to email me at Speiserm@pm.me.
|
||||
*
|
||||
*
|
||||
* Flashing:
|
||||
*
|
||||
* Rev 5 or earlier:
|
||||
* make planck/revX:deft:dfu
|
||||
*
|
||||
* Rev 6:
|
||||
* make planck/rev6:deft:dfu-util
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* Follow my cat:
|
||||
* https://twitter.com/CatBucha
|
||||
* https://www.instagram.com/buchathecat/
|
||||
*
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
enum planck_layers {
|
||||
_QWERTY,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_ADJUST
|
||||
};
|
||||
|
||||
enum planck_keycodes {
|
||||
QWERTY = SAFE_RANGE
|
||||
};
|
||||
|
||||
#define LOWER MO(_LOWER)
|
||||
#define RAISE MO(_RAISE)
|
||||
|
||||
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 | , | . | Up | / |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | Alt | GUI | Copy |Lower | Space |Raise |Enter | Left | Down |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = LAYOUT_planck_grid(
|
||||
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_UP, KC_SLSH,
|
||||
KC_LCTL, KC_LALT, KC_LGUI, C(KC_C), LOWER, KC_SPC, KC_SPC, RAISE, KC_ENT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
/* Lower
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Del | Alt1 | Alt2 | Alt3 | Alt4 | ( | ) | Num7 | Num8 | Num9 | Num0 | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | ` | \ | = | - | < | > | Num4 | Num5 | Num6 | Num. | NumL |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | Num/ | Num* | Num- | Num+ | [ | ] | Num1 | Num2 | Num3 | Pgup | Num= |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | |Paste | | | | NumE | Home | Pgdn | End |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LOWER] = LAYOUT_planck_grid(
|
||||
KC_DEL, A(KC_1), A(KC_2), A(KC_3), A(KC_4), S(KC_9), S(KC_0), KC_P7, KC_P8, KC_P9, KC_P0, _______,
|
||||
_______, KC_GRV,KC_BSLS,KC_EQL, KC_MINS,S(KC_COMM),S(KC_DOT), KC_P4, KC_P5, KC_P6, KC_PDOT, KC_NLCK,
|
||||
_______, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_LBRC, KC_RBRC, KC_P1, KC_P2, KC_P3, KC_PGUP, KC_PEQL,
|
||||
_______, _______, _______, C(KC_V), _______, _______, _______, _______, KC_PENT, KC_HOME,KC_PGDOWN, KC_END
|
||||
),
|
||||
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | Vol+ | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | Cut | | | | | Play | Vol- | Next |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = LAYOUT_planck_grid(
|
||||
_______, 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_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_VOLU, _______,
|
||||
_______, _______, _______, C(KC_X), _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_MNXT
|
||||
),
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* |Reset | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = LAYOUT_planck_grid(
|
||||
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
|
||||
};
|
||||
|
||||
uint32_t layer_state_set_user(uint32_t state) {
|
||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
73
keyboards/planck/keymaps/deft/readme.md
Normal file
73
keyboards/planck/keymaps/deft/readme.md
Normal file
@@ -0,0 +1,73 @@
|
||||
# The Deft Planck Layout
|
||||
|
||||

|
||||
|
||||
The Deft Planck layout is designed for efficiency in programming and transferability between ortholinear boards. It features a fairly standard default layer with properly placed arrow keys, a lower layer with a usable numpad and symbols, and a raise layer for numbers, f-keys, and music controls. The code is also cut down to only what you need. The result is a very usable Planck that can easily replace fullsize layouts.
|
||||
|
||||
The strangely placed Enter key is meant to be closer to your thumb and moving it allows for proper arrow key placement without disturbing our layout too much. I wanted to separate the enter key from the forward slash key anyway, as I was commonly pressing enter when I meant to type a question mark. You get used to it pretty fast.
|
||||
|
||||
Follow my cat:
|
||||
|
||||
https://twitter.com/CatBucha
|
||||
|
||||
https://www.instagram.com/buchathecat/
|
||||
|
||||
|
||||
## Flashing:
|
||||
| Rev 5 or earlier: | Rev 6: |
|
||||
|-|-|
|
||||
| `make planck/revX:deft:dfu` | `make planck/rev6:deft:dfu-util` |
|
||||
|
||||
## Layout:
|
||||
|
||||
### QWERTY layer
|
||||
```
|
||||
,-----------------------------------------------------------------------------------.
|
||||
| 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 | , | . | Up | / |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| Ctrl | Alt | GUI | Copy |Lower | Space |Raise |Enter | Left | Down |Right |
|
||||
`-----------------------------------------------------------------------------------'
|
||||
```
|
||||
|
||||
### Lower layer
|
||||
```
|
||||
,-----------------------------------------------------------------------------------.
|
||||
| Del | Alt1 | Alt2 | Alt3 | Alt4 | ( | ) | Num7 | Num8 | Num9 | Num0 | |
|
||||
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
| | ` | \ | = | - | < | > | Num4 | Num5 | Num6 | Num. | NumL |
|
||||
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
| | Num/ | Num* | Num- | Num+ | [ | ] | Num1 | Num2 | Num3 | Pgup | Num= |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| | | |Paste | | | | NumE | Home | Pgdn | End |
|
||||
`-----------------------------------------------------------------------------------'
|
||||
```
|
||||
|
||||
### Raise layer
|
||||
```
|
||||
,-----------------------------------------------------------------------------------.
|
||||
| | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
|
||||
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
| | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | |
|
||||
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
| | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | Vol+ | |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| | | | Cut | | | | | Play | Vol- | Next |
|
||||
`-----------------------------------------------------------------------------------'
|
||||
```
|
||||
|
||||
### Adjust layer
|
||||
```
|
||||
,-----------------------------------------------------------------------------------.
|
||||
|Reset | | | | | | | | | | | |
|
||||
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
| | | | | | | | | | | | |
|
||||
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
| | | | | | | | | | | | |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| | | | | | | | | | | |
|
||||
`-----------------------------------------------------------------------------------'
|
||||
```
|
||||
1
keyboards/planck/keymaps/deft/rules.mk
Normal file
1
keyboards/planck/keymaps/deft/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
SRC += muse.c
|
||||
39
keyboards/planck/keymaps/mgalisa/config.h
Normal file
39
keyboards/planck/keymaps/mgalisa/config.h
Normal file
@@ -0,0 +1,39 @@
|
||||
#pragma once
|
||||
|
||||
#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
|
||||
|
||||
/*
|
||||
* 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
|
||||
|
||||
// Most tactile encoders have detents every 4 stages
|
||||
#define ENCODER_RESOLUTION 4
|
||||
|
||||
403
keyboards/planck/keymaps/mgalisa/keymap.c
Normal file
403
keyboards/planck/keymaps/mgalisa/keymap.c
Normal file
@@ -0,0 +1,403 @@
|
||||
/* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "muse.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
enum planck_layers {
|
||||
_QWERTY,
|
||||
_COLEMAK,
|
||||
_DVORAK,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_PLOVER,
|
||||
_EMOJI,
|
||||
_ADJUST
|
||||
};
|
||||
|
||||
enum planck_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
COLEMAK,
|
||||
DVORAK,
|
||||
PLOVER,
|
||||
BACKLIT,
|
||||
EXT_PLV,
|
||||
AUTO_SQ,
|
||||
AUTO_PA,
|
||||
AUTO_CB,
|
||||
SHRUG,
|
||||
F4R
|
||||
};
|
||||
|
||||
#define LOWER MO(_LOWER)
|
||||
#define RAISE MO(_RAISE)
|
||||
|
||||
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] = LAYOUT_planck_grid(
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
LT(_EMOJI,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] = LAYOUT_planck_grid(
|
||||
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
|
||||
LT(_EMOJI,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] = LAYOUT_planck_grid(
|
||||
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
|
||||
LT(_EMOJI,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] = LAYOUT_planck_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_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] = LAYOUT_planck_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_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 - new
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ` | F1 | F2 | F3 | F4 | {} | 7 | 8 | 9 | - | * | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Del | F5 | F6 | F7 | F8 | () | 4 | 5 | 6 | + | / | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | F9 | F10 | F11 | F12 | [] | 1 | 2 | 3 |Vol - |Vol + | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | 0 | | Home |Pg Dn |Pg Up | End |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = LAYOUT_planck_grid(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, AUTO_CB, KC_7, KC_8, KC_9, KC_MINS, KC_ASTR, KC_BSPC,
|
||||
KC_DEL, KC_F5, KC_F6, KC_F7, KC_F8, AUTO_PA, KC_4, KC_5, KC_6, KC_PLUS, KC_SLSH, KC_BSLS,
|
||||
_______, KC_F9, KC_F10, KC_F11, KC_F12, AUTO_SQ, KC_1, KC_2, KC_3, KC_PGUP, KC_VOLU, _______,
|
||||
_______, _______, _______, _______, _______, KC_0, _______, _______, 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_planck_grid(
|
||||
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
|
||||
),
|
||||
|
||||
[_EMOJI] = LAYOUT_planck_grid(
|
||||
_______, _______, _______, F4R, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
KC_TRNS, _______, _______, SHRUG, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | Reset| | | | | | | | | | Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = LAYOUT_planck_grid(
|
||||
_______, 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
|
||||
|
||||
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:
|
||||
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 BACKLIT:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_RSFT);
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
backlight_step();
|
||||
#endif
|
||||
#ifdef KEYBOARD_planck_rev5
|
||||
PORTE &= ~(1<<6);
|
||||
#endif
|
||||
} else {
|
||||
unregister_code(KC_RSFT);
|
||||
#ifdef KEYBOARD_planck_rev5
|
||||
PORTE |= (1<<6);
|
||||
#endif
|
||||
}
|
||||
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;
|
||||
case AUTO_SQ:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("[]SS_TAP(X_LEFT)");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case AUTO_CB:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("{}SS_TAP(X_LEFT)");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case AUTO_PA:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("()SS_TAP(X_LEFT)");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case SHRUG:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("/shrugSS_TAP(X_ENT)");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case F4R:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(":f-for-respects:");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool muse_mode = false;
|
||||
uint8_t last_muse_note = 0;
|
||||
uint16_t muse_counter = 0;
|
||||
uint8_t muse_offset = 70;
|
||||
uint16_t muse_tempo = 50;
|
||||
|
||||
void encoder_update(bool clockwise) {
|
||||
if (muse_mode) {
|
||||
if (IS_LAYER_ON(_RAISE)) {
|
||||
if (clockwise) {
|
||||
muse_offset++;
|
||||
} else {
|
||||
muse_offset--;
|
||||
}
|
||||
} else {
|
||||
if (clockwise) {
|
||||
muse_tempo+=1;
|
||||
} else {
|
||||
muse_tempo-=1;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (clockwise) {
|
||||
#ifdef MOUSEKEY_ENABLE
|
||||
tap_code(KC_MS_WH_DOWN);
|
||||
#else
|
||||
tap_code(KC_PGDN);
|
||||
#endif
|
||||
} else {
|
||||
#ifdef MOUSEKEY_ENABLE
|
||||
tap_code(KC_MS_WH_UP);
|
||||
#else
|
||||
tap_code(KC_PGUP);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void dip_update(uint8_t index, bool active) {
|
||||
switch (index) {
|
||||
case 0:
|
||||
if (active) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(plover_song);
|
||||
#endif
|
||||
layer_on(_ADJUST);
|
||||
} else {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(plover_gb_song);
|
||||
#endif
|
||||
layer_off(_ADJUST);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (active) {
|
||||
muse_mode = true;
|
||||
} else {
|
||||
muse_mode = false;
|
||||
#ifdef AUDIO_ENABLE
|
||||
stop_all_notes();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
if (muse_mode) {
|
||||
if (muse_counter == 0) {
|
||||
uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
|
||||
if (muse_note != last_muse_note) {
|
||||
stop_note(compute_freq_for_midi_note(last_muse_note));
|
||||
play_note(compute_freq_for_midi_note(muse_note), 0xF);
|
||||
last_muse_note = muse_note;
|
||||
}
|
||||
}
|
||||
muse_counter = (muse_counter + 1) % muse_tempo;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
bool music_mask_user(uint16_t keycode) {
|
||||
switch (keycode) {
|
||||
case RAISE:
|
||||
case LOWER:
|
||||
return false;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
15
keyboards/planck/keymaps/mgalisa/readme.md
Normal file
15
keyboards/planck/keymaps/mgalisa/readme.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# @mgalisa's Planck keymap
|
||||
|
||||
A minor (so far) update to the default keymap. Probably more to come.
|
||||
|
||||
## Raise layer
|
||||
|
||||

|
||||
|
||||
* Moved F-keys and number keys into 4x3 and 3x3 grid patterns for pseudo-numpad like effect
|
||||
* Added macros to the middle column that insert bracket/brace/paren pairs and moves the cursor inbetween
|
||||
* Minor adjustments
|
||||
|
||||
## Emoji layer
|
||||
|
||||
Activate by holding the Esc key from QWERTY/Dvorak/Colemak. Holds macros primarily for annoying coworkers via Slack.
|
||||
6
keyboards/planck/keymaps/mgalisa/rules.mk
Normal file
6
keyboards/planck/keymaps/mgalisa/rules.mk
Normal file
@@ -0,0 +1,6 @@
|
||||
SRC += muse.c
|
||||
EXTRAKEY_ENABLE = yes
|
||||
# RGBLIGHT_ENABLE = yes
|
||||
## I bought the WS2812s...
|
||||
## just need the main branch to be updated.
|
||||
# Uncomment to make build fail.
|
||||
4
keyboards/planck/keymaps/nick/config.h
Normal file
4
keyboards/planck/keymaps/nick/config.h
Normal file
@@ -0,0 +1,4 @@
|
||||
#pragma once
|
||||
|
||||
#define TAP_CODE_DELAY 10
|
||||
#define ENCODER_RESOLUTION 2
|
||||
122
keyboards/planck/keymaps/nick/keymap.c
Normal file
122
keyboards/planck/keymaps/nick/keymap.c
Normal file
@@ -0,0 +1,122 @@
|
||||
/* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
enum planck_layers {
|
||||
_QWERTY,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_ADJUST
|
||||
};
|
||||
|
||||
#define LOWER MO(_LOWER)
|
||||
#define RAISE MO(_RAISE)
|
||||
#define ADJUST MO(_ADJUST)
|
||||
|
||||
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 |Adjust| Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = LAYOUT_planck_grid(
|
||||
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_LCTL, ADJUST, 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] = LAYOUT_planck_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_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 |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = LAYOUT_planck_grid(
|
||||
KC_MPLY, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||
_______, 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 |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = LAYOUT_planck_grid(
|
||||
_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
|
||||
};
|
||||
|
||||
uint32_t layer_state_set_user(uint32_t state) {
|
||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
|
||||
void encoder_update(bool clockwise) {
|
||||
if (clockwise && !IS_LAYER_ON(_RAISE)) {
|
||||
tap_code(KC_MS_WH_DOWN);
|
||||
} else if (!clockwise && !IS_LAYER_ON(_RAISE)) {
|
||||
tap_code(KC_MS_WH_UP);
|
||||
} else if (clockwise && IS_LAYER_ON(_RAISE)) {
|
||||
tap_code(KC_VOLU);
|
||||
} else if (!clockwise && IS_LAYER_ON(_RAISE)) {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
}
|
||||
6
keyboards/planck/keymaps/nick/readme.md
Normal file
6
keyboards/planck/keymaps/nick/readme.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# Nick's Planck Layout
|
||||
|
||||
Similar to default layout with some minor changes:
|
||||
- scroll and volume control knob
|
||||
- added rule to remove audio
|
||||
- encoder resolution altered to suit [this model](https://au.element14.com/alps/ec11e15244g1/encoder-vertical-11mm-30det-15ppr/dp/2064986?ost=EC11E15244G1&ddkey=https%3Aen-AU%2FElement14_Australia%2Fsearch)
|
||||
1
keyboards/planck/keymaps/nick/rules.mk
Normal file
1
keyboards/planck/keymaps/nick/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
AUDIO_ENABLE = no
|
||||
@@ -33,3 +33,6 @@
|
||||
|
||||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||
//#define MIDI_TONE_KEYCODE_OCTAVES 2
|
||||
|
||||
// Most tactile encoders have detents every 4 stages
|
||||
#define ENCODER_RESOLUTION 4
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "muse.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
@@ -26,7 +27,7 @@ enum planck_layers {
|
||||
};
|
||||
|
||||
enum planck_keycodes {
|
||||
// QWERTY = SAFE_RANGE,
|
||||
QWERTY = SAFE_RANGE,
|
||||
BACKLIT,
|
||||
EXT_PLV
|
||||
};
|
||||
@@ -51,10 +52,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* `-------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = LAYOUT_planck_grid(
|
||||
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
|
||||
{CTRL_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_LCTL, RAISE, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, LOWER, HYPER, _______, _______, RAISE }
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
CTRL_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_LCTL, RAISE, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, LOWER, HYPER, _______, _______, RAISE
|
||||
),
|
||||
|
||||
/* Lower
|
||||
@@ -69,10 +70,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* `-----------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LOWER] = LAYOUT_planck_grid(
|
||||
{_______, KC_BSLS, KC_SLSH, KC_LBRC, KC_RBRC, KC_TILD, KC_PIPE, KC_EQL, KC_PLUS, KC_MINS, KC_UNDS, _______},
|
||||
{_______, KC_LCBR, KC_RCBR, KC_LPRN, KC_RPRN, KC_GRV, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_LALT, _______},
|
||||
{_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
|
||||
_______, KC_BSLS, KC_SLSH, KC_LBRC, KC_RBRC, KC_TILD, KC_PIPE, KC_EQL, KC_PLUS, KC_MINS, KC_UNDS, _______,
|
||||
_______, KC_LCBR, KC_RCBR, KC_LPRN, KC_RPRN, KC_GRV, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_LALT, _______,
|
||||
_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* Raise
|
||||
@@ -87,10 +88,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* `----------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = LAYOUT_planck_grid(
|
||||
{_______, _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______},
|
||||
{_______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, _______, _______, KC_4, KC_5, KC_6, _______, _______},
|
||||
{_______, KC_MRWD, KC_MFFD, KC_SLCK, KC_PAUS, _______, _______, KC_1, KC_2, KC_3, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, KC_0, KC_0, KC_DOT, _______, _______}
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______,
|
||||
_______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, _______, _______, KC_4, KC_5, KC_6, _______, _______,
|
||||
_______, KC_MRWD, KC_MFFD, KC_SLCK, KC_PAUS, _______, _______, KC_1, KC_2, KC_3, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_0, KC_0, KC_DOT, _______, _______
|
||||
),
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
@@ -105,10 +106,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* `----------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = LAYOUT_planck_grid(
|
||||
{_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL },
|
||||
{_______, _______, MU_MOD, AU_ON, AU_OFF, _______, _______, QWERTY, _______, _______, _______, _______},
|
||||
{_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
|
||||
_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
|
||||
_______, _______, MU_MOD, AU_ON, AU_OFF, _______, _______, QWERTY, _______, _______, _______, _______,
|
||||
_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
|
||||
};
|
||||
@@ -145,9 +146,9 @@ bool music_mask_user(uint16_t keycode) {
|
||||
* `----------------------------------------------------------------------------------------------------------'
|
||||
*
|
||||
[_EXAMPLE] = LAYOUT_planck_grid(
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
*/
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
SRC += muse.c
|
||||
|
||||
@@ -108,10 +108,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
*/
|
||||
|
||||
[_NAV] = LAYOUT_ortho_4x12(
|
||||
ALTF4, KC_PGDN, KC_UP, KC_PGUP, KC_HOME, XXXXXXX, XXXXXXX, XXXXXXX, GUIU, XXXXXXX, XXXXXXX, KC_DEL,
|
||||
_______, KC_PGDN, KC_UP, KC_PGUP, KC_HOME, XXXXXXX, XXXXXXX, XXXXXXX, GUIU, XXXXXXX, XXXXXXX, KC_DEL,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, XXXXXXX, XXXXXXX, GUIL, GUID, GUIR, EMOJI, KC_ENT,
|
||||
_______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, MU_ON, XXXXXXX, XXXXXXX, XXXXXXX, _______,
|
||||
RESET, CU_ESCT, _______, _______, _______, KC_SPC, CTLENT, _______, _______, _______, _______, CU_GAME
|
||||
RESET, CU_ESCT, ALTF4, _______, _______, KC_SPC, CTLENT, _______, _______, _______, _______, CU_GAME
|
||||
)
|
||||
|
||||
};
|
||||
|
||||
@@ -1,4 +1,115 @@
|
||||
{
|
||||
"keyboard_name": "Planck Light",
|
||||
"keyboard_folder": "planck/light"
|
||||
"keyboard_folder": "planck/light",
|
||||
"url": "https://olkb.com/planck",
|
||||
"maintainer": "jackhumbert",
|
||||
"width": 12,
|
||||
"height": 4,
|
||||
"layouts": {
|
||||
"LAYOUT_planck_1x2uC": {
|
||||
"key_count": 47,
|
||||
"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 }
|
||||
]
|
||||
},
|
||||
"LAYOUT_ortho_4x12": {
|
||||
"key_count": 48,
|
||||
"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 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,4 +20,50 @@
|
||||
#include "planck.h"
|
||||
#include "rgb_matrix.h"
|
||||
|
||||
#define LAYOUT_planck_1x2uC( \
|
||||
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, k35, k37, k38, k39, k3a, k3b } \
|
||||
}
|
||||
|
||||
#define LAYOUT_ortho_4x12( \
|
||||
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 \
|
||||
) \
|
||||
{ \
|
||||
{ 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 } \
|
||||
}
|
||||
|
||||
// Used to create a keymap using only KC_ prefixed keys
|
||||
#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, k36, k37, k38, k39, k3a, k3b \
|
||||
) \
|
||||
LAYOUT_ortho_4x12( \
|
||||
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 KEYMAP LAYOUT_ortho_4x12
|
||||
#define LAYOUT_planck_mit LAYOUT_planck_1x2uC
|
||||
#define LAYOUT_planck_grid LAYOUT_ortho_4x12
|
||||
#define LAYOUT_kc_ortho_4x12 LAYOUT_kc
|
||||
#define KC_KEYMAP LAYOUT_kc
|
||||
|
||||
#endif
|
||||
15
keyboards/planck/light/readme.md
Normal file
15
keyboards/planck/light/readme.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# Planck Light
|
||||
|
||||

|
||||
|
||||
A Planck variant sold by Massdrop. Designed for Kailh PG1350 "Choc" switches, the Planck Light Features per-key RGB backlighting and a dual-channel speaker. [More info on qmk.fm](http://qmk.fm/planck/)
|
||||
|
||||
Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
|
||||
Hardware Supported: Planck Light
|
||||
Hardware Availability: [Massdrop](https://www.massdrop.com/buy/massdrop-x-olkb-planck-light-mechanical-keyboard?mode=guest_open)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make planck/light:default
|
||||
|
||||
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).
|
||||
@@ -5,146 +5,22 @@
|
||||
|
||||
#define encoder_update(clockwise) encoder_update_user(uint8_t index, clockwise)
|
||||
|
||||
#ifdef KEYBOARD_planck_ez
|
||||
#if defined(KEYBOARD_planck_ez)
|
||||
#include "ez.h"
|
||||
#endif
|
||||
|
||||
#ifdef __AVR__
|
||||
#define LAYOUT_planck_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, \
|
||||
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 } \
|
||||
}
|
||||
|
||||
#define LAYOUT_planck_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, \
|
||||
k30, k31, k32, k33, k34, k35, k36, 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, k36, k37, k38, k39, k3a, k3b } \
|
||||
}
|
||||
|
||||
// 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 \
|
||||
) \
|
||||
LAYOUT_planck_grid( \
|
||||
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 KEYMAP LAYOUT_planck_grid
|
||||
#define LAYOUT_ortho_4x12 LAYOUT_planck_grid
|
||||
#define KC_LAYOUT_ortho_4x12 KC_KEYMAP
|
||||
|
||||
#elif KEYBOARD_planck_rev6
|
||||
|
||||
#define LAYOUT_planck_1x2uC( \
|
||||
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 }, \
|
||||
{ k10, k11, k12, k13, k14, k15 }, \
|
||||
{ k20, k21, k22, k23, k24, k25 }, \
|
||||
{ k30, k31, k32, k39, k3a, k3b }, \
|
||||
{ k06, k07, k08, k09, k0a, k0b }, \
|
||||
{ k16, k17, k18, k19, k1a, k1b }, \
|
||||
{ k26, k27, k28, k29, k2a, k2b }, \
|
||||
{ k36, k37, k38, k33, k34, k35 } \
|
||||
}
|
||||
|
||||
#define LAYOUT_planck_1x2uR( \
|
||||
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 }, \
|
||||
{ k10, k11, k12, k13, k14, k15 }, \
|
||||
{ k20, k21, k22, k23, k24, k25 }, \
|
||||
{ k30, k31, k32, k39, k3a, k3b }, \
|
||||
{ k06, k07, k08, k09, k0a, k0b }, \
|
||||
{ k16, k17, k18, k19, k1a, k1b }, \
|
||||
{ k26, k27, k28, k29, k2a, k2b }, \
|
||||
{ k36, k37, k38, k33, k34, k35 } \
|
||||
}
|
||||
|
||||
#define LAYOUT_planck_1x2uL( \
|
||||
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, k36, k37, k38, k39, k3a, k3b \
|
||||
) \
|
||||
{ \
|
||||
{ k00, k01, k02, k03, k04, k05 }, \
|
||||
{ k10, k11, k12, k13, k14, k15 }, \
|
||||
{ k20, k21, k22, k23, k24, k25 }, \
|
||||
{ k30, k31, k32, k39, k3a, k3b }, \
|
||||
{ k06, k07, k08, k09, k0a, k0b }, \
|
||||
{ k16, k17, k18, k19, k1a, k1b }, \
|
||||
{ k26, k27, k28, k29, k2a, k2b }, \
|
||||
{ k36, k37, k38, k33, k34, k35 } \
|
||||
}
|
||||
|
||||
#define LAYOUT_planck_2x2u( \
|
||||
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, k36, k38, k39, k3a, k3b \
|
||||
) \
|
||||
{ \
|
||||
{ k00, k01, k02, k03, k04, k05 }, \
|
||||
{ k10, k11, k12, k13, k14, k15 }, \
|
||||
{ k20, k21, k22, k23, k24, k25 }, \
|
||||
{ k30, k31, k32, k39, k3a, k3b }, \
|
||||
{ k06, k07, k08, k09, k0a, k0b }, \
|
||||
{ k16, k17, k18, k19, k1a, k1b }, \
|
||||
{ k26, k27, k28, k29, k2a, k2b }, \
|
||||
{ k36, k37, k38, k33, k34, k35 } \
|
||||
}
|
||||
|
||||
#define LAYOUT_planck_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, \
|
||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
|
||||
) \
|
||||
{ \
|
||||
{ k00, k01, k02, k03, k04, k05 }, \
|
||||
{ k10, k11, k12, k13, k14, k15 }, \
|
||||
{ k20, k21, k22, k23, k24, k25 }, \
|
||||
{ k30, k31, k32, k39, k3a, k3b }, \
|
||||
{ k06, k07, k08, k09, k0a, k0b }, \
|
||||
{ k16, k17, k18, k19, k1a, k1b }, \
|
||||
{ k26, k27, k28, k29, k2a, k2b }, \
|
||||
{ k36, k37, k38, k33, k34, k35 } \
|
||||
}
|
||||
|
||||
#define KEYMAP LAYOUT_planck_grid
|
||||
#define LAYOUT_ortho_4x12 LAYOUT_planck_grid
|
||||
#define KC_LAYOUT_ortho_4x12 KC_KEYMAP
|
||||
|
||||
#endif
|
||||
#elif defined(KEYBOARD_planck_light)
|
||||
#include "light.h"
|
||||
#elif defined(KEYBOARD_planck_rev1)
|
||||
#include "rev1.h"
|
||||
#elif defined(KEYBOARD_planck_rev2)
|
||||
#include "rev2.h"
|
||||
#elif defined(KEYBOARD_planck_rev3)
|
||||
#include "rev3.h"
|
||||
#elif defined(KEYBOARD_planck_rev4)
|
||||
#include "rev4.h"
|
||||
#elif defined(KEYBOARD_planck_rev5)
|
||||
#include "rev5.h"
|
||||
#elif defined(KEYBOARD_planck_rev6)
|
||||
#include "rev6.h"
|
||||
#endif // Planck revisions
|
||||
|
||||
#endif
|
||||
|
||||
@@ -6,7 +6,7 @@ Planck
|
||||
A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/)
|
||||
|
||||
Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
|
||||
Hardware Supported: Planck PCB rev1, rev2, rev3, rev4, rev5, rev6; Planck Light
|
||||
Hardware Supported: Planck PCB rev1, rev2, rev3, rev4, rev5, rev6; Planck Light, Planck EZ
|
||||
Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
115
keyboards/planck/rev1/info.json
Normal file
115
keyboards/planck/rev1/info.json
Normal file
@@ -0,0 +1,115 @@
|
||||
{
|
||||
"keyboard_name": "Planck rev 1",
|
||||
"keyboard_folder": "planck/rev1",
|
||||
"url": "https://olkb.com/planck",
|
||||
"maintainer": "jackhumbert",
|
||||
"width": 12,
|
||||
"height": 4,
|
||||
"layouts": {
|
||||
"LAYOUT_planck_1x2uC": {
|
||||
"key_count": 47,
|
||||
"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 }
|
||||
]
|
||||
},
|
||||
"LAYOUT_ortho_4x12": {
|
||||
"key_count": 48,
|
||||
"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 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
13
keyboards/planck/rev1/readme.md
Normal file
13
keyboards/planck/rev1/readme.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Planck
|
||||
|
||||
A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/)
|
||||
|
||||
Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
|
||||
Hardware Supported: Planck PCB rev1
|
||||
Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make planck/rev1:default
|
||||
|
||||
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).
|
||||
49
keyboards/planck/rev1/rev1.h
Normal file
49
keyboards/planck/rev1/rev1.h
Normal file
@@ -0,0 +1,49 @@
|
||||
#pragma once
|
||||
|
||||
#include "planck.h"
|
||||
|
||||
#define LAYOUT_planck_1x2uC( \
|
||||
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, k35, k37, k38, k39, k3a, k3b } \
|
||||
}
|
||||
|
||||
#define LAYOUT_ortho_4x12( \
|
||||
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 \
|
||||
) \
|
||||
{ \
|
||||
{ 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 } \
|
||||
}
|
||||
|
||||
// Used to create a keymap using only KC_ prefixed keys
|
||||
#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, k36, k37, k38, k39, k3a, k3b \
|
||||
) \
|
||||
LAYOUT_ortho_4x12( \
|
||||
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 KEYMAP LAYOUT_ortho_4x12
|
||||
#define LAYOUT_planck_mit LAYOUT_planck_1x2uC
|
||||
#define LAYOUT_planck_grid LAYOUT_ortho_4x12
|
||||
#define LAYOUT_kc_ortho_4x12 LAYOUT_kc
|
||||
#define KC_KEYMAP LAYOUT_kc
|
||||
115
keyboards/planck/rev2/info.json
Normal file
115
keyboards/planck/rev2/info.json
Normal file
@@ -0,0 +1,115 @@
|
||||
{
|
||||
"keyboard_name": "Planck rev 2",
|
||||
"keyboard_folder": "planck/rev2",
|
||||
"url": "https://olkb.com/planck",
|
||||
"maintainer": "jackhumbert",
|
||||
"width": 12,
|
||||
"height": 4,
|
||||
"layouts": {
|
||||
"LAYOUT_planck_1x2uC": {
|
||||
"key_count": 47,
|
||||
"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 }
|
||||
]
|
||||
},
|
||||
"LAYOUT_ortho_4x12": {
|
||||
"key_count": 48,
|
||||
"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 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
13
keyboards/planck/rev2/readme.md
Normal file
13
keyboards/planck/rev2/readme.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Planck
|
||||
|
||||
A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/)
|
||||
|
||||
Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
|
||||
Hardware Supported: Planck PCB rev2
|
||||
Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make planck/rev2:default
|
||||
|
||||
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).
|
||||
49
keyboards/planck/rev2/rev2.h
Normal file
49
keyboards/planck/rev2/rev2.h
Normal file
@@ -0,0 +1,49 @@
|
||||
#pragma once
|
||||
|
||||
#include "planck.h"
|
||||
|
||||
#define LAYOUT_planck_1x2uC( \
|
||||
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, k35, k37, k38, k39, k3a, k3b } \
|
||||
}
|
||||
|
||||
#define LAYOUT_ortho_4x12( \
|
||||
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 \
|
||||
) \
|
||||
{ \
|
||||
{ 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 } \
|
||||
}
|
||||
|
||||
// Used to create a keymap using only KC_ prefixed keys
|
||||
#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, k36, k37, k38, k39, k3a, k3b \
|
||||
) \
|
||||
LAYOUT_ortho_4x12( \
|
||||
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 KEYMAP LAYOUT_ortho_4x12
|
||||
#define LAYOUT_planck_mit LAYOUT_planck_1x2uC
|
||||
#define LAYOUT_planck_grid LAYOUT_ortho_4x12
|
||||
#define LAYOUT_kc_ortho_4x12 LAYOUT_kc
|
||||
#define KC_KEYMAP LAYOUT_kc
|
||||
115
keyboards/planck/rev3/info.json
Normal file
115
keyboards/planck/rev3/info.json
Normal file
@@ -0,0 +1,115 @@
|
||||
{
|
||||
"keyboard_name": "Planck rev 3",
|
||||
"keyboard_folder": "planck/rev3",
|
||||
"url": "https://olkb.com/planck",
|
||||
"maintainer": "jackhumbert",
|
||||
"width": 12,
|
||||
"height": 4,
|
||||
"layouts": {
|
||||
"LAYOUT_planck_1x2uC": {
|
||||
"key_count": 47,
|
||||
"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 }
|
||||
]
|
||||
},
|
||||
"LAYOUT_ortho_4x12": {
|
||||
"key_count": 48,
|
||||
"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 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
13
keyboards/planck/rev3/readme.md
Normal file
13
keyboards/planck/rev3/readme.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Planck
|
||||
|
||||
A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/)
|
||||
|
||||
Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
|
||||
Hardware Supported: Planck PCB rev3
|
||||
Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make planck/rev3:default
|
||||
|
||||
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).
|
||||
49
keyboards/planck/rev3/rev3.h
Normal file
49
keyboards/planck/rev3/rev3.h
Normal file
@@ -0,0 +1,49 @@
|
||||
#pragma once
|
||||
|
||||
#include "planck.h"
|
||||
|
||||
#define LAYOUT_planck_1x2uC( \
|
||||
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, k35, k37, k38, k39, k3a, k3b } \
|
||||
}
|
||||
|
||||
#define LAYOUT_ortho_4x12( \
|
||||
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 \
|
||||
) \
|
||||
{ \
|
||||
{ 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 } \
|
||||
}
|
||||
|
||||
// Used to create a keymap using only KC_ prefixed keys
|
||||
#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, k36, k37, k38, k39, k3a, k3b \
|
||||
) \
|
||||
LAYOUT_ortho_4x12( \
|
||||
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 KEYMAP LAYOUT_ortho_4x12
|
||||
#define LAYOUT_planck_mit LAYOUT_planck_1x2uC
|
||||
#define LAYOUT_planck_grid LAYOUT_ortho_4x12
|
||||
#define LAYOUT_kc_ortho_4x12 LAYOUT_kc
|
||||
#define KC_KEYMAP LAYOUT_kc
|
||||
115
keyboards/planck/rev4/info.json
Normal file
115
keyboards/planck/rev4/info.json
Normal file
@@ -0,0 +1,115 @@
|
||||
{
|
||||
"keyboard_name": "Planck rev 4",
|
||||
"keyboard_folder": "planck/rev4",
|
||||
"url": "https://olkb.com/planck",
|
||||
"maintainer": "jackhumbert",
|
||||
"width": 12,
|
||||
"height": 4,
|
||||
"layouts": {
|
||||
"LAYOUT_planck_1x2uC": {
|
||||
"key_count": 47,
|
||||
"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 }
|
||||
]
|
||||
},
|
||||
"LAYOUT_ortho_4x12": {
|
||||
"key_count": 48,
|
||||
"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 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
13
keyboards/planck/rev4/readme.md
Normal file
13
keyboards/planck/rev4/readme.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Planck
|
||||
|
||||
A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. The first revision of the Planck to support Audio. [More info on qmk.fm](http://qmk.fm/planck/)
|
||||
|
||||
Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
|
||||
Hardware Supported: Planck PCB rev4
|
||||
Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make planck/rev4:default
|
||||
|
||||
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).
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user