58 lines
2.9 KiB
C
58 lines
2.9 KiB
C
#include "action_layer.h"
|
|
|
|
#define FUNCTION_ENABLE_LAYER1 1
|
|
#define FUNCTION_ENABLE_LAYER2 2
|
|
#define FUNCTION_DISABLE_LAYER1 11
|
|
#define FUNCTION_DISABLE_LAYER2 12
|
|
|
|
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
/* 0: qwerty */
|
|
KEYMAP(\
|
|
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK, \
|
|
FN4, GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, \
|
|
FN3, TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC, ENT, DEL, END, PGDN, \
|
|
FN2, CLCK,A, S, D, F, G, H, J, K, L, SCLN,QUOT,NUHS, \
|
|
FN1, LSFT,NUBS,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, UP, \
|
|
FN0, LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT ),
|
|
/* 1: media keys */
|
|
KEYMAP(\
|
|
TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,SLEP, \
|
|
FN14,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,MUTE,VOLD,VOLU,TRNS, TRNS,TRNS,TRNS, \
|
|
FN13,TRNS,TRNS,UP ,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,MSTP,MPLY,MPRV,MNXT, ENT, TRNS,TRNS,TRNS, \
|
|
FN12,TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
|
|
NO, TRNS,TRNS,TRNS,TRNS,CALC,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, TRNS, \
|
|
FN10,TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS),
|
|
/* 2: mouse keys */
|
|
KEYMAP(\
|
|
TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,SLEP, \
|
|
FN24,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,MUTE,VOLD,VOLU,TRNS, TRNS,TRNS,TRNS, \
|
|
FN23,TRNS,BTN1,MS_U,BTN2,WH_U,TRNS,TRNS,TRNS,TRNS,MSTP,MPLY,MPRV,MNXT, ENT, TRNS,TRNS,TRNS, \
|
|
FN22,TRNS,MS_L,MS_D,MS_R,WH_D,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
|
|
NO, TRNS,TRNS,TRNS,TRNS,CALC,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, TRNS, \
|
|
FN20,TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS)
|
|
};
|
|
static const uint16_t PROGMEM fn_actions[] = {
|
|
[0] = ACTION_LAYER_MOMENTARY(1),
|
|
[1] = ACTION_FUNCTION(FUNCTION_ENABLE_LAYER1),
|
|
[10] = ACTION_FUNCTION(FUNCTION_DISABLE_LAYER1),
|
|
[2] = ACTION_FUNCTION(FUNCTION_ENABLE_LAYER2),
|
|
[20] = ACTION_FUNCTION(FUNCTION_DISABLE_LAYER2),
|
|
};
|
|
|
|
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
|
|
switch(id) {
|
|
case FUNCTION_ENABLE_LAYER1:
|
|
layer_on(1);
|
|
break;
|
|
case FUNCTION_DISABLE_LAYER1:
|
|
layer_off(1);
|
|
break;
|
|
|
|
case FUNCTION_ENABLE_LAYER2:
|
|
layer_on(2);
|
|
break;
|
|
case FUNCTION_DISABLE_LAYER2:
|
|
layer_off(2);
|
|
break;
|
|
}
|
|
}
|