keychron_qmk_firmware/keyboards/roadkit/keymaps/khord/keymap.c
2017-11-02 16:47:39 -07:00

112 lines
2.7 KiB
C

#include "roadkit.h"
#include "action_layer.h"
#include "eeconfig.h"
extern keymap_config_t keymap_config;
#define _NP 0
#define _L1 1
#define _L2 2
// Fillers to make layering more clear
#define _______ KC_TRNS
#define XXXXXXX KC_NO
enum custom_keycodes {
NUMPAD = SAFE_RANGE,
ADMIN,
SMSPC1,
STR192,
STR255
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Numpad
* ,-----------------------.
* | 7 | 8 | 9 |Bksp |
* |-----`-----`-----`-----|
* | 4 | 5 | 6 | Tab |
* |-----`-----`-----`-----|
* | 1 | 2 | 3 |Enter|
* |-----`-----`-----`-----|
* | 0 |Space| . | / |
* `-----`-----`-----`-----'
* | L1 | L2 | | | Layer hold
*/
[_NP] = /* Numpad */
LAYOUT_ortho_4x4(KC_P7, KC_P8, KC_P9, KC_BSPC, \
KC_P4, KC_P5, KC_P6, KC_TAB, \
KC_P1, KC_P2, KC_P3, KC_PENT, \
LT(1, KC_P0), LT(2, KC_SPC), KC_PDOT, KC_PSLS),
/* L1
* ,-----------------------.
* |Reset| | | Del |
* |-----`-----`-----`-----|
* | Left| Down| Up |Right|
* |-----`-----`-----`-----|
* | 192.| 255 | | |
* |-----`-----`-----`-----|
* |_____| LED | . | |
* `-----`-----`-----`-----'
*/
[_L1] = /* LAYER 1 */
LAYOUT_ortho_4x4(RESET, XXXXXXX, XXXXXXX, KC_DEL, \
KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, \
STR192, STR255, XXXXXXX, XXXXXXX, \
_______, BL_STEP, _______, XXXXXXX),
/* L2
* ,-----------------------.
* | | | str | str |
* |-----`-----`-----`-----|
* | | | | |
* |-----`-----`-----`-----|
* | | | | |
* |-----`-----`-----`-----|
* | |_____| | |
* `-----`-----`-----`-----'
*/
[_L2] = /* LAYER 2 */
LAYOUT_ortho_4x4(XXXXXXX, XXXXXXX, ADMIN, SMSPC1, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, _______, XXXXXXX, XXXXXXX)
};
void persistent_default_layer_set(uint16_t default_layer) {
eeconfig_update_default_layer(default_layer);
default_layer_set(default_layer);
}
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 SMSPC1:
if (record->event.pressed) {
SEND_STRING("Simspace1!");
}
return false;
break;
case STR192:
if (record->event.pressed) {
SEND_STRING("192.168.");
}
return false;
break;
case STR255:
if (record->event.pressed) {
SEND_STRING("255");
}
return false;
break;
}
return true;
};