Last active
December 2, 2017 06:30
-
-
Save unycone/9b50e749f0b1d48994040e9bfea76607 to your computer and use it in GitHub Desktop.
A cumstom keymap configuration of QMK firmware, for DZ60 pcb (KBDfans).
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* keymap.c | |
* | |
* A cumstom keymap configuration of QMK firmware, for DZ60 pcb (KBDfans). | |
* Typically for Mac OSX. | |
* | |
* Features: | |
* - Splitted backspace (grave and backspace) | |
* - Splitted right shift (shift and FN) | |
* - Arrow keys are in right bottom, horizontally (left, down, up, right) | |
* - 2x Command (LGUI, RGUI), 1x Option (LALT), 1x Control (LCTL), No capslock | |
* - Tap left command for EISUU (lang2), Tap right command for KANA (lang1) | |
* - Volume controls. FN+P (Toggle mute), FN+[ (Vol down), FN+] (Vol up) | |
* - FN+Arrow down (Page down), FN+Arrow Up (Page up) | |
* - FN+Backspace (Delete) | |
* - FN+Escape (Ctrl+Cmd+Q: Lock screen in Mac OSX High Sierra) | |
* | |
* References: | |
* - qmk/qmk_firmware https://github.com/qmk/qmk_firmware | |
* - Keymap FAQ https://docs.qmk.fm/faq_keymap.html | |
* - Keycodes https://docs.qmk.fm/keycodes.html | |
* - Advanced keycodes https://docs.qmk.fm/feature_advanced_keycodes.html | |
* | |
*/ | |
#include "dz60.h" | |
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |
KEYMAP( | |
KC_ESC, 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_GRV, KC_BSPC, | |
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_LCTL, 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_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), | |
MO(1), KC_LALT, MT(MOD_LGUI, KC_LANG2), KC_NO, KC_SPC, KC_NO, MT(MOD_RGUI, KC_LANG1), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT), | |
KEYMAP( | |
F(0), 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_TRNS, KC_DEL, | |
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, | |
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WBAK, KC_PGDN, KC_PGUP, KC_WFWD), | |
}; | |
enum function_id { | |
LOCK_SCREEN = 0, | |
}; | |
const uint16_t PROGMEM fn_actions[] = { | |
[0] = ACTION_FUNCTION(LOCK_SCREEN), // In OSX High Sierra, lock screen | |
}; | |
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { | |
switch (id) { | |
case LOCK_SCREEN: | |
if (record->event.pressed) { | |
register_code(KC_LGUI); | |
register_code(KC_LCTRL); | |
add_key(KC_Q); | |
send_keyboard_report(); | |
} else { | |
del_key(KC_Q); | |
unregister_code(KC_LCTRL); | |
unregister_code(KC_LGUI); | |
send_keyboard_report(); | |
} | |
break; | |
} | |
} |
Author
unycone
commented
Dec 2, 2017
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment