Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
#ifndef KEYBOARDS_ERGODOX_CONFIG_H_
|
||||
#define KEYBOARDS_ERGODOX_CONFIG_H_
|
||||
|
||||
#define MOUSEKEY_DELAY 100
|
||||
#define MOUSEKEY_INTERVAL 20
|
||||
#define MOUSEKEY_MAX_SPEED 3
|
||||
#define MOUSEKEY_TIME_TO_MAX 10
|
||||
#define MOUSEKEY_DELAY 0
|
||||
#define MOUSEKEY_TIME_TO_MAX 5
|
||||
#define MOUSEKEY_MAX_SPEED 2
|
||||
#define MOUSEKEY_WHEEL_DELAY 0
|
||||
|
||||
#define TAPPING_TOGGLE 1
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
RGBLIGHT_ENABLE ?= yes
|
||||
MIDI_ENABLE ?= yes
|
||||
|
||||
ifndef MAKEFILE_INCLUDED
|
||||
include ../../../Makefile
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -21,6 +21,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#include "../config.h"
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x1307
|
||||
@@ -39,6 +41,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define LED_BRIGHTNESS_LO 15
|
||||
#define LED_BRIGHTNESS_HI 255
|
||||
|
||||
/* ws2812 RGB LED */
|
||||
#define RGB_DI_PIN D7
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLED_NUM 15 // Number of LEDs
|
||||
#define RGBLIGHT_HUE_STEP 12
|
||||
#define RGBLIGHT_SAT_STEP 255
|
||||
#define RGBLIGHT_VAL_STEP 12
|
||||
|
||||
#define RGB_MIDI
|
||||
#define RGBW_BB_TWI
|
||||
|
||||
|
||||
/* Set 0 if debouncing isn't needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
@@ -16,10 +16,10 @@ void matrix_init_kb(void) {
|
||||
// unused pins - C7, D4, D5, D7, E6
|
||||
// set as input with internal pull-ip enabled
|
||||
DDRC &= ~(1<<7);
|
||||
DDRD &= ~(1<<7 | 1<<5 | 1<<4);
|
||||
DDRD &= ~(1<<5 | 1<<4);
|
||||
DDRE &= ~(1<<6);
|
||||
PORTC |= (1<<7);
|
||||
PORTD |= (1<<7 | 1<<5 | 1<<4);
|
||||
PORTD |= (1<<5 | 1<<4);
|
||||
PORTE |= (1<<6);
|
||||
|
||||
ergodox_blink_all_leds();
|
||||
@@ -51,6 +51,10 @@ uint8_t init_mcp23018(void) {
|
||||
mcp23018_status = 0x20;
|
||||
|
||||
// I2C subsystem
|
||||
|
||||
uint8_t sreg_prev;
|
||||
sreg_prev=SREG;
|
||||
cli();
|
||||
if (i2c_initialized == 0) {
|
||||
i2c_init(); // on pins D(1,0)
|
||||
i2c_initialized++;
|
||||
@@ -79,6 +83,8 @@ uint8_t init_mcp23018(void) {
|
||||
out:
|
||||
i2c_stop();
|
||||
|
||||
SREG=sreg_prev;
|
||||
|
||||
return mcp23018_status;
|
||||
}
|
||||
|
||||
|
||||
@@ -121,7 +121,7 @@ void matrix_init(void)
|
||||
matrix_scan_count = 0;
|
||||
#endif
|
||||
|
||||
matrix_init_kb();
|
||||
matrix_init_quantum();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -72,6 +72,8 @@ OPT_DEFS += -DBOOTLOADER_SIZE=512
|
||||
#
|
||||
|
||||
SLEEP_LED_ENABLE = no
|
||||
API_SYSEX_ENABLE ?= yes
|
||||
RGBLIGHT_ENABLE ?= yes
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../Makefile
|
||||
|
||||
@@ -38,7 +38,6 @@ void init_serial_link_hal(void) {
|
||||
// Using a higher pre-scalar without flicker is possible but FTM0_MOD will need to be reduced
|
||||
// Which will reduce the brightness range
|
||||
#define PRESCALAR_DEFINE 0
|
||||
#ifdef VISUALIZER_ENABLE
|
||||
void lcd_backlight_hal_init(void) {
|
||||
// Setup Backlight
|
||||
SIM->SCGC6 |= SIM_SCGC6_FTM0;
|
||||
@@ -76,7 +75,6 @@ void lcd_backlight_hal_color(uint16_t r, uint16_t g, uint16_t b) {
|
||||
CHANNEL_GREEN.CnV = g;
|
||||
CHANNEL_BLUE.CnV = b;
|
||||
}
|
||||
#endif
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_init_user(void) {
|
||||
@@ -92,6 +90,10 @@ void matrix_init_kb(void) {
|
||||
// runs once when the firmware starts up
|
||||
|
||||
matrix_init_user();
|
||||
// The backlight always has to be initialized, otherwise it will stay lit
|
||||
#ifndef VISUALIZER_ENABLE
|
||||
lcd_backlight_hal_init();
|
||||
#endif
|
||||
}
|
||||
|
||||
void matrix_scan_kb(void) {
|
||||
|
||||
@@ -21,29 +21,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
void led_set(uint8_t usb_led) {
|
||||
// The LCD backlight functionality conflicts with this simple
|
||||
// red backlight
|
||||
#if !defined(LCD_BACKLIGHT_ENABLE) && defined(STATUS_LED_ENABLE)
|
||||
// PTC1: LCD Backlight Red(0:on/1:off)
|
||||
GPIOC->PDDR |= (1<<1);
|
||||
PORTC->PCR[1] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1);
|
||||
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
|
||||
GPIOC->PCOR |= (1<<1);
|
||||
} else {
|
||||
GPIOC->PSOR |= (1<<1);
|
||||
}
|
||||
#elif !defined(LCD_BACKLIGHT_ENABLE)
|
||||
//TODO: Add led emulation if there's no customized visualization
|
||||
(void)usb_led;
|
||||
GPIOC->PDDR |= (1<<1);
|
||||
PORTC->PCR[1] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1);
|
||||
GPIOC->PSOR |= (1<<1);
|
||||
GPIOC->PDDR |= (1<<2);
|
||||
PORTC->PCR[2] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1);
|
||||
GPIOC->PSOR |= (1<<2);
|
||||
GPIOC->PDDR |= (1<<3);
|
||||
PORTC->PCR[3] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1);
|
||||
GPIOC->PSOR |= (1<<3);
|
||||
#else
|
||||
(void)usb_led;
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -63,6 +63,8 @@ VISUALIZER_ENABLE ?= no #temporarily disabled to make everything compile
|
||||
LCD_ENABLE ?= yes
|
||||
LED_ENABLE ?= yes
|
||||
LCD_BACKLIGHT_ENABLE ?= yes
|
||||
MIDI_ENABLE = no
|
||||
RGBLIGHT_ENABLE = no
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../Makefile
|
||||
|
||||
9
keyboards/ergodox/keymaps/bepo/Makefile
Normal file
9
keyboards/ergodox/keymaps/bepo/Makefile
Normal file
@@ -0,0 +1,9 @@
|
||||
# Having a file like this allows you to override Makefile definitions
|
||||
# for your own particular keymap
|
||||
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 78 KiB |
@@ -1,21 +1,23 @@
|
||||
#include "ergodox.h"
|
||||
#include "debug.h"
|
||||
#include "action_layer.h"
|
||||
#include "keymap_bepo.h"
|
||||
#include "keymap_french.h"
|
||||
|
||||
#define BASE 0 // default layer
|
||||
#define QWER 1 // qwerty compat layer
|
||||
#define SQWER 2 // shifted qwerty compat layer
|
||||
#define AQWER 3 // alted qwerty compat layer
|
||||
#define FNAV 4 // function / navigation keys
|
||||
#define NUM 5 // numeric keypad keys
|
||||
#define MSE 6 // mouse keys
|
||||
// keymaps
|
||||
#define BEPO 0 // default layer, for bepo compatible systems
|
||||
#define QW_B 1 // bepo to qwerty base compat layer, for qwerty systems
|
||||
#define QW_A 2 // bepo with altgr key to qwerty compat layer
|
||||
#define QW_S 3 // bepo with shift key to qwerty compat layer
|
||||
#define AZ_B 4 // bepo to azerty base compat layer, for azerty systems
|
||||
#define AZ_A 5 // bepo with altgr key to azerty compat layer
|
||||
#define AZ_S 6 // bepo with shift key to azerty compat layer
|
||||
#define FNAV 7 // function / navigation / mouse layer
|
||||
#define NUMK 8 // numeric keypad layer
|
||||
|
||||
#define KP_00 0
|
||||
#define CA_Fx 1
|
||||
// macros
|
||||
#define KP_00 0 // keypad "double 0"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap 0: Base layer
|
||||
/* Keymap 0: default layer
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | $ | " | < | > | ( | ) |Delete| |ScroLo| @ | + | - | / | * | = |
|
||||
@@ -26,22 +28,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------|
|
||||
* | E_CIRC |A_GRAV| Y | X | . | K | | | | ' | Q | G | H | F | C_CEDIL|
|
||||
* `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------'
|
||||
* |QWERTY| |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause|
|
||||
* |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause|
|
||||
* `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------'
|
||||
* | | | L_Num| | CA_Fx| | |
|
||||
* | | |L_NumK| |L_NumK| | |
|
||||
* | Space|LShift|------| |------|RShift|Enter |
|
||||
* | | |L_FNav| |L_FNav| | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[BASE] = KEYMAP(
|
||||
[BEPO] = KEYMAP(
|
||||
// Left hand
|
||||
BP_DOLLAR, BP_DQOT, BP_LGIL, BP_RGIL, BP_LPRN, BP_RPRN, KC_DEL,
|
||||
BP_PERCENT, BP_B, BP_E_ACUTE, BP_P, BP_O, BP_E_GRAVE, KC_BSPC,
|
||||
BP_W, BP_A, BP_U, BP_I, BP_E, BP_COMMA,
|
||||
BP_ECRC, BP_A_GRAVE, BP_Y, BP_X, BP_DOT, BP_K, KC_TAB,
|
||||
TG(QWER), KC_NO, KC_LGUI, KC_LCTL, KC_LALT,
|
||||
KC_ESC, MO(MSE),
|
||||
MO(NUM),
|
||||
KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT,
|
||||
DF(BEPO), DF(QW_B),
|
||||
MO(NUMK),
|
||||
KC_SPC, KC_LSHIFT, MO(FNAV),
|
||||
// Right hand
|
||||
KC_SLCK, BP_AT, BP_PLUS, BP_MINUS, BP_SLASH, BP_ASTR, BP_EQUAL,
|
||||
@@ -49,10 +51,10 @@ TG(QWER), KC_NO, KC_LGUI, KC_LCTL, KC_LALT,
|
||||
BP_C, BP_T, BP_S, BP_R, BP_N, BP_M,
|
||||
KC_NUMLOCK, BP_APOS, BP_Q, BP_G, BP_H, BP_F, BP_CCED,
|
||||
BP_ALGR, KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE,
|
||||
KC_NO, KC_INS,
|
||||
M(CA_Fx),
|
||||
DF(AZ_B), DF(BEPO),
|
||||
MO(NUMK),
|
||||
MO(FNAV), KC_RSHIFT, KC_ENTER),
|
||||
/* Keymap 1: QWERTY system compatibility layer
|
||||
/* Keymap 1: bepo to qwerty base compat layer
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | $ | " | < | > | ( | ) |Delete| |ScroLo| @ | + | - | / | * | = |
|
||||
@@ -63,33 +65,70 @@ MO(FNAV), KC_RSHIFT, KC_ENTER),
|
||||
* |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------|
|
||||
* | e | a | y | x | . | k | | | | ' | q | g | h | f | c |
|
||||
* `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------'
|
||||
* | BEPO | |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause|
|
||||
* |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause|
|
||||
* `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------'
|
||||
* | | | L_Num| | | | |
|
||||
* | | |L_NumK| |L_NumK| | |
|
||||
* | Space|LShift|------| |------|RShift|Enter |
|
||||
* | | |L_FNav| |L_FNav| | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[QWER] = KEYMAP(
|
||||
[QW_B] = KEYMAP(
|
||||
// Left hand
|
||||
KC_DOLLAR, S(KC_QUOT), S(KC_COMM), S(KC_DOT), KC_LPRN, KC_RPRN, KC_DEL,
|
||||
KC_PERCENT, KC_B, KC_E, KC_P, KC_O, KC_E, KC_BSPC,
|
||||
KC_W, KC_A, KC_U, KC_I, KC_E, KC_COMMA,
|
||||
KC_E, KC_A, KC_Y, KC_X, KC_DOT, KC_K, KC_TAB,
|
||||
KC_TRNS, KC_NO, KC_LGUI, KC_LCTL, KC_LALT,
|
||||
KC_ESC, MO(MSE),
|
||||
MO(NUM),
|
||||
KC_SPC, MO(SQWER), MO(FNAV),
|
||||
KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT,
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_SPC, MO(QW_S), KC_TRNS,
|
||||
// Right hand
|
||||
KC_SLCK, KC_AT, KC_PLUS, KC_MINUS, KC_SLASH, KC_ASTR, KC_EQUAL,
|
||||
KC_CAPSLOCK, KC_CIRC, KC_V, KC_D, KC_L, KC_J, KC_Z,
|
||||
KC_C, KC_T, KC_S, KC_R, KC_N, KC_M,
|
||||
KC_NUMLOCK, KC_QUOT, KC_Q, KC_G, KC_H, KC_F, KC_C,
|
||||
MO(AQWER), KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE,
|
||||
KC_NO, KC_INS,
|
||||
MO(QW_A), KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE,
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
MO(FNAV), MO(SQWER), KC_ENTER),
|
||||
/* Keymap 2: QWERTY shifted system compatibility layer
|
||||
KC_TRNS, MO(QW_S), KC_ENTER),
|
||||
/* Keymap 2: bepo with altgr key to qwerty compat layer
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | $ | " | < | > | [ | ] |Delete| |ScroLo| @ | + | - | / | * | = |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | % | | | e | & | o | e |Backsp| |CapsLo| ^ | v | d | l | j | z |
|
||||
* |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------|
|
||||
* | w | a | u | i | € | , |------| |------| c | t | s | r | n | m |
|
||||
* |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------|
|
||||
* | e | \ | { | } | . | ~ | | | | ' | q | g | h | f | c |
|
||||
* `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------'
|
||||
* |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause|
|
||||
* `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------'
|
||||
* | | |L_NumK| |L_NumK| | |
|
||||
* | _ |LShift|------| |------|RShift|Enter |
|
||||
* | | |L_FNav| |L_FNav| | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[QW_A] = KEYMAP(
|
||||
// Left hand
|
||||
KC_DOLLAR, S(KC_QUOT), S(KC_COMM), S(KC_DOT), KC_LBRC, KC_RBRC, KC_DEL,
|
||||
KC_PERCENT, KC_PIPE, KC_E, KC_AMPR, KC_O, KC_E, KC_BSPC,
|
||||
KC_W, KC_A, KC_U, KC_I, RALT(KC_5), KC_COMMA,
|
||||
KC_E, KC_BSLASH, KC_LCBR, KC_RCBR, KC_DOT, KC_TILDE, KC_TAB,
|
||||
KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT,
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_UNDS, MO(QW_S), KC_TRNS,
|
||||
// Right hand
|
||||
KC_SLCK, KC_AT, KC_PLUS, KC_MINUS, KC_SLASH, KC_ASTR, KC_EQUAL,
|
||||
KC_CAPSLOCK, KC_CIRC, KC_V, KC_D, KC_L, KC_J, KC_Z,
|
||||
KC_C, KC_T, KC_S, KC_R, KC_N, KC_M,
|
||||
KC_NUMLOCK, KC_QUOT, KC_Q, KC_G, KC_H, KC_F, KC_C,
|
||||
KC_TRNS, KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE,
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS, MO(QW_S), KC_ENTER),
|
||||
/* Keymap 3: bepo with shift key to qwerty compat layer
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | # | 1 | 2 | 3 | 4 | 5 |Delete| |ScroLo| 6 | 7 | 8 | 9 | 0 | = |
|
||||
@@ -100,20 +139,20 @@ MO(FNAV), MO(SQWER), KC_ENTER),
|
||||
* |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------|
|
||||
* | E | A | Y | X | : | K | | | | ? | Q | G | H | F | C |
|
||||
* `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------'
|
||||
* | BEPO | |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause|
|
||||
* |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause|
|
||||
* `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------'
|
||||
* | | | L_Num| | | | |
|
||||
* | | |L_NumK| |L_NumK| | |
|
||||
* | Space|LShift|------| |------|RShift|Enter |
|
||||
* | | |L_FNav| |L_FNav| | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[SQWER] = KEYMAP(
|
||||
[QW_S] = KEYMAP(
|
||||
// Left hand
|
||||
KC_HASH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
|
||||
KC_GRV, S(KC_B), S(KC_E), S(KC_P), S(KC_O), S(KC_E), KC_TRNS,
|
||||
S(KC_W), S(KC_A), S(KC_U), S(KC_I), S(KC_E), KC_SCOLON,
|
||||
S(KC_E), S(KC_A), S(KC_Y), S(KC_X), KC_COLON, S(KC_K), S(KC_TAB),
|
||||
KC_TRNS, KC_TRNS, S(KC_LGUI), S(KC_LCTL), S(KC_LALT),
|
||||
S(KC_ESC), S(KC_INS), S(KC_LGUI), S(KC_LCTL), S(KC_LALT),
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
@@ -126,51 +165,125 @@ KC_TRNS, KC_TRNS, S(KC_LGUI), S(KC_LCTL), S(KC_LALT),
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
/* Keymap 3: QWERTY alted system compatibility layer
|
||||
/* Keymap 4: bepo to azerty base compat layer
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | $ | " | < | > | ( | ) |Delete| |ScroLo| @ | + | - | / | * | = |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | % | b |e_acut| p | o |e_grav|Backsp| |CapsLo| ^ | v | d | l | j | z |
|
||||
* |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------|
|
||||
* | w | a | u | i | e | , |------| |------| c | t | s | r | n | m |
|
||||
* |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------|
|
||||
* | e |a_grav| y | x | . | k | | | | ' | q | g | h | f | c_cedil|
|
||||
* `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------'
|
||||
* |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause|
|
||||
* `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------'
|
||||
* | | |L_NumK| |L_NumK| | |
|
||||
* | Space|LShift|------| |------|RShift|Enter |
|
||||
* | | |L_FNav| |L_FNav| | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[AZ_B] = KEYMAP(
|
||||
// Left hand
|
||||
FR_DLR, FR_QUOT, FR_LESS, FR_GRTR, FR_LPRN, FR_RPRN, KC_DEL,
|
||||
FR_PERC, KC_B, FR_EACU, KC_P, KC_O, FR_EGRV, KC_BSPC,
|
||||
FR_W, FR_A, KC_U, KC_I, KC_E, FR_COMM,
|
||||
KC_E, FR_AGRV, KC_Y, KC_X, FR_DOT, KC_K, KC_TAB,
|
||||
KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT,
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_SPC, MO(AZ_S), KC_TRNS,
|
||||
// Right hand
|
||||
KC_SLCK, FR_AT, FR_PLUS, FR_MINS, FR_SLSH, FR_ASTR, FR_EQL,
|
||||
KC_CAPSLOCK, KC_LBRC, KC_V, KC_D, KC_L, KC_J, FR_Z,
|
||||
KC_C, KC_T, KC_S, KC_R, KC_N, FR_M,
|
||||
KC_NUMLOCK, FR_APOS, FR_Q, KC_G, KC_H, KC_F, FR_CCED,
|
||||
MO(AZ_A), KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE,
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS, MO(AZ_S), KC_ENTER),
|
||||
/* Keymap 5: bepo with altgr key to azerty compat layer
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | $ | " | < | > | [ | ] |Delete| |ScroLo| @ | + | - | / | * | = |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | % | | | e | & | o | e |Backsp| |CapsLo| ^ | v | d | l | j | z |
|
||||
* |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------|
|
||||
* | w | a | u | i | € | , |------| |------| c | t | s | r | n | m |
|
||||
* | w | a |u_grav| trem | € | , |------| |------| c | t | s | r | n | m |
|
||||
* |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------|
|
||||
* | e | \ | { | } | . | ~ | | | | ' | q | g | h | f | c |
|
||||
* | / | \ | { | } | . | ~ | | | | ' | q | g | h | f | c |
|
||||
* `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------'
|
||||
* | BEPO | |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause|
|
||||
* |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause|
|
||||
* `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------'
|
||||
* | | | L_Num| | | | |
|
||||
* | | |L_NumK| |L_NumK| | |
|
||||
* | _ |LShift|------| |------|RShift|Enter |
|
||||
* | | |L_FNav| |L_FNav| | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[AQWER] = KEYMAP(
|
||||
[AZ_A] = KEYMAP(
|
||||
// Left hand
|
||||
KC_DOLLAR, S(KC_QUOT), S(KC_COMM), S(KC_DOT), KC_LBRC, KC_RBRC, KC_DEL,
|
||||
KC_PERCENT, KC_PIPE, KC_E, KC_AMPR, KC_O, KC_E, KC_BSPC,
|
||||
KC_W, KC_A, KC_U, KC_I, RALT(KC_5), KC_COMMA,
|
||||
KC_E, KC_BSLASH, KC_LCBR, KC_RCBR, KC_DOT, KC_TILDE, KC_TAB,
|
||||
KC_TRNS, KC_NO, KC_LGUI, KC_LCTL, KC_LALT,
|
||||
KC_ESC, MO(MSE),
|
||||
MO(NUM),
|
||||
KC_UNDS, MO(SQWER), MO(FNAV),
|
||||
FR_DLR, FR_QUOT, FR_LESS, FR_GRTR, FR_LBRC, FR_RBRC, KC_DEL,
|
||||
FR_PERC, FR_PIPE, FR_EACU, FR_AMP, KC_O, FR_EGRV, KC_BSPC,
|
||||
FR_W, FR_A, FR_UGRV, S(KC_LBRC), FR_EURO, FR_COMM,
|
||||
FR_SLSH, FR_BSLS, FR_LCBR, FR_RCBR, FR_DOT, FR_TILD, KC_TAB,
|
||||
KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT,
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
FR_UNDS, MO(AZ_S), KC_TRNS,
|
||||
// Right hand
|
||||
KC_SLCK, KC_AT, KC_PLUS, KC_MINUS, KC_SLASH, KC_ASTR, KC_EQUAL,
|
||||
KC_CAPSLOCK, KC_CIRC, KC_V, KC_D, KC_L, KC_J, KC_Z,
|
||||
KC_C, KC_T, KC_S, KC_R, KC_N, KC_M,
|
||||
KC_NUMLOCK, KC_QUOT, KC_Q, KC_G, KC_H, KC_F, KC_C,
|
||||
KC_SLCK, FR_AT, FR_PLUS, FR_MINS, FR_SLSH, FR_ASTR, FR_EQL,
|
||||
KC_CAPSLOCK, KC_LBRC, KC_V, KC_D, KC_L, KC_J, FR_Z,
|
||||
KC_C, KC_T, KC_S, KC_R, KC_N, FR_M,
|
||||
KC_NUMLOCK, FR_APOS, FR_Q, KC_G, KC_H, KC_F, FR_CCED,
|
||||
KC_TRNS, KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE,
|
||||
KC_NO, KC_INS,
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
MO(FNAV), MO(SQWER), KC_ENTER),
|
||||
/* Keymap 4: function / navigation layer
|
||||
KC_TRNS, MO(AZ_S), KC_ENTER),
|
||||
/* Keymap 6: bepo with shift key to azerty compat layer
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | # | 1 | 2 | 3 | 4 | 5 |Delete| |ScroLo| 6 | 7 | 8 | 9 | 0 | ° |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | ` | B | E | P | O | E |Backsp| |CapsLo| ! | V | D | L | J | Z |
|
||||
* |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------|
|
||||
* | W | A | U | I | E | ; |------| |------| C | T | S | R | N | M |
|
||||
* |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------|
|
||||
* | E | A | Y | X | : | K | | | | ? | Q | G | H | F | C |
|
||||
* `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------'
|
||||
* |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause|
|
||||
* `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------'
|
||||
* | | |L_NumK| |L_NumK| | |
|
||||
* | Space|LShift|------| |------|RShift|Enter |
|
||||
* | | |L_FNav| |L_FNav| | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[AZ_S] = KEYMAP(
|
||||
// Left hand
|
||||
FR_HASH, FR_1, FR_2, FR_3, FR_4, FR_5, KC_TRNS,
|
||||
FR_GRV, S(KC_B), S(KC_E), S(KC_P), S(KC_O), S(KC_E), KC_TRNS,
|
||||
S(FR_W), S(FR_A), S(KC_U), S(KC_I), S(KC_E), FR_SCLN,
|
||||
S(KC_E), S(FR_A), S(KC_Y), S(KC_X), FR_COLN, S(KC_K), S(KC_TAB),
|
||||
S(KC_ESC), S(KC_INS), S(KC_LGUI), S(KC_LCTL), S(KC_LALT),
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
// Right hand
|
||||
KC_TRNS, FR_6, FR_7, FR_8, FR_9, FR_0, FR_OVRR,
|
||||
KC_TRNS, FR_EXLM, S(KC_V), S(KC_D), S(KC_L), S(KC_J), S(FR_Z),
|
||||
S(KC_C), S(KC_T), S(KC_S), S(KC_R), S(KC_N), S(FR_M),
|
||||
KC_TRNS, FR_QUES, S(FR_Q), S(KC_G), S(KC_H), S(KC_F), S(KC_C),
|
||||
S(KC_RALT), S(KC_RCTL), S(KC_RGUI), KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
/* Keymap 7: function / navigation / mouse layer
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | | F1 | F2 | F3 | F4 | F5 |VolMut| | | F6 | F7 | F8 | F9 | F10 | |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | | | | | | |VolDwn| | | PgUp | Home | Up | End | F11 | |
|
||||
* | | Next |LClick| Up |RClick| WhUp |VolDwn| | | PgUp | Home | Up | End | F11 | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | | | | | |------| |------| PgDn | Left | Down | Right| F12 | |
|
||||
* | | Prev | Left | Down | Right|WhDown|------| |------| PgDn | Left | Down | Right| F12 | |
|
||||
* |--------+------+------+------+------+------| VolUp| | |------+------+------+------+------+--------|
|
||||
* | | Undo | Cut | Copy | Paste| | | | | | | | | | |
|
||||
* `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------'
|
||||
@@ -184,12 +297,12 @@ MO(FNAV), MO(SQWER), KC_ENTER),
|
||||
[FNAV] = KEYMAP(
|
||||
// Left hand
|
||||
KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MUTE,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLU,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_MS_BTN5, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_MS_WH_UP, KC_VOLU,
|
||||
KC_NO, KC_MS_BTN4, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_DOWN,
|
||||
KC_NO, KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_NO, KC_VOLD,
|
||||
KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_NO, KC_NO,
|
||||
KC_NO,
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_NO, KC_TRNS, KC_TRNS,
|
||||
// Right hand
|
||||
KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO,
|
||||
@@ -197,91 +310,52 @@ KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_PGDOWN, KC_LEFT, KC_DOWN, KC_RIGHT, KC_F12, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO,
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_NO),
|
||||
/* Keymap 5: numeric layer, sends keypad codes
|
||||
/* Keymap 8: numeric keypad layer, sends keypad codes
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | | | | | | | | | | | + | - | / | * | |
|
||||
* | | | | | | | | | | | NumLo| / | * | - | |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | | | | | | | | | | | 7 | 8 | 9 | | |
|
||||
* | | | | | | | | | | | 7 | 8 | 9 | + | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | | | | | |------| |------| | 4 | 5 | 6 | | |
|
||||
* | | | | | | |------| |------| | 4 | 5 | 6 | + | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | | | | | | | | | | 1 | 2 | 3 | | |
|
||||
* | | | | | | | | | | | 1 | 2 | 3 | Enter| |
|
||||
* `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------'
|
||||
* | | | | | | | | | | | | | 0 | 00 | . | | |
|
||||
* `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------'
|
||||
* | | | | | | | |
|
||||
* | | |------| |------| | Enter|
|
||||
* | | | | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[NUM] = KEYMAP(
|
||||
// Left hand
|
||||
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_TRNS, KC_TRNS,
|
||||
KC_NO, KC_NO,
|
||||
KC_TRNS,
|
||||
KC_NO, KC_TRNS, KC_NO,
|
||||
// Right hand
|
||||
KC_NO, KC_NO, KC_KP_PLUS, KC_KP_MINUS, KC_KP_SLASH, KC_KP_ASTERISK, KC_NO,
|
||||
KC_NO, KC_NO, KC_KP_7, KC_KP_8, KC_KP_9, KC_NO, KC_NO,
|
||||
KC_NO, KC_KP_4, KC_KP_5, KC_KP_6, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_KP_1, KC_KP_2, KC_KP_3, KC_NO, KC_NO,
|
||||
KC_KP_0, M(KP_00), KC_KP_COMMA, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO,
|
||||
KC_NO,
|
||||
KC_NO, KC_TRNS, KC_KP_ENTER),
|
||||
/* Keymap 6: mouse layer
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | | | | | | | | | | |LClick| Up |RClick| WhUp | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | | | | | |------| |------| | Left | Down | Right|WhDown| |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------'
|
||||
* | | | | | | | | | | | | | | | | | |
|
||||
* | | | | | | | | | | | | | 0 | 00 | . | Enter| |
|
||||
* `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------'
|
||||
* | | | | | | | |
|
||||
* | | |------| |------| | |
|
||||
* | | | | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[MSE] = KEYMAP(
|
||||
[NUMK] = KEYMAP(
|
||||
// Left hand
|
||||
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_TRNS, KC_TRNS,
|
||||
KC_NO, KC_TRNS,
|
||||
KC_NO,
|
||||
KC_NO, KC_TRNS, KC_NO,
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_NO, KC_TRNS, KC_TRNS,
|
||||
// Right hand
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_MS_WH_UP, KC_NO,
|
||||
KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_DOWN, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO,
|
||||
KC_NO,
|
||||
KC_NO, KC_TRNS, KC_NO)
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
KC_NO, KC_NO, KC_NUMLOCK, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_NO,
|
||||
KC_NO, KC_NO, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_NO,
|
||||
KC_NO, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_NO,
|
||||
KC_NO, KC_NO, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, KC_NO,
|
||||
KC_KP_0, M(KP_00), KC_KP_COMMA, KC_KP_ENTER, KC_NO,
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_NO)
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
switch(id) {
|
||||
// keypad "double 0"
|
||||
case KP_00:
|
||||
if (record->event.pressed) {
|
||||
return MACRO( T(KP_0), D(KP_0), END );
|
||||
@@ -289,23 +363,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
return MACRO( U(KP_0), END );
|
||||
}
|
||||
break;
|
||||
case CA_Fx:
|
||||
if (record->event.pressed) {
|
||||
layer_on(FNAV);
|
||||
return MACRO( D(LALT), D(LCTL), END );
|
||||
} else {
|
||||
layer_off(FNAV);
|
||||
return MACRO( U(LCTL), U(LALT), END );
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
// Runs just one time when the keyboard initializes.
|
||||
void matrix_init_user(void) {
|
||||
};
|
||||
|
||||
// Runs constantly in the background, in a loop.
|
||||
void matrix_scan_user(void) {
|
||||
};
|
||||
|
||||
@@ -23,12 +23,12 @@ La touche "Tab" est placée comme sur la TypeMatrix 2020.
|
||||
|
||||
Meilleure symétrie et accessibilité que la TypeMatrix 2030 : les touches "W" et "%" ont dû être déplacées du côté gauche en raison du nombre de touches de l'ErgoDox, mais l'auriculaire droit ne gère maintenant que deux colonnes de touches au lieu de trois. La touche "Ê" redevient accessible sur la même rangée que les autres lettres, comme sur un clavier classique en disposition bépo. Les lettres, chiffres et symboles sont tous regroupés sur 4 lignes et 6 colonnes pour chaque main, et la première rangée de lettres à la main gauche conserve une identité visuelle "BÉPO".
|
||||
|
||||
Touche de fonction permettant de saisir les touches F1 à F12, les touches F1 à F10 sont placées de façon logique par rapport aux chiffres 1 à 0. Cette même touche permet l'accès aux touches directionnelles sans déplacer la main droite. Les touches "Home" et "End" sont placées de la même façon que sur une TypeMatrix 2030 par rapport aux touches directionnelles. Les touches "Page Up" et "Page Down" sont également accessibles facilement sans déplacer la main droite. Les fonctions "VolUp" et "VolDown" sont placées comme sur la TypeMatrix 2030, avec la fonction "Mute" juste au dessus. Les fonctions "Undo", "Cut", "Copy" et "Paste" sont placées côte à côte comme elles le seraient sur un clavier QWERTY en combinaison avec la touche "Ctrl" (à l'emplacement des lettres "Z", "X", "C" et "V"). Par rapport au layout "SpaceFN", l'utilisation d'une touche de fonction dédiée au pouce permet de ne pas ajouter de latence, et la touche espace reste compatible avec les jeux (action au moment de l'appui et possibilité d'appui long).
|
||||
Touche de fonction permettant de saisir les touches F1 à F12, les touches F1 à F10 sont placées de façon logique par rapport aux chiffres 1 à 0. Cette même touche permet l'accès aux touches directionnelles sans déplacer la main droite et d'effectuer des actions souris avec uniquement la main gauche. Les touches "Home" et "End" sont placées de la même façon que sur une TypeMatrix 2030 par rapport aux touches directionnelles. Les touches "Page Up" et "Page Down" sont également accessibles facilement sans déplacer la main droite. Les fonctions "VolUp" et "VolDown" sont placées comme sur la TypeMatrix 2030, avec la fonction "Mute" juste au dessus. Les fonctions "Undo", "Cut", "Copy" et "Paste" sont placées côte à côte comme elles le seraient sur un clavier QWERTY en combinaison avec la touche "Ctrl" (à l'emplacement des lettres "Z", "X", "C" et "V"). Par rapport au layout "SpaceFN", l'utilisation d'une touche de fonction dédiée au pouce permet de ne pas ajouter de latence, et la touche espace reste compatible avec les jeux (action au moment de l'appui et possibilité d'appui long).
|
||||
|
||||
Touche de fonction permettant l'accès au pavé numérique comme sur la TypeMatrix 2030, mais sans avoir à déplacer la main droite : avec les doigts sur la rangée de repos, possibilité de saisir les chiffres "4", "5" et "6" comme sur un pavé numérique classique. Le double "0" de la TypeMatrix a été conservé, et gagne une possibilité de répétition en simples "0".
|
||||
|
||||
L'appui sur une touche permet de basculer en mode BEPO sur un système configuré pour un clavier QWERTY. Cette compatibilité n'est pas parfaite (pas encore de gestion des accents mais ça devrait être faisable avec une disposition en qwerty international, et les combinaisons de touches ne sont pas toutes supportées puisque le clavier traduit déjà certaines touches en combinaisons) mais reste pratique pour une saisie de texte occasionnelle.
|
||||
Touche permettant de basculer en mode BEPO sur un système configuré pour un clavier QWERTY. Cette compatibilité n'est pas parfaite (pas encore de gestion des accents mais ça devrait être faisable avec une disposition en qwerty international, et les combinaisons de touches ne sont pas toutes supportées puisque le clavier traduit déjà certaines touches en combinaisons) mais reste pratique pour une saisie de texte occasionnelle et pour des accès BIOS ou console en QWERTY.
|
||||
|
||||
TODO : couche de compatibilité pour utiliser la disposition BÉPO sur un système configuré pour un clavier AZERTY.
|
||||
Touche permettant de basculer en mode BEPO sur un système configuré pour un clavier AZERTY. Cette compatibilité n'est pas parfaite (pas de gestion des caractères non présents sur le clavier AZERTY, et les combinaisons de touches ne sont pas toutes supportées puisque le clavier traduit déjà certaines touches en combinaisons) mais reste pratique pour une saisie de texte occasionnelle et pour faire du bureau à distance vers un système Windows sans BEPO.
|
||||
|
||||
> Olivier Smedts <olivier@gid0.org>
|
||||
|
||||
@@ -7,7 +7,12 @@
|
||||
#define SYMB 1 // symbols
|
||||
#define MDIA 2 // media keys
|
||||
|
||||
#define EPRM M(1) // Macro 1: Reset EEPROM
|
||||
enum custom_keycodes {
|
||||
PLACEHOLDER = SAFE_RANGE, // can always be here
|
||||
EPRM,
|
||||
VRSN,
|
||||
RGB_SLD
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap 0: Basic layer
|
||||
@@ -17,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd |
|
||||
* | BkSp | A | S | D | F | G |------| |------| H |J/Alt | K | L |; / L2|' / Cmd |
|
||||
* |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
|
||||
* | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
@@ -44,56 +49,56 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_HOME,
|
||||
KC_SPC,KC_BSPC,KC_END,
|
||||
// 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, KC_FN1,
|
||||
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, ALT_T(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, KC_FN1,
|
||||
KC_LALT, CTL_T(KC_ESC),
|
||||
KC_PGUP,
|
||||
KC_PGDN,KC_TAB, KC_ENT
|
||||
),
|
||||
/* Keymap 1: Symbol Layer
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | EPRM | | | | | | | . | 0 | = | |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,---------------------------------------------------. ,--------------------------------------------------.
|
||||
* |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
|
||||
* |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
* | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
|
||||
* |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
|
||||
* |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
|
||||
* `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | EPRM | | | | | | | . | 0 | = | |
|
||||
* `-----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | | | | | |
|
||||
* |Animat| | |Toggle|Solid |
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | | | | | |
|
||||
* | | |------| |------| | |
|
||||
* |Bright|Bright| | | |Hue- |Hue+ |
|
||||
* |ness- |ness+ |------| |------| | |
|
||||
* | | | | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
// SYMBOLS
|
||||
[SYMB] = KEYMAP(
|
||||
// left hand
|
||||
M(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
|
||||
VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
|
||||
KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
|
||||
KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
|
||||
KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
|
||||
EPRM,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
|
||||
KC_TRNS,KC_TRNS,
|
||||
RGB_MOD,KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS,KC_TRNS,KC_TRNS,
|
||||
RGB_VAD,RGB_VAI,KC_TRNS,
|
||||
// right hand
|
||||
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||
KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
|
||||
KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
|
||||
KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
|
||||
KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS,
|
||||
RGB_TOG, RGB_SLD,
|
||||
KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS
|
||||
KC_TRNS, RGB_HUD, RGB_HUI
|
||||
),
|
||||
/* Keymap 2: Media and mouse keys
|
||||
*
|
||||
@@ -160,6 +165,33 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
// dynamically generate these.
|
||||
case EPRM:
|
||||
if (record->event.pressed) {
|
||||
eeconfig_init();
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case VRSN:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RGB_SLD:
|
||||
if (record->event.pressed) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
rgblight_mode(1);
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Runs just one time when the keyboard initializes.
|
||||
void matrix_init_user(void) {
|
||||
|
||||
|
||||
165
keyboards/ergodox/keymaps/dvorak_emacs/keymap.c
Executable file
165
keyboards/ergodox/keymaps/dvorak_emacs/keymap.c
Executable file
@@ -0,0 +1,165 @@
|
||||
#include "ergodox.h"
|
||||
#include "debug.h"
|
||||
#include "action_layer.h"
|
||||
|
||||
/******************************************************************************************
|
||||
* DVORAK LAYOUT (see http://djelibeibi.unex.es/dvorak/)
|
||||
* Layer 1: auxiliary keys
|
||||
* Layer 2: full qwerty layout
|
||||
*****************************************************************************************/
|
||||
|
||||
// LAYERS
|
||||
#define BASE 0 // dvorak layout (default)
|
||||
#define AUX 1 // auxiliary keys
|
||||
|
||||
// MACROS
|
||||
/* #define OBRACE 0 // key { or shift */
|
||||
/* #define CBRACE 1 // key } or shift */
|
||||
/* #define OBRACK 2 // key [ or left alt */
|
||||
/* #define CBRACK 3 // key ] or left alt */
|
||||
/* #define CAPS 4 // caps lock */
|
||||
|
||||
// LEDS
|
||||
#define USB_LED_NUM_LOCK 0
|
||||
#define USB_LED_CAPS_LOCK 1
|
||||
#define USB_LED_SCROLL_LOCK 2
|
||||
#define USB_LED_COMPOSE 3
|
||||
#define USB_LED_KANA 4
|
||||
|
||||
// TIMERS
|
||||
#define KEY_TAP_FAST 85
|
||||
#define KEY_TAP_SLOW 95
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap 0: Base layer
|
||||
* Keys with double values (like Esc/Ctrl) correspond to the 'tapped' key and the 'held' key, respectively
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = / + |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | ~ |" / ' |, / < |. / > | P | Y | [ | | ] | F | G | C | H | L | / / ? |
|
||||
* |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
|
||||
* | Tab | A | O | E |U/LSft| I/L1 |------| |------| D/L1|R/RSft| T | N | S | - / _ |
|
||||
* |--------+------+------+------+------+------| LGUI | | LGUI |------+------+------+------+------+--------|
|
||||
* | {/LSft |; / : | Q | J | K | X | | | | B | M | W | V | Z | }/RSft |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | | | | | ~L1 | | ~L1 | | | \ / || |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | HOME | END | | LEFT | RIGHT|
|
||||
* ,------|------|------| |------+--------+------.
|
||||
* | BSPC | DEL | PGUP | | UP | SPACE |RETURN|
|
||||
* | / | / |------| |------| / | / |
|
||||
* | LCTL | LALT |PGDWN | | DOWN | LALT | LCTL |
|
||||
* `--------------------' `----------------------'
|
||||
*
|
||||
*/
|
||||
[BASE] = KEYMAP(
|
||||
// left hand
|
||||
KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
|
||||
KC_TILD, KC_QUOTE, KC_COMM,KC_DOT, KC_P, KC_Y, KC_LBRACKET,
|
||||
KC_TAB, KC_A, KC_O, KC_E, SFT_T(KC_U), LT(AUX, KC_I),
|
||||
SFT_T(KC_LBRC), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_LGUI,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, MO(AUX),
|
||||
KC_HOME, KC_END,
|
||||
KC_PGUP,
|
||||
CTL_T(KC_BSPC), ALT_T(KC_DEL), KC_PGDN,
|
||||
// right hand
|
||||
KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
|
||||
KC_RBRACKET, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLASH,
|
||||
LT(AUX, KC_D), SFT_T(KC_H), KC_T, KC_N, KC_S, KC_MINUS,
|
||||
KC_LGUI, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_RBRC),
|
||||
MO(AUX), KC_NO, KC_NO, KC_BSLASH, KC_NO,
|
||||
KC_LEFT, KC_RIGHT,
|
||||
KC_UP,
|
||||
KC_DOWN, ALT_T(KC_ENT), CTL_T(KC_SPC)
|
||||
),
|
||||
/* Keymap 1: Aux layer
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | VolUp | | | | | | SLEEP | PWR | | | | | | |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | VolDn | F1 | F2 | F3 | F4 | | | | | | 7 | 8 | 9 | * | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | F5 | F6 | F7 | F8 | TRANS|------| |------|TRANS | 4 | 5 | 6 | + | |
|
||||
* |--------+------+------+------+------+------| | |PSCR |------+------+------+------+------+--------|
|
||||
* | TRANS | F9 | F10 | F11 | F12 | | | | | | 1 | 2 | 3 | / | TRANS |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* |CTRL-S|CTRL-Z|CTRL-X|CTRL-C| TRANS| | TRANS| . | 0 | = | |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | TRANS| TRANS| | TRANS| TRANS|
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | TRANS| | TRANS| | |
|
||||
* |TRANS |TRANS |------| |------| TRANS| TRANS|
|
||||
* | | | TRANS| | TRANS| | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[AUX] = KEYMAP(
|
||||
// left hand
|
||||
KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLEP,
|
||||
KC_VOLD, KC_F1, KC_F2, KC_F3, KC_F4, KC_NO, KC_NO,
|
||||
KC_NO , KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS,
|
||||
KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
|
||||
LCTL(KC_S), LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), KC_TRNS,
|
||||
KC_TRNS , KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
// right hand
|
||||
KC_PWR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_PAST, KC_NO,
|
||||
KC_TRNS, KC_4, KC_5, KC_6, KC_PPLS, KC_NO,
|
||||
KC_PSCR, KC_NO, KC_1, KC_2, KC_3, KC_PSLS, KC_TRNS,
|
||||
KC_TRNS,KC_DOT, KC_0, KC_PEQL, KC_NO,
|
||||
KC_TRNS , KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
[1] = ACTION_LAYER_TAP_TOGGLE(AUX) // FN1 - Momentary Layer 1 (Aux)
|
||||
};
|
||||
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
case 0:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_RSFT);
|
||||
} else {
|
||||
unregister_code(KC_RSFT);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
// Runs just one time when the keyboard initializes.
|
||||
void matrix_init_user(void) {
|
||||
|
||||
};
|
||||
|
||||
// Runs constantly in the background, in a loop.
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
uint8_t layer = biton32(layer_state);
|
||||
|
||||
ergodox_board_led_off();
|
||||
ergodox_right_led_1_off();
|
||||
ergodox_right_led_2_off();
|
||||
ergodox_right_led_3_off();
|
||||
switch (layer) {
|
||||
case 1:
|
||||
ergodox_right_led_1_on();
|
||||
break;
|
||||
case 2:
|
||||
ergodox_right_led_2_on();
|
||||
break;
|
||||
default:
|
||||
// none
|
||||
break;
|
||||
}
|
||||
}
|
||||
70
keyboards/ergodox/keymaps/dvorak_emacs/readme.md
Normal file
70
keyboards/ergodox/keymaps/dvorak_emacs/readme.md
Normal file
@@ -0,0 +1,70 @@
|
||||
# Ergodox Dvorak Layout with emacs binding in mind
|
||||
* Control & Alt key on the thumbs (activated if pressed with another key).
|
||||
* In the same way, "U" and "R" are the shift modifier if pressed with another key.
|
||||
* "I" and "D" set the layer 1 for the auxiliary keys if pressed with another key.
|
||||
* Software layout set to english.
|
||||
|
||||
## Keymap Layers
|
||||
- L0: dvorak with some customizations (see layout below)
|
||||
- L1: auxiliary keys (includes function keys, numpad...)
|
||||
|
||||
|
||||
### Keymap 0: Base layer
|
||||
Keys with double values (like U/LSft) correspond to the 'tapped' key and the 'held' key, respectively
|
||||
|
||||
<pre><code>
|
||||
|
||||
,--------------------------------------------------. ,--------------------------------------------------.
|
||||
| | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = |
|
||||
|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
| ~ | ' | , | . | P | Y | [ | | ] | F | G | C | H | L | / |
|
||||
|--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
|
||||
| Tab | A | O | E |U/LSft| I/L1 |------| |------| D/L1|R/RSft| T | N | S | - |
|
||||
|--------+------+------+------+------+------| LGUI | | LGUI |------+------+------+------+------+--------|
|
||||
| {/LSft | ; | Q | J | K | X | | | | B | M | W | V | Z | }/RSft |
|
||||
`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
| | | | | ~L1 | | ~L1 | | | \ | |
|
||||
`----------------------------------' `----------------------------------'
|
||||
,-------------. ,-------------.
|
||||
| HOME | END | | LEFT | RIGHT|
|
||||
,------|------|------| |------+--------+------.
|
||||
| BSPC | DEL | PGUP | | UP | SPACE |RETURN|
|
||||
| / | / |------| |------| / | / |
|
||||
| LCTL | LALT |PGDWN | | DOWN | LALT | LCTL |
|
||||
`--------------------' `----------------------'
|
||||
|
||||
</pre></code>
|
||||
|
||||
### Keymap 1: Aux layer
|
||||
|
||||
<pre><code>
|
||||
|
||||
,--------------------------------------------------. ,--------------------------------------------------.
|
||||
| VolUp | | | | | | SLEEP | PWR | | | | | | |
|
||||
|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
| VolDn | F1 | F2 | F3 | F4 | | | | | | 7 | 8 | 9 | * | |
|
||||
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
| | F5 | F6 | F7 | F8 | TRANS|------| |------|TRANS | 4 | 5 | 6 | + | |
|
||||
|--------+------+------+------+------+------| | |PSCR |------+------+------+------+------+--------|
|
||||
| TRANS | F9 | F10 | F11 | F12 | | | | | | 1 | 2 | 3 | / | TRANS |
|
||||
`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
|CTRL-S|CTRL-Z|CTRL-X|CTRL-C| TRANS| | TRANS| . | 0 | = | |
|
||||
`----------------------------------' `----------------------------------'
|
||||
,-------------. ,-------------.
|
||||
| TRANS| TRANS| | TRANS| TRANS|
|
||||
,------|------|------| |------+------+------.
|
||||
| | | TRANS| | TRANS| | |
|
||||
|TRANS |TRANS |------| |------| TRANS| TRANS|
|
||||
| | | TRANS| | TRANS| | |
|
||||
`--------------------' `--------------------'
|
||||
|
||||
</pre></code>
|
||||
|
||||
|
||||
|
||||
## Generation of .hex file
|
||||
> In the "qmk_firmware/keyboards/ergodox" directory.
|
||||
|
||||
> Execute "make dvorak_emacs". Then the hex file "ergodox_ez_dvorak_emacs.hex" is in the root directory : "qmk_firmware".
|
||||
|
||||
> Flash with `teensy_loader` binary
|
||||
@@ -3,6 +3,8 @@
|
||||
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
RGBLIGHT_ENABLE ?= yes
|
||||
MIDI_ENABLE ?= yes
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
|
||||
#undef LEADER_TIMEOUT
|
||||
#define LEADER_TIMEOUT 300
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -7,6 +7,12 @@
|
||||
#define SYMB 1 // symbols
|
||||
#define MDIA 2 // media keys
|
||||
|
||||
enum custom_keycodes {
|
||||
PLACEHOLDER = SAFE_RANGE, // can always be here
|
||||
RGB_FF00BB // always start with RGB_
|
||||
};
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap 0: Basic layer
|
||||
*
|
||||
@@ -65,33 +71,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | |NxtTab|PrvTab| | | | | | |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | | | | | |
|
||||
* | | | |TOG |
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | | | | | |
|
||||
* |VAI |VAD |HUI | |SAI | |MOD |
|
||||
* | | |------| |------| | |
|
||||
* | | | | | | | |
|
||||
* | | |HUD | |SAD | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
// SYMBOLS
|
||||
[SYMB] = KEYMAP(
|
||||
// left hand
|
||||
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
|
||||
RGB_FF00BB, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5,
|
||||
KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS,KC_TRNS,LCTL(KC_PGUP), LCTL(KC_PGDN),
|
||||
KC_TRNS,KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS,KC_TRNS,KC_TRNS,
|
||||
RGB_HUI,
|
||||
RGB_VAI,RGB_VAD,RGB_HUD,
|
||||
// right hand
|
||||
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12,
|
||||
KC_AMPR, KC_UNDS, KC_MINS, CM_SCLN, KC_PLUS, KC_TRNS,
|
||||
KC_TRNS, KC_PIPE, KC_AT, KC_EQL, KC_PERC, 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
|
||||
RGB_TOG, KC_TRNS,
|
||||
RGB_SAI,
|
||||
RGB_SAD, KC_TRNS, RGB_MOD
|
||||
),
|
||||
/* Keymap 2: Media and mouse keys
|
||||
*
|
||||
@@ -152,6 +158,24 @@ void matrix_init_user(void) {
|
||||
|
||||
};
|
||||
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
// dynamically generate these.
|
||||
case RGB_FF00BB:
|
||||
if (record->event.pressed) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
rgblight_enable();
|
||||
rgblight_mode(1);
|
||||
rgblight_setrgb(0xff,0x00,0xbb);
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
LEADER_EXTERNS();
|
||||
|
||||
// Runs constantly in the background, in a loop.
|
||||
|
||||
2
keyboards/ergodox/keymaps/galson/Makefile
Normal file
2
keyboards/ergodox/keymaps/galson/Makefile
Normal file
@@ -0,0 +1,2 @@
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
|
||||
183
keyboards/ergodox/keymaps/galson/keymap.c
Normal file
183
keyboards/ergodox/keymaps/galson/keymap.c
Normal file
@@ -0,0 +1,183 @@
|
||||
#include "ergodox.h"
|
||||
#include "debug.h"
|
||||
#include "action_layer.h"
|
||||
#include "version.h"
|
||||
|
||||
#define BASE 0 // default layer
|
||||
#define SYMB 1 // symbols
|
||||
#define MDIA 2 // media keys
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap 0: Basic layer
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | + | 1 | 2 | 3 | 4 | 5 | rclk | | lclk | 6 | 7 | 8 | 9 | 0 | - |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | = | Q | W | E | R |cmd/T |shift | |shift |cmd/Y | U | I | O | P | \ |
|
||||
* |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------|
|
||||
* | " | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' |
|
||||
* |--------+------+------+------+------+------| ctrl | | ctrl |------+------+------+------+------+--------|
|
||||
* | { | Z | X | C | V | B | [ | | ] | N | M | , | . | / | } |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | _ | ` | $ | Left | Right| | Up | Down | : | * | ! |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | < | | | | & | > |
|
||||
* ,------|------|------| |------+--------+------.
|
||||
* | | | # | | @ | | |
|
||||
* | Space|Backsp|------| |------| Tab |Enter |
|
||||
* | |ace | % | | ESC | | |
|
||||
* `--------------------' `----------------------'
|
||||
*/
|
||||
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
|
||||
// Otherwise, it needs KC_*
|
||||
[BASE] = KEYMAP( // layer 0 : default
|
||||
// left hand
|
||||
KC_PLUS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_BTN2,
|
||||
KC_EQL, KC_Q, KC_W, KC_E, KC_R, GUI_T(KC_T), KC_LSPO,
|
||||
KC_DQUO, KC_A, KC_S, KC_D, KC_F, KC_G,
|
||||
KC_LCBR, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, CTL_T(KC_LBRC),
|
||||
KC_UNDS, KC_GRV, KC_DLR, KC_LEFT,KC_RGHT,
|
||||
KC_LABK, KC_PIPE,
|
||||
KC_HASH,
|
||||
KC_SPC, KC_BSPC,KC_PERC,
|
||||
// right hand
|
||||
KC_BTN1, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
|
||||
KC_RSPC, GUI_T(KC_Y), KC_U, KC_I, KC_O, KC_P, KC_BSLS,
|
||||
KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), KC_QUOT,
|
||||
CTL_T(KC_RBRC), KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RCBR,
|
||||
KC_UP, KC_DOWN,KC_COLN,KC_ASTR, KC_EXLM,
|
||||
KC_AMPR, KC_RABK,
|
||||
KC_AT,
|
||||
KC_ESC, KC_TAB, KC_ENT
|
||||
),
|
||||
/* Keymap 1: Symbol Layer
|
||||
*
|
||||
* ,--------------------------------------------------.
|
||||
* |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | | | | | | | | . | 0 | = | |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | | | | | |
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | | | | | |
|
||||
* | | |------| |------| | |
|
||||
* | | | | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
// SYMBOLS
|
||||
[SYMB] = KEYMAP(
|
||||
// left hand
|
||||
M(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
|
||||
KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
|
||||
KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
|
||||
KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
|
||||
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_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||
KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
|
||||
KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
|
||||
KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
|
||||
KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
/* Keymap 2: Media and mouse keys
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | | | | MsUp | | | | | | | | | | | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | | | | | | | | | | | Prev | Next | | |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | | | | | |
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | | | | |Brwser|
|
||||
* | | |------| |------| |Back |
|
||||
* | | | | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
// MEDIA AND MOUSE
|
||||
[MDIA] = KEYMAP(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
|
||||
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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
|
||||
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_WBAK
|
||||
),
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
[1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
case 0:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
// Runs just one time when the keyboard initializes.
|
||||
void matrix_init_user(void) {
|
||||
|
||||
};
|
||||
|
||||
// Runs constantly in the background, in a loop.
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
uint8_t layer = biton32(layer_state);
|
||||
|
||||
ergodox_board_led_off();
|
||||
ergodox_right_led_1_off();
|
||||
ergodox_right_led_2_off();
|
||||
ergodox_right_led_3_off();
|
||||
switch (layer) {
|
||||
// TODO: Make this relevant to the ErgoDox EZ.
|
||||
case 1:
|
||||
ergodox_right_led_1_on();
|
||||
break;
|
||||
case 2:
|
||||
ergodox_right_led_2_on();
|
||||
break;
|
||||
default:
|
||||
// none
|
||||
break;
|
||||
}
|
||||
|
||||
};
|
||||
11
keyboards/ergodox/keymaps/galson/readme.md
Normal file
11
keyboards/ergodox/keymaps/galson/readme.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# Galson keymap
|
||||
|
||||
|
||||
Sep 26, 2016.
|
||||
|
||||
This is an ergonomic layout for programming for those with typing-related injuries. Key features:
|
||||
|
||||
- As many symbol keys as possible are accessible without shifting. These should be accessed by moving the entire hand and pressing with a strong finger.
|
||||
- Arrow keys and left and right mouse clicks for mouse-free navigation when combined with head mouse or eyetracker.
|
||||
- Modifier keys are dual role and relocated to positions convenient for the index finger.
|
||||
- Positions are more convenient when the keyboard is vertically mounted (as it should be!)
|
||||
6
keyboards/ergodox/keymaps/jack/Makefile
Normal file
6
keyboards/ergodox/keymaps/jack/Makefile
Normal file
@@ -0,0 +1,6 @@
|
||||
RGBLIGHT_ENABLE ?= yes
|
||||
MIDI_ENABLE ?= yes
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
17
keyboards/ergodox/keymaps/jack/config.h
Normal file
17
keyboards/ergodox/keymaps/jack/config.h
Normal file
@@ -0,0 +1,17 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
/* ws2812 RGB LED */
|
||||
#define RGB_DI_PIN D7
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLED_NUM 15 // Number of LEDs
|
||||
#define RGBLIGHT_HUE_STEP 12
|
||||
#define RGBLIGHT_SAT_STEP 255
|
||||
#define RGBLIGHT_VAL_STEP 12
|
||||
|
||||
#define RGB_MIDI
|
||||
#define RGBW_BB_TWI
|
||||
|
||||
#endif
|
||||
@@ -19,14 +19,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_HOME,
|
||||
KC_SPC,KC_SPC,KC_END,
|
||||
// right hand
|
||||
KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO,
|
||||
KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||
KC_NO, M(1), KC_7, KC_8, KC_9, KC_0, KC_NO,
|
||||
KC_NO, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, KC_P, KC_BSPC,
|
||||
RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_SCLN, KC_QUOT,
|
||||
KC_NO, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_ENT,
|
||||
MO(1), KC_LEFT,KC_DOWN,KC_UP, KC_RGHT,
|
||||
KC_NO, KC_NO,
|
||||
KC_PGUP,
|
||||
KC_PGDN, KC_SPC,KC_SPC
|
||||
RGB_TOG, RGB_HUI,
|
||||
RGB_MOD,
|
||||
M(2), KC_SPC,KC_SPC
|
||||
),
|
||||
[SYMB] = KEYMAP(
|
||||
// left hand
|
||||
@@ -84,6 +84,16 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
unregister_code(KC_RSFT);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (record->event.pressed) { // For resetting EEPROM
|
||||
eeconfig_init();
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (record->event.pressed) { // For resetting EEPROM
|
||||
api_send_unicode(0x0CA0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
79
keyboards/ergodox/keymaps/kristian/keymap.c
Normal file
79
keyboards/ergodox/keymaps/kristian/keymap.c
Normal file
@@ -0,0 +1,79 @@
|
||||
#include "ergodox.h"
|
||||
#include "debug.h"
|
||||
#include "action_layer.h"
|
||||
#include "version.h"
|
||||
#include "keymap_fr_ch.h"
|
||||
#include "keymap_french.h"
|
||||
#include "keymap_german.h"
|
||||
#include "keymap_german_ch.h"
|
||||
#include "keymap_nordic.h"
|
||||
#include "keymap_norwegian.h"
|
||||
#include "keymap_spanish.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
|
||||
[0] = KEYMAP(NO_LESS,KC_1,KC_2,KC_3,KC_4,KC_5,KC_BSPACE,KC_TAB,KC_Q,KC_W,KC_E,KC_R,KC_T,TG(1),KC_BSPACE,KC_A,KC_S,KC_D,KC_F,KC_G,SFT_T(NO_APOS),CTL_T(KC_Z),KC_X,KC_C,KC_V,KC_B,SFT_T(KC_EQUAL),MO(1),CTL_T(KC_GRAVE),KC_LGUI,KC_LEFT,KC_RIGHT,KC_ESCAPE,KC_CAPSLOCK,KC_HOME,KC_SPACE,KC_LGUI,KC_LALT,KC_DELETE,KC_6,KC_7,KC_8,KC_9,KC_0,NO_PLUS,TG(1),KC_Y,KC_U,KC_I,KC_O,KC_P,NO_AM,KC_H,KC_J,KC_K,KC_L,LT(2,NO_OSLH),NO_AE,SFT_T(KC_RBRC),KC_N,KC_M,KC_COMMA,KC_DOT,CTL_T(KC_SLASH),SFT_T(NO_APOS),KC_DOWN,KC_UP,NO_LPRN,NO_RPRN,MO(1),NO_QUOT,CTL_T(KC_ESCAPE),NO_APOS,KC_LALT,KC_LGUI,KC_ENTER),
|
||||
|
||||
[1] = KEYMAP(M(0),KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_BSPACE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_BSPACE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_LSHIFT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_LCTL,KC_LGUI,KC_LEFT,KC_RIGHT,KC_ESCAPE,KC_TRANSPARENT,KC_HOME,KC_SPACE,KC_LGUI,KC_LALT,KC_DELETE,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_F11,KC_TRANSPARENT,KC_7,KC_8,KC_9,KC_TRANSPARENT,KC_TRANSPARENT,KC_F12,KC_4,KC_5,KC_6,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_0,KC_1,KC_2,KC_3,NO_LBRC,NO_RBRC,KC_LSHIFT,KC_COMMA,KC_DOT,LSFT(NO_LBRC),LSFT(NO_RBRC),KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_LALT,KC_LGUI,KC_ENTER),
|
||||
|
||||
[2] = KEYMAP(KC_ESCAPE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MS_UP,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MS_LEFT,KC_MS_DOWN,KC_MS_RIGHT,KC_TRANSPARENT,KC_LSHIFT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_LCTL,KC_LALT,KC_LGUI,KC_MS_BTN1,KC_MS_BTN2,KC_ESCAPE,KC_TRANSPARENT,KC_TRANSPARENT,KC_SPACE,KC_LGUI,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_MEDIA_PREV_TRACK,KC_MEDIA_PLAY_PAUSE,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_ESCAPE,KC_MS_WH_UP,KC_MS_WH_DOWN,KC_MS_ACCEL0,KC_MS_ACCEL1),
|
||||
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
[1] = ACTION_LAYER_TAP_TOGGLE(1)
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
switch(id) {
|
||||
case 0:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
uint8_t layer = biton32(layer_state);
|
||||
|
||||
ergodox_board_led_off();
|
||||
ergodox_right_led_1_off();
|
||||
ergodox_right_led_2_off();
|
||||
ergodox_right_led_3_off();
|
||||
switch (layer) {
|
||||
case 1:
|
||||
ergodox_right_led_1_on();
|
||||
break;
|
||||
case 2:
|
||||
ergodox_right_led_2_on();
|
||||
break;
|
||||
case 3:
|
||||
ergodox_right_led_3_on();
|
||||
break;
|
||||
case 4:
|
||||
ergodox_right_led_1_on();
|
||||
ergodox_right_led_2_on();
|
||||
break;
|
||||
case 5:
|
||||
ergodox_right_led_1_on();
|
||||
ergodox_right_led_3_on();
|
||||
break;
|
||||
case 6:
|
||||
ergodox_right_led_2_on();
|
||||
ergodox_right_led_3_on();
|
||||
break;
|
||||
case 7:
|
||||
ergodox_right_led_1_on();
|
||||
ergodox_right_led_2_on();
|
||||
ergodox_right_led_3_on();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
};
|
||||
151
keyboards/ergodox/keymaps/robot_test_layout/keymap.c
Normal file
151
keyboards/ergodox/keymaps/robot_test_layout/keymap.c
Normal file
@@ -0,0 +1,151 @@
|
||||
#include "ergodox.h"
|
||||
#include "debug.h"
|
||||
#include "action_layer.h"
|
||||
#include "version.h"
|
||||
|
||||
enum custom_keycodes {
|
||||
PLACEHOLDER = SAFE_RANGE, // can always be here
|
||||
RGB_FF0000,
|
||||
RGB_00FF00,
|
||||
RGB_0000FF,
|
||||
RGB_FFFFFF,
|
||||
RGB_TOGGLE,
|
||||
LED1,
|
||||
LED2,
|
||||
LED3
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = KEYMAP(
|
||||
RGB_TOGGLE, RGB_FF0000, RGB_00FF00, RGB_0000FF, RGB_FFFFFF, KC_5, KC_LPRN,
|
||||
KC_GRAVE, KC_A, KC_B, KC_C, KC_D, KC_E, KC_EXLM,
|
||||
KC_HASH, KC_J, KC_K, KC_L, KC_M, KC_N,
|
||||
KC_AMPR, KC_T, KC_U, KC_V, KC_W, KC_X, KC_DLR,
|
||||
KC_PIPE, KC_R, KC_PLUS, KC_LCBR, KC_RCBR,
|
||||
|
||||
KC_F, KC_G,
|
||||
KC_H,
|
||||
KC_P, KC_O, KC_I,
|
||||
|
||||
|
||||
|
||||
// RIGHT HAND
|
||||
KC_RPRN, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
|
||||
KC_AT, KC_F, KC_G, KC_H, KC_I, KC_COLN, KC_BSLS,
|
||||
KC_O, KC_P, KC_Q, KC_R, KC_S, KC_QUOT,
|
||||
LSFT(KC_COMM), KC_Y, KC_Z, KC_COMM, KC_DOT, KC_SLSH, KC_ASTR,
|
||||
KC_A, KC_B, KC_C, KC_D, KC_PIPE,
|
||||
|
||||
LED1, KC_E,
|
||||
LED2,
|
||||
LED3, KC_J, KC_K
|
||||
)
|
||||
};
|
||||
|
||||
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
[1] = ACTION_LAYER_TAP_TOGGLE(1)
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
switch(id) {
|
||||
case 0:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
bool status_led1_on = false, status_led2_on = false, status_led3_on = false;
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
// dynamically generate these.
|
||||
case RGB_FF0000:
|
||||
if (record->event.pressed) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
EZ_RGB(0xff0000);
|
||||
register_code(KC_1); unregister_code(KC_1);
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RGB_00FF00:
|
||||
if (record->event.pressed) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
EZ_RGB(0x00ff00);
|
||||
register_code(KC_2); unregister_code(KC_2);
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RGB_0000FF:
|
||||
if (record->event.pressed) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
EZ_RGB(0x0000ff);
|
||||
register_code(KC_3); unregister_code(KC_3);
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RGB_FFFFFF:
|
||||
if (record->event.pressed) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
EZ_RGB(0xffffff);
|
||||
register_code(KC_4); unregister_code(KC_4);
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RGB_TOGGLE:
|
||||
if (record->event.pressed) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
rgblight_toggle();
|
||||
register_code(KC_EQL); unregister_code(KC_EQL);
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case LED1:
|
||||
if (record->event.pressed) {
|
||||
if(status_led1_on) {
|
||||
ergodox_right_led_1_off();
|
||||
status_led1_on = false;
|
||||
} else {
|
||||
ergodox_right_led_1_on();
|
||||
status_led1_on = true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case LED2:
|
||||
if (record->event.pressed) {
|
||||
if(status_led2_on) {
|
||||
ergodox_right_led_2_off();
|
||||
status_led2_on = false;
|
||||
} else {
|
||||
ergodox_right_led_2_on();
|
||||
status_led2_on = true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case LED3:
|
||||
if (record->event.pressed) {
|
||||
if(status_led3_on) {
|
||||
ergodox_right_led_3_off();
|
||||
status_led3_on = false;
|
||||
} else {
|
||||
ergodox_right_led_3_on();
|
||||
status_led3_on = true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
5
keyboards/ergodox/keymaps/robot_test_layout/readme.md
Normal file
5
keyboards/ergodox/keymaps/robot_test_layout/readme.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# Robot test layout
|
||||
|
||||
Use this layout if you like to pretend you're [Norman](https://www.youtube.com/watch?v=-sbxFBay-tg), the ErgoDox EZ manufacturing robot.
|
||||
|
||||
It's really meant just for internal use, but we're posting it on GitHub anyway, because hurray to open source. :)
|
||||
@@ -24,6 +24,5 @@ COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
||||
CUSTOM_MATRIX ?= yes # Custom matrix file for the ErgoDox EZ
|
||||
SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
|
||||
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
MIDI_ENABLE ?= no # MIDI controls
|
||||
UNICODE_ENABLE ?= yes # Unicode
|
||||
ONEHAND_ENABLE ?= yes # Allow swapping hands of keyboard
|
||||
|
||||
Reference in New Issue
Block a user