80 lines
3.6 KiB
C
80 lines
3.6 KiB
C
/*
|
|
Copyright 2013 Oleg Kostyuk <cub.uanic@gmail.com>
|
|
Copyright 2016 Mark Sikora <marknsikora@gmail.com>
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
#ifndef KEYMAP_COMMON_H
|
|
#define KEYMAP_COMMON_H
|
|
|
|
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
#include <avr/pgmspace.h>
|
|
#include "keycode.h"
|
|
#include "action.h"
|
|
#include "action_macro.h"
|
|
#include "report.h"
|
|
#include "host.h"
|
|
#include "print.h"
|
|
#include "debug.h"
|
|
#include "keymap.h"
|
|
|
|
|
|
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
|
|
extern const action_t fn_actions[];
|
|
|
|
|
|
/* ErgoDox keymap definition macro */
|
|
#define KEYMAP( \
|
|
\
|
|
/* left hand, spatial positions */ \
|
|
k00,k01,k02,k03,k04,k05,k06, \
|
|
k10,k11,k12,k13,k14,k15,k16, \
|
|
k20,k21,k22,k23,k24,k25, \
|
|
k30,k31,k32,k33,k34,k35,k36, \
|
|
k40,k41,k42,k43,k44, \
|
|
k55,k56, \
|
|
k54, \
|
|
k53,k52,k51, \
|
|
\
|
|
/* right hand, spatial positions */ \
|
|
k07,k08,k09,k0A,k0B,k0C,k0D, \
|
|
k17,k18,k19,k1A,k1B,k1C,k1D, \
|
|
k28,k29,k2A,k2B,k2C,k2D, \
|
|
k37,k38,k39,k3A,k3B,k3C,k3D, \
|
|
k49,k4A,k4B,k4C,k4D, \
|
|
k57,k58, \
|
|
k59, \
|
|
k5C,k5B,k5A ) \
|
|
\
|
|
/* matrix positions */ \
|
|
{ \
|
|
{ KC_##k00,KC_##k10,KC_##k20,KC_##k30,KC_##k40,KC_NO }, \
|
|
{ KC_##k01,KC_##k11,KC_##k21,KC_##k31,KC_##k41,KC_##k51}, \
|
|
{ KC_##k02,KC_##k12,KC_##k22,KC_##k32,KC_##k42,KC_##k52}, \
|
|
{ KC_##k03,KC_##k13,KC_##k23,KC_##k33,KC_##k43,KC_##k53}, \
|
|
{ KC_##k04,KC_##k14,KC_##k24,KC_##k34,KC_##k44,KC_##k54}, \
|
|
{ KC_##k05,KC_##k15,KC_##k25,KC_##k35,KC_NO, KC_##k55}, \
|
|
{ KC_##k06,KC_##k16,KC_NO, KC_##k36,KC_NO, KC_##k56}, \
|
|
\
|
|
{ KC_##k07,KC_##k17,KC_NO, KC_##k37,KC_NO, KC_##k57}, \
|
|
{ KC_##k08,KC_##k18,KC_##k28,KC_##k38,KC_NO, KC_##k58}, \
|
|
{ KC_##k09,KC_##k19,KC_##k29,KC_##k39,KC_##k49,KC_##k59}, \
|
|
{ KC_##k0A,KC_##k1A,KC_##k2A,KC_##k3A,KC_##k4A,KC_##k5A}, \
|
|
{ KC_##k0B,KC_##k1B,KC_##k2B,KC_##k3B,KC_##k4B,KC_##k5B}, \
|
|
{ KC_##k0C,KC_##k1C,KC_##k2C,KC_##k3C,KC_##k4C,KC_##k5C}, \
|
|
{ KC_##k0D,KC_##k1D,KC_##k2D,KC_##k3D,KC_##k4D,KC_NO } \
|
|
}
|
|
|
|
#endif
|