[Keymap Removal] keyboard with most keymaps (#23092)
This commit is contained in:
parent
b8646bc40b
commit
78a74ca974
426 changed files with 0 additions and 27404 deletions
|
@ -1,20 +0,0 @@
|
|||
#pragma once
|
||||
|
||||
// Sets good default for the speed of the mouse.
|
||||
#undef MOUSEKEY_INTERVAL
|
||||
#undef MOUSEKEY_DELAY
|
||||
#undef MOUSEKEY_TIME_TO_MAX
|
||||
#undef MOUSEKEY_MAX_SPEED
|
||||
|
||||
#define MOUSEKEY_INTERVAL 20
|
||||
#define MOUSEKEY_DELAY 100
|
||||
#define MOUSEKEY_TIME_TO_MAX 60
|
||||
#define MOUSEKEY_MAX_SPEED 7
|
||||
|
||||
#undef MOUSEKEY_WHEEL_MAX_SPEED
|
||||
#undef MOUSEKEY_WHEEL_TIME_TO_MAX
|
||||
#undef MOUSEKEY_WHEEL_DELAY
|
||||
|
||||
#define MOUSEKEY_WHEEL_MAX_SPEED 5
|
||||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 60
|
||||
#define MOUSEKEY_WHEEL_DELAY 100
|
|
@ -1,397 +0,0 @@
|
|||
/*
|
||||
Copyright 2019 Mario Arias <mario@marioarias.org>
|
||||
|
||||
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 "version.h"
|
||||
|
||||
#include "keymap_spanish.h"
|
||||
|
||||
enum layers {
|
||||
BASE = 0, //Colemak
|
||||
QWERTY, //Qwerty
|
||||
FN, //Colemak but FN1 to FN12 instead of numbers
|
||||
NUM, //Numpad
|
||||
MOUSE, //Mouse and media controls
|
||||
IDEA //Shortcuts for IDEA / Other tools
|
||||
};
|
||||
|
||||
//Special paste
|
||||
#define S_PASTE LSFT(LGUI(KC_V))
|
||||
//tmux prefix
|
||||
#define T_PREFIX LCTL(KC_B)
|
||||
// Column mode
|
||||
#define I_COLUMN ALGR(LCTL(LGUI(ES_MINS)))
|
||||
// Terminal
|
||||
#define I_TERM ALGR(KC_F12)
|
||||
// Line comment
|
||||
#define I_LN_COM LCTL(LGUI(KC_7))
|
||||
// Block comment
|
||||
#define I_BK_COM LCTL(LGUI(KC_8))
|
||||
// Reformat code
|
||||
#define I_REFORM LALT(LGUI(KC_L))
|
||||
// Rename
|
||||
#define I_RENAME LSFT(KC_F6)
|
||||
// Find usages
|
||||
#define I_FUSAGE LALT(KC_F7)
|
||||
// Code for Packt
|
||||
#define P_CODE LCTL(ALGR(KC_X))
|
||||
// Search
|
||||
#define I_SEARCH LCTL(LSFT(KC_F))
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap 0: Colemak MacOS Spanish layer
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | Esc | 1 ! | 2 " | 3 · | 4 $ | 5 % | º \ | | ¡ ¿ | 6 & | 7 / | 8 ( | 9 ) | 0 = | Backsp |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | TAB | Q | W | F | P | G | Home | | End | J | L | U | Y | Ñ | ' ? |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | CAPS | A | R | S | T | D |------| |------| H | N | E | I | O | ENT |
|
||||
* |--------+------+------+------+------+------| <> | | -_ |------+------+------+------+------+--------|
|
||||
* | Shift | Z | X | C | V | B | | | | K | M | , ; | . : | UP | Shift |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | Del | PgUp |Ctl/PD|Alt/[ |Cmd/] | |Cmd/{ |Alt/} | LEFT | DOWN | RIGHT|
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,--------------. ,--------------.
|
||||
* | Num | Mouse | | Qwer | Ctrl |
|
||||
* ,------|------|-------| |------+-------+------.
|
||||
* | | | FN | |SPaste| | |
|
||||
* |LShift|Backsp|-------| |------| ENT |Space |
|
||||
* | | | IDEA | | T-pre| | |
|
||||
* `---------------------' `---------------------'
|
||||
*/
|
||||
[BASE] = LAYOUT_ergodox(
|
||||
// left hand
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, ES_LABK,
|
||||
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_HOME,
|
||||
KC_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV,
|
||||
KC_DEL, KC_PGUP, CTL_T(KC_PGDN), ALT_T(ES_GRV), GUI_T(ES_PLUS),
|
||||
|
||||
DF(NUM), DF(MOUSE),
|
||||
DF(FN),
|
||||
KC_LSFT, KC_BSPC, MO(IDEA),
|
||||
|
||||
// right hand
|
||||
ES_IEXL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||
KC_END, KC_J, KC_L, KC_U, KC_Y, ES_NTIL, ES_QUOT,
|
||||
KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT,
|
||||
ES_MINS, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT,
|
||||
GUI_T(ES_ACUT), ALT_T(KC_BSLS), KC_LEFT, KC_DOWN, KC_RIGHT,
|
||||
|
||||
DF(QWERTY), KC_RCTL,
|
||||
S_PASTE,
|
||||
T_PREFIX, KC_ENT, KC_SPC
|
||||
),
|
||||
/* Keymap 1: Spanish QWERTY layer (games) //Will probably change it for a Linux/Windows Colemak layer
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | | Q | W | E | R | T | | | | Y | U | I | O | P | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | A | S | D | F | G |------| |------| H | J | K | L | Ñ | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | Z | X | C | V | B | | | | N | M | | | | |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | | | | | | | | | | | |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | | | | Base | |
|
||||
* ,------|------|------| |------+--------+------.
|
||||
* | | | | | | | |
|
||||
* | | |------| |------| | |
|
||||
* | | | | | | | |
|
||||
* `--------------------' `----------------------'
|
||||
*/
|
||||
[QWERTY] = LAYOUT_ergodox(
|
||||
// left hand
|
||||
_______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_Q, KC_W, KC_E, KC_R, KC_T, _______,
|
||||
_______, KC_A, KC_S, KC_D, KC_F, KC_G,
|
||||
_______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______,
|
||||
_______, _______, _______, _______, _______,
|
||||
|
||||
_______, _______,
|
||||
_______,
|
||||
_______, _______, _______,
|
||||
|
||||
// right hand
|
||||
_______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_Y, KC_U, KC_I, KC_O, KC_P, _______,
|
||||
KC_H, KC_J, KC_K, KC_L, KC_SCLN, _______,
|
||||
_______, KC_N, KC_M, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______,
|
||||
DF(BASE), _______,
|
||||
_______,
|
||||
_______, _______, _______
|
||||
),
|
||||
/* Keymap 2: Function Layer
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | | | | | |------| |------| | | | | | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | | | | | | | | | | | |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | | | | | |
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | Base | | | | |
|
||||
* | | |------| |------| | |
|
||||
* | | | | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[FN] = LAYOUT_ergodox(
|
||||
// left hand
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
|
||||
_______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______,
|
||||
|
||||
_______, _______,
|
||||
DF(BASE),
|
||||
_______, _______, _______,
|
||||
|
||||
// right hand
|
||||
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______,
|
||||
|
||||
_______, _______,
|
||||
_______,
|
||||
_______, _______, _______
|
||||
),
|
||||
/* Mouse and media controls
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | Esc | | | | | | Play | | Vol+ | | | | | | |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | | | | Ms U | | | | | | | | Wh U | | | |
|
||||
* |--------+------+------+------+------+------| Rwd | | Vol- |------+------+------+------+------+--------|
|
||||
* | | | Ms L | Ms D | Ms R | |------| |------| | Wh L | Wh D | Wh R | | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | | Acc0 | Acc1 | Acc2 | | Fwd | | Mute | | Btn1 | Btn2 | Btn3 | | |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | | | | | | | | | | | |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | Num | Base | | | |
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | | | | | |
|
||||
* | | |------ |------| | |
|
||||
* | | | | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[MOUSE] = LAYOUT_ergodox(
|
||||
// left hand
|
||||
KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MPLY,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_U, XXXXXXX, XXXXXXX, KC_MRWD,
|
||||
XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, KC_MFFD,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
|
||||
DF(NUM), DF(BASE),
|
||||
XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
|
||||
// right hand
|
||||
KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
KC_VOLD, XXXXXXX, XXXXXXX, KC_WH_U, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, KC_WH_L, KC_WH_D, KC_WH_R, XXXXXXX, XXXXXXX,
|
||||
KC_MUTE, XXXXXXX, KC_BTN1, KC_BTN2, KC_BTN3, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
|
||||
XXXXXXX, XXXXXXX,
|
||||
XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX
|
||||
),
|
||||
/* Num pad
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | | | | | | | | | | ( | ) | = | / | * | |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | | | | Up | | | | | | | 7 | 8 | 9 | - | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | | Left | Down |Right | |------| |------| | 4 | 5 | 6 | + | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | | | | | | | | | | 1 | 2 | 3 |Enter | |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | | | | | | | 0 | 0 | , |Enter | . |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | Base | | | | |
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | | | | | |
|
||||
* | | |------ |------| | |
|
||||
* | | | | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[NUM] = LAYOUT_ergodox(
|
||||
// left hand
|
||||
_______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, KC_UP, _______, _______, _______,
|
||||
_______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______,
|
||||
|
||||
DF(BASE), _______,
|
||||
_______,
|
||||
_______, _______, _______,
|
||||
|
||||
// right hand
|
||||
_______, LSFT(KC_8), LSFT(KC_9), KC_PEQL, KC_PSLS, KC_PAST, _______,
|
||||
_______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______,
|
||||
_______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______,
|
||||
_______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______,
|
||||
KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_DOT,
|
||||
|
||||
_______, _______,
|
||||
_______,
|
||||
_______, _______, _______
|
||||
),
|
||||
/* IDEA
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | | | | | | | Renm | | Usag | | LnCm | BkCm | | Term | |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | | | |Search| | | | | | | Refm | | | | |
|
||||
* |--------+------+------+------+------+------| | | Col |------+------+------+------+------+--------|
|
||||
* | | | | | | |------| |------| | | | | | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | | Code | | | | | | | | | | | | |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | | | | | | | | | | | |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | | | | | |
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | | | | | |
|
||||
* | | |------ |------| | |
|
||||
* | | | | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[IDEA] = LAYOUT_ergodox(
|
||||
|
||||
//Left hand
|
||||
_______, _______, _______, _______, _______, _______, I_RENAME,
|
||||
_______, _______, _______, I_SEARCH, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______,
|
||||
_______, _______, P_CODE, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______,
|
||||
|
||||
_______, DF(BASE),
|
||||
_______,
|
||||
_______, _______, _______,
|
||||
|
||||
// right hand
|
||||
I_FUSAGE, _______, I_LN_COM, I_BK_COM, _______, I_TERM, _______,
|
||||
I_COLUMN, _______, I_REFORM, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______,
|
||||
|
||||
_______, _______,
|
||||
_______,
|
||||
_______, _______, _______
|
||||
)
|
||||
};
|
||||
|
||||
|
||||
void led_1_off(void) {
|
||||
ergodox_right_led_1_off();
|
||||
}
|
||||
|
||||
void led_2_off(void) {
|
||||
ergodox_right_led_2_off();
|
||||
}
|
||||
|
||||
void led_3_off(void) {
|
||||
ergodox_right_led_3_off();
|
||||
}
|
||||
|
||||
//Runs just one time when the keyboard initializes
|
||||
void matrix_init_use(void) {
|
||||
led_1_off();
|
||||
led_2_off();
|
||||
led_3_off();
|
||||
}
|
||||
|
||||
// Value to use to switch LEDs on. The default value of 255 is far too bright.
|
||||
static const uint8_t max_led_value = 20;
|
||||
|
||||
|
||||
void led_1_on(void) {
|
||||
ergodox_right_led_1_on();
|
||||
ergodox_right_led_1_set(max_led_value);
|
||||
}
|
||||
|
||||
void led_2_on(void) {
|
||||
ergodox_right_led_2_on();
|
||||
ergodox_right_led_2_set(max_led_value);
|
||||
}
|
||||
|
||||
void led_3_on(void) {
|
||||
ergodox_right_led_3_on();
|
||||
ergodox_right_led_3_set(max_led_value);
|
||||
}
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
|
||||
if(layer_state_cmp(state ,IDEA)) {
|
||||
led_1_on();
|
||||
led_3_on();
|
||||
} else {
|
||||
led_1_off();
|
||||
led_3_off();
|
||||
}
|
||||
|
||||
return state;
|
||||
};
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
ergodox_board_led_off();
|
||||
led_1_off();
|
||||
led_2_off();
|
||||
led_3_off();
|
||||
|
||||
if(layer_state_cmp(default_layer_state, QWERTY)) {
|
||||
led_3_on();
|
||||
}
|
||||
|
||||
if(layer_state_cmp(default_layer_state, FN)) {
|
||||
led_2_on();
|
||||
}
|
||||
|
||||
if(layer_state_cmp(default_layer_state, NUM)) {
|
||||
led_2_on();
|
||||
led_3_on();
|
||||
}
|
||||
|
||||
if(layer_state_cmp(default_layer_state, MOUSE)) {
|
||||
led_1_on();
|
||||
}
|
||||
};
|
|
@ -1,67 +0,0 @@
|
|||
# ErgoDox EZ Spanish Colemak configuration
|
||||
|
||||
## Description
|
||||
|
||||
A Colemak keymap adapted for Spanish.
|
||||
|
||||
### Base Layer - Spanish Colemak
|
||||
|
||||
The Base Layer is a Colemak keymap with an additional "ñ" next to the "y" key. The arrow cluster has a proper T inverted shape.
|
||||
|
||||
It includes almost all Spanish Symbols from a normal 100% keyboard thanks to the use of tap keys
|
||||
|
||||
|
||||
| Pressed | Tap | Shift | Alt |
|
||||
|---|---|---|---|
|
||||
|Left Ctrl|PgDn|||
|
||||
|Left Alt|`|ˆ|[|
|
||||
|Left Cmd|+|*|]|
|
||||
|Right Cmd|´|¨|{|
|
||||
|Right Alt|ç|Ç|}|
|
||||
|
||||
For example, if you want to type ```[]```, you keep pressing the "Left Alt" (To modify) and tap "Right Alt" and "Right Cmd" to send "[" and "]"
|
||||
|
||||
### Qwerty Layer
|
||||
|
||||
A Qwerty layer for gaming and maybe some VIM commands. It just modifies the few keys that are different between Colemak and Qwerty and keep all the others keys
|
||||
|
||||
### Fn Layer
|
||||
|
||||
A layer to change the number row including "º" and "¡" for "Fn1" to "Fn12". The rest is just the same as the Base layer
|
||||
|
||||
### Mouse and media controls
|
||||
|
||||
Mouse movement on the left hand, wheel and buttons on the right hand. "Play/Pause", "Rewind", "Forward" in the Left inner column. "Volume Up", "Volume Down" and "Mute" in the Right inner column
|
||||
|
||||
### Numpad
|
||||
|
||||
A complete numpad in the right hand, plus and Arrow cluster on the left hand
|
||||
|
||||
### IDEA (JetBrains IDEs)
|
||||
|
||||
A momentary layer for IDEA shortcuts that require more than two fingers or any Fn key
|
||||
|
||||
## How to build it
|
||||
|
||||
If you already have all the dependencies (Check QMK's documentation), you can run the command:
|
||||
|
||||
```bash
|
||||
make ergodox_ez:colemak_es_osx
|
||||
```
|
||||
|
||||
On MacOS, if you're using MacPorts you can install the following dependencies:
|
||||
|
||||
```bash
|
||||
port install avr-binutils
|
||||
port install avr-gcc
|
||||
port install avr-libc
|
||||
```
|
||||
|
||||
This isn't an exhaustive list and maybe there other dependencies that are technically necessary
|
||||
|
||||
## Changelog
|
||||
|
||||
* Jul 2019:
|
||||
* Initial version for the new QMK version
|
||||
|
||||

|
|
@ -1,2 +0,0 @@
|
|||
node_modules/
|
||||
package-lock.json
|
|
@ -1,88 +0,0 @@
|
|||
/*
|
||||
Set any config.h overrides for your specific keymap here.
|
||||
See config.h options at https://docs.qmk.fm/#/config_options?id=the-configh-file
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#undef TAPPING_TERM
|
||||
#define TAPPING_TERM 175
|
||||
#define TAPPING_TERM_PER_KEY
|
||||
|
||||
#undef DEBOUNCE
|
||||
#define DEBOUNCE 15
|
||||
|
||||
|
||||
#define RGB_MATRIX_SLEEP
|
||||
|
||||
#undef FORCE_NKRO
|
||||
#define FORCE_NKRO
|
||||
|
||||
#undef TAPPING_TOGGLE
|
||||
#define TAPPING_TOGGLE 5
|
||||
|
||||
#define LEADER_TIMEOUT 1000
|
||||
#define PERMISSIVE_HOLD
|
||||
#define DANCING_TERM 175
|
||||
|
||||
#define ONESHOT_TAP_TOGGLE 5
|
||||
|
||||
#undef ONESHOT_TIMEOUT
|
||||
#define ONESHOT_TIMEOUT 5000
|
||||
|
||||
#define COMBO_TERM 200
|
||||
|
||||
#undef RGBLIGHT_HUE_STEP
|
||||
#define RGBLIGHT_HUE_STEP 24
|
||||
|
||||
#undef RGBLIGHT_SAT_STEP
|
||||
#define RGBLIGHT_SAT_STEP 24
|
||||
|
||||
#undef RGBLIGHT_VAL_STEP
|
||||
#define RGBLIGHT_VAL_STEP 24
|
||||
|
||||
#undef RGBLIGHT_BRI_STEP
|
||||
#define RGBLIGHT_BRI_STEP 24
|
||||
|
||||
#undef RGBLIGHT_LIMIT_VAL
|
||||
#define RGBLIGHT_LIMIT_VAL 255
|
||||
|
||||
|
||||
#undef MOUSEKEY_INTERVAL
|
||||
#define MOUSEKEY_INTERVAL 10
|
||||
|
||||
#undef MOUSEKEY_DELAY
|
||||
#define MOUSEKEY_DELAY 15
|
||||
|
||||
#undef MOUSEKEY_MAX_SPEED
|
||||
#define MOUSEKEY_MAX_SPEED 20
|
||||
|
||||
#undef MOUSEKEY_TIME_TO_MAX
|
||||
#define MOUSEKEY_TIME_TO_MAX 200
|
||||
|
||||
#undef MOUSEKEY_WHEEL_MAX_SPEED
|
||||
#define MOUSEKEY_WHEEL_MAX_SPEED 20
|
||||
|
||||
#undef MOUSEKEY_WHEEL_TIME_TO_MAX
|
||||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 200
|
||||
|
||||
|
||||
// #undef NO_DEBUG
|
||||
// #define NO_DEBUG
|
||||
|
||||
// #undef NO_PRINT
|
||||
// #define NO_PRINT
|
||||
|
||||
// #define RETRO_TAPPING
|
||||
// #define QUICK_TAP_TERM 0
|
||||
|
||||
// #define AUTO_SHIFT_TIMEOUT 150
|
||||
// #define NO_AUTO_SHIFT_SPECIAL
|
||||
// #define NO_AUTO_SHIFT_NUMERIC
|
||||
// #define NO_AUTO_SHIFT_ALPHA
|
||||
|
||||
// #define EXTRA_LONG_COMBOS
|
||||
// #define EXTRA_EXTRA_LONG_COMBOS
|
||||
// #define COMBO_ALLOW_ACTION_KEYS
|
||||
|
||||
// #define RGBLIGHT_SLEEP
|
|
@ -1,22 +0,0 @@
|
|||
const gulp = require('gulp');
|
||||
const run = require('gulp-run-command').default;
|
||||
|
||||
|
||||
const ROOT_DIR = '../../../../';
|
||||
const BUILD_DIR = `${ROOT_DIR}.build`;
|
||||
const HACKER_DVORAK_DIR = './**/*';
|
||||
|
||||
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('default', gulp.series('watch'));
|
|
@ -1,353 +0,0 @@
|
|||
// Keyboard keymap:
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[DVORAK] = LAYOUT_ergodox(
|
||||
|
||||
// HACKER DVORAK left hand
|
||||
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
// ESCAPE | | | | | | START RECORDING //
|
||||
// | | | | | | //
|
||||
KC_ESC, TD(GRV_TILD), TD(AT_DLR), TD(LCBR_LABK), TD(LPRN_LBRC), TD(EXLM_QUES), DM_REC1, //
|
||||
// | ~ | $ | < | [ | ? | //
|
||||
// | TAP DANCE: ` | TAP DANCE: @ TAP DANCE: { | TAP DANCE: ( | TAP DANCE: ! | DYNAMIC MARCO 1 //
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
// 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), LCG_T(KC_P), LAG_T(KC_Y), DM_PLY1, //
|
||||
// | LEAD | " | , | | | //
|
||||
// | 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 | M TAP DANCE: ARROWS/GUI | MOD TAP: SHIFT+GUI | //
|
||||
// | | | | Ü | | //
|
||||
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 | //
|
||||
// | | | | | | //
|
||||
DM_RSTP, 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 | M TAP DANCE: MEDIA/MEH | M TAP DANCE: ATM/HYPER | MOD TAP: CTL+SHIFT+GUI | //
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
// LAYERS SWITCHER | APPLICATION MENU | | | //
|
||||
// | | | | SCROLL //
|
||||
TG(LAYERS), KC_APP, KC_NUM, KC_SCRL, KC_CAPS, //
|
||||
// | | | | NUM //
|
||||
// LAYER TOGGLE | | | | TAP DANCE: CAPS //
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
|
||||
// HACKER DVORAK left thumb
|
||||
|
||||
//------------------------+------------------------//
|
||||
// MOUSE WHEEL LEFT | MOUSE WHEEL RIGHT //
|
||||
// | //
|
||||
KC_WH_L, KC_WH_R, //
|
||||
// | //
|
||||
// | //
|
||||
//-------------------------+-------------------------+------------------------//
|
||||
// | | HOME //
|
||||
// | | //
|
||||
/* SPACE | BACKSPACE */ KC_HOME, //
|
||||
// | | //
|
||||
// | | //
|
||||
KC_SPC, KC_BSPC, //-----------------------//
|
||||
// | | END //
|
||||
// | | //
|
||||
/* | */ KC_END, //
|
||||
// | | //
|
||||
// | | //
|
||||
//-------------------------+-------------------------+------------------------//
|
||||
|
||||
// HACKER DVORAK right hand
|
||||
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
// | | | | | | //
|
||||
// | | | | | | //
|
||||
DM_REC2, TD(APMR_PIPE), TD(RPRN_RBRC), TD(RCBR_RABK), TD(HASH_PERC), TD(ASTR_CIRC), XXXXXXX, //
|
||||
// | | | | | | //
|
||||
// | | | | | | //
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
// | | | | | | //
|
||||
// | | | | | | //
|
||||
DM_PLY2, LAG_T(KC_F), LCG_T(KC_G), C_S_T(KC_C), LCA_T(KC_R), LAS_T(KC_L), TD(SLSH_BSLS), //
|
||||
// | | | | | | //
|
||||
// | | | | | | //
|
||||
// |-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
// | | | | | | //
|
||||
// | | | | | | //
|
||||
/*-----------------------*/ 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, LCSG_T(KC_B), TD(M_CHO_HYP), TD(W_MED_MEH), LCAG_T(KC_V), LASG_T(KC_Z), COMPOSE, //
|
||||
// | | | | | | //
|
||||
// | | | | | | ⎄ //
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
// | | | | //
|
||||
// | | | | //
|
||||
KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_SYRQ, //
|
||||
// | | | | //
|
||||
// | | | | //
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
|
||||
// HACKER DVORAK right thumb
|
||||
|
||||
//------------------------+------------------------//
|
||||
// | //
|
||||
// | //
|
||||
KC_WH_U, KC_WH_D, //
|
||||
// | //
|
||||
// | //
|
||||
//------------------------+-------------------------+------------------------//
|
||||
// | | //
|
||||
// | | //
|
||||
KC_PGUP, // | //
|
||||
// | | //
|
||||
// | | //
|
||||
//------------------------| | //
|
||||
// | | //
|
||||
// | | //
|
||||
KC_PGDN, KC_DEL, KC_ENT //
|
||||
// | | //
|
||||
// | | //
|
||||
//------------------------+-------------------------+------------------------//
|
||||
|
||||
),
|
||||
|
||||
[PLOVER] = LAYOUT_ergodox(
|
||||
// left hand
|
||||
XXXXXXX, XXXXXXX, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, KC_MS_BTN3, GUI_T(KC_NO),
|
||||
KC_ESC, KC_MS_BTN4, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_BTN5, PV_NUM,
|
||||
KC_TAB, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR,
|
||||
KC_CAPS, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, PV_STAR,
|
||||
XXXXXXX, TG(LAYERS), PV_NUM, PV_NUM, PV_NUM,
|
||||
|
||||
// left thumb
|
||||
KC_SPACE, KC_BSPC,
|
||||
KC_HOME,
|
||||
PV_A, PV_O, KC_END,
|
||||
|
||||
// right hand
|
||||
KC_MS_ACCEL2, KC_MS_ACCEL1, KC_MS_ACCEL0, KC_UP, KC_APPLICATION, XXXXXXX, KC_MS_WH_UP,
|
||||
PV_NUM, KC_MS_WH_LEFT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MS_WH_RIGHT, KC_MS_WH_DOWN,
|
||||
PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD,
|
||||
PV_STAR, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ,
|
||||
PV_NUM, PV_NUM, PV_NUM, PV_NUM, XXXXXXX,
|
||||
|
||||
// right thumb
|
||||
KC_DELETE, KC_ENTER,
|
||||
KC_PGUP,
|
||||
KC_PGDN, PV_E, PV_U
|
||||
),
|
||||
|
||||
[GAMING] = LAYOUT_ergodox(
|
||||
// left hand
|
||||
KC_ESCAPE, GUI_T(KC_MINS), KC_I, KC_O, KC_P, ALGR_T(KC_EQL), KC_T,
|
||||
KC_TAB, KC_LALT, KC_Q, KC_W, KC_E, ALL_T(KC_R), KC_G,
|
||||
LT(MOUSE, KC_GRV), KC_LCTL, KC_A, KC_S, KC_D, MEH_T(KC_F),
|
||||
KC_BSLS, KC_LSFT, KC_Z, KC_X, KC_C, SCMD_T(KC_V), KC_M,
|
||||
XXXXXXX, TG(LAYERS), KC_COMM, KC_DOT, KC_LBRC,
|
||||
|
||||
// left thumb
|
||||
MO(MEDIA_FN), KC_NUM,
|
||||
KC_SCLN,
|
||||
KC_SPACE, KC_ENTER, KC_BSPC,
|
||||
|
||||
// right hand
|
||||
KC_QUOT, KC_Y, KC_K, KC_U, KC_KP_7, KC_KP_8, KC_KP_9,
|
||||
KC_MS_WH_UP, KC_H, KC_J, KC_L, KC_KP_4, KC_KP_2, KC_KP_6,
|
||||
KC_B, KC_MS_UP, KC_N, KC_KP_1, KC_KP_5, KC_KP_3,
|
||||
KC_MS_WH_DOWN, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_UP, KC_KP_0, KC_SLASH,
|
||||
KC_RBRC, KC_LEFT, KC_DOWN, KC_RIGHT, XXXXXXX,
|
||||
|
||||
// right thumb
|
||||
KC_MS_BTN5, MO(CHORD),
|
||||
KC_MS_BTN4,
|
||||
KC_MS_BTN3, KC_MS_BTN2, KC_MS_BTN1
|
||||
),
|
||||
|
||||
[ARROWS] = LAYOUT_ergodox(
|
||||
// left hand
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, SCMD_T(KC_NO), MEH_T(KC_NO), ALL_T(KC_NO), XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, KC_LCTL, KC_LSFT, XXXXXXX, _______, XXXXXXX,
|
||||
XXXXXXX, KC_RALT, KC_LALT, GUI_T(KC_NO), XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
|
||||
// left thumb
|
||||
XXXXXXX, XXXXXXX,
|
||||
KC_HOME,
|
||||
KC_SPACE, KC_BSPC, KC_END,
|
||||
|
||||
// right hand
|
||||
LGUI(KC_X), XXXXXXX, LCTL(KC_X), KC_MS_WH_UP, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
LGUI(KC_C), XXXXXXX, LCTL(KC_C), KC_UP, SCTL(KC_C), LCTL(KC_Z), LGUI(KC_Z),
|
||||
KC_MS_WH_LEFT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MS_WH_RIGHT, KC_APPLICATION,
|
||||
LGUI(KC_V), XXXXXXX, LCTL(KC_V), KC_MS_WH_DOWN, SCTL(KC_V), LCTL(KC_Y), SGUI(KC_Z),
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SCRL,
|
||||
|
||||
// right thumb
|
||||
XXXXXXX, XXXXXXX,
|
||||
KC_PGUP,
|
||||
KC_PGDN, KC_DELETE, KC_ENTER
|
||||
),
|
||||
|
||||
[MOUSE] = LAYOUT_ergodox(
|
||||
// left hand
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_WH_UP, LCTL(KC_X), XXXXXXX, LGUI(KC_X),
|
||||
LGUI(KC_Z), LCTL(KC_Z), SCTL(KC_C), KC_MS_UP, LCTL(KC_C), KC_MS_BTN4, LGUI(KC_C),
|
||||
KC_MS_BTN3, KC_MS_WH_LEFT, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_RIGHT,
|
||||
LGUI(KC_Z), LCTL(KC_Y), SCTL(KC_V), KC_MS_WH_DOWN, LCTL(KC_V), KC_MS_BTN5, LGUI(KC_V),
|
||||
KC_SCRL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
|
||||
// left thumb
|
||||
XXXXXXX, XXXXXXX,
|
||||
XXXXXXX,
|
||||
KC_MS_BTN1, KC_MS_BTN2, XXXXXXX,
|
||||
|
||||
// right hand
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, ALL_T(KC_NO), MEH_T(KC_NO), SCMD_T(KC_NO), XXXXXXX,
|
||||
XXXXXXX, _______, KC_MS_ACCEL1, KC_LSFT, KC_LCTL, KC_MS_ACCEL2,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, GUI_T(KC_NO), KC_LALT, KC_RALT, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
|
||||
// right thumb
|
||||
XXXXXXX, XXXXXXX,
|
||||
XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, KC_MS_ACCEL0
|
||||
),
|
||||
|
||||
[NUMPAD] = LAYOUT_ergodox(
|
||||
// left hand
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, GUI_T(KC_NO), XXXXXXX, ALL_T(KC_NO), XXXXXXX, XXXXXXX,
|
||||
_______, KC_LCTL, KC_LSFT, _______, MEH_T(KC_NO), XXXXXXX,
|
||||
XXXXXXX, KC_RALT, KC_LALT, XXXXXXX, SCMD_T(KC_NO), XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
|
||||
// left thumb
|
||||
XXXXXXX, XXXXXXX,
|
||||
KC_HOME,
|
||||
KC_SPACE, KC_BSPC, KC_END,
|
||||
|
||||
// right hand
|
||||
KC_X, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F,
|
||||
KC_O, KC_I, KC_1, KC_2, KC_3, KC_SLSH, KC_PERC,
|
||||
KC_M, KC_4, KC_5, KC_6, KC_PLUS, KC_MINS,
|
||||
KC_L, KC_J, KC_7, KC_8, KC_9, KC_ASTR, KC_CIRC,
|
||||
KC_DOT, KC_0, KC_COMM, KC_UNDS, KC_BSLS,
|
||||
|
||||
// right thumb
|
||||
XXXXXXX, XXXXXXX,
|
||||
KC_PGUP,
|
||||
KC_PGDN, KC_DELETE, KC_ENTER
|
||||
),
|
||||
|
||||
[LAYERS] = LAYOUT_ergodox(
|
||||
// left hand
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
|
||||
// left thumb
|
||||
XXXXXXX, XXXXXXX,
|
||||
XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
|
||||
// right hand
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, TO(DVORAK), TO(PLOVER), TO(GAMING), XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
|
||||
// right thumb
|
||||
XXXXXXX, XXXXXXX,
|
||||
XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX
|
||||
),
|
||||
|
||||
[MEDIA_FN] = LAYOUT_ergodox(
|
||||
// left hand
|
||||
KC_VOLD, KC_MUTE, RGB_TOG, XXXXXXX, KC_MAIL, KC_FIND, KC_WWW_REFRESH,
|
||||
KC_MPRV, KC_F9, KC_F7, KC_F5, KC_F3, KC_F1, KC_WWW_HOME,
|
||||
KC_PAUS, KC_F19, KC_F17, KC_F15, KC_F13, KC_F11,
|
||||
RGB_HUD, XXXXXXX, XXXXXXX, _______, KC_F23, KC_F21, KC_WWW_BACK,
|
||||
RGB_VAD, KC_CAPS, KC_PSCR, XXXXXXX, MO(FIRMWARE),
|
||||
|
||||
// left thumb
|
||||
_______, XXXXXXX,
|
||||
XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, KC_MEDIA_EJECT,
|
||||
|
||||
// right hand
|
||||
KC_WWW_FAVORITES, KC_MYCM, KC_CALC, XXXXXXX, RGB_MOD, RGB_M_P, KC_VOLU,
|
||||
KC_WWW_SEARCH, KC_F2, KC_F4, KC_F6, KC_F8, KC_F10, KC_MNXT,
|
||||
KC_F12, KC_F14, KC_F16, KC_F18, KC_F20, KC_MPLY,
|
||||
KC_WWW_FORWARD, KC_F22, KC_F24, _______, XXXXXXX, XXXXXXX, RGB_HUI,
|
||||
KC_PWR, XXXXXXX, KC_SLEP, KC_WAKE, RGB_VAI,
|
||||
|
||||
// right thumb
|
||||
XXXXXXX, XXXXXXX,
|
||||
XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX
|
||||
),
|
||||
|
||||
[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,
|
||||
XXXXXXX, HYPR(KC_F11), HYPR(KC_F12), HYPR(KC_F13), HYPR(KC_F14), HYPR(KC_F15),
|
||||
XXXXXXX, HYPR(KC_F16), HYPR(KC_F17), HYPR(KC_F18), HYPR(KC_F19), HYPR(KC_F20), XXXXXXX,
|
||||
XXXXXXX, HYPR(KC_F21), HYPR(KC_F22), HYPR(KC_F23), HYPR(KC_F24),
|
||||
|
||||
// left thumb
|
||||
XXXXXXX, XXXXXXX,
|
||||
XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
|
||||
// right hand
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
|
||||
// right thumb
|
||||
XXXXXXX, _______,
|
||||
XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX
|
||||
),
|
||||
|
||||
[FIRMWARE] = LAYOUT_ergodox(
|
||||
|
||||
// left hand
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
|
||||
|
||||
// left thumb
|
||||
XXXXXXX, XXXXXXX,
|
||||
XXXXXXX,
|
||||
QK_BOOT, XXXXXXX, XXXXXXX,
|
||||
|
||||
// right hand
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
|
||||
// right thumb
|
||||
XXXXXXX, XXXXXXX,
|
||||
XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, EE_CLR
|
||||
)
|
||||
};
|
|
@ -1,13 +0,0 @@
|
|||
// Compound keycode aliases
|
||||
#define SCTL(kc) LSFT(LCTL(kc)) // Modifier keys: SHIFT+CTRL+kc combination.
|
||||
|
||||
// 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 +0,0 @@
|
|||
// Define custom user keycodes:
|
||||
enum custom_keycodes {
|
||||
PLACEHOLDER = SAFE_RANGE, // Can always be here.
|
||||
MY_CUSTOM_MACRO, // Custom macro example.
|
||||
MY_OTHER_MACRO, // Custom macro example.
|
||||
DYNAMIC_MACRO_RANGE // Should always be the last.
|
||||
};
|
|
@ -1,28 +0,0 @@
|
|||
#include QMK_KEYBOARD_H // Includes the QMK-verse.
|
||||
#include "keymap_plover.h" // Includes the Plover keymap for easier readability.
|
||||
|
||||
|
||||
// TODO: No eeprom changes unless needed, custom rgb settings for animations.
|
||||
#include "keycodes/aliases_definitions.c"
|
||||
#include "layers/layers_definitions.c"
|
||||
#include "tap_dance/tap_dance_setup.c"
|
||||
#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.
|
||||
#include "hacker_dvorak.c"
|
||||
#include "user/eeconfig_init_user.c"
|
||||
#include "user/process_record_user.c"
|
||||
#include "plover/plover_mode.c"
|
||||
#include "user/layer_set_state_user.c"
|
|
@ -1,12 +0,0 @@
|
|||
enum layers { // Hacker Dvorak keyboard layers:
|
||||
DVORAK = 0, // * Dvorak base layer.
|
||||
PLOVER = 1, // * Steno layer for use with Plover.
|
||||
GAMING = 2, // * Gaming layer intended for general purpose playing.
|
||||
ARROWS = 3, // * Arrows movement keys and edition shortcuts.
|
||||
MOUSE = 4, // * Mouse movement keys and edition shortcuts.
|
||||
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.
|
||||
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,15 +0,0 @@
|
|||
{
|
||||
"name": "hacker_dvorak",
|
||||
"version": "1.0.0",
|
||||
"description": "Inspired by the [*Programmer Dvorak*](https://www.kaufmann.no/roland/dvorak) keyboard layout, cherry picked ideas from other layouts in the [EZ Repository](https://configure.ergodox-ez.com/search?q=dvorak&legacy=true), a character distribution [heatmap vizualizer](https://run.plnkr.co/plunks/5EEO8nJ2wRzYAfT3), my own subjective use cases and lots of trial and error.",
|
||||
"main": "gulpfile.js",
|
||||
"scripts": {
|
||||
"test": "test"
|
||||
},
|
||||
"author": "SalchiPapa",
|
||||
"license": "GPL-2.0",
|
||||
"dependencies": {
|
||||
"gulp": "^4.0.0",
|
||||
"gulp-run-command": "0.0.9"
|
||||
}
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
// TODO: improve feedback
|
||||
void plover_toggle(void) {
|
||||
// Press "PHROLG"
|
||||
register_code(PV_LP);
|
||||
register_code(PV_LH);
|
||||
register_code(PV_LR);
|
||||
register_code(PV_O);
|
||||
register_code(PV_RL);
|
||||
register_code(PV_RG);
|
||||
|
||||
// Release "PHROLG"
|
||||
unregister_code(PV_LP);
|
||||
unregister_code(PV_LH);
|
||||
unregister_code(PV_LR);
|
||||
unregister_code(PV_O);
|
||||
unregister_code(PV_RL);
|
||||
unregister_code(PV_RG);
|
||||
}
|
||||
|
||||
bool PLOVER_MODE = false;
|
|
@ -1,62 +0,0 @@
|
|||
# [Ergodox EZ Hacker Dvorak Layout](https://configure.ergodox-ez.com/layouts/Wadz/latest/0)
|
||||
|
||||
Inspired by the [*Programmer Dvorak*](https://www.kaufmann.no/roland/dvorak) keyboard layout, cherry picked ideas from other layouts in the [EZ Repository](https://configure.ergodox-ez.com/search?q=dvorak&legacy=true), a character distribution [heatmap vizualizer](https://run.plnkr.co/plunks/5EEO8nJ2wRzYAfT3), my own subjective use cases and lots of trial and error.
|
||||
|
||||
## Setup
|
||||
|
||||
Configure your OS keyboard layout to US, or the keymap will be incorrect.
|
||||
|
||||
## Limitations
|
||||
|
||||
I plan to use [QMK](https://docs.qmk.fm) in the future, in order to overcome some limitations of the Ergodox EZ [graphical configurator](https://configure.ergodox-ez.com/layouts/default/latest/0)), however I will defer that, until more progress is made to the new [configurator](https://medium.com/the-ergo/the-configurator-is-out-of-beta-e107aec80cae).
|
||||
|
||||
## Layers
|
||||
|
||||
1. Dvorak
|
||||
* US Dvorak layout.
|
||||
* All symbols (including shifted symbols).
|
||||
* All modifier are dual keys positioned near the home row.
|
||||
2. Querty
|
||||
* Used to overcome the limitation pointed above, when your OS layout is set to Dvorak instead of US, this way you can use
|
||||
Standard Dvorak (available by default on all the main operating systems) on other normal keybdoards and Hacker Dvorak on
|
||||
the Ergodox EZ Shine at the same time, without changing back and forth tho OS layout.
|
||||
3. Gaming
|
||||
* Still in development.
|
||||
* Left side is mainly "normal" Qwerty.
|
||||
* Right side is mainly for movement, either using the mouse, the arrow keys, the number pad or the `H`, `J`, `K`, `L` as direction keys.
|
||||
4. Arrows
|
||||
* Arrow keys navigation.
|
||||
* All modifier keys.
|
||||
* Common text edititng shortcuts (doesn't work for MacOS).
|
||||
5. Mouse
|
||||
* Mouse navigation.
|
||||
* All modifier keys.
|
||||
* Common text edititng shortcuts (doesn't work for MacOS).
|
||||
6. Numpad
|
||||
* ATM style numpad.
|
||||
* All modifier keys.
|
||||
* Letters from `A` to `F` for hexadecimal numbers (`B` is also used for binary numeric literals in most programming
|
||||
languages, ie. `0b11001`).
|
||||
* `X` for hexadecimal numeric literals in most programming languages, ie. `0xbeef`.
|
||||
* `O` for octal numeric literals in most programming languages, ie `0o123`.
|
||||
* `J` for complex numeric literals in Python, ie. `3j`.
|
||||
* `I` and `M` for complex Julia numeric literals, ie. `3im`.
|
||||
* Common symbols for mathematical operations.
|
||||
7. Hyper Fn
|
||||
* Useful for custom global shortcuts.
|
||||
8. Media Fn
|
||||
* Media keys.
|
||||
* Function keys.
|
||||
* EZ Shine keys.
|
||||
9. Meh Fn
|
||||
* Useful for custom application shortcuts.
|
||||
10. Meh Fn +
|
||||
* Useful for custom standard shortcuts.
|
||||
|
||||
## To Do
|
||||
|
||||
Add images.
|
||||
|
||||
***
|
||||
|
||||
Please comment below if you have any ideas or suggestions. If you have used this layout or used it as a base, I'd love to hear about your experience!
|
|
@ -1,37 +0,0 @@
|
|||
# Set any rules.mk overrides for your specific keymap here.
|
||||
# See rules at https://docs.qmk.fm/#/config_options?id=the-rulesmk-file
|
||||
|
||||
LTO_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).
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450b).
|
||||
RGBLIGHT_ENABLE = yes
|
||||
LEADER_ENABLE = yes
|
||||
|
||||
UNICODE_ENABLE = no
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
SWAP_HANDS_ENABLE = no # Allow swapping hands of keyboard.
|
||||
|
||||
|
||||
# This are by default off:
|
||||
# COMBO_ENABLE = no
|
||||
# UCIS_ENABLE = no # For Unicode.
|
||||
# UNICODEMAP_ENABLE = no
|
||||
# SLEEP_LED_ENABLE = no # Turn off leds when computer is sleeping.
|
||||
# KEY_LOCK_ENABLE = no # (+1730b)
|
||||
# CONSOLE_ENABLE = no # Console for debug(+400b)
|
||||
# MIDI_ENABLE = no
|
||||
# BLUETOOTH_ENABLE = no
|
||||
# AUDIO_ENABLE = no
|
||||
# VARIABLE_TRACE = no
|
||||
# BACKLIGHT_ENABLE = no
|
||||
# RGB_MATRIX_ENABLE = no
|
||||
|
||||
# POINTING_DEVICE_ENABLE = no
|
||||
|
||||
# AUTO_SHIFT_ENABLE = no
|
||||
|
||||
# This don't need argument?
|
||||
# CUSTOM_MATRIX # Custom matrix file for the ErgoDox EZ
|
||||
# SPLIT_KEYBOARD
|
|
@ -1,41 +0,0 @@
|
|||
//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(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(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;
|
||||
}
|
|
@ -1,39 +0,0 @@
|
|||
//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(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(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;
|
||||
}
|
|
@ -1,43 +0,0 @@
|
|||
//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(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(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;
|
||||
}
|
|
@ -1,45 +0,0 @@
|
|||
//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(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(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;
|
||||
}
|
|
@ -1,45 +0,0 @@
|
|||
//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(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(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,40 +0,0 @@
|
|||
//instanalize an instance of 'tap' for the None - Lead tap dance.
|
||||
static tap none_lead_state = {
|
||||
.is_press_action = true,
|
||||
.state = 0
|
||||
};
|
||||
|
||||
void none_lead_finished(tap_dance_state_t *state, void *user_data) {
|
||||
none_lead_state.state = current_dance(state);
|
||||
switch (none_lead_state.state) {
|
||||
case SINGLE_TAP:
|
||||
register_code(KC_NO);
|
||||
break;
|
||||
|
||||
case SINGLE_HOLD:
|
||||
register_code(KC_LALT);
|
||||
register_code(KC_LSFT);
|
||||
break;
|
||||
|
||||
case DOUBLE_TAP:
|
||||
leader_start();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void none_lead_reset(tap_dance_state_t *state, void *user_data) {
|
||||
switch (none_lead_state.state) {
|
||||
case SINGLE_TAP:
|
||||
unregister_code(KC_NO);
|
||||
break;
|
||||
|
||||
case SINGLE_HOLD:
|
||||
unregister_code(KC_LALT);
|
||||
unregister_code(KC_LSFT);
|
||||
break;
|
||||
|
||||
case DOUBLE_TAP:
|
||||
break;
|
||||
}
|
||||
none_lead_state.state = 0;
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
//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(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(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;
|
||||
}
|
|
@ -1,43 +0,0 @@
|
|||
//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(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(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;
|
||||
}
|
|
@ -1,39 +0,0 @@
|
|||
//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(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(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;
|
||||
}
|
|
@ -1,43 +0,0 @@
|
|||
//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(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(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,44 +0,0 @@
|
|||
// Register the double tap dances:
|
||||
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),
|
||||
[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(NULL, scln_coln_finished, scln_coln_reset),
|
||||
[QUOT_DQUO] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, quot_dquot_finished, quot_dquot_reset),
|
||||
[DOT_COMM] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dot_comm_finished, dot_comm_reset),
|
||||
[NONE_LEAD] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, none_lead_finished, none_lead_reset),
|
||||
[U_ARR_GUI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, u_arrows_gui_finished, u_arrows_gui_reset),
|
||||
[H_MOU_GUI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, h_mouse_gui_finished, h_mouse_gui_reset),
|
||||
[J_MED_MEH] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, j_media_meh_finished, j_media_meh_reset),
|
||||
[W_MED_MEH] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, w_media_meh_finished, w_media_meh_reset),
|
||||
[K_NUM_HYP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, k_numpad_hyper_finished, k_numpad_hyper_reset),
|
||||
[M_CHO_HYP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, m_chords_hyper_finished, m_chords_hyper_reset),
|
||||
};
|
||||
|
||||
uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case TD(SCLN_COLN):
|
||||
case TD(QUOT_DQUO):
|
||||
case TD(DOT_COMM):
|
||||
case TD(NONE_LEAD):
|
||||
case TD(U_ARR_GUI):
|
||||
case TD(H_MOU_GUI):
|
||||
case TD(J_MED_MEH):
|
||||
case TD(W_MED_MEH):
|
||||
case TD(K_NUM_HYP):
|
||||
case TD(M_CHO_HYP):
|
||||
return DANCING_TERM;
|
||||
default:
|
||||
return TAPPING_TERM;
|
||||
}
|
||||
}
|
|
@ -1,75 +0,0 @@
|
|||
typedef struct {
|
||||
bool is_press_action;
|
||||
int state;
|
||||
} tap;
|
||||
|
||||
enum {
|
||||
SINGLE_TAP = 1,
|
||||
SINGLE_HOLD = 2,
|
||||
DOUBLE_TAP = 3,
|
||||
DOUBLE_HOLD = 4,
|
||||
DOUBLE_SINGLE_TAP = 5, // Send two single taps.
|
||||
TRIPLE_TAP = 6,
|
||||
TRIPLE_HOLD = 7,
|
||||
TRIPLE_SINGLE_TAP = 8 // Send three single taps.
|
||||
};
|
||||
|
||||
/* Return an integer that corresponds to what kind of tap dance should be executed.
|
||||
*
|
||||
* How to figure out tap dance state: interrupted and pressed.
|
||||
*
|
||||
* Interrupted: If the state of a dance dance is "interrupted", that means that another key has been hit
|
||||
* under the tapping term. This is typically indicitive that you are trying to "tap" the key.
|
||||
*
|
||||
* Pressed: Whether or not the key is still being pressed. If this value is true, that means the tapping term
|
||||
* has ended, but the key is still being pressed down. This generally means the key is being "held".
|
||||
*
|
||||
* One thing that is currenlty not possible with qmk software in regards to tap dance is to mimic the "permissive hold"
|
||||
* feature. In general, advanced tap dances do not work well if they are used with commonly typed letters.
|
||||
* For example "A". Tap dances are best used on non-letter keys that are not hit while typing letters.
|
||||
*
|
||||
* Good places to put an advanced tap dance:
|
||||
* z,q,x,j,k,v,b, any function key, home/end, comma, semi-colon
|
||||
*
|
||||
* Criteria for "good placement" of a tap dance key:
|
||||
* Not a key that is hit frequently in a sentence
|
||||
* Not a key that is used frequently to double tap, for example 'tab' is often double tapped in a terminal, or
|
||||
* in a web form. So 'tab' would be a poor choice for a tap dance.
|
||||
* Letters used in common words as a double. For example 'p' in 'pepper'. If a tap dance function existed on the
|
||||
* letter 'p', the word 'pepper' would be quite frustating to type.
|
||||
*
|
||||
* For the third point, there does exist the 'DOUBLE_SINGLE_TAP', however this is not fully tested
|
||||
*
|
||||
*/
|
||||
int current_dance(tap_dance_state_t *state) {
|
||||
int current_state = 0;
|
||||
if (state->count == 1) {
|
||||
if (state->interrupted || !state->pressed) {
|
||||
current_state = SINGLE_TAP;
|
||||
} else {
|
||||
current_state = SINGLE_HOLD; //key has not been interrupted, but they key is still held. Means you want to send a 'HOLD'.
|
||||
}
|
||||
} else if (state->count == 2) {
|
||||
/*
|
||||
* DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap
|
||||
* action when hitting 'pp'. Suggested use case for this return value is when you want to send two
|
||||
* keystrokes of the key, and not the 'double tap' action/macro.
|
||||
*/
|
||||
if (state->interrupted) {
|
||||
current_state = DOUBLE_SINGLE_TAP;
|
||||
} else if (state->pressed) {
|
||||
current_state = DOUBLE_HOLD;
|
||||
} else {
|
||||
current_state = DOUBLE_TAP;
|
||||
}
|
||||
} else if (state->count == 3) {
|
||||
if (state->interrupted) {
|
||||
current_state = TRIPLE_SINGLE_TAP;
|
||||
} else if (state->pressed) {
|
||||
current_state = TRIPLE_HOLD;
|
||||
} else {
|
||||
current_state = TRIPLE_TAP;
|
||||
}
|
||||
}
|
||||
return current_state;
|
||||
}
|
|
@ -1,98 +0,0 @@
|
|||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
// Single tap | Single hold | Double tap | Double hold | Triple tap | Triple hold //
|
||||
// Mod tap dances: // | | | | | //
|
||||
enum tap_dances { //--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
EQL_PLUS = 0, // = | | + | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
MINS_UNDS = 1, // - | | _ | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
SLSH_BSLS = 2, // / | | \ | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
GRV_TILD = 3, // ` | | ~ | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
QUOT_DQUO = 4, // ' | CTRL+ALT | " | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
SCLN_COLN = 5, // ; |ALT+SHIFT+META | : | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
ASTR_CIRC = 6, // * | | ^ | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
APMR_PIPE = 7, // & | | | | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
EXLM_QUES = 8, // ! | | ? | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
HASH_PERC = 9, // # | | % | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
AT_DLR = 10, // @ | | $ | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
LPRN_LBRC = 11, // ( | | [ | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
RPRN_RBRC = 12, // ) | | ] | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
LCBR_LABK = 13, // { | | < | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
RCBR_RABK = 14, // } | | > | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
DOT_COMM = 15, // . | CTRL+SHIFT | , | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
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 | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
};
|
|
@ -1,3 +0,0 @@
|
|||
// void eeconfig_init_user(void) {
|
||||
//
|
||||
// };
|
|
@ -1,121 +0,0 @@
|
|||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
uint8_t layer = get_highest_layer(state);
|
||||
|
||||
switch (layer) {
|
||||
case DVORAK:
|
||||
rgblight_sethsv_noeeprom(HSV_GREEN);
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
|
||||
|
||||
if (PLOVER_MODE) {
|
||||
plover_toggle();
|
||||
PLOVER_MODE = false;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case PLOVER:
|
||||
rgblight_sethsv_noeeprom(HSV_RED);
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3);
|
||||
|
||||
if (!(PLOVER_MODE)) {
|
||||
plover_toggle();
|
||||
PLOVER_MODE = true;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case GAMING:
|
||||
rgblight_sethsv_noeeprom(HSV_RED);
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
|
||||
|
||||
if (PLOVER_MODE) {
|
||||
plover_toggle();
|
||||
PLOVER_MODE = false;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case ARROWS:
|
||||
rgblight_sethsv_noeeprom(HSV_BLUE);
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
|
||||
|
||||
if (PLOVER_MODE) {
|
||||
plover_toggle();
|
||||
PLOVER_MODE = false;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case MOUSE:
|
||||
rgblight_sethsv_noeeprom(HSV_BLUE);
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
|
||||
|
||||
if (PLOVER_MODE) {
|
||||
plover_toggle();
|
||||
PLOVER_MODE = false;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case NUMPAD:
|
||||
rgblight_sethsv_noeeprom(HSV_BLUE);
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
|
||||
|
||||
if (PLOVER_MODE) {
|
||||
plover_toggle();
|
||||
PLOVER_MODE = false;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case LAYERS:
|
||||
rgblight_sethsv_noeeprom(HSV_CYAN);
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
|
||||
|
||||
if (PLOVER_MODE) {
|
||||
plover_toggle();
|
||||
PLOVER_MODE = false;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case MEDIA_FN:
|
||||
rgblight_sethsv_noeeprom(HSV_YELLOW);
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
|
||||
|
||||
if (PLOVER_MODE) {
|
||||
plover_toggle();
|
||||
PLOVER_MODE = false;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case CHORD:
|
||||
rgblight_sethsv_noeeprom(HSV_MAGENTA);
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
|
||||
|
||||
if (PLOVER_MODE) {
|
||||
plover_toggle();
|
||||
PLOVER_MODE = false;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case FIRMWARE:
|
||||
rgblight_sethsv_noeeprom(HSV_MAGENTA);
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
|
||||
|
||||
if (PLOVER_MODE) {
|
||||
plover_toggle();
|
||||
PLOVER_MODE = false;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return state;
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
bool MATRIX_SCANNED = false;
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
if (!(MATRIX_SCANNED)) {
|
||||
rgblight_sethsv_noeeprom(HSV_GREEN);
|
||||
MATRIX_SCANNED = true;
|
||||
}
|
||||
};
|
||||
|
||||
void leader_end_user(void) {
|
||||
if (leader_sequence_one_key(TD(APMR_PIPE))) {
|
||||
register_code(KC_LCTL);
|
||||
register_code(KC_LSFT);
|
||||
register_code(KC_U);
|
||||
|
||||
unregister_code(KC_U);
|
||||
unregister_code(KC_LSFT);
|
||||
unregister_code(KC_LCTL);
|
||||
}
|
||||
}
|
|
@ -1,75 +0,0 @@
|
|||
// TODO: Improve this currently there is no feedback if activated by other means.
|
||||
bool CAPS_LOCK = false;
|
||||
bool NUM_LOCK = false;
|
||||
bool SCROLL_LOCK = false;
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if (!process_record_dynamic_macro(keycode, record)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
switch (keycode) {
|
||||
case KC_CAPS_LOCK:
|
||||
if (record->event.pressed) {
|
||||
if (!(CAPS_LOCK)) {
|
||||
ergodox_right_led_1_on();
|
||||
CAPS_LOCK = true;
|
||||
} else {
|
||||
ergodox_right_led_1_off();
|
||||
CAPS_LOCK = false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
case KC_NUM_LOCK:
|
||||
if (record->event.pressed) {
|
||||
if (!(NUM_LOCK)) {
|
||||
ergodox_right_led_2_on();
|
||||
NUM_LOCK = true;
|
||||
} else {
|
||||
ergodox_right_led_2_off();
|
||||
NUM_LOCK = false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
case KC_SCROLL_LOCK:
|
||||
if (record->event.pressed) {
|
||||
if (!(SCROLL_LOCK)) {
|
||||
ergodox_right_led_3_on();
|
||||
SCROLL_LOCK = true;
|
||||
} else {
|
||||
ergodox_right_led_3_off();
|
||||
SCROLL_LOCK = false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
case KC_MS_WH_UP ... KC_MS_WH_RIGHT:
|
||||
if (record->event.pressed) {
|
||||
if (SCROLL_LOCK) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
case MY_CUSTOM_MACRO:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("QMK is the best thing ever!"); // this is our macro!
|
||||
return false;
|
||||
}
|
||||
|
||||
case MY_OTHER_MACRO:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_LCTL("ac")); // selects all and copies
|
||||
return false;
|
||||
}
|
||||
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue