Merge remote-tracking branch 'qmk/master' into merge-2023-12-16

This commit is contained in:
Ilya Zhuravlev 2023-12-16 10:48:34 -06:00
commit 66574eb854
6566 changed files with 124240 additions and 243032 deletions

View file

@ -91,9 +91,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// RGB backlight
#define DRIVER_ADDR_1 0b1110100
#define DRIVER_ADDR_2 0b1110111
#define DRIVER_COUNT 2
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
#define DRIVER_1_LED_TOTAL 24
#define DRIVER_2_LED_TOTAL 24
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

View file

@ -243,7 +243,7 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
#ifdef RGB_MATRIX_ENABLE
// clang-format off
const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
/* driver
* | R location
* | | G location

View file

@ -1,39 +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
#define TAPPING_TERM 200
#define ONESHOT_TAP_TOGGLE 3
#define RGBLIGHT_SLEEP
#undef MOUSEKEY_TIME_TO_MAX
#define MOUSEKEY_TIME_TO_MAX 50
#undef MOUSEKEY_WHEEL_TIME_TO_MAX
#define MOUSEKEY_WHEEL_TIME_TO_MAX 60
#undef DEBOUNCE
#define DEBOUNCE 45
// Memory saving
#ifdef CONSOLE_ENABLE
# define NO_DEBUG
# define NO_PRINT
#endif
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION
#undef RGBLIGHT_EFFECT_BREATHING
#undef RGBLIGHT_EFFECT_RAINBOW_MOOD
#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL
#undef RGBLIGHT_EFFECT_SNAKE
#undef RGBLIGHT_EFFECT_KNIGHT
#undef RGBLIGHT_EFFECT_CHRISTMAS
#undef RGBLIGHT_EFFECT_STATIC_GRADIENT
#undef RGBLIGHT_EFFECT_RGB_TEST
#undef RGBLIGHT_EFFECT_ALTERNATING
#undef RGBLIGHT_EFFECT_TWINKLE

View file

@ -1,326 +0,0 @@
#include QMK_KEYBOARD_H
#include "version.h"
#include "danielo515.h"
/* STUPID JS code to split by ergodox rows. Call the format function with the unformatted array
sliceBy = groups => items => groups.reduce(({start, acc},size) => ({
acc: (acc.push(items.slice(start,start+size)),acc ),
start: start + size
}), {acc:[],start:0}).acc
findMaxLen = items => items.reduce((max,curr) => max < curr.length ? curr.length : max,0)
setLen = len => strings => strings.map(str => str.padEnd(len, " "));
const format = string => {
const items = string.split(/,\s*(?![^()]*\))/)
const group = sliceBy([7,7,6,7,5,2,1,3])
const resize = setLen(findMaxLen(items));
const joinstr = ',\n'
const leftItems = group(items.slice(0,items.length/2))
const rightItems = group(items.slice(items.length/2))
const [left,right] = [leftItems.map(resize).join(joinstr),rightItems.map(resize).join(joinstr)]
return `\n${left},\n\n${right}\n`
}
*/
#define OSM_SF_CMD OSM(MOD_LGUI | MOD_LSFT)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ergodox(
KC_EQL ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,OSM(MOD_HYPR) ,
KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,TD(PASTE_DANCE) ,
KC_DELETE ,KC_A ,LT(3,KC_S) ,LT(2,KC_D) ,LT(4,KC_F) ,KC_G ,
KC_GRAVE ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,TD(COPY_CUT) ,
KC_BSLS ,OSM(MOD_LCTL) ,OSM(MOD_LALT) ,KC_LEFT ,KC_RIGHT ,
OSM_SF_CMD ,KC_PLUS ,
KC_INSERT ,
OSM(MOD_LSFT) ,LT(2,KC_BSPC) ,OSM(MOD_LGUI) ,
TO(1) ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,LT(3,KC_0) ,KC_DQUO ,
KC_UNDS ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,RSFT_T(KC_MINUS) ,
HYPR_H ,ALT_J ,CTL_K ,LT(6,KC_L) ,TD_CLN ,CMD_QUOT ,
ALT_TAB ,KC_N ,MEH_T(KC_M) ,KC_COMMA ,KC_DOT ,KC_SLASH ,LT(4,KC_KP_ASTERISK),
LT(4,KC_ENTER) ,KC_DOWN ,KC_LBRC ,KC_RBRC ,OSL(2) ,
KC_AUDIO_MUTE ,KC_ESCAPE ,
KC_END ,
KC_COLN ,QK_LEAD ,LT(4,KC_SPACE)
),
[1] = LAYOUT_ergodox(
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,AC_E ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
LT(5, KC_DELETE),AC_A ,KC_TRANSPARENT ,KC_TRANSPARENT ,FIND ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,
OSM(MOD_LSFT) ,KC_TRANSPARENT ,KC_TRANSPARENT ,
TO(8) ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_ENTER ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT),
[2] = LAYOUT_ergodox(
KC_TRANSPARENT,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_TRANSPARENT,
KC_TRANSPARENT,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_PIPE ,KC_CALCULATOR ,
KC_TRANSPARENT,KC_HASH ,KC_DLR ,KC_TRANSPARENT,KC_RPRN ,KC_GRAVE ,
KC_TRANSPARENT,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,KC_TRANSPARENT,
KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
KC_TRANSPARENT,KC_TRANSPARENT,
RGB_HUI ,
KC_TRANSPARENT,KC_TRANSPARENT,RGB_HUD ,
KC_DELETE ,KC_A ,KC_B ,KC_C ,KC_D ,KC_E ,KC_BSPC ,
KC_ENTER ,KC_F ,KC_7 ,KC_8 ,KC_9 ,KC_PERC ,KC_TRANSPARENT,
KC_HASH ,KC_4 ,KC_5 ,KC_6 ,KC_PLUS ,KC_KP_ASTERISK,
KC_KP_ENTER ,KC_COLON ,KC_1 ,KC_2 ,KC_3 ,KC_SLASH ,KC_BSLS ,
KC_0 ,KC_COMMA ,KC_DOT ,KC_EQUAL ,KC_TRANSPARENT,
RGB_TOG ,RGB_SLD ,
RGB_VAI ,
RGB_VAD ,KC_BSPC ,KC_SPACE
),
[3] = LAYOUT_ergodox(
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_LABK ,KC_RABK ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_AT ,KC_TRANSPARENT ,KC_EQL ,F_ARROW ,KC_GRAVE ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_LBRC ,KC_RBRC ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,IARROW ,ARROW ,
KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,
// Right hand
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
LALT(LSFT(KC_UP)) ,KC_HASH ,KC_LCBR ,KC_RCBR ,KC_KP_ASTERISK ,KC_PERC ,KC_DLR ,
KC_AMPR ,KC_LPRN ,KC_RPRN ,CLN_EQ ,KC_KP_PLUS ,KC_PIPE ,
LALT(LSFT(KC_DOWN)),KC_EXLM ,KC_TILD ,KC_CIRC ,ARROW ,KC_BSLS ,KC_BSLS ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
QK_BOOT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_SPACE
),
[4] = LAYOUT_ergodox(
KC_TRANSPARENT ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_TRANSPARENT ,
KC_TRANSPARENT ,LCTL(KC_Q) ,LCTL(KC_DOWN) ,LGUI(KC_DOWN) ,WIN_LEFT_HALF ,WIN_RIGHT_HALF ,LALT(LSFT(KC_UP)) ,
LCTL(LSFT(KC_P)) ,LCTL(KC_A) ,SAVE ,LCTL(KC_D) ,KC_TRANSPARENT ,RGUI(KC_R) ,
LCTL(LSFT(KC_F)) ,UNDO ,CUT ,KC_PSCR ,KC_TRANSPARENT ,LGUI(KC_RIGHT) ,LALT(LSFT(KC_DOWN)),
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
LALT(KC_F4) ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_F11 ,
LALT(KC_UP) ,LSFT(KC_HOME) ,LSFT(KC_LEFT) ,KC_UP ,LSFT(KC_RIGHT) ,LSFT(KC_END) ,KC_F13 ,
KC_HOME ,KC_LEFT ,KC_DOWN ,KC_RIGHT ,KC_END ,KC_F12 ,
LALT(KC_DOWN) ,LSFT(KC_INSERT) ,LCTL(LSFT(KC_J)) ,LSFT(KC_UP) ,KC_PGUP ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,LSFT(KC_DOWN) ,KC_PGDN ,WIN_TO_LEFT ,WIN_TO_RIGHT ,
KC_TRANSPARENT ,KC_SYSTEM_SLEEP ,
KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_BSPC ,KC_TRANSPARENT
),
[5] = LAYOUT_ergodox(
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,LCTL(KC_TAB) ,LCTL(LSFT(KC_TAB)) ,LGUI(KC_D) ,LCTL(KC_F) ,KC_TRANSPARENT ,
LGUI(KC_L) ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,LSFT(KC_F9) ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,LCTL(LGUI(KC_LEFT)) ,LCTL(LGUI(KC_RIGHT)),KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,LCTL(KC_T) ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT
),
[6] = LAYOUT_ergodox(
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_MS_ACCEL2 ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_MS_WH_DOWN ,KC_MS_UP ,KC_MS_WH_UP ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_MS_LEFT ,KC_MS_DOWN ,KC_MS_RIGHT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_MS_BTN3 ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,
KC_MS_BTN1 ,KC_MS_BTN2 ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_PGUP ,LCTL(LGUI(KC_RIGHT)),KC_MS_WH_UP ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
LGUI(RCTL(KC_LEFT)) ,KC_MS_WH_DOWN ,LCTL(KC_C) ,KC_TRANSPARENT ,KC_MEDIA_STOP ,KC_MEDIA_PLAY_PAUSE ,
KC_PGDN ,LCTL(LSFT(KC_N)) ,LCTL(LSFT(KC_J)) ,KC_MEDIA_PREV_TRACK ,KC_MEDIA_NEXT_TRACK ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_AUDIO_VOL_UP ,KC_AUDIO_VOL_DOWN ,KC_AUDIO_MUTE ,KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,
KC_TRANSPARENT ,
KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT
),
[7] = LAYOUT_ergodox(
KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
KC_TRANSPARENT,KC_TRANSPARENT,
KC_TRANSPARENT,
KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_UP ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
KC_TRANSPARENT,KC_LEFT ,KC_DOWN ,KC_RIGHT ,KC_TRANSPARENT,KC_TRANSPARENT,
KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
KC_TRANSPARENT,KC_TRANSPARENT,
KC_TRANSPARENT,
KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT
),
[8] = LAYOUT_ergodox(
KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
KC_TRANSPARENT,KC_Q ,KC_W ,KC_E ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
KC_ENTER ,KC_A ,KC_S ,KC_D ,KC_F ,KC_TRANSPARENT,
KC_TRANSPARENT,KC_Z ,KC_X ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
KC_TRANSPARENT,KC_TRANSPARENT,
KC_TRANSPARENT,
KC_SPACE ,KC_LSFT ,KC_TRANSPARENT,
TO(0) ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
KC_PGDN ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
KC_ENTER ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
KC_TRANSPARENT,KC_TRANSPARENT,
KC_TRANSPARENT,
KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT
),
};
// Used for blinking leds on layers higher than 7
uint16_t blink_timer = 0;
uint16_t blink_elapsed = 0;
bool blink_led_1 = false;
bool blink_led_2 = false;
bool blink_led_3 = false;
void matrix_scan_kb(void){
// first 7 layers do not need to blink
if(blink_led_1 || blink_led_2 || blink_led_3){
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
blink_elapsed = timer_elapsed(blink_timer);
if(blink_elapsed > 2000) { blink_timer = timer_read();}
if(blink_elapsed < 1000) {
if(blink_led_1) ergodox_right_led_1_on();
if(blink_led_2) ergodox_right_led_2_on();
if(blink_led_3) ergodox_right_led_3_on();
}
}
matrix_scan_user();
};
layer_state_t layer_state_set_user(layer_state_t state)
{
uint8_t layer = get_highest_layer(state);
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
blink_led_1=false;
blink_led_2=false;
blink_led_3=false;
switch (layer)
{
case 0:
rgblight_setrgb(0, 200, 200);
break;
case 1:
ergodox_right_led_1_on();
rgblight_setrgb(0, 200, 0); // green
break;
case 2:
ergodox_right_led_2_on();
rgblight_setrgb(0, 0, 255);
break;
case 3:
ergodox_right_led_3_on();
rgblight_setrgb(255, 0, 0);
break;
case 4:
ergodox_right_led_1_on();
ergodox_right_led_2_on();
rgblight_setrgb(200, 65, 0);
break;
case 5:
ergodox_right_led_1_on();
ergodox_right_led_3_on();
rgblight_setrgb(0, 80, 33);
break;
case 6:
ergodox_right_led_2_on();
ergodox_right_led_3_on();
rgblight_setrgb(0, 10, 200);
break;
case 7:
ergodox_right_led_1_on();
ergodox_right_led_2_on();
ergodox_right_led_3_on();
rgblight_setrgb(90, 150, 90);
break;
case 8:
blink_led_1=true;
rgblight_setrgb(100, 0, 100);
break;
case 9:
rgblight_setrgb(200, 150, 90);
break;
// default:
// rgblight_setrgb(0, 200, 200);
// break;
}
return state;
};
// use leds to indicate when a one shot mod is on
void oneshot_mods_changed_user(uint8_t mods) {
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
// One shot checks
if (mods & MOD_MASK_SHIFT) {
ergodox_right_led_1_on();
}
if (mods & MOD_MASK_CTRL) {
ergodox_right_led_2_on();
}
if (mods & MOD_MASK_ALT) {
ergodox_right_led_3_on();
}
// if (mods & MOD_MASK_GUI) {
// println("Oneshot mods GUI");
// }
}
void oneshot_locked_mods_changed_user(uint8_t mods) {
oneshot_mods_changed_user(mods);
}
//=============== alt_tab callbacks
void alt_tab_activated(void){
layer_on(7); // activate motion layer
}
void alt_tab_deactivated(void){
layer_off(7); // activate motion layer
}

View file

@ -1,9 +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
AUTO_SHIFT_ENABLE = no
TAP_DANCE_ENABLE = yes # Enable the tap dance feature.
LEADER_ENABLE = yes
CONSOLE_ENABLE = no
RGBLIGHT_ENABLE = yes
COMBO_ENABLE = yes

View file

@ -1,19 +0,0 @@
Overview
========
This is a dvorak based layout for the Ergodox EZ. Its basic key layout is similar to the Atreus "dvorak_42_key" layout. In fact this layout was created for seamless switching between the Ergodox EZ and Atreus. On the base layer, the keys that don't exist on the Atreus are mapped to MEH shortcuts and can be interpreted by Autohotkey. This layout only makes use of the 42 keys that the Atreus also has for the main functionality.
How to build
------------
make ergodox_ez:dvorak_42_key:teensy
Layers
------
* BASE: basic dvorak layout
* KEYNAV: arrow-key navigation. Momentary toggle held by thumb allows the right hand to navigate through text as well as copy/paste/cut, page up/page down
* KEYSEL: similar to KEYNAV, except for shift-selection
* COMBINED: this is a layer that combines numbers, brackets and special characters. !@#$%^&*( can be typed by shift+COMBINED+1/2/3/etc..
* BROWSER_CONTROL: primarily browser left/right tab, open new tab/delete tab, but also mouse keys.
* SHELL_NAV: Linux Bash shortcuts (move forward/backward in command line, Ctrl+C, recall last argument, etc
* SHELL_SCREEN: Linux screen (run multiple terminals in one window) shortcuts such as open new tabs, switch between tabs
* SCREEN_NAV: special layer for copy/pasting within Linux screen, allows using various copy/paste buffers

View file

@ -1,340 +0,0 @@
// Copyright 2022 LucW (@luc-languagetools)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
#include "debug.h"
#include "action_layer.h"
#include "version.h"
#include "dvorak_42_key.h"
// to build this keymap
// make ergodox_ez:dvorak_42_key:teensy
// or:
// qmk compile -kb ergodox_ez -km dvorak_42_key
// flashing from rpi:
// sudo teensy_loader_cli -v -w .build/ergodox_ez_dvorak_42_key.hex --mcu atmega32u4
// keeping fork up to date:
// https://help.github.com/articles/configuring-a-remote-for-a-fork/
// https://help.github.com/articles/syncing-a-fork/
// pushing dev branch
// git push origin dev:dev
// debounce settings
// remove these after getting a new keyboard
// #define DEBOUNCE 50
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_ergodox(
// left hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
OSL(VSCODE), KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, KC_TRNS,
OSL(SHELL_NAV), KC_A, KC_O, KC_E, KC_U, KC_I,
OSL(SHELL_SCREEN), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, MO(VSCODE),
MEH(KC_0), OSM(MOD_LSFT), OSM(MOD_LCTL), MO(KEYSEL), MO(BROWSER_CONTROL),
// left thumb cluster
KC_TRNS,KC_TRNS,
KC_TRNS,
MO(COMBINED),MO(KEYNAV), KC_TRNS,
// right hand
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MEH(KC_7),
MEH(KC_1), KC_F, KC_G, KC_C, KC_R, KC_L, KC_TAB,
KC_D, KC_H, KC_T, KC_N, KC_S, RCTL(KC_BSPC),
MEH(KC_2), KC_B, KC_M, KC_W, KC_V, KC_Z, MEH(KC_8),
KC_BSPC, RCTL(KC_BSPC), KC_CAPS, OSM(MOD_LSFT),MEH(KC_9),
// right thumb cluster
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_ENTER, KC_SPACE
),
[KEYNAV] = LAYOUT_ergodox(
// left hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_ESC, RCTL(KC_ENTER), RCTL(KC_K), RCTL(KC_Z), RCTL(KC_S), RCTL(KC_N), KC_TRNS,
KC_TRNS, MO(KEYSEL), KC_TRNS, RSFT(KC_TAB), KC_TAB, RCTL(KC_F),
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NP_DUPE_LINE, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
// left thumb cluster
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
// right hand
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MEH(KC_G),
KC_TRNS,KC_NO, KC_HOME, KC_UP, KC_END, KC_PGUP, MEH(KC_H),
LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), MEH(KC_I),
KC_TRNS,KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_PGDN, MEH(KC_J),
KC_BSPC, RCTL(KC_BSPC), KC_DELETE, LCTL(KC_DELETE), MEH(KC_K),
// right thumb cluster
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
// key selection layer
[KEYSEL] = LAYOUT_ergodox(
// left hand
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
// bottom row
QK_BOOT,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
// thumb cluster
KC_TRNS,KC_TRNS,
KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,
// right hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, RSFT(KC_HOME), RSFT(KC_UP), RSFT(KC_END), RSFT(KC_PGUP), KC_TRNS,
RSFT(RCTL(KC_LEFT)), RSFT(KC_LEFT), RSFT(KC_DOWN), RSFT(KC_RIGHT), RSFT(RCTL(KC_RIGHT)), KC_TRNS,
KC_TRNS, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), RSFT(KC_PGDN), KC_TRNS,
// bottom row
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
// thumb cluster
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
// shell navigation layer
[SHELL_NAV] = LAYOUT_ergodox(
// left hand
KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS,SHELL_GIT_DIFF, SHELL_PGREP, SHELL_PLESS, SHELL_LESS, KC_TRNS, KC_TRNS,
KC_TRNS,SHELL_GIT_STATUS, SHELL_CDPRE, SHELL_LSLTR, SHELL_LS, SHELL_LSLA,
KC_TRNS,SHELL_SCREEN_LIST, SHELL_SCREENRD, SHELL_SCREEN_NEW, SHELL_TAILF, KC_TRNS, KC_TRNS,
// bottom row
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
// thumb cluster
KC_TRNS,KC_TRNS,
KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,
// right hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, RCTL(KC_D), KC_HOME, KC_UP, KC_END, RCTL(KC_L), RCTL(KC_X),
LALT(KC_B), KC_LEFT, KC_DOWN, KC_RIGHT, LALT(KC_F), RCTL(KC_W),
KC_TRNS, RCTL(KC_U), LALT(KC_DOT), RCTL(KC_R), KC_BTN2, RCTL(KC_K), RCTL(KC_C),
// bottom row
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
// thumb cluster
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
// linux screen layer
[SHELL_SCREEN] = LAYOUT_ergodox(
// left hand
KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS,KC_TRNS, SCREEN_READREG_3, SCREEN_READREG_2, SCREEN_READREG_1, KC_TRNS, KC_TRNS,
KC_TRNS,KC_TRNS, SCREEN_PASTEREG_3, SCREEN_PASTEREG_2, SCREEN_PASTEREG_1, SCREEN_DETACH,
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
// bottom row
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
// thumb cluster
KC_TRNS,KC_TRNS,
KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,
// right hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, SCREEN_7, SCREEN_8, SCREEN_9, SCREEN_RENAME, KC_TRNS,
SCREEN_TAB_LEFT, SCREEN_4, SCREEN_5, SCREEN_6, SCREEN_TAB_RIGHT, SCREEN_COPY_MODE,
KC_TRNS, KC_TRNS, SCREEN_1, SCREEN_2, SCREEN_3, SCREEN_NUMBER, SCREEN_PASTE,
// bottom row
SCREEN_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
// thumb cluster
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, SCREEN_KILL, SCREEN_NEW_TAB
),
// android studio shortcuts
[ANDROID_STUDIO] = LAYOUT_ergodox(
// left hand
KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
// bottom row
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
// thumb cluster
KC_TRNS,KC_TRNS,
KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,
// right hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
AS_CMT_LINE, AS_COPYLINEDOWN, AS_FINDUSAGE, AS_GO_DECLARATION, AS_GO_IMPLEMENTATION, AS_LINE, AS_BRACKET,
AS_CLOSETAB, AS_TABLEFT, AS_TABRIGHT, AS_SYMBOL, AS_CLASS, AS_BACK,
AS_CMT_BLOCK, KC_TRNS, AS_BM_PREV, AS_BM_NEXT, KC_TRNS, AS_CLOSETOOLWINDOW, AS_BM_TOGGLE,
// bottom row
KC_TRNS, AS_BM_LIST, KC_TRNS, KC_TRNS, KC_TRNS,
// thumb cluster
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, AS_DEL_LINE, KC_TRNS
),
// vscode shortcuts shortcuts
[VSCODE] = LAYOUT_ergodox(
// left hand
KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, VS_CMT_BLOCK, VS_CMT_LINE, VS_BM_LISTALL, KC_TRNS,
KC_TRNS, KC_TRNS, VS_TOGGLE_TERMINAL, VS_FOCUS_TERMINAL, VS_FOCUS_EDITOR, VS_BM_LIST,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, VS_BM_CLEARALL, KC_TRNS,
// bottom row
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
// thumb cluster
KC_TRNS,KC_TRNS,
KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,
// right hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, VS_COPYLINEDOWN, VS_REFERENCES, VS_DEFINITION, VS_IMPLEMENTATION, VS_LINE, VS_BRACKET,
VS_CLOSETAB, VS_TABLEFT, VS_TABRIGHT, VS_SYMBOLEDITOR, VS_FILE, VS_BACK,
KC_TRNS, VS_JUMPY, VS_BM_PREV, VS_BM_NEXT, VS_GROUP_1, VS_GROUP_2, VS_BM_TOGGLE,
// bottom row
VS_COMMANDS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
// thumb cluster
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, VS_DEL_LINE, KC_TRNS
),
[COMBINED] = LAYOUT_ergodox(
// left hand
KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS,KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS,
KC_TRNS,KC_LPRN, KC_RPRN, KC_LBRC, KC_RBRC, KC_UNDS,
KC_TRNS,KC_COLN, KC_DQUO, KC_LCBR, KC_RCBR, KC_AMPR, KC_TRNS,
// bottom row
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
// thumb cluster
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
// right hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_PLUS, KC_7, KC_8, KC_9, KC_ASTR, KC_PIPE,
KC_MINS, KC_4, KC_5, KC_6, KC_SLSH, KC_BSLS,
KC_TRNS, KC_EQUAL, KC_1, KC_2, KC_3, KC_QUES, KC_DOT,
// bottom row
KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
// thumb cluster
KC_TRNS,KC_TRNS,
KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS),
[BROWSER_CONTROL] = LAYOUT_ergodox(
// left hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_BTN3, KC_MS_U, KC_BTN1, KC_BTN2, KC_TRNS,
KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, WINDOWS10_WORKSPACE_LEFT, WINDOWS10_WORKSPACE_RIGHT, WINDOWS10_TASK_VIEW, KC_TRNS,
// bottom row
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
// right hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_UP, KC_PGUP, KC_PGDN, KC_MS_WH_UP, KC_TRNS, KC_TRNS,
KC_DOWN, RCTL(KC_PGUP), RCTL(KC_PGDN),KC_MS_WH_DOWN, LALT(KC_LEFT), KC_TRNS,
KC_TRNS, KC_TRNS, RCTL(KC_1), RCTL(KC_9), KC_F6, KC_F5, KC_TRNS,
// bottom row
RCTL(LSFT(KC_TAB)), RCTL(KC_TAB), KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, RCTL(KC_W), RCTL(KC_T)
),
// shortcuts to be intercepted by autohotkey
[SHORTCUTS] = LAYOUT_ergodox(
// left hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS,
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
KC_TRNS, OSM(MOD_LSFT), OSM(MOD_LGUI), OSM(MOD_LALT), OSM(MOD_LCTL), KC_TRNS, KC_TRNS,
// bottom row
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
// thumb cluster
KC_TRNS,KC_TRNS,
KC_TRNS,
KC_TRNS,DF(BASE),KC_TRNS,
// right hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT,
KC_TRNS, MEH(KC_I), MEH(KC_J), MEH(KC_K), MEH(KC_L), MEH(KC_M), MEH(KC_N),
MEH(KC_O), MEH(KC_P), MEH(KC_Q), MEH(KC_R), MEH(KC_S), MEH(KC_T),
KC_TRNS, MEH(KC_U), MEH(KC_V), MEH(KC_W), MEH(KC_X), MEH(KC_Y), MEH(KC_Z),
// bottom row
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
// thumb cluster
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
};
bool led_update_user(led_t led_state) {
if (led_state.caps_lock) {
ergodox_right_led_1_on();
} else {
ergodox_right_led_1_off();
}
return false;
}
void matrix_scan_user(void) {
uint8_t layer = get_highest_layer(layer_state);
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
switch (layer) {
case COMBINED:
ergodox_right_led_2_on();
break;
case SHELL_NAV:
case SHELL_SCREEN:
case KEYNAV:
case KEYSEL:
case VSCODE:
ergodox_right_led_3_on();
break;
case BROWSER_CONTROL:
ergodox_right_led_2_on();
ergodox_right_led_3_on();
break;
case SHORTCUTS:
ergodox_right_led_1_on();
ergodox_right_led_2_on();
ergodox_right_led_3_on();
break;
default:
break;
}
};

View file

@ -1,18 +0,0 @@
/*
Copyright 2018-2022 Eric Gebhart <e.a.gebhart@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/>.
*/
// See: users/ericgebhart.

View file

@ -1,5 +0,0 @@
Overview
========
These are my ergodox_ez keymaps. There isn't much here. Go take a look at my Userspace readme.
That's where all the code is.

View file

@ -31,7 +31,6 @@ SWAP_HANDS_ENABLE = no # Allow swapping hands of keyboard.
# POINTING_DEVICE_ENABLE = no
# AUTO_SHIFT_ENABLE = no
# AUTO_SHIFT_MODIFIERS = no
# This don't need argument?
# CUSTOM_MATRIX # Custom matrix file for the ErgoDox EZ

View file

@ -4,7 +4,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
switch (layer) {
case DVORAK:
rgblight_sethsv_noeeprom(GREEN);
rgblight_sethsv_noeeprom(HSV_GREEN);
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
if (PLOVER_MODE) {

View file

@ -1,334 +0,0 @@
// pvinis ergodox ez
// ,------------------------------------. ┌────┬────┬────┬────┬────┬────┬──────┐
// | | | | | | | | │ │ │ │ │ │ │ │
// |------+----+----+----+----+---------| ├────┼────┼────┼────┼────┼────┼──────┤
// | | | | | | | | │ │ │ │ │ │ │ │
// |------+----+----+----x----x----| | │ ├────╆━━━━╅────┼────┼────┼──────┤
// | | | | | | |----| ├────┤ ┃ ┃ │ │ │ │
// |------+----+----+----x----x----| | │ ├────╄━━━━╃────┼────┼────┼──────┤
// | | | | | | | | │ │ │ │ │ │ │ │
// `------+----+----+----+----+---------' └────┴────┼────┼────┼────┼────┼────┬─┘
// | | | | | | │ │ │ │ │ │
// `------------------------' └────┴────┴────┴────┴────┘
// ,---------. ┌────┬────┐
// | | | │ │ │
// ,----+----+----| ├────┼────┼────┐
// | | | | │ │ │ │
// | | |----| ├────┤ │ │
// | | | | │ │ │ │
// `--------------' └────┴────┴────┘
#include QMK_KEYBOARD_H
#include "pvinis.h"
#include "mousekey.h"
// layers
enum {
MOUSE = 8,
};
// extra keys
enum {
NONE = 30,
TD_LAYR, // SYSCTL and MOUSE layer switch
};
// application selection
// this is sending ctrl-alt-gui-<key>, and this is picked up by hammerspoon
#define AP_SLCK ALLM(KC_S)
#define AP_XCOD ALLM(KC_X)
#define AP_MSGR ALLM(KC_M)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// ,------------------------------------. ,------------------------------------.
// |4xFLSH| | | | | |Opt | | | | | | | | |
// |------+----+----+----+----+---------| |----+----+----+----+----+----+------|
// | Tab | | | | | | | | | | | | | | |
// |------+----+----+----x----x----| | | |----x----x----+----+----+------|
// |EscCtl| | | | | |----| |----| | | | | | Ent |
// |------+----+----+----x----x----| | | |----x----x----+----+----+------|
// |LShift| | | | | | | | | | | | | |RShift|
// `------+----+----+----+----+---------' `---------+----+----+----+----+------'
// | | | |Cmd |LOWR| |RASE|RAlt| | | |
// `------------------------' `------------------------'
// ,---------. ,---------.
// |QWER| | | | |
// ,----+----+----| |----+----+----.
// | Ba | L | | | | | |
// | ck |Shi |----| |----| |Spc |
// | spc| ft | | | | | |
// `--------------' `--------------'
[LR_BASE] = LAYOUT_ergodox_pretty_wrapper(
// clang-format off
TD_3FLS, _______, _______, _______, _______, _______, KC_LALT, _______, _______, _______, _______, _______, _______, _______,
KC_TAB , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
PV_ESCC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT ,
KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT,
_______, _______, _______, KC_LGUI, SYMBOL , SYSCTL , KC_RALT, _______, _______, _______,
QWERTY , CARPALX, _______, _______,
_______, _______,
KC_BSPC, _______, _______, _______, _______, KC_SPC
// clang-format on
),
// ,------------------------------------. ,------------------------------------.
// | | NUMBERS_L | | | - | NUMBERS_R | = |
// |------+----+----+----+----+---------| |----+----+----+----+----+----+------|
// | | | [ | | ] | | |
// |------+ | | | | +------|
// | | QWERTY_L |----| |----| QWERTY_R | |
// |------+ | ( | | ) | +------|
// | | | | | | | |
// `------+----+----+----+----+---------' `---------+----+----+----+----+------'
// | | ` | | | | | | | | ' | |
// `------------------------' `------------------------'
// ,---------. ,---------.
// | | | | | |
// ,----+----+----| |----+----+----.
// | | | | | | | |
// | | |----| |----| | |
// | | | | | | | |
// `--------------' `--------------'
// See `users/pvinis/pvinis.h`
[LR_QWERTY] = LAYOUT_ergodox_pretty_wrapper(
// clang-format off
_______, ________________NUMBERS_L__________________, _______, KC_MINS, ________________NUMBERS_R__________________, KC_EQL ,
_______, _________________QWERTY_L1_________________, KC_LBRC, KC_RBRC, _________________QWERTY_R1_________________, _______,
_______, _____________MOD_QWERTY_L2_________________, _____________MOD_QWERTY_R2_________________, _______,
_______, _________________QWERTY_L3_________________, KC_LPRN, KC_RPRN, _________________QWERTY_R3_________________, _______,
_______, KC_GRV, _______, _______, _______, _______, _______, _______, KC_QUOT , _______,
_______, _______, _______, _______,
_______, _______,
_______, _______, _______, _______, _______, _______
// clang-format off
),
// ,------------------------------------. ,------------------------------------.
// | | NUMBERS_L | | | | NUMBERS_R | |
// |------+----+----+----+----+---------| |----+----+----+----+----+----+------|
// | | | | | | | |
// |------+ | | | | +------|
// | | CARPALX_L |----| |----| CARPALX_R | |
// |------+ | | | | +------|
// | | | | | | | |
// `------+----+----+----+----+---------' `---------+----+----+----+----+------'
// | | | | | | | | | | | |
// `------------------------' `------------------------'
// ,---------. ,---------.
// | | | | | |
// ,----+----+----| |----+----+----.
// | | | | | | | |
// | | |----| |----| | |
// | | | | | | | |
// `--------------' `--------------'
// See `users/pvinis/pvinis.h`
[LR_CARPALX] = LAYOUT_ergodox_pretty_wrapper(
// clang-format off
_______, ________________NUMBERS_L__________________, _______, _______, ________________NUMBERS_R__________________, _______,
_______, ________________CARPALX_L1_________________, _______, _______, ________________CARPALX_R1_________________, _______,
_______, ________________CARPALX_L2_________________, ________________CARPALX_R2_________________, _______,
_______, ________________CARPALX_L3_________________, _______, _______, ________________CARPALX_R3_________________, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______,
_______, _______,
_______, _______, _______, _______, _______, _______
// clang-format on
),
// See `users/pvinis/pvinis.h`
[LR_SYMBOL] = LAYOUT_ergodox_pretty_wrapper(
// clang-format off
_______, ______________________F_L__________________, KC_F11 , KC_F12 , ______________________F_R__________________, _______,
_______, _________________SYMBOL_L1_________________, _______, _______, _________________SYMBOL_R1_________________, _______,
_______, _________________SYMBOL_L2_________________, _________________SYMBOL_R2_________________, _______,
_______, _________________SYMBOL_L3_________________, _______, _______, _________________SYMBOL_R3_________________, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______,
_______, _______,
_______, _______, _______, _______, _______, _______
// clang-format off
),
// See `users/pvinis/pvinis.h`
[LR_SYSCTL] = LAYOUT_ergodox_pretty_wrapper(
// clang-format off
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _________________SYSCTL_R1_________________, _______,
_______, _______, _______, _______, _______, _______, _________________SYSCTL_R2_________________, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _________________SYSCTL_R3_________________, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______,
_______, _______,
_______, _______, _______, _______, _______, _______
// clang-format on
),
// See `users/pvinis/pvinis.h`
[LR_KBCTL] = LAYOUT_ergodox_pretty_wrapper(
// clang-format off
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R1_________________, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R2_________________, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R3_________________, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
// clang-format on
),
/* MOUSE
* a keymap to control my system.
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | ^ | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | | | | | | | | | | MsUp | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | |------| |------| |MsLeft| MsDn |MsRght| | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | | | | | | | | | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | |MidClk|
* ,------|------|------| |------+------+------.
* | | | | | |Left |Right |
* | | |------| |------| Click| Click|
* | | | ^ | | | | |
* `--------------------' `--------------------'
*/
[MOUSE] = LAYOUT_ergodox_pretty(
// clang-format off
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_TRNS
,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
,KC_NO ,KC_NO ,KC_NO ,KC_MS_U ,KC_NO ,KC_NO ,KC_NO
,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO ,KC_NO
,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
,KC_NO ,KC_NO
,KC_NO
,KC_NO ,KC_NO ,KC_NO
// clang-format on
),
};
// keyboard initialization
void keyboard_post_init_user_keymap(void) {
ergodox_led_all_on();
for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) {
ergodox_led_all_set(i);
wait_ms(5);
}
wait_ms(1000);
for (int i = LED_BRIGHTNESS_LO; i > 0; i--) {
ergodox_led_all_set(i);
wait_ms(10);
}
ergodox_led_all_off();
// restore default brightness for future use
ergodox_led_all_set(LED_BRIGHTNESS_HI);
}
// light up leds based on the layer
layer_state_t layer_state_set_user_keymap(layer_state_t state) {
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
switch (get_highest_layer(state)) {
case LR_SYSCTL:
ergodox_right_led_3_on(); // blue
break;
case LR_KBCTL:
ergodox_right_led_1_on(); // red
break;
case LR_SYMBOL:
ergodox_right_led_2_on(); // green
break;
default:
break;
}
return state;
}
// tap dances
// flash keyboard on 4x tap, with leds
// void flash_each_tap(tap_dance_state_t *state, void *user_data) {
// switch (state->count) {
// case 1:
// ergodox_right_led_3_on();
// break;
// case 2:
// ergodox_right_led_2_on();
// break;
// case 3:
// ergodox_right_led_1_on();
// break;
// case 4:
// ergodox_right_led_3_off();
// wait_ms(50);
// ergodox_right_led_2_off();
// wait_ms(50);
// ergodox_right_led_1_off();
// break;
// }
// }
// void flash_dance_finished(tap_dance_state_t *state, void *user_data) {
// if (state->count >= 4) {
// reset_keyboard();
// reset_tap_dance(state);
// }
// }
// void flash_dance_reset(tap_dance_state_t *state, void *user_data) {
// ergodox_right_led_1_off();
// wait_ms(50);
// ergodox_right_led_2_off();
// wait_ms(50);
// ergodox_right_led_3_off();
// }
// SYSCTL on first tap, MOUSE ON second tap
// void layers_dance_finished(tap_dance_state_t *state, void *user_data) {
// uint8_t layer = get_highest_layer(layer_state);
// switch(state->count) {
// case 1:
// switch(layer) {
// case LR_SYSCTL:
// layer_off(LR_SYSCTL);
// break;
// case MOUSE:
// layer_off(MOUSE);
// break;
// default:
// layer_on(LR_SYSCTL);
// break;
// }
// break;
// case 2:
// layer_on(MOUSE);
// break;
// }
// }
// tap_dance_action_t tap_dance_actions[] = {
// [TD_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED( flash_each_tap, flash_dance_finished, flash_dance_reset ),
// [TD_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, layers_dance_finished, NULL ),
// };

View file

@ -1,65 +0,0 @@
pvinis' keymap
==============
This is a getting-used-to keymap for the [ErgoDox EZ][ez]. It's very much a work in progress.
[ez]: https://ergodox-ez.com/
## Table of Contents
* [Todo](#todo)
* [Layouts](#layouts)
- [Base layer](#base-layer)
- [Beginner layer](#beginner-layer)
- [QWERTY layer](#qwerty-layer)
- [CARPALX layer](#carpalx-layer)
- [System Control layer](#system-control-layer)
- [Template layers](#template-layers)
* [Building](#building)
# Todo
- [ ] Generate images from keymap
- [ ] Implement algernon's heatmap
- [ ] Implement `KC_POP`
# Layouts
## Base layer
This is the base layer that contains the common buttons of all keymaps. Right now, it has the top left button as a `flash` button when it's tapped 4 times, and the two thumb islands. The islands contain the `space` and `enter` keys on the right, the `backspace` and `shift` on the left, and all the 1x1 keys are just layer switches.
Every time I connect the keyboard, I press the `BEGIN` layer switch, and then start typing.
Recently, I added a few application "shortcuts", that basically call `ctrl`+`alt`+`cmd`+`<key>`, and `<key>` is `S` for Slack, `X` for Xcode, `M` for Messenger. Using [Hammerspoon][hammerspoon], I show/hide the application.
[hammerspoon]: http://www.hammerspoon.org/
## Beginner layer
This is a basic keymap I use right now until I'm comfortable typing on the Ergodox. Currently uses a QWERTY layout, and the `([{}])` on the middle keys. Not a perfect layout, and its going to go away at some point, but for now thats my daily driver.
## QWERTY layer
This is basically the same as the `BEGIN` layer, but it might go away. I'm not using it, but I should have a QWERTY layout on the keyboard, in case someone else wants to try it out, or if I completely forget how keyboards work! At some point, this and the `BEGIN` layer will become one.
## CARPALX layer
This is here as a placeholder. I want to transition to [Carpalx QGMLWY][carpalx] or [White][white] at some point. They both look very interesting and more comfortable to type on, but after I'm confident with typing on the Ergodox.
[carpalx]: http://mkweb.bcgsc.ca/carpalx/?full_optimization
[white]: https://github.com/mw8/white_keyboard_layout
## System Control layer
This one is a layer that, in time, will have controls like mouse movement, volume up/down, mute, sleep, restart, shutdown, etc.
## Template layers
I have two commented out layers that are just templates, so I can easily create a new layer.
# Building
```
$ git clone https://github.com/qmk/qmk_firmware.git
$ cd qmk_firmware/keyboards/ergodox/keymaps/pvinis
$ make
```

View file

@ -1 +0,0 @@
TAP_DANCE_ENABLE = yes

View file

@ -1,17 +0,0 @@
#pragma once
#define PERMISSIVE_HOLD
#undef MOUSEKEY_TIME_TO_MAX
#define MOUSEKEY_TIME_TO_MAX 0
#undef MOUSEKEY_WHEEL_MAX_SPEED
#undef MOUSEKEY_WHEEL_TIME_TO_MAX
#define MOUSEKEY_WHEEL_MAX_SPEED 1
#define MOUSEKEY_WHEEL_TIME_TO_MAX 0
#define MK_C_OFFSET_1 20
#define MK_C_OFFSET_2 30
#undef MK_MOMENTARY_ACCEL

View file

@ -1,210 +0,0 @@
#include QMK_KEYBOARD_H
#include "version.h"
#include "rishka.h"
enum layers {
BASE, // default layer
WIN, // Switch keys that are needed in windows
SYMB, // symbols
MDIA, // media keys
GAME, // Gamepad setup
FIRMWARE // Layer to trigger reset/refresh
};
enum custom_keycodes {
VRSN = SAFE_RANGE,
RGB_SLD
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_ergodox_pretty_wrapper(
KC_EQL, ________________NUMBERS_L__________________, TG(WIN), OSX_LOCK, ________________NUMBERS_R__________________, KC_MINS,
KC_DEL, _________________QWERTY_L1_________________, TG(SYMB), TG(SYMB), _________________QWERTY_R1_________________, KC_BSLS,
KC_BSPC, _____________MOD_QWERTY_L2_________________, _____________MOD_QWERTY_R2_________________, LT(MDIA, KC_QUOT),
OS_LSFT, _________________QWERTY_L3_________________, ALL_T(KC_NO), TG(MDIA), _________________QWERTY_R3_________________, OS_RSFT,
LT(SYMB,KC_GRV), KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, OSL(SYMB),
ALT_T(KC_APP), TG(GAME), KC_LALT, CTL_T(KC_ESC),
LT(FIRMWARE, KC_HOME), KC_PGUP,
KC_SPC, GUI_T(KC_BSPC), ALT_T(KC_END), GUI_T(KC_PGDN), CTL_T(KC_TAB), ALT_T(KC_ENT)
),
[WIN] = LAYOUT_ergodox_pretty_wrapper(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_F1, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_TAB, _________________QWERTY_L2_________________, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, KC_LGUI, _______, _______, _______, _______, _______, _______, _______,
KC_LCTL, _______, KC_LALT, _______, _______, _______, _______, _______, _______, _______,
_______, KC_ESC, _______, _______,
_______, _______,
_______, KC_BSPC, KC_LALT, KC_PGDN, CTL_T(KC_TAB), _______
),
[SYMB] = LAYOUT_ergodox_pretty_wrapper(
VRSN, ______________________F_L__________________, KC_F11, KC_F12 , ______________________F_R__________________, KC_NUM,
_______, _________________SYMBOL_L1_________________, _______, _______, _________________SYMBOL_R1_________________, _______,
_______, _________________SYMBOL_L2_________________, _________________SYMBOL_R2_________________, _______,
_______, _________________SYMBOL_L3_________________, _______, _______, _________________SYMBOL_R3_________________, _______,
_______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PSLS, _______,
RGB_MOD, RGB_VAI, RGB_HUI, RGB_SLD,
RGB_VAD, RGB_HUD,
_______, _______, _______, RGB_TOG, _______, _______
),
[MDIA] = LAYOUT_ergodox(
// left hand
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_MS_U, _______, KC_WH_U, _______,
_______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_BTN1, KC_BTN2,
_______, KC_BTN5,
KC_BTN4,
KC_BTN1, KC_BTN2, KC_BTN3,
// right hand
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_WH_U, _______, _______, _______,
_______, KC_WH_L, KC_WH_D, KC_WH_R, _______, KC_MPLY,
_______, _______, _______, KC_MPRV, KC_MNXT, _______, _______,
KC_VOLU, KC_VOLD, KC_MUTE, _______, _______,
_______, _______,
_______,
KC_ACL2, KC_ACL1, KC_ACL0
),
[GAME] = LAYOUT_ergodox(
// left hand
KC_ESCAPE, KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5,
KC_F1, KC_Y, KC_Q, KC_W, KC_E, KC_R, KC_T,
KC_TAB, KC_LSFT, KC_A, KC_S, KC_D, KC_F,
KC_LCTL, KC_B, KC_Z, KC_X, KC_C, KC_V, KC_G,
LT(BASE, KC_L), KC_J, KC_I, KC_O, KC_M,
KC_ESCAPE, _______,
KC_ENTER,
KC_SPACE, KC_LCTL, KC_LALT,
// right hand
KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), GUI_T(KC_QUOT),
MEH_T(KC_NO), KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, TT(SYMB),
KC_LALT, CTL_T(KC_ESC),
KC_PGUP,
KC_PGDN, KC_TAB, KC_ENT
),
[FIRMWARE] = LAYOUT_ergodox(
// left hand
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______,
_______, _______,
_______,
QK_BOOT, _______, _______,
// right hand
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______,
_______, _______,
_______,
_______, _______, EE_CLR
),
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
switch (keycode) {
case VRSN:
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
return false;
#ifdef RGBLIGHT_ENABLE
case RGB_SLD:
rgblight_mode(1);
return false;
#endif
}
}
return true;
}
// Runs just one time when the keyboard initializes.
void keyboard_post_init_user(void) {
#ifdef RGBLIGHT_COLOR_LAYER_0
rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0);
#endif
};
// Runs whenever there is a layer state change.
layer_state_t layer_state_set_user(layer_state_t state) {
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
uint8_t layer = get_highest_layer(state);
switch (layer) {
case 0:
#ifdef RGBLIGHT_COLOR_LAYER_0
rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0);
#else
#ifdef RGBLIGHT_ENABLE
rgblight_init();
#endif
#endif
break;
case 1:
ergodox_right_led_1_on();
#ifdef RGBLIGHT_COLOR_LAYER_1
rgblight_setrgb(RGBLIGHT_COLOR_LAYER_1);
#endif
break;
case 2:
ergodox_right_led_2_on();
#ifdef RGBLIGHT_COLOR_LAYER_2
rgblight_setrgb(RGBLIGHT_COLOR_LAYER_2);
#endif
break;
case 3:
ergodox_right_led_3_on();
#ifdef RGBLIGHT_COLOR_LAYER_3
rgblight_setrgb(RGBLIGHT_COLOR_LAYER_3);
#endif
break;
case 4:
ergodox_right_led_1_on();
ergodox_right_led_2_on();
#ifdef RGBLIGHT_COLOR_LAYER_4
rgblight_setrgb(RGBLIGHT_COLOR_LAYER_4);
#endif
break;
case 5:
ergodox_right_led_1_on();
ergodox_right_led_3_on();
#ifdef RGBLIGHT_COLOR_LAYER_5
rgblight_setrgb(RGBLIGHT_COLOR_LAYER_5);
#endif
break;
case 6:
ergodox_right_led_2_on();
ergodox_right_led_3_on();
#ifdef RGBLIGHT_COLOR_LAYER_6
rgblight_setrgb(RGBLIGHT_COLOR_LAYER_6);
#endif
break;
case 7:
ergodox_right_led_1_on();
ergodox_right_led_2_on();
ergodox_right_led_3_on();
#ifdef RGBLIGHT_COLOR_LAYER_7
rgblight_setrgb(RGBLIGHT_COLOR_LAYER_7);
#endif
break;
default:
break;
}
return state;
};

View file

@ -1,2 +0,0 @@
# TAP_DANCE_ENABLE = yes
MOUSEKEY_ENABLE = yes

View file

@ -1,53 +0,0 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2013 Oleg Kostyuk <cub.uanic@gmail.com>
Edited like hell 2017+ by Reed Williams <rmwphd@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
#define MACOSX
#define USB_MAX_POWER_CONSUMPTION 500
/* Set 0 if debouncing isn't needed */
#undef DEBOUNCE
#define DEBOUNCE 5
#define ONESHOT_TIMEOUT 900 // how long before oneshot times out
//#define ONESHOT_TAP_TOGGLE 2 // how many taps before oneshot toggle is triggered
#undef LOCKING_SUPPORT_ENABLE
#undef LOCKING_RESYNC_ENABLE
#undef MOUSEKEY_DELAY
#define MOUSEKEY_DELAY 20
#undef MOUSEKEY_MAX_SPEED
#define MOUSEKEY_MAX_SPEED 6
#undef MOUSEKEY_TIME_TO_MAX
#define MOUSEKEY_TIME_TO_MAX 254
#undef MOUSEKEY_WHEEL_MAX_SPEED
#define MOUSEKEY_WHEEL_MAX_SPEED 10
#undef MOUSEKEY_WHEEL_TIME_TO_MAX
#define MOUSEKEY_WHEEL_TIME_TO_MAX 254
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
//#define DEBUG_MATRIX_SCAN_RATE

View file

@ -1,188 +0,0 @@
#include "rmw.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[QWERTY] = LAYOUT_ergodox(
TD(FRBK2), KC_1, KC_2, KC_3, KC_4, KC_5, KC_F4,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TO(EDIT),
OSL(EDIT), KC_A, LT(NUMPAD,KC_S), KC_D, LT(FSYM,KC_F), KC_G,
LCTL(KC_LEFT), KC_Z, KC_X, KC_C, KC_V, SFT_T(KC_B), KC_TAB,
TD(CTLALL), OSL(ADJUST), TD(GUCTL), TD(SGCA), TD(AGC),
OS_CMD, OS_CTL ,
KC_ESCAPE,
KC_BSPC, TD(SHENT), OSL(EDIT),
KC_F5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
TO(NUMPAD), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_H, LT(JSYM,KC_J), KC_K, KC_L, LT(EDIT,KC_SCLN), KC_QUOTE,
CTL_T(KC_B), KC_N, KC_M, KC_COMM, KC_DOT, LT(MEDIA,KC_SLSH), LCTL(KC_RIGHT),
TD(GCA), TD(CTLALL), KC_LBRC, KC_RBRC, KC_MS_BTN1,
OS_CALT, KC_TAB,
KC_DEL,
KC_CAPS, SFTENT, KC_SPC),
[MINIMAK4] = LAYOUT_ergodox(
TD(FRBK2), KC_1, KC_2, KC_3, KC_4, KC_5, KC_F4,
KC_TAB, KC_Q, KC_W, KC_D, KC_R, KC_K, TO(EDIT),
OSL(EDIT), KC_A, LT(NUMPAD,KC_S), KC_T, LT(FSYM,KC_F), KC_G,
OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, SFT_T(KC_B), KC_TAB,
TD(CTLALL), OSL(ADJUST), TD(GUCTL), TD(SGCA), TD(AGC),
OS_CMD, OS_CTL ,
KC_ESCAPE,
KC_BSPC, TD(SHENT), OSL(EDIT),
KC_F5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
TO(NUMPAD), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_H, LT(JSYM,KC_J), KC_E, KC_L, LT(EDIT,KC_SCLN), KC_QUOTE,
CTL_T(KC_B), KC_N, KC_M, KC_COMM, KC_DOT, LT(MEDIA,KC_SLSH), KC_MS_BTN1,
TD(GCA), TD(CTLALL), LGUI(KC_GRV), KC_RBRC, KC_MS_BTN1,
OS_ALT, KC_TAB,
KC_DEL,
KC_CAPS, SFT_T(KC_ENT), KC_SPC),
[NUMPAD] = LAYOUT_ergodox(VRSN, KC_F11, KC_F12, KC_F1, KC_F2, KC_F3, _______,
_______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, TO(QWERTY),
_______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______,
_______, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_Y), _______,
_______, _______, _______, _______, _______,
_______, _______, KC_PSCR, _______, _______, TO(QWERTY),
_______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
TO(EDIT), _______, KC_7, KC_8, KC_9, KC_KP_MINUS, _______,
_______, KC_4, KC_5, KC_6, KC_KP_PLUS, _______,
_______, KC_COMM, KC_1, KC_2, KC_3, KC_KP_SLASH, _______,
KC_0, KC_DOT, KC_EQUAL, KC_KP_ASTERISK, _______,
_______, _______, KC_INSERT, TO(EDIT), _______, _______),
[EDIT] = LAYOUT_ergodox(_______, _______, KC_MS_WH_UP, KC_MS_BTN1, KC_MS_BTN2, _______, _______,
_______, LGUI(LALT(KC_ESCAPE)), KC_MS_WH_DOWN, LALT(S(KC_LEFT)), LALT(S(KC_RIGHT)), _______, TO(NUMPAD),
_______, _______, LGUI(KC_GRV), LALT(KC_LEFT), LALT(KC_RIGHT), _______,
LCTL(KC_RIGHT), LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_Y), _______,
_______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, TO(NUMPAD),
_______, _______, _______, S(KC_UP), _______, _______, KC_DELETE,
TO(QWERTY), LGUI(KC_T), KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, _______,
LGUI(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LGUI(KC_RIGHT), _______,
_______, S(LGUI(KC_LEFT)), S(KC_LEFT), S(KC_DOWN), S(KC_RIGHT), S(LGUI(KC_RIGHT)), LCTL(KC_LEFT),
_______, _______, FORM_GET, FORM_PUT, _______,
_______, _______, _______, S(KC_F10), _______, _______),
[FSYM] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, KC_TILD, KC_EXLM, _______, _______,
LCTL(KC_RIGHT), _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______,
_______, _______, _______, DEL_WRD, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, KC_CIRC, KC_AMPR , KC_ASTR, KC_GRV , _______, _______,
KC_EQUAL, KC_MINUS, KC_UNDS, KC_BSLS, KC_COLON, KC_DQT ,
_______, _______, KC_PLUS , KC_SLSH, KC_PIPE, _______ , _______,
_______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______),
[JSYM] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______,
_______, KC_GRV, KC_AT , KC_LCBR, KC_RCBR, _______, _______,
_______, KC_HASH, KC_DLR , KC_LPRN, KC_RPRN, KC_LEFT,
_______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, _______, _______,
_______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, KC_QUES, KC_SLSH, KC_COLON, _______,
_______, _______, _______, _______, _______, _______, LCTL(KC_LEFT),
_______, _______, _______, _______, _______,
_______, _______, _______, _______, LGUI(KC_DOWN), _______),
[MEDIA] = LAYOUT_ergodox(_______, _______, KC_MS_BTN4, _______, KC_MS_BTN5, _______, _______,
_______, KC_MS_WH_UP, KC_MS_WH_LEFT, KC_MS_UP, KC_MS_WH_RIGHT, _______, _______,
_______, KC_MS_WH_DOWN, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______,
_______, _______, KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______,
_______, _______, _______, _______, KC_MS_BTN3,
_______, _______, _______, KC_MS_BTN1, KC_MS_BTN2, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, KC_AUDIO_VOL_DOWN, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, _______, _______,
KC_MEDIA_REWIND, KC_MEDIA_FAST_FORWARD, _______, _______, _______,
_______, _______, _______, _______, KC_MS_BTN1, KC_MEDIA_PLAY_PAUSE),
[ADJUST] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, TO(EDIT), TO(NUMPAD), TO(FSYM), TO(JSYM), TO(MEDIA),
_______, _______, _______, _______, _______, _______, _______,
_______, TO(QWERTY), DF(MINIMAK4), DF(QWERTY), _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______),
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case VRSN:
if (record->event.pressed) {
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
}
return false;
case FORM_GET:
if (record->event.pressed) {
tap_code(KC_BTN1);
tap_code16(G(KC_A));
tap_code16(G(KC_C));
}
return false;
case FORM_PUT:
if (record->event.pressed) {
tap_code(KC_BTN1);
tap_code16(G(KC_A));
tap_code16(G(KC_V));
}
return false;
}
return true;
}
layer_state_t layer_state_set_user(layer_state_t state) {
switch (get_highest_layer(state)) {
case QWERTY:
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
break;
case NUMPAD:
ergodox_right_led_1_on();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
break;
case EDIT:
ergodox_right_led_1_off();
ergodox_right_led_2_on();
ergodox_right_led_3_off();
break;
case FSYM:
ergodox_right_led_1_on();
ergodox_right_led_2_on();
ergodox_right_led_3_off();
break;
case JSYM:
ergodox_right_led_1_on();
ergodox_right_led_2_off();
ergodox_right_led_3_on();
break;
case MEDIA:
ergodox_right_led_1_off();
ergodox_right_led_2_on();
ergodox_right_led_3_on();
break;
case ADJUST:
ergodox_right_led_1_on();
ergodox_right_led_2_on();
ergodox_right_led_3_on();
break;
}
return state;
}

View file

@ -1,159 +0,0 @@
#include "rmw.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[QWERTY] = LAYOUT_ergodox( // LEFT HAND
TD(FRBK), KC_1, KC_2, KC_3, KC_4, KC_5, KC_F4,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TO(EDIT),
OSL(EDIT), KC_A, LT(NUMPAD,KC_S), KC_D, LT(FSYM,KC_F), KC_G,
OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, SFT_T(KC_B), KC_TAB,
TD(CTLAND), OSL(ADJUST), TD(SCAG), TD(TDGUI), TD(ACG),
OS_ALT, OS_CTL ,
KC_ESCAPE,
KC_BSPC, TD(SHENT), OSL(EDIT),
// RIGHT HAND
KC_F5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
TO(NUMPAD), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_H, LT(JSYM,KC_J), KC_K, KC_L, LT(EDIT,KC_SCLN), KC_QUOTE,
CTL_T(KC_B), KC_N, KC_M, KC_COMM, KC_DOT, LT(MEDIA,KC_SLSH), TD(SHENT),
TD(CAG), TD(TDGUI), KC_LBRC, KC_RBRC, KC_MS_BTN1,
OS_ALT, KC_TAB,
KC_DEL,
KC_CAPS, SFT_T(KC_ENT), KC_SPC),
[NUMPAD] = LAYOUT_ergodox(VRSN, KC_F11, KC_F12, KC_F1, KC_F2, KC_F3, _______,
_______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, TO(0),
_______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______,
_______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), LCTL(KC_Y), _______,
_______, _______, _______, _______, _______,
_______, _______, KC_PSCR, _______, _______, TO(0),
_______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
TO(EDIT), _______, KC_7, KC_8, KC_9, KC_KP_MINUS, _______,
_______, KC_4, KC_5, KC_6, KC_KP_PLUS, _______,
_______, KC_COMM, KC_1, KC_2, KC_3, KC_KP_SLASH, _______,
KC_0, KC_DOT, KC_EQUAL, KC_KP_ASTERISK, _______,
_______, _______, KC_INSERT, TO(EDIT), _______, _______),
[EDIT] = LAYOUT_ergodox(KC_ESCAPE, LALT(LCTL(KC_DELETE)), KC_MS_WH_UP, KC_MS_BTN1, KC_MS_BTN2, _______, _______,
_______, LCTL(S(KC_ESCAPE)), KC_MS_WH_DOWN, LCTL(S(KC_LEFT)), LCTL(S(KC_RIGHT)), _______, TO(NUMPAD),
_______, _______, KC_LEFT, LCTL(KC_LEFT), LCTL(KC_RIGHT), _______,
_______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), LCTL(KC_Y), _______,
_______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, TO(NUMPAD),
_______, _______, _______, S(KC_UP), _______, _______, KC_DELETE,
TO(0), LCTL(KC_T), KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, _______,
KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, _______,
_______, S(KC_HOME), S(KC_LEFT), S(KC_DOWN), S(KC_RIGHT), S(KC_END), _______,
_______, _______, _______, _______, _______,
_______, _______, _______, S(KC_F10), _______, _______),
[FSYM] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, KC_TILD, KC_EXLM, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, KC_CIRC, KC_AMPR , KC_ASTR, KC_GRV , _______, _______,
KC_EQUAL, KC_MINUS, KC_UNDS, KC_BSLS, KC_COLON, KC_DQT ,
_______, _______, KC_PLUS , KC_SLSH, KC_PIPE, _______ , _______,
_______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______),
[JSYM] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______,
_______, KC_GRV, KC_AT , KC_LCBR, KC_RCBR, _______, _______,
_______, KC_HASH, KC_DLR , KC_LPRN, KC_RPRN, KC_LEFT,
_______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, _______, _______,
_______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, KC_QUES, KC_SLSH, KC_COLON, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______),
[MEDIA] = LAYOUT_ergodox(_______, _______, KC_MS_BTN4, _______, KC_MS_BTN5, _______, _______,
_______, KC_MS_WH_UP, KC_MS_WH_LEFT, KC_MS_UP, KC_MS_WH_RIGHT, _______, _______,
_______, KC_MS_WH_DOWN, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______,
_______, _______, KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______,
_______, _______, _______, _______, KC_MS_BTN3,
_______, _______, _______, KC_MS_BTN1, KC_MS_BTN2, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, KC_AUDIO_VOL_DOWN, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, _______, _______,
KC_MEDIA_PREV_TRACK, KC_MEDIA_NEXT_TRACK, _______, _______, _______,
_______, _______, _______, _______, KC_MS_BTN1, KC_MEDIA_PLAY_PAUSE),
[ADJUST] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, TO(EDIT), TO(NUMPAD), TO(FSYM), TO(JSYM), TO(MEDIA),
_______, _______, _______, _______, _______, _______, _______,
_______, TO(QWERTY), _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______),
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
// dynamically generate these.
case VRSN:
if (record->event.pressed) {
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
}
return false;
}
return true;
}
layer_state_t layer_state_set_user(layer_state_t state) {
switch (get_highest_layer(state)) {
case QWERTY:
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
break;
case NUMPAD:
ergodox_right_led_1_on();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
break;
case EDIT:
ergodox_right_led_1_off();
ergodox_right_led_2_on();
ergodox_right_led_3_off();
break;
case FSYM:
ergodox_right_led_1_on();
ergodox_right_led_2_on();
ergodox_right_led_3_off();
break;
case JSYM:
ergodox_right_led_1_on();
ergodox_right_led_2_off();
ergodox_right_led_3_on();
break;
case MEDIA:
ergodox_right_led_1_off();
ergodox_right_led_2_on();
ergodox_right_led_3_on();
break;
case ADJUST:
ergodox_right_led_1_on();
ergodox_right_led_2_on();
ergodox_right_led_3_on();
break;
}
return state;
}

