]> git.friedersdorff.com Git - max/tmk_keyboard.git/blob - keyboard/fc660c/unimap_hasu.c
ibmpc_usb: Error recovery with invalid scan code
[max/tmk_keyboard.git] / keyboard / fc660c / unimap_hasu.c
1 #include "action.h"
2 #include "actionmap.h"
3 #include "hook.h"
4 #include "fc660c.h"
5
6
7 #define AC_L3       ACTION_LAYER_MOMENTARY(3)
8 #define AC_L4       ACTION_LAYER_MOMENTARY(4)
9 #define AC_LS_2     ACTION_LAYER_MODS(2, MOD_LSFT)
10 #define AC_RS_2     ACTION_LAYER_MODS(2, MOD_RSFT)
11 #define AC_TGL1     ACTION_LAYER_TOGGLE(1)
12 #define AC_SPC5     ACTION_LAYER_TAP_KEY(5, KC_SPC)
13 #define AC_SLS6     ACTION_LAYER_TAP_KEY(6, KC_SLSH)
14
15 #define AC_BACK     ACTION_MODS_KEY(MOD_LALT, KC_LEFT)
16 #define AC_FRWD     ACTION_MODS_KEY(MOD_LALT, KC_RIGHT)
17
18 // emulates FC660C default keymap
19 #ifdef KEYMAP_SECTION_ENABLE
20 const action_t actionmaps[][UNIMAP_ROWS][UNIMAP_COLS] __attribute__ ((section (".keymap.keymaps"))) = {
21 #else
22 const action_t actionmaps[][UNIMAP_ROWS][UNIMAP_COLS] PROGMEM = {
23 #endif
24     [0] = KMAP( \
25         ESC, 1,   2,   3,   4,   5,   6,   7,   8,   9,   0,   MINS,EQL, BSLS,     INS,
26         TAB, Q,   W,   E,   R,   T,   Y,   U,   I,   O,   P,   LBRC,RBRC,BSPC,     DEL,
27         LCTL,A,   S,   D,   F,   G,   H,   J,   K,   L,   SCLN,QUOT,     ENT,
28         LS_2,Z,   X,   C,   V,   B,   N,   M,   COMM,DOT, SLS6,          RS_2,UP,
29         L3,  LGUI,LALT,          SPC5,                    RALT,RCTL,L3,  LEFT,DOWN,RGHT
30     ),
31     [1] = KMAP(
32         GRV, 1,   2,   3,   4,   5,   6,   7,   8,   9,   0,   MINS,EQL, BSLS,     INS,
33         TAB, Q,   W,   E,   R,   T,   Y,   U,   I,   O,   P,   LBRC,RBRC,BSPC,     DEL,
34         LCTL,A,   S,   D,   F,   G,   H,   J,   K,   L,   SCLN,QUOT,     ENT,
35         LSFT,Z,   X,   C,   V,   B,   N,   M,   COMM,DOT, SLS6,          RSFT,UP,
36         L4,  LGUI,LALT,          SPC5,                    RALT,RCTL,L4,  LEFT,DOWN,RGHT
37     ),
38     [2] = KMAP(
39         GRV, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,     TRNS,
40         TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,     TRNS,
41         TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,     TRNS,
42         TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,          TRNS,TRNS,
43         TRNS,TRNS,TRNS,          TRNS,                    TRNS,TRNS,TRNS,TRNS,TRNS,TRNS
44     ),
45     [3] = KMAP(
46         GRV, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12, TRNS,     TRNS,
47         CAPS,TGL1,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,TRNS,TRNS,     TRNS,
48         TRNS,VOLD,VOLU,MUTE,TRNS,TRNS,TRNS,TRNS,HOME,PGUP,TRNS,TRNS,     TRNS,
49         TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,END, PGDN,TRNS,          TRNS,PGUP,
50         L3,  TRNS,TRNS,          TRNS,                    TRNS,APP, L3,  HOME,PGDN,END
51     ),
52     [4] = KMAP(
53         ESC, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12, TRNS,     TRNS,
54         CAPS,TGL1,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,TRNS,TRNS,     TRNS,
55         TRNS,VOLD,VOLU,MUTE,TRNS,TRNS,TRNS,TRNS,HOME,PGUP,TRNS,TRNS,     TRNS,
56         TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,END, PGDN,TRNS,          TRNS,PGUP,
57         L4,  TRNS,TRNS,          TRNS,                    TRNS,APP, L4,  HOME,PGDN,END
58     ),
59     [5] = KMAP(
60         GRV, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12, GRV,      TRNS,
61         TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,WH_L,WH_D,MS_U,WH_U,WH_R,BTN4,BTN5,TRNS,     TRNS,
62         TRNS,VOLD,VOLU,MUTE,TRNS,TRNS,TRNS,MS_L,MS_D,MS_R,BTN1,TRNS,     TRNS,
63         TRNS,TRNS,TRNS,TRNS,TRNS,BTN3,BTN2,BTN1,BACK,FRWD,TRNS,          TRNS,PGUP,
64         TRNS,TRNS,TRNS,          TRNS,                    TRNS,TRNS,TRNS,HOME,PGDN,END
65     ),
66     [6] = KMAP(
67         GRV, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12, TRNS,     TRNS,
68         TRNS,HOME,PGDN,UP,  PGUP,END, HOME,PGDN,PGUP,END, TRNS,TRNS,TRNS,TRNS,     TRNS,
69         TRNS,TRNS,LEFT,DOWN,RGHT,TRNS,LEFT,DOWN,UP,  RGHT,TRNS,TRNS,     TRNS,
70         TRNS,     TRNS,TRNS,TRNS,TRNS,TRNS,HOME,PGDN,PGUP,END, TRNS,     TRNS,PGUP,
71         TRNS,TRNS,TRNS,          TRNS,                    TRNS,TRNS,TRNS,HOME,PGDN,END
72     ),
73 };
74
75
76 void hook_layer_change(uint32_t layer_state)
77 {
78     // lights LED on Insert when layer 1 is enabled
79     if (layer_state & (1L<<1)) {
80         PORTB &= ~(1<<5);
81     } else {
82         PORTB |=  (1<<5);
83     }
84 }