programandala.net ErgoDox EZ
Descripción del contenido de la página
Configuración de un teclado ergonómico ErgoDox EZ.
Este proyecto es la configuración de mi teclado ErgoDox EZ. La distribución de teclas es la Dvorak española, pero incluye también una capa de QWERTY española, para usar cuando Dvorak ya está seleccionada en el sistema operativo.
Para aprender cómo escribir una configuración empecé usando Oryx, la herramienta en línea disponible en la sede de ErgoDox EZ. Después grabé en el teclado el fichero compilado con la versión de línea de comandos del programa Teensy Loader (hay paquetes de la versión CLI de Teensy Loader y binarios de la versión GUI de Teensy Loader).
Las configuraciones que creé son las siguientes:
A partir de ese punto trabajé con la fuente en C, que se puede ver y descargar a continuación.
Código fuente
// programandala.net ErgoDox EZ
// Version 0.4.0+202002162146
// By Marcos Cruz (programandala.net), 2019,2020
// http://programandala.net/es.programa.programandala_net_ergodox_ez.html
#include QMK_KEYBOARD_H
#include "version.h"
#include "keymap_german.h"
#include "keymap_nordic.h"
#include "keymap_french.h"
#include "keymap_spanish.h"
#include "keymap_hungarian.h"
#include "keymap_swedish.h"
#define KC_MAC_UNDO LGUI(KC_Z)
#define KC_MAC_CUT LGUI(KC_X)
#define KC_MAC_COPY LGUI(KC_C)
#define KC_MAC_PASTE LGUI(KC_V)
#define KC_PC_UNDO LCTL(KC_Z)
#define KC_PC_CUT LCTL(KC_X)
#define KC_PC_COPY LCTL(KC_C)
#define KC_PC_PASTE LCTL(KC_V)
#define NO_TH ALGR(KC_T)
#define NO_ETH ALGR(KC_D)
#define _QL 0 // Spanish Qwerty layer
#define _DL 1 // Spanish Dvorak layer
#define _FL 2 // Function keys layer
enum custom_keycodes {
RGB_SLD = SAFE_RANGE, // can always be here
TOGGLE_LAYER_COLOR,
EPRM,
};
// =============================================================
// Layouts
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// ---------------------------------------------
// Layout 0: Spanish QWERTY
//
// This layout is needed in order to use the Spanish Dvorak layout when it's
// already selected in the OS, which is the case with my computers. That's why
// this is the first layer.
[_QL] = LAYOUT_ergodox(
// .........................
// Left hand
ES_IEXL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO,
KC_CAPSLOCK, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_ESCAPE,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G,
OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, KC_B, OSL(_FL),
TO(_DL), ES_OVRR, ES_LESS, KC_LEFT, KC_RIGHT,
OSM(MOD_LCTL), OSM(MOD_LALT),
KC_HOME,
KC_BSPACE, KC_DELETE, KC_END,
// .........................
// Right hand
KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, ES_APOS,
KC_ESCAPE, KC_Y, KC_U, KC_I, KC_O, KC_P, ES_CCED,
KC_H, KC_J, KC_K, KC_L, ES_NTIL, ES_ACUT,
OSL(_FL), KC_N, KC_M, KC_COMMA, KC_DOT, ES_MINS, OSM(MOD_RSFT),
KC_UP, KC_DOWN, ES_GRV, ES_PLUS, TO(_DL),
OSM(MOD_RALT), OSM(MOD_RCTL),
KC_PGUP,
KC_PGDOWN, KC_ENTER, KC_SPACE),
// ---------------------------------------------
// Layout 1: Spanish Dvorak
// This layout is needed only when the Spanish Dvorak layout is not already
// selected in the OS.
[_DL] = LAYOUT_ergodox(
// .........................
// Left hand
ES_IEXL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO,
KC_CAPSLOCK, KC_DOT, KC_COMMA, ES_NTIL, KC_P, KC_Y, KC_ESCAPE,
KC_TAB, KC_A, KC_O, KC_E, KC_U, KC_I,
OSM(MOD_LSFT), ES_MINS, KC_Q, KC_J, KC_K, KC_X, OSL(_FL),
TO(_QL), ES_OVRR, ES_LESS, KC_LEFT, KC_RIGHT,
OSM(MOD_LCTL), OSM(MOD_LALT),
KC_HOME,
KC_BSPACE, KC_DELETE, KC_END,
// .........................
// Right hand
KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, ES_APOS,
KC_ESCAPE, KC_F, KC_G, KC_C, KC_H, KC_L, ES_CCED,
KC_D, KC_R, KC_T, KC_N, KC_S, ES_ACUT,
OSL(_FL), KC_B, KC_M, KC_W, KC_V, KC_Z, OSM(MOD_RSFT),
KC_UP, KC_DOWN, ES_GRV, ES_PLUS, TO(_QL),
RALT_T(KC_NO), RCTL_T(KC_NO),
KC_PGUP,
KC_PGDOWN, KC_ENTER, KC_SPACE),
// ---------------------------------------------
// Layout 2: one-shot function keys
// This layout replaces the numbers with function keys. This layout is selected
// from the other layouts by `OSL()` (one-shoot layer), so a key press in this
// layout returns to the previous one.
[_FL] = LAYOUT_ergodox(
// .........................
// Left hand
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_FN11,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
// .........................
// Right hand
KC_FN12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS),
};
// =============================================================
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case EPRM:
if (record->event.pressed) {
eeconfig_init();
}
return false;
}
return true;
}
// =============================================================
// LEDs
uint32_t layer_state_set_user(uint32_t state) {
uint8_t layer = biton32(state);
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
switch (layer) {
case 0:
break;
case 1:
ergodox_right_led_1_on();
break;
case 2:
ergodox_right_led_2_on();
break;
default:
break;
}
return state;
};
Descarga
- programandala-net-ergodox-ez-0.1.0.tar.gz (2.67 KiB)
- programandala-net-ergodox-ez-0.1.0.zip (3.97 KiB)
- programandala-net-ergodox-ez-0.1.1.tar.gz (2.67 KiB)
- programandala-net-ergodox-ez-0.1.1.zip (3.97 KiB)
- programandala-net-ergodox-ez-0.2.0.tar.gz (2.78 KiB)
- programandala-net-ergodox-ez-0.2.0.zip (4.08 KiB)
- programandala-net-ergodox-ez-0.3.0.tar.gz (2.92 KiB)
- programandala-net-ergodox-ez-0.3.0.zip (4.21 KiB)
- programandala-net-ergodox-ez-0.3.1.tar.gz (2.91 KiB)
- programandala-net-ergodox-ez-0.3.1.zip (4.21 KiB)
- programandala-net-ergodox-ez-0.4.0.tar.gz (2.80 KiB)
- programandala-net-ergodox-ez-0.4.0.zip (4.11 KiB)
También puedes descargar programandala.net ErgoDox EZ en GitHub.