summaryrefslogtreecommitdiffstats
path: root/keyboards/sixkeyboard/sixkeyboard.h
blob: e0eb896ce4dc4f90f22acc02049af04108f88580 (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
#ifndef SIXKEYBOARD_H
#define SIXKEYBOARD_H

#include "quantum.h"

// This macro is an example of using a non-standard row-column matrix. The
// keyboard in question had 11 rows and 8 columns, but the rows were not all
// horizontal, and the columns were not all vertical. For example, row 2
// contained "Print Screen", "N", "M", ",", ".", "/", "Right Shift", and
// "Left Alt". Column 0 contained "F6", "7", "O", "'", "Q", "D", "B",
// "Left Alt", "Up Arrow", and "Down Arrow".
//
// The macro makes programming the keys easier and in a more straight-forward
// manner because it realigns the keys into a 6x15 sensible keyboard layout
// instead of the obtuse 11x8 matrix.


/*
 * ┌───┬───┬───┐
 * │ A │ B │ C │
 * ├───┼───┼───┤
 * │ D │ E │ F │
 * └───┴───┴───┘
 */
#define LAYOUT( \
    k00, k01, k02, \
    k10, k11, k12  \
  ) { \
    { k00, k01, k02 }, \
    { k10, k11, k12 }  \
}


#endif