View file

@ -1,13 +0,0 @@
#include QMK_KEYBOARD_H
#include "version.h"
#define LONGPRESS_DELAY 180
#define LAYER_TOGGLE_DELAY 350
#ifdef MACOSX
#include "keymap-mac.c"
#endif
#ifdef WINDOWS
#include "keymap-win.c"
#endif

View file

@ -1,11 +0,0 @@
# RMW Ergodox_EZ Layout
This is the keymap I use on the Ergodox_EZ I use for work. I write reports and code in a variety of languages on this board and the various layers provide plenty of flexibility for navigating, editing text, and writing code and prose.
I switched to a Mac in the past year, so my keymap now mostly gets used in the Mac mode; simply edit the keymap.c file to uncomment \#include keymap-win.c and comment out \#include keymap-mac.c to change back to the Windows version, but I haven't been updating that map as I've made changes moving forward on the Mac version.
## The theory of this keymap
The base layer is either QWERTY or MINIMAK4, as desired. Overlaid on that base layer are various layers triggered by one-shots, TOs, and LTs. Tapdances are used to cram lots of mods into few keys and provide freedom to hit combinations with either hand. Mods and layer things are one-shot (where reasonable) because I prefer that.
An EDIT layer provides text navigation, selection, and editing capabilities in home position. The EXCEL layer offers a numpad and various spreadsheet-useful navigations and operations. Holding S will put the numpad under your right hand in home position. Keys F and J offer various useful symbols (mostly) on the opposite hand when held, including \[\]\(\)\{\} under the left pointer and middle fingers on bottom, middle, and top rows respectively. The MEDIA layer provides media controls (obvs) and some mouse movement and nav, in case I don't feel like reaching for the trackball/trackpad/mouse.

View file

@ -1 +0,0 @@
TAP_DANCE_ENABLE=yes

View file

@ -1,7 +1,4 @@
#include QMK_KEYBOARD_H
#include "debug.h"
#include "action_layer.h"
#include "keymap_steno.h"
#define BASE 0 // default layer
#define SYMB 1 // symbols

View file

@ -22,7 +22,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# include "ergodox_ez.h"
void rgblight_call_driver(LED_TYPE *led, uint8_t led_num) {
void rgblight_call_driver(rgb_led_t *led, uint8_t led_num) {
i2c_init();
i2c_start(0x84, ERGODOX_EZ_I2C_TIMEOUT);
int i = 0;

View file

@ -21,7 +21,7 @@ RGB_MATRIX_ENABLE = no # enable later
# project specific files
SRC += matrix.c \
led_i2c.c
QUANTUM_LIB_SRC += i2c_master.c
I2C_DRIVER_REQUIRED = yes
# Disable unsupported hardware
AUDIO_SUPPORTED = no