HTMLify

keymap.c
Views: 48 | Author: abh
/*****************************************************\
*                                                     *
*               This is Source for                    *
*            My Dvorak Keyboard layout                *
*              for keychron's k2 max                  *
*                                                     *
*       which is a tiny tweaked version of            *
*       Real Programmers Dvorak by ThePrimeagen       *
*                                                     *
*       which is a tweaked version of                 *
*       Programmers Dvorak by Roland Kaufmann         *
*                                                     *
*       which is a variant version of                 *
*       Dvorak by August Dvorak                       *
*                                                     *
*                                                     *
*                                                     *
*  My Dvorak isn't a registerd of offcial name        *
*  for this layout, I just called it my because       *
*  it is mine layout which I used on my keyboards     *
*  ya, same as your My Pictures folder                *
*                                                     *
\*****************************************************/

/* Layout base/file is taken from KeyChron's repositry
 *
 * --------------------------------------------------------------------
 * --------------------------------------------------------------------
 * --------------------------------------------------------------------
 * -----------------------------------
 *
 * ---------------------------------------------------------------
 * ----WITHOUT ANY WARRANTY;--------------------------------------
 * -------------------------------------------------------------
 * --------------------------------------------
 *
 * -----------------------------------------------------------------
 * -----------------------------------------------------------------
 * ---------------------------------------------------------------------
 */

//////////////////////////////////////////////////
// set `KEY_OVERRIDE_ENABLE = yes` in rules.mk  //
// for enabling Key overiding in QMK            //
// set `MOUSEKEY_ENABLE = yes` in rules.mk      //
// for enabling Mouse Keys in QMK               //
//////////////////////////////////////////////////

// #include QMK_KEYBOARD_H
#include "keyboard.h"
#include "keychron_common.h"

enum layers {
    PROG_DVORAK_BASE,   // MAC_BASE for k2_max // for the side buttons
    FN,                 // MAC_FN   for k2_max // index of layers matter
    QWERTY_BASE,        // WIN_BASE for k2_max // in `keymaps` array
    PROG_DVORAK_SHIFT,  // WIN_FN   for k2_max // this ording is just for us

    PDB = PROG_DVORAK_BASE,
    PDS = PROG_DVORAK_SHIFT,
};


// just key override test
const key_override_t delete_key_override = ko_make_basic(MOD_MASK_SHIFT, KC_BSPC, KC_DEL);

const key_override_t **key_overrides = (const key_override_t *[]){
    // &delete_key_override,
    NULL
};

// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[PROG_DVORAK_BASE] = LAYOUT_ansi_84(
     KC_ESC,   KC_F1,      KC_F2,    KC_F3,       KC_F4,       KC_F5,     KC_F6,   KC_F7,    KC_F8,    KC_F9,    KC_F10,   KC_F11,   KC_F12,      KC_PSCR,  KC_DEL,   RGB_MOD,
     S(KC_4),  S(KC_EQL),  KC_LBRC,  S(KC_LBRC),  S(KC_RBRC),  S(KC_9),   KC_EQL,  S(KC_0),  S(KC_7),  KC_RBRC,  S(KC_8),  S(KC_1),  S(KC_BSLS),  KC_BSPC,            KC_HOME,
     KC_TAB,   KC_SCLN,    KC_COMM,  KC_DOT,      KC_P,        KC_Y,      KC_F,    KC_G,     KC_C,     KC_R,     KC_L,     KC_SLSH,  S(KC_2),     KC_BSLS,            KC_PGUP,
     KC_ESC,   KC_A,       KC_O,     KC_E,        KC_U,        KC_I,      KC_D,    KC_H,     KC_T,     KC_N,     KC_S,     KC_MINS,               KC_ENT,             KC_PGDN,
     MO(PDS),  KC_QUOT,    KC_Q,     KC_J,        KC_K,        KC_X,      KC_B,    KC_M,     KC_W,     KC_V,     KC_Z,                            MO(PDS),  KC_UP,    KC_END,
     KC_LCTL,  KC_LGUI,    KC_LALT,                                KC_SPC,                                       KC_RALT, MO(FN),  KC_RCTL,      KC_LEFT,  KC_DOWN,  KC_RGHT),

[PROG_DVORAK_SHIFT] = LAYOUT_ansi_84(
     KC_ESC,     KC_F1,       KC_F2,       KC_F3,      KC_F4,    KC_F5,    KC_F6,    KC_F7,    KC_F8,    KC_F9,    KC_F10,   KC_F11,      KC_F12,   KC_PSCR,     KC_DEL,      RGB_MOD,
     S(KC_GRV),  KC_1,        KC_2,        KC_3,       KC_4,     KC_5,     KC_6,     KC_7,     KC_8,     KC_9,     KC_0,     S(KC_5),     KC_GRV,   S(KC_BSPC),               KC_HOME,
     S(KC_TAB),  S(KC_SCLN),  S(KC_COMM),  S(KC_DOT),  S(KC_P),  S(KC_Y),  S(KC_F),  S(KC_G),  S(KC_C),  S(KC_R),  S(KC_L),  S(KC_SLSH),  S(KC_6),  S(KC_3),                  KC_PGUP,
     KC_CAPS,    S(KC_A),     S(KC_O),     S(KC_E),    S(KC_U),  S(KC_I),  S(KC_D),  S(KC_H),  S(KC_T),  S(KC_N),  S(KC_S),  S(KC_MINS),            S(KC_ENT),                KC_PGDN,
     KC_LSFT,    S(KC_QUOT),  S(KC_Q),     S(KC_J),    S(KC_K),  S(KC_X),  S(KC_B),  S(KC_M),  S(KC_W),  S(KC_V),  S(KC_Z),                         S(KC_RSFT),  S(KC_UP),    KC_END,
     KC_LCTL,    KC_LGUI,     KC_LALT,                                 KC_SPC,                                     KC_RALT,  MO(FN),     KC_RCTL,  S(KC_LEFT),  S(KC_DOWN),  S(KC_RGHT)),

[QWERTY_BASE] = LAYOUT_ansi_84(
     KC_ESC,   KC_F1,    KC_F2,    KC_F3,    KC_F4,    KC_F5,    KC_F6,    KC_F7,    KC_F8,    KC_F9,    KC_F10,   KC_F11,   KC_F12,   KC_PSCR,  KC_DEL,   RGB_MOD,
     KC_GRV,   KC_1,     KC_2,     KC_3,     KC_4,     KC_5,     KC_6,     KC_7,     KC_8,     KC_9,     KC_0,     KC_MINS,  KC_EQL,   KC_BSPC,            KC_HOME,
     KC_TAB,   KC_Q,     KC_W,     KC_E,     KC_R,     KC_T,     KC_Y,     KC_U,     KC_I,     KC_O,     KC_P,     KC_LBRC,  KC_RBRC,  KC_BSLS,            KC_PGUP,
     KC_CAPS,  KC_A,     KC_S,     KC_D,     KC_F,     KC_G,     KC_H,     KC_J,     KC_K,     KC_L,     KC_SCLN,  KC_QUOT,            KC_ENT,             KC_PGDN,
     KC_LSFT,      KC_Z,     KC_X,     KC_C,     KC_V,     KC_B,     KC_N,     KC_M,     KC_COMM,  KC_DOT,   KC_SLSH,            KC_RSFT,  KC_UP,    KC_END,
     KC_LCTL,  KC_LGUI,  KC_LALT,                                KC_SPC,                                 KC_RALT, MO(FN),KC_RCTL,  KC_LEFT,  KC_DOWN,  KC_RGHT),

[FN] = LAYOUT_ansi_84(
     _______,  KC_BRID,  KC_BRIU,  KC_TASK,  KC_FILE,        RGB_VAD,      RGB_VAI,  KC_MPRV,  KC_MPLY,  KC_MNXT,        KC_MUTE,        KC_VOLD,            KC_VOLU,     _______,  _______,  RGB_TOG,
     _______,  BT_HST1,  BT_HST2,  BT_HST3,  P2P4G,          KC_F5,        _______,  _______,  _______,  _______,        _______,        _______,            _______,     _______,            _______,
     RGB_TOG,  _______,  KC_UP,    _______,  RGB_MOD,        RGB_VAI,      RGB_HUI,  RGB_SAI,  RGB_SPI,  KC_MS_WH_LEFT,  KC_MS_U,        KC_MS_WH_RIGHT,     KC_MS_BTN3,  _______,            _______,
     _______,  KC_LEFT,  KC_DOWN,  KC_RGHT,  RGB_RMOD,       RGB_VAD,      RGB_HUD,  RGB_SAD,  RGB_SPD,  KC_MS_L,        KC_MS_D,        KC_MS_R,                         KC_MS_BTN1,         _______,
     _______,            _______,  _______,  KC_MS_WH_DOWN,  KC_MS_WH_UP,  BAT_LVL,  NK_TOGG,  _______,  KC_MS_BTN2,     KC_MS_WH_UP,    KC_MS_WH_DOWN,                   _______,  _______,  _______,
     _______,  _______,  _______,                                _______,                                      _______,        _______,            _______,     _______,  _______,  _______),

};

// clang-format on
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    if (!process_record_keychron_common(keycode, record)) {
        return false;
    }

    return true;
}

Comments