]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/keebio/iris/keymaps/osiris/keymap.c
[Keymap] Switch Iris keymap from workman to colemak (#6385)
[qmk_firmware.git] / keyboards / keebio / iris / keymaps / osiris / keymap.c
1 #include QMK_KEYBOARD_H
2
3 extern keymap_config_t keymap_config;
4
5 enum layer_names {
6     _QWERTY,
7     _COLEMAK,
8     _LOWER,
9     _RAISE,
10     _ADJUST
11 };
12
13 enum custom_keycodes {
14   QWERTY = SAFE_RANGE,
15   COLEMAK,
16   LOWER,
17   RAISE
18 };
19
20 #define KC_ KC_TRNS
21
22 #define KC_LOWR LOWER
23 #define KC_RASE RAISE
24 #define KC_RST  RESET
25 #define KC_BL_S BL_STEP
26
27 // left shift as a left key too - makes perfect sense
28 #define KC_LESF LSFT_T(KC_LEFT)
29
30
31 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
32
33   [_QWERTY] = LAYOUT_kc(
34   //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
35      GESC, 1  , 2  , 3  , 4  , 5  ,                6  , 7  , 8  , 9  , 0  ,BSPC,
36   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
37      TAB , Q  , W  , E  , R  , T  ,                Y  , U  , I  , O  , P  ,BSLS,
38   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
39      LCTL, A  , S  , D  , F  , G  ,                H  , J  , K  , L  ,SCLN,QUOT,
40   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
41      LESF, Z  , X  , C  , V  , B  ,LBRC,     RBRC, N  , M  ,COMM,DOT ,SLSH,RGHT,
42   //`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----'
43                        LGUI,LOWR,ENT ,         SPC ,RASE,RALT
44   //                  `----+----+----'        `----+----+----'
45   ),
46
47     [_COLEMAK] = LAYOUT_kc(
48   //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
49      GESC, 1  , 2  , 3  , 4  , 5  ,                6  , 7  , 8  , 9  , 0  ,BSPC,
50   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
51      TAB , Q  , W  , F  , P  , G  ,                J  , L  , U  , Y  ,SCLN,BSLS,
52   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
53      LCTL, A  , R  , S  , T  , D  ,                H  , N  , E  , I  , O  ,QUOT,
54   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
55      LESF, Z  , X  , C  , V  , B  ,LBRC,     RBRC, K  , M  ,COMM,DOT ,SLSH,RGHT,
56   //`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----'
57                        LGUI,LOWR,ENT ,         SPC ,RASE,RALT
58   //                  `----+----+----'        `----+----+----'
59   ),
60
61   [_LOWER] = LAYOUT_kc(
62   //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
63      GRV ,EXLM, AT ,HASH,DLR ,PERC,               CIRC,AMPR,ASTR,LPRN,RPRN,DEL ,
64   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
65          ,    ,    ,    ,    ,    ,                   ,    ,BTN1,    ,    ,    ,
66   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
67          ,    ,    ,    ,    ,    ,               MS_L,MS_D,MS_U,MS_R,    ,    ,
68   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
69          ,    ,    ,    ,    , UP ,    ,         ,DOWN,    ,    ,    ,    ,    ,
70   //`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----'
71                            ,    ,    ,             ,    ,   
72   //                  `----+----+----'        `----+----+----'
73
74 ),
75   [_RAISE] = LAYOUT_kc(
76   //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
77      F12 , F1 , F2 , F3 , F4 , F5 ,                F6 , F7 , F8 , F9 ,F10 ,F11 ,
78   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
79          ,    ,VOLU,    ,    ,LBRC,               RBRC,UNDS,PLUS,    ,    ,MUTE,
80   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
81          ,MPLY,VOLD,MNXT,    ,LPRN,               RPRN,MINS,EQL ,    ,    ,    ,
82   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
83          ,    ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,    ,
84   //`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----'
85                            ,    ,    ,             ,    ,
86   //                  `----+----+----'        `----+----+----'
87   ),
88
89   [_ADJUST] = LAYOUT(
90   //,--------+--------+--------+--------+--------+--------.                          ,--------+--------+--------+--------+--------+--------.
91       _______, _______, _______, _______, _______,  QWERTY,                            COLEMAK, _______, _______, _______, _______, _______,
92   //|--------+--------+--------+--------+--------+--------|                          |--------+--------+--------+--------+--------+--------|
93       RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______,                            _______, _______, _______, _______, _______, _______,
94   //|--------+--------+--------+--------+--------+--------|                          |--------+--------+--------+--------+--------+--------|
95       RESET  , DEBUG  , RGB_HUD, RGB_SAD, RGB_VAD, _______,                            _______, _______, _______, _______, _______, _______,
96   //|--------+--------+--------+--------+--------+--------+--------.        ,--------|--------+--------+--------+--------+--------+--------|
97       BL_STEP, _______, _______, _______, _______, _______, _______,          _______, _______, _______, _______, _______, _______, _______,
98   //`--------+--------+--------+----+---+--------+--------+--------/        \--------+--------+--------+---+----+--------+--------+--------'
99                                       _______, _______, _______,                  _______, _______, _______
100   //                                `--------+--------+--------'                `--------+--------+--------'
101   )
102
103 };
104
105 #ifdef AUDIO_ENABLE
106 float tone_qwerty[][2]     = SONG(QWERTY_SOUND);
107 #endif
108
109 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
110   switch (keycode) {
111     case QWERTY:
112       if (record->event.pressed) {
113         set_single_persistent_default_layer(_QWERTY);
114       }
115       return false;
116     case COLEMAK:
117       if (record->event.pressed) {
118         set_single_persistent_default_layer(_COLEMAK);
119       }
120       return false;
121     case LOWER:
122       if (record->event.pressed) {
123         layer_on(_LOWER);
124         update_tri_layer(_LOWER, _RAISE, _ADJUST);
125       } else {
126         layer_off(_LOWER);
127         update_tri_layer(_LOWER, _RAISE, _ADJUST);
128       }
129       return false;
130     case RAISE:
131       if (record->event.pressed) {
132         layer_on(_RAISE);
133         update_tri_layer(_LOWER, _RAISE, _ADJUST);
134       } else {
135         layer_off(_RAISE);
136         update_tri_layer(_LOWER, _RAISE, _ADJUST);
137       }
138       return false;
139   }
140   return true;
141 }