summaryrefslogtreecommitdiffstats
path: root/keyboards/chocopad/keymaps/khord/keymap.c
blob: ea36c6f6401fe6746a3d9f636f40e46ada6c07c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include "chocopad.h"

#define _BASE 0
#define _FN1 1
#define _FN2 2

// Fillers to make layering more clear
#define KC_ KC_TRNS
#define KC_XX KC_NO

#define KC_L1 LT(1, KC_P0)
#define KC_L2 LT(2, KC_SPC)
#define KC_RST RESET
#define KC_BSTP BL_STEP
#define KC_RTOG RGB_TOG
#define KC_RMOD RGB_MOD
#define KC_RHUI RGB_HUI
#define KC_RHUD RGB_HUD
#define KC_RSAI RGB_SAI
#define KC_RSAD RGB_SAD
#define KC_RVAI RGB_VAI
#define KC_RVAD RGB_VAD
#define KC_MAC1 ADMIN
#define KC_MAC2 SMSPC
#define KC_M192 M192
#define KC_M255 M255

enum custom_keycodes {
  NUMPAD = SAFE_RANGE,
  ADMIN,
  SMSPC,
  M192,
  M255
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

  [_BASE] = KC_KEYMAP(
  //,----+----+----+----.
      P7 , P8 , P9 ,BSPC,
  //|----+----+----+----|
      P4 , P5 , P6 ,TAB ,
  //|----+----+----+----|
      P1 , P2 , P3 ,PENT,
  //|----+----+----+----|
      L1 , L2 ,PDOT,PSLS
  //`----+----+----+----'
  ),

  [_FN1] = KC_KEYMAP(
  //,----+----+----+----.
     ESC ,MAC1,MAC2,DEL ,
  //|----+----+----+----|
     LEFT,DOWN, UP ,RGHT,
  //|----+----+----+----|
     M192,M255, XX , XX ,
  //|----+----+----+----|
         , XX ,    , XX
  //`----+----+----+----'
  ),

  [_FN2] = KC_KEYMAP(
  //,----+----+----+----.
     RST , XX , XX , XX ,
  //|----+----+----+----|
     RTOG,RHUI,RSAI,RVAI,
  //|----+----+----+----|
     RMOD,RHUD,RSAD,RVAD,
  //|----+----+----+----|
     BSTP,    , XX , XX
  //`----+----+----+----'
  )

};

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  switch (keycode) {
    case ADMIN:
      if (record->event.pressed) {
	SEND_STRING("Administrator");
      }
      return false;
      break;
    case SMSPC:
      if (record->event.pressed) {
	SEND_STRING("Simspace1!");
      }
      return false;
      break;
    case M192:
      if (record->event.pressed) {
	SEND_STRING("192.168.");
      }
      return false;
      break;
    case M255:
      if (record->event.pressed) {
	SEND_STRING("255");
      }
      return false;
      break;
  }
  return true;
};