Advertisement
bennyp

ez firmware

Mar 12th, 2017
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.98 KB | None | 0 0
  1. #include "ergodox.h"
  2. #include "debug.h"
  3. #include "action_layer.h"
  4. #include "version.h"
  5.  
  6.  
  7. #include "keymap_german.h"
  8.  
  9. #include "keymap_nordic.h"
  10.  
  11. #define MOUSEKEY_INTERVAL       20
  12. #define MOUSEKEY_MAX_SPEED      5
  13. #define MOUSEKEY_DELAY          0
  14. #define MOUSEKEY_TIME_TO_MAX    5
  15. #define MOUSEKEY_WHEEL_DELAY    0
  16.  
  17. enum custom_keycodes {
  18.   PLACEHOLDER = SAFE_RANGE, // can always be here
  19.   EPRM,
  20.   VRSN,
  21.   RGB_SLD,
  22.  
  23. };
  24.  
  25. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  26.  
  27.   [0] = KEYMAP(LGUI(LSFT(KC_P)),KC_1,KC_2,KC_3,KC_4,KC_5,KC_DELETE,LT(1,KC_TAB),KC_Q,KC_W,KC_E,KC_R,KC_T,TG(1),LT(2,KC_ESCAPE),KC_A,KC_S,KC_D,KC_F,KC_G,KC_LSHIFT,CTL_T(KC_Z),KC_X,KC_C,KC_V,KC_B,ALL_T(KC_NO),LT(1,KC_GRAVE),ALT_T(KC_NONUS_HASH),KC_LPRN,KC_LBRACKET,KC_LCBR,ALT_T(KC_APPLICATION),KC_RALT,KC_HOME,GUI_T(KC_SPACE),KC_BSPACE,KC_END,KC_CAPSLOCK,KC_6,KC_7,KC_8,KC_9,KC_0,KC_MINUS,TG(2),KC_Y,KC_U,KC_I,KC_O,KC_P,KC_BSLASH,KC_H,KC_J,KC_K,KC_L,LT(2,KC_SCOLON),KC_QUOTE,MEH_T(KC_NO),KC_N,KC_M,KC_COMMA,KC_DOT,CTL_T(KC_SLASH),KC_LSHIFT,KC_RCBR,KC_RBRACKET,KC_RPRN,LGUI(KC_LALT),MO(1),KC_LALT,CTL_T(KC_ESCAPE),KC_PGUP,KC_PGDOWN,KC_ENTER,GUI_T(KC_SPACE)),
  28.  
  29.   [1] = KEYMAP(M(0),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_TRANSPARENT,KC_TRANSPARENT,KC_HASH,KC_DLR,KC_LPRN,KC_RPRN,KC_GRAVE,KC_TRANSPARENT,KC_PERC,KC_CIRC,KC_LBRACKET,KC_RBRACKET,KC_TILD,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_DELETE,KC_TRANSPARENT,KC_TRANSPARENT,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_F11,KC_TRANSPARENT,KC_UP,KC_7,KC_8,KC_9,KC_ASTR,KC_F12,KC_DOWN,KC_4,KC_5,KC_6,KC_PLUS,KC_TRANSPARENT,KC_TRANSPARENT,KC_AMPR,KC_1,KC_2,KC_3,KC_BSLASH,KC_TRANSPARENT,KC_TRANSPARENT,KC_DOT,KC_0,KC_EQUAL,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT),
  30.  
  31.   [2] = KEYMAP(KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MS_BTN2,KC_MS_UP,KC_MS_BTN1,KC_MS_WH_UP,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MS_LEFT,KC_MS_DOWN,KC_MS_RIGHT,KC_MS_WH_DOWN,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_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_MS_ACCEL0,KC_MS_ACCEL1,KC_MS_ACCEL2,KC_TRANSPARENT,KC_TRANSPARENT,KC_LEFT,KC_DOWN,KC_UP,KC_RIGHT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MEDIA_REWIND,KC_MEDIA_PLAY_PAUSE,KC_MEDIA_FAST_FORWARD,KC_TRANSPARENT,KC_TRANSPARENT,KC_AUDIO_MUTE,KC_AUDIO_VOL_DOWN,KC_AUDIO_VOL_UP,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT),
  32.  
  33. };
  34.  
  35. const uint16_t PROGMEM fn_actions[] = {
  36.   [1] = ACTION_LAYER_TAP_TOGGLE(1)
  37. };
  38.  
  39. // leaving this in place for compatibilty with old keymaps cloned and re-compiled.
  40. const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
  41. {
  42.       switch(id) {
  43.         case 0:
  44.         if (record->event.pressed) {
  45.           SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
  46.         }
  47.         break;
  48.       }
  49.     return MACRO_NONE;
  50. };
  51.  
  52. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  53.   switch (keycode) {
  54.     // dynamically generate these.
  55.     case EPRM:
  56.       if (record->event.pressed) {
  57.         eeconfig_init();
  58.       }
  59.       return false;
  60.       break;
  61.     case VRSN:
  62.       if (record->event.pressed) {
  63.         SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
  64.       }
  65.       return false;
  66.       break;
  67.     case RGB_SLD:
  68.       if (record->event.pressed) {
  69.         rgblight_mode(1);
  70.       }
  71.       return false;
  72.       break;
  73.  
  74.   }
  75.   return true;
  76. }
  77.  
  78. void matrix_scan_user(void) {
  79.  
  80.     uint8_t layer = biton32(layer_state);
  81.  
  82.     ergodox_board_led_off();
  83.     ergodox_right_led_1_off();
  84.     ergodox_right_led_2_off();
  85.     ergodox_right_led_3_off();
  86.     switch (layer) {
  87.         case 1:
  88.             ergodox_right_led_1_on();
  89.             break;
  90.         case 2:
  91.             ergodox_right_led_2_on();
  92.             break;
  93.         case 3:
  94.             ergodox_right_led_3_on();
  95.             break;
  96.         case 4:
  97.             ergodox_right_led_1_on();
  98.             ergodox_right_led_2_on();
  99.             break;
  100.         case 5:
  101.             ergodox_right_led_1_on();
  102.             ergodox_right_led_3_on();
  103.             break;
  104.         case 6:
  105.             ergodox_right_led_2_on();
  106.             ergodox_right_led_3_on();
  107.             break;
  108.         case 7:
  109.             ergodox_right_led_1_on();
  110.             ergodox_right_led_2_on();
  111.             ergodox_right_led_3_on();
  112.             break;
  113.         default:
  114.             break;
  115.     }
  116.  
  117. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement