Skip to content

Instantly share code, notes, and snippets.

@unycone
Last active December 2, 2017 06:30
Show Gist options
  • Save unycone/9b50e749f0b1d48994040e9bfea76607 to your computer and use it in GitHub Desktop.
Save unycone/9b50e749f0b1d48994040e9bfea76607 to your computer and use it in GitHub Desktop.
A cumstom keymap configuration of QMK firmware, for DZ60 pcb (KBDfans).
/*
* 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;
}
}
@unycone
Copy link
Author

unycone commented Dec 2, 2017

img_0197

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment