@ -1,30 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
enum keyboard_layers { | |||
_BL = 0, // Base Layer | |||
_FL // Function Layer | |||
}; | |||
// Custom #defined keycodes (shorter macros for readability) | |||
#define KC_CTES CTL_T(KC_ESC) | |||
#define KC_RSUP RSFT_T(KC_UP) | |||
#define KC_FNLT LT(_FL, KC_LEFT) | |||
#define KC_RADN RALT_T(KC_DOWN) | |||
#define KC_RCRT RCTL_T(KC_RIGHT) | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
[_BL] = LAYOUT_60_ansi( | |||
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_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_CTES, 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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSUP, | |||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_FNLT, KC_RADN, KC_RCRT | |||
), | |||
[_FL] = LAYOUT_60_ansi( | |||
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_DEL, | |||
_______, KC_HOME, KC_UP, KC_END, _______, _______, _______, _______, KC_MUTE, _______, _______, KC_PGDN, KC_PGUP, QK_BOOT, | |||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_SCRL, KC_VOLD, KC_VOLU, KC_PAUS, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______ | |||
) | |||
}; |
@ -1,30 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
enum keyboard_layers { | |||
_BL = 0, // Base Layer | |||
_FL // Function Layer | |||
}; | |||
// Custom #defined keycodes (shorter macros for readability) | |||
#define KC_CTES CTL_T(KC_ESC) | |||
#define KC_RSUP RSFT_T(KC_UP) | |||
#define KC_RGLT RGUI_T(KC_LEFT) | |||
#define KC_RADN RALT_T(KC_DOWN) | |||
#define KC_RCRT RCTL_T(KC_RIGHT) | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
[_BL] = LAYOUT_60_tsangan_hhkb( | |||
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_BSLS, KC_ESC, | |||
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_BSPC, | |||
KC_CTES, 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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSUP, MO(_FL), | |||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGLT, KC_RADN, KC_RCRT | |||
), | |||
[_FL] = LAYOUT_60_tsangan_hhkb( | |||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, QK_BOOT, | |||
_______, KC_HOME, KC_UP, KC_END, _______, _______, _______, _______, KC_MUTE, _______, _______, KC_PGDN, KC_PGUP, KC_DEL, | |||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_SCRL, KC_VOLD, KC_VOLU, KC_PAUS, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______ | |||
) | |||
}; |
@ -1,41 +0,0 @@ | |||
/* Copyright 2019 Devinceble AKA Vimwarrior | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation, either version 2 of the License, or | |||
* (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
#include QMK_KEYBOARD_H | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
[0] = LAYOUT_60_tsangan_hhkb( | |||
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_BSLS, KC_GRV, | |||
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_BSPC, | |||
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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), | |||
KC_LALT, KC_LCTL, KC_LGUI, KC_SPC, KC_RCTL, KC_RGUI, MO(2) | |||
), | |||
[1] = LAYOUT_60_tsangan_hhkb( | |||
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_INS, KC_DEL, | |||
KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_RGHT, KC_TRNS, | |||
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DOWN, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | |||
), | |||
[2] = LAYOUT_60_tsangan_hhkb( | |||
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, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, | |||
KC_CAPS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, BL_TOGG, BL_STEP, BL_ON, BL_OFF, BL_UP, BL_DOWN,BL_BRTG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | |||
) | |||
}; |
@ -1,9 +0,0 @@ | |||
# Devinceble AKA Vimwarrior WKL Tofu Keymap | |||
Build Hex File: | |||
make dz60:devinceble_wkl_tofu | |||
Flash Keyboard | |||
make dz60:devinceble_wkl_tofu:flash |
@ -1 +0,0 @@ | |||
MOUSEKEY_ENABLE = yes |
@ -1,49 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* BASE LAYER | |||
* | |||
* ,-----------------------------------------------------------------------------------------. | |||
* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \| | Del | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | LCTRL | A | S | D | F | G | H | J | K | L | ; | ' | Enter | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | LShift | Z | X | C | V | B | N | M | , | . | / | RShift | FN1 | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | LGUI | LAlt | Space | RAlt | RCTRL | | |||
* `-----------------------------------------------------------------------------------------' | |||
*/ | |||
LAYOUT_60_hhkb( | |||
QK_GESC, 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_BSLS, KC_DEL, | |||
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_BSPC, | |||
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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), | |||
KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL), | |||
/* FN1 LAYER | |||
* | |||
* ,--------------------------------------------------------------------------------------------------------------------- | |||
* | KC_GRV | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | INSERT | QK_BOOT | | |||
* |---------------------------------------------------------------------------------------------------------------------+ | |||
* | RGB_TOG | _ | _ | _ | _ | _ | _ | _ | PSCR | SLCK | PAUS | UP | _ | CLR | | |||
* |---------------------------------------------------------------------------------------------------------------------+ | |||
* | CAPS | VOLD | VOLU | MUTE | _ | _ | PAST | PSLS | HOME | PGUP | LEFT | RIGHT | RETURN | | |||
* |---------------------------------------------------------------------------------------------------------------------+ | |||
* | _ | _ | _ | _ | _ | _ | PPLS | PMNS | END | PGDN | DOWN | _ | _ | | |||
* |---------------------------------------------------------------------------------------------------------------------+ | |||
* | _ | _ | _ | APP | _ | | |||
* `---------------------------------------------------------------------------------------------------------------------' | |||
*/ | |||
LAYOUT_60_hhkb( | |||
KC_GRV, 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_INS, QK_BOOT, | |||
RGB_TOG, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, _______, KC_CLR, | |||
KC_CAPS, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_RETURN, | |||
_______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, | |||
_______, _______, _______, KC_APP, _______), | |||
}; |
@ -1,113 +0,0 @@ | |||
/* Copyright 2020 Oliver Granlund | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation, either version 2 of the License, or | |||
* (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
#include QMK_KEYBOARD_H | |||
/* ISO 60 layout by olligranlund | |||
* | |||
* This layout starts from a standard ISO 60% layout, and adds one function layer. | |||
* If you wish to only have one wide spacebar, you can easily do that by dismissing the "side" spacebar switches. | |||
* | |||
* Default Layer | |||
* ,-----------------------------------------------------------------------------------------. | |||
* | Esc | 1 ! | 2 " | 3 § | 4 $ | 5 % | 6 & | 7 / | 8 ( | 9 ) | 0 = | ß ? | ´ ` | Del | BSPC| | |||
* |-----------------------------------------------------------------------------------------| | |||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Ä | + * | Enter | | |||
* |---------------------------------------------------------------------------------- | | |||
* | FN | A | S | D | F | G | H | J | K | L | Ö | Ü | # ' | | | |||
* |-----------------------------------------------------------------------------------------| | |||
* | Shift | < > | Z | X | C | V | B | N | M | , ; | . : | - _ | Shift |Shift| | |||
* |-----------------------------------------------------------------------------------------| | |||
* | LCtl | LGUI | LAlt | Space | Space | Space | RAlt | FN | App | RCtl | | |||
* `-----------------------------------------------------------------------------------------' | |||
*/ | |||
enum custom_keycodes { | |||
EMOJI_DANCERS = SAFE_RANGE, | |||
EMOJI_PERJANTAI, | |||
EMOJI_THISISFINE, | |||
EMOJI_KOVAAAJOA, | |||
}; | |||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
switch (keycode) { | |||
case EMOJI_DANCERS: | |||
if (record->event.pressed) { | |||
// when keycode QMKBEST is pressed | |||
SEND_STRING(">dancers>"); | |||
} | |||
break; | |||
case EMOJI_PERJANTAI: | |||
if (record->event.pressed) { | |||
// when keycode QMKBEST is pressed | |||
SEND_STRING(">perjantaideploy>"); | |||
} | |||
break; | |||
case EMOJI_THISISFINE: | |||
if (record->event.pressed) { | |||
// when keycode QMKBEST is pressed | |||
SEND_STRING(">this/is/fine>"); | |||
} | |||
break; | |||
case EMOJI_KOVAAAJOA: | |||
if (record->event.pressed) { | |||
// when keycode QMKBEST is pressed | |||
SEND_STRING(">kovaaajoa>"); | |||
} | |||
break; | |||
} | |||
return true; | |||
}; | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
// 0 Base | |||
LAYOUT_60_iso_split_space_bs_rshift( | |||
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_DEL, 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, | |||
MO(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, | |||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TG(1), | |||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(3), KC_APP, KC_RCTL), | |||
// 1 Base with arrows | |||
LAYOUT_60_iso_split_space_bs_rshift( | |||
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_DEL, 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, | |||
MO(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, | |||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_TRNS, | |||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), | |||
// 2 FN | |||
LAYOUT_60_iso_split_space_bs_rshift( | |||
KC_GRV, 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_DEL, KC_DEL, | |||
KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_PGDN, KC_UP, KC_PGUP, KC_NO, KC_NO, KC_NO, | |||
KC_NO, KC_VOLD, KC_MUTE, KC_VOLU, KC_NO, KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_NO, | |||
KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_END, KC_NO, KC_NO, KC_NO, KC_NO, KC_RSFT, KC_CAPS, | |||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_NO, KC_APP, KC_RCTL), | |||
// 3 FN with RGB and macros | |||
LAYOUT_60_iso_split_space_bs_rshift( | |||
KC_GRV, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_HUD, RGB_SAD, RGB_VAD, KC_F10, KC_F11, KC_F12, KC_DEL, QK_BOOT, | |||
KC_NO, KC_NO, EMOJI_DANCERS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, | |||
KC_NO, EMOJI_PERJANTAI, EMOJI_THISISFINE,EMOJI_KOVAAAJOA, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_NO, | |||
KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_END, KC_NO, KC_NO, KC_NO, KC_NO, KC_RSFT, KC_CAPS, | |||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_NO, KC_APP, KC_RCTL), | |||
}; |
@ -1,6 +0,0 @@ | |||
# DZ60 with splitted parts with VIA support | |||
### by Oliver Granlund | |||
![Finished product](https://i.imgur.com/HlEo5Ygl.jpg) | |||
This is still under progress, but currently works on Windows as a daily driver. |
@ -1,3 +0,0 @@ | |||
EXTRAKEY_ENABLE = yes | |||
VIA_ENABLE = yes | |||
LTO_ENABLE = yes |
@ -1,113 +0,0 @@ | |||
/* Copyright 2020 Oliver Granlund | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation, either version 2 of the License, or | |||
* (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
#include QMK_KEYBOARD_H | |||
/* ISO 60 layout by olligranlund | |||
* | |||
* This layout starts from a standard ISO 60% layout, and adds one function layer. | |||
* If you wish to only have one wide spacebar, you can easily do that by dismissing the "side" spacebar switches. | |||
* | |||
* Default Layer | |||
* ,-----------------------------------------------------------------------------------------. | |||
* | Esc | 1 ! | 2 " | 3 § | 4 $ | 5 % | 6 & | 7 / | 8 ( | 9 ) | 0 = | ß ? | ´ ` | Del | BSPC| | |||
* |-----------------------------------------------------------------------------------------| | |||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Ä | + * | Enter | | |||
* |---------------------------------------------------------------------------------- | | |||
* | FN | A | S | D | F | G | H | J | K | L | Ö | Ü | # ' | | | |||
* |-----------------------------------------------------------------------------------------| | |||
* | Shift | < > | Z | X | C | V | B | N | M | , ; | . : | - _ | Shift |Shift| | |||
* |-----------------------------------------------------------------------------------------| | |||
* | LCtl | LGUI | LAlt | Space | Space | Space | RAlt | FN | App | RCtl | | | |||
* `-----------------------------------------------------------------------------------------' | |||
*/ | |||
enum custom_keycodes { | |||
EMOJI_DANCERS = SAFE_RANGE, | |||
EMOJI_PERJANTAI, | |||
EMOJI_THISISFINE, | |||
EMOJI_KOVAAAJOA, | |||
}; | |||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
switch (keycode) { | |||
case EMOJI_DANCERS: | |||
if (record->event.pressed) { | |||
// when keycode QMKBEST is pressed | |||
SEND_STRING(">dancers>"); | |||
} | |||
break; | |||
case EMOJI_PERJANTAI: | |||
if (record->event.pressed) { | |||
// when keycode QMKBEST is pressed | |||
SEND_STRING(">perjantaideploy>"); | |||
} | |||
break; | |||
case EMOJI_THISISFINE: | |||
if (record->event.pressed) { | |||
// when keycode QMKBEST is pressed | |||
SEND_STRING(">this/is/fine>"); | |||
} | |||
break; | |||
case EMOJI_KOVAAAJOA: | |||
if (record->event.pressed) { | |||
// when keycode QMKBEST is pressed | |||
SEND_STRING(">kovaaajoa>"); | |||
} | |||
break; | |||
} | |||
return true; | |||
}; | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
// 0 Base | |||
LAYOUT_60_iso_5x1u_split_bs_rshift_spc( | |||
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_DEL, 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, | |||
MO(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, | |||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TG(1), | |||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(3), KC_APP, KC_PSCR, KC_RCTL), | |||
// 1 Base with arrows | |||
LAYOUT_60_iso_5x1u_split_bs_rshift_spc( | |||
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_DEL, 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, | |||
MO(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, | |||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_TRNS, | |||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(3), KC_LEFT, KC_DOWN, KC_RGHT), | |||
// 2 FN | |||
LAYOUT_60_iso_5x1u_split_bs_rshift_spc( | |||
KC_GRV, 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_DEL, KC_DEL, | |||
KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_PGDN, KC_UP, KC_PGUP, KC_NO, KC_NO, KC_NO, | |||
KC_NO, KC_VOLD, KC_MUTE, KC_VOLU, KC_NO, KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_NO, | |||
KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_END, KC_NO, KC_NO, KC_NO, KC_NO, KC_RSFT, KC_CAPS, | |||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_NO, KC_APP, KC_PSCR, KC_RCTL), | |||
// 3 FN with RGB and macros | |||
LAYOUT_60_iso_5x1u_split_bs_rshift_spc( | |||
KC_GRV, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_HUD, RGB_SAD, RGB_VAD, KC_F10, KC_F11, KC_F12, KC_DEL, QK_BOOT, | |||
KC_NO, KC_NO, EMOJI_DANCERS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, | |||
KC_NO, EMOJI_PERJANTAI, EMOJI_THISISFINE,EMOJI_KOVAAAJOA, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_NO, | |||
KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_END, KC_NO, KC_NO, KC_NO, KC_NO, KC_RSFT, KC_CAPS, | |||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_NO, KC_APP, KC_PSCR, KC_RCTL), | |||
}; |
@ -1,6 +0,0 @@ | |||
# DZ60 with splitted parts with VIA support | |||
### by Oliver Granlund | |||
![Finished product](https://i.imgur.com/AT1Lyrxl.jpg) | |||
This is still under progress, but currently works on Windows as a daily driver. Also added macros for Slack emojis |
@ -1,3 +0,0 @@ | |||
EXTRAKEY_ENABLE = yes | |||
VIA_ENABLE = yes | |||
LTO_ENABLE = yes |
@ -1,20 +0,0 @@ | |||
#pragma once | |||
// Sets good default for the speed of the mouse. | |||
#undef MOUSEKEY_INTERVAL | |||
#undef MOUSEKEY_DELAY | |||
#undef MOUSEKEY_TIME_TO_MAX | |||
#undef MOUSEKEY_MAX_SPEED | |||
#define MOUSEKEY_INTERVAL 20 | |||
#define MOUSEKEY_DELAY 100 | |||
#define MOUSEKEY_TIME_TO_MAX 60 | |||
#define MOUSEKEY_MAX_SPEED 7 | |||
#undef MOUSEKEY_WHEEL_MAX_SPEED | |||
#undef MOUSEKEY_WHEEL_TIME_TO_MAX | |||
#undef MOUSEKEY_WHEEL_DELAY | |||
#define MOUSEKEY_WHEEL_MAX_SPEED 5 | |||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 60 | |||
#define MOUSEKEY_WHEEL_DELAY 100 |
@ -1,397 +0,0 @@ | |||
/* | |||
Copyright 2019 Mario Arias <mario@marioarias.org> | |||
This program is free software: you can redistribute it and/or modify | |||
it under the terms of the GNU General Public License as published by | |||
the Free Software Foundation, either version 2 of the License, or | |||
(at your option) any later version. | |||
This program is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
GNU General Public License for more details. | |||
You should have received a copy of the GNU General Public License | |||
along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
#include QMK_KEYBOARD_H | |||
#include "version.h" | |||
#include "keymap_spanish.h" | |||
enum layers { | |||
BASE = 0, //Colemak | |||
QWERTY, //Qwerty | |||
FN, //Colemak but FN1 to FN12 instead of numbers | |||
NUM, //Numpad | |||
MOUSE, //Mouse and media controls | |||
IDEA //Shortcuts for IDEA / Other tools | |||
}; | |||
//Special paste | |||
#define S_PASTE LSFT(LGUI(KC_V)) | |||
//tmux prefix | |||
#define T_PREFIX LCTL(KC_B) | |||
// Column mode | |||
#define I_COLUMN ALGR(LCTL(LGUI(ES_MINS))) | |||
// Terminal | |||
#define I_TERM ALGR(KC_F12) | |||
// Line comment | |||
#define I_LN_COM LCTL(LGUI(KC_7)) | |||
// Block comment | |||
#define I_BK_COM LCTL(LGUI(KC_8)) | |||
// Reformat code | |||
#define I_REFORM LALT(LGUI(KC_L)) | |||
// Rename | |||
#define I_RENAME LSFT(KC_F6) | |||
// Find usages | |||
#define I_FUSAGE LALT(KC_F7) | |||
// Code for Packt | |||
#define P_CODE LCTL(ALGR(KC_X)) | |||
// Search | |||
#define I_SEARCH LCTL(LSFT(KC_F)) | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* Keymap 0: Colemak MacOS Spanish layer | |||
* ,--------------------------------------------------. ,--------------------------------------------------. | |||
* | Esc | 1 ! | 2 " | 3 · | 4 $ | 5 % | º \ | | ¡ ¿ | 6 & | 7 / | 8 ( | 9 ) | 0 = | Backsp | | |||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | |||
* | TAB | Q | W | F | P | G | Home | | End | J | L | U | Y | Ñ | ' ? | | |||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | |||
* | CAPS | A | R | S | T | D |------| |------| H | N | E | I | O | ENT | | |||
* |--------+------+------+------+------+------| <> | | -_ |------+------+------+------+------+--------| | |||
* | Shift | Z | X | C | V | B | | | | K | M | , ; | . : | UP | Shift | | |||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | |||
* | Del | PgUp |Ctl/PD|Alt/[ |Cmd/] | |Cmd/{ |Alt/} | LEFT | DOWN | RIGHT| | |||
* `----------------------------------' `----------------------------------' | |||
* ,--------------. ,--------------. | |||
* | Num | Mouse | | Qwer | Ctrl | | |||
* ,------|------|-------| |------+-------+------. | |||
* | | | FN | |SPaste| | | | |||
* |LShift|Backsp|-------| |------| ENT |Space | | |||
* | | | IDEA | | T-pre| | | | |||
* `---------------------' `---------------------' | |||
*/ | |||
[BASE] = LAYOUT_ergodox( | |||
// left hand | |||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, ES_LABK, | |||
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_HOME, | |||
KC_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, | |||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, | |||
KC_DEL, KC_PGUP, CTL_T(KC_PGDN), ALT_T(ES_GRV), GUI_T(ES_PLUS), | |||
DF(NUM), DF(MOUSE), | |||
DF(FN), | |||
KC_LSFT, KC_BSPC, MO(IDEA), | |||
// right hand | |||
ES_IEXL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, | |||
KC_END, KC_J, KC_L, KC_U, KC_Y, ES_NTIL, ES_QUOT, | |||
KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT, | |||
ES_MINS, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT, | |||
GUI_T(ES_ACUT), ALT_T(KC_BSLS), KC_LEFT, KC_DOWN, KC_RIGHT, | |||
DF(QWERTY), KC_RCTL, | |||
S_PASTE, | |||
T_PREFIX, KC_ENT, KC_SPC | |||
), | |||
/* Keymap 1: Spanish QWERTY layer (games) //Will probably change it for a Linux/Windows Colemak layer | |||
* | |||
* ,--------------------------------------------------. ,--------------------------------------------------. | |||
* | | | | | | | | | | | | | | | | | |||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | |||
* | | Q | W | E | R | T | | | | Y | U | I | O | P | | | |||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | |||
* | | A | S | D | F | G |------| |------| H | J | K | L | Ñ | | | |||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | |||
* | | Z | X | C | V | B | | | | N | M | | | | | | |||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | |||
* | | | | | | | | | | | | | |||
* `----------------------------------' `----------------------------------' | |||
* ,-------------. ,-------------. | |||
* | | | | Base | | | |||
* ,------|------|------| |------+--------+------. | |||
* | | | | | | | | | |||
* | | |------| |------| | | | |||
* | | | | | | | | | |||
* `--------------------' `----------------------' | |||
*/ | |||
[QWERTY] = LAYOUT_ergodox( | |||
// left hand | |||
_______, _______, _______, _______, _______, _______, _______, | |||
_______, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, | |||
_______, KC_A, KC_S, KC_D, KC_F, KC_G, | |||
_______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, | |||
_______, _______, _______, _______, _______, | |||
_______, _______, | |||
_______, | |||
_______, _______, _______, | |||
// right hand | |||
_______, _______, _______, _______, _______, _______, _______, | |||
_______, KC_Y, KC_U, KC_I, KC_O, KC_P, _______, | |||
KC_H, KC_J, KC_K, KC_L, KC_SCLN, _______, | |||
_______, KC_N, KC_M, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, | |||
DF(BASE), _______, | |||
_______, | |||
_______, _______, _______ | |||
), | |||
/* Keymap 2: Function Layer | |||
* | |||
* ,--------------------------------------------------. ,--------------------------------------------------. | |||
* | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | | | |||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | |||
* | | | | | | | | | | | | | | | | | |||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | |||
* | | | | | | |------| |------| | | | | | | | |||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | |||
* | | | | | | | | | | | | | | | | | |||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | |||
* | | | | | | | | | | | | | |||
* `----------------------------------' `----------------------------------' | |||
* ,-------------. ,-------------. | |||
* | | | | | | | |||
* ,------|------|------| |------+------+------. | |||
* | | | Base | | | | | | |||
* | | |------| |------| | | | |||
* | | | | | | | | | |||
* `--------------------' `--------------------' | |||
*/ | |||
[FN] = LAYOUT_ergodox( | |||
// left hand | |||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, | |||
_______, _______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, | |||
_______, _______, | |||
DF(BASE), | |||
_______, _______, _______, | |||
// right hand | |||
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, | |||
_______, _______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, | |||
_______, _______, | |||
_______, | |||
_______, _______, _______ | |||
), | |||
/* Mouse and media controls | |||
* | |||
* ,--------------------------------------------------. ,--------------------------------------------------. | |||
* | Esc | | | | | | Play | | Vol+ | | | | | | | | |||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | |||
* | | | | Ms U | | | | | | | | Wh U | | | | | |||
* |--------+------+------+------+------+------| Rwd | | Vol- |------+------+------+------+------+--------| | |||
* | | | Ms L | Ms D | Ms R | |------| |------| | Wh L | Wh D | Wh R | | | | |||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | |||
* | | | Acc0 | Acc1 | Acc2 | | Fwd | | Mute | | Btn1 | Btn2 | Btn3 | | | | |||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | |||
* | | | | | | | | | | | | | |||
* `----------------------------------' `----------------------------------' | |||
* ,-------------. ,-------------. | |||
* | Num | Base | | | | | |||
* ,------|------|------| |------+------+------. | |||
* | | | | | | | | | |||
* | | |------ |------| | | | |||
* | | | | | | | | | |||
* `--------------------' `--------------------' | |||
*/ | |||
[MOUSE] = LAYOUT_ergodox( | |||
// left hand | |||
KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MPLY, | |||
XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_U, XXXXXXX, XXXXXXX, KC_MRWD, | |||
XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, | |||
XXXXXXX, XXXXXXX, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, KC_MFFD, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
DF(NUM), DF(BASE), | |||
XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, | |||
// right hand | |||
KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
KC_VOLD, XXXXXXX, XXXXXXX, KC_WH_U, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, KC_WH_L, KC_WH_D, KC_WH_R, XXXXXXX, XXXXXXX, | |||
KC_MUTE, XXXXXXX, KC_BTN1, KC_BTN2, KC_BTN3, XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, | |||
XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX | |||
), | |||
/* Num pad | |||
* | |||
* ,--------------------------------------------------. ,--------------------------------------------------. | |||
* | | | | | | | | | | ( | ) | = | / | * | | | |||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | |||
* | | | | Up | | | | | | | 7 | 8 | 9 | - | | | |||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | |||
* | | | Left | Down |Right | |------| |------| | 4 | 5 | 6 | + | | | |||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | |||
* | | | | | | | | | | | 1 | 2 | 3 |Enter | | | |||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | |||
* | | | | | | | 0 | 0 | , |Enter | . | | |||
* `----------------------------------' `----------------------------------' | |||
* ,-------------. ,-------------. | |||
* | Base | | | | | | |||
* ,------|------|------| |------+------+------. | |||
* | | | | | | | | | |||
* | | |------ |------| | | | |||
* | | | | | | | | | |||
* `--------------------' `--------------------' | |||
*/ | |||
[NUM] = LAYOUT_ergodox( | |||
// left hand | |||
_______, _______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, KC_UP, _______, _______, _______, | |||
_______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, | |||
_______, _______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, | |||
DF(BASE), _______, | |||
_______, | |||
_______, _______, _______, | |||
// right hand | |||
_______, LSFT(KC_8), LSFT(KC_9), KC_PEQL, KC_PSLS, KC_PAST, _______, | |||
_______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______, | |||
_______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, | |||
_______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, | |||
KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_DOT, | |||
_______, _______, | |||
_______, | |||
_______, _______, _______ | |||
), | |||
/* IDEA | |||
* | |||
* ,--------------------------------------------------. ,--------------------------------------------------. | |||
* | | | | | | | Renm | | Usag | | LnCm | BkCm | | Term | | | |||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | |||
* | | | |Search| | | | | | | Refm | | | | | | |||
* |--------+------+------+------+------+------| | | Col |------+------+------+------+------+--------| | |||
* | | | | | | |------| |------| | | | | | | | |||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | |||
* | | | Code | | | | | | | | | | | | | | |||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | |||
* | | | | | | | | | | | | | |||
* `----------------------------------' `----------------------------------' | |||
* ,-------------. ,-------------. | |||
* | | | | | | | |||
* ,------|------|------| |------+------+------. | |||
* | | | | | | | | | |||
* | | |------ |------| | | | |||
* | | | | | | | | | |||
* `--------------------' `--------------------' | |||
*/ | |||
[IDEA] = LAYOUT_ergodox( | |||
//Left hand | |||
_______, _______, _______, _______, _______, _______, I_RENAME, | |||
_______, _______, _______, I_SEARCH, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, | |||
_______, _______, P_CODE, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, | |||
_______, DF(BASE), | |||
_______, | |||
_______, _______, _______, | |||
// right hand | |||
I_FUSAGE, _______, I_LN_COM, I_BK_COM, _______, I_TERM, _______, | |||
I_COLUMN, _______, I_REFORM, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, | |||
_______, _______, | |||
_______, | |||
_______, _______, _______ | |||
) | |||
}; | |||
void led_1_off(void) { | |||
ergodox_right_led_1_off(); | |||
} | |||
void led_2_off(void) { | |||
ergodox_right_led_2_off(); | |||
} | |||
void led_3_off(void) { | |||
ergodox_right_led_3_off(); | |||
} | |||
//Runs just one time when the keyboard initializes | |||
void matrix_init_use(void) { | |||
led_1_off(); | |||
led_2_off(); | |||
led_3_off(); | |||
} | |||
// Value to use to switch LEDs on. The default value of 255 is far too bright. | |||
static const uint8_t max_led_value = 20; | |||
void led_1_on(void) { | |||
ergodox_right_led_1_on(); | |||
ergodox_right_led_1_set(max_led_value); | |||
} | |||
void led_2_on(void) { | |||
ergodox_right_led_2_on(); | |||
ergodox_right_led_2_set(max_led_value); | |||
} | |||
void led_3_on(void) { | |||
ergodox_right_led_3_on(); | |||
ergodox_right_led_3_set(max_led_value); | |||
} | |||
layer_state_t layer_state_set_user(layer_state_t state) { | |||
if(layer_state_cmp(state ,IDEA)) { | |||
led_1_on(); | |||
led_3_on(); | |||
} else { | |||
led_1_off(); | |||
led_3_off(); | |||
} | |||
return state; | |||
}; | |||
void matrix_scan_user(void) { | |||
ergodox_board_led_off(); | |||
led_1_off(); | |||
led_2_off(); | |||
led_3_off(); | |||
if(layer_state_cmp(default_layer_state, QWERTY)) { | |||
led_3_on(); | |||
} | |||
if(layer_state_cmp(default_layer_state, FN)) { | |||
led_2_on(); | |||
} | |||
if(layer_state_cmp(default_layer_state, NUM)) { | |||
led_2_on(); | |||
led_3_on(); | |||
} | |||
if(layer_state_cmp(default_layer_state, MOUSE)) { | |||
led_1_on(); | |||
} | |||
}; |
@ -1,67 +0,0 @@ | |||
# ErgoDox EZ Spanish Colemak configuration | |||
## Description | |||
A Colemak keymap adapted for Spanish. | |||
### Base Layer - Spanish Colemak | |||
The Base Layer is a Colemak keymap with an additional "ñ" next to the "y" key. The arrow cluster has a proper T inverted shape. | |||
It includes almost all Spanish Symbols from a normal 100% keyboard thanks to the use of tap keys | |||
| Pressed | Tap | Shift | Alt | | |||
|---|---|---|---| | |||
|Left Ctrl|PgDn||| | |||
|Left Alt|`|ˆ|[| | |||
|Left Cmd|+|*|]| | |||
|Right Cmd|´|¨|{| | |||
|Right Alt|ç|Ç|}| | |||
For example, if you want to type ```[]```, you keep pressing the "Left Alt" (To modify) and tap "Right Alt" and "Right Cmd" to send "[" and "]" | |||
### Qwerty Layer | |||
A Qwerty layer for gaming and maybe some VIM commands. It just modifies the few keys that are different between Colemak and Qwerty and keep all the others keys | |||
### Fn Layer | |||
A layer to change the number row including "º" and "¡" for "Fn1" to "Fn12". The rest is just the same as the Base layer | |||
### Mouse and media controls | |||
Mouse movement on the left hand, wheel and buttons on the right hand. "Play/Pause", "Rewind", "Forward" in the Left inner column. "Volume Up", "Volume Down" and "Mute" in the Right inner column | |||
### Numpad | |||
A complete numpad in the right hand, plus and Arrow cluster on the left hand | |||
### IDEA (JetBrains IDEs) | |||
A momentary layer for IDEA shortcuts that require more than two fingers or any Fn key | |||
## How to build it | |||
If you already have all the dependencies (Check QMK's documentation), you can run the command: | |||
```bash | |||
make ergodox_ez:colemak_es_osx | |||
``` | |||
On MacOS, if you're using MacPorts you can install the following dependencies: | |||
```bash | |||
port install avr-binutils | |||
port install avr-gcc | |||
port install avr-libc | |||
``` | |||
This isn't an exhaustive list and maybe there other dependencies that are technically necessary | |||
## Changelog | |||
* Jul 2019: | |||
* Initial version for the new QMK version | |||
![](https://imgur.com/AyWNGlL.png) |
@ -1,2 +0,0 @@ | |||
node_modules/ | |||
package-lock.json |
@ -1,88 +0,0 @@ | |||
/* | |||
Set any config.h overrides for your specific keymap here. | |||
See config.h options at https://docs.qmk.fm/#/config_options?id=the-configh-file | |||
*/ | |||
#pragma once | |||
#undef TAPPING_TERM | |||
#define TAPPING_TERM 175 | |||
#define TAPPING_TERM_PER_KEY | |||
#undef DEBOUNCE | |||
#define DEBOUNCE 15 | |||
#define RGB_MATRIX_SLEEP | |||
#undef FORCE_NKRO | |||
#define FORCE_NKRO | |||
#undef TAPPING_TOGGLE | |||
#define TAPPING_TOGGLE 5 | |||
#define LEADER_TIMEOUT 1000 | |||
#define PERMISSIVE_HOLD | |||
#define DANCING_TERM 175 | |||
#define ONESHOT_TAP_TOGGLE 5 | |||
#undef ONESHOT_TIMEOUT | |||
#define ONESHOT_TIMEOUT 5000 | |||
#define COMBO_TERM 200 | |||
#undef RGBLIGHT_HUE_STEP | |||
#define RGBLIGHT_HUE_STEP 24 | |||
#undef RGBLIGHT_SAT_STEP | |||
#define RGBLIGHT_SAT_STEP 24 | |||
#undef RGBLIGHT_VAL_STEP | |||
#define RGBLIGHT_VAL_STEP 24 | |||
#undef RGBLIGHT_BRI_STEP | |||
#define RGBLIGHT_BRI_STEP 24 | |||
#undef RGBLIGHT_LIMIT_VAL | |||
#define RGBLIGHT_LIMIT_VAL 255 | |||
#undef MOUSEKEY_INTERVAL | |||
#define MOUSEKEY_INTERVAL 10 | |||
#undef MOUSEKEY_DELAY | |||
#define MOUSEKEY_DELAY 15 | |||
#undef MOUSEKEY_MAX_SPEED | |||
#define MOUSEKEY_MAX_SPEED 20 | |||
#undef MOUSEKEY_TIME_TO_MAX | |||
#define MOUSEKEY_TIME_TO_MAX 200 | |||
#undef MOUSEKEY_WHEEL_MAX_SPEED | |||
#define MOUSEKEY_WHEEL_MAX_SPEED 20 | |||
#undef MOUSEKEY_WHEEL_TIME_TO_MAX | |||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 200 | |||
// #undef NO_DEBUG | |||
// #define NO_DEBUG | |||
// #undef NO_PRINT | |||
// #define NO_PRINT | |||
// #define RETRO_TAPPING | |||
// #define QUICK_TAP_TERM 0 | |||
// #define AUTO_SHIFT_TIMEOUT 150 | |||
// #define NO_AUTO_SHIFT_SPECIAL | |||
// #define NO_AUTO_SHIFT_NUMERIC | |||
// #define NO_AUTO_SHIFT_ALPHA | |||
// #define EXTRA_LONG_COMBOS | |||
// #define EXTRA_EXTRA_LONG_COMBOS | |||
// #define COMBO_ALLOW_ACTION_KEYS | |||
// #define RGBLIGHT_SLEEP |
@ -1,22 +0,0 @@ | |||
const gulp = require('gulp'); | |||
const run = require('gulp-run-command').default; | |||
const ROOT_DIR = '../../../../'; | |||
const BUILD_DIR = `${ROOT_DIR}.build`; | |||
const HACKER_DVORAK_DIR = './**/*'; | |||
const CLEAN_CMD = `rm -rf ${BUILD_DIR}`; | |||
const BUILD_CMD = `make -C ${ROOT_DIR} ergodox_ez:hacker_dvorak`; | |||
gulp.task('clean', run(CLEAN_CMD)); | |||
gulp.task('build', gulp.series('clean', run(BUILD_CMD, { | |||
ignoreErrors: true | |||
}))); | |||
gulp.task('watch', gulp.series('build', () => { | |||
gulp.watch(HACKER_DVORAK_DIR, gulp.series('build')); | |||
})); | |||
gulp.task('default', gulp.series('watch')); |
@ -1,353 +0,0 @@ | |||
// Keyboard keymap: | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
[DVORAK] = LAYOUT_ergodox( | |||
// HACKER DVORAK left hand | |||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------// | |||
// ESCAPE | | | | | | START RECORDING // | |||
// | | | | | | // | |||
KC_ESC, TD(GRV_TILD), TD(AT_DLR), TD(LCBR_LABK), TD(LPRN_LBRC), TD(EXLM_QUES), DM_REC1, // | |||
// | ~ | $ | < | [ | ? | // | |||
// | TAP DANCE: ` | TAP DANCE: @ TAP DANCE: { | TAP DANCE: ( | TAP DANCE: ! | DYNAMIC MARCO 1 // | |||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------// | |||
// TAB | MOD TAP: ALT+SHIFT | MOD TAP: CTRL+ALT | MOD TAP: CTRL+SHIFT | P | Y | // | |||
// | | | | | | // | |||
KC_TAB, TD(NONE_LEAD), TD(QUOT_DQUO), TD(DOT_COMM), LCG_T(KC_P), LAG_T(KC_Y), DM_PLY1, // | |||
// | LEAD | " | , | | | // | |||
// | TAP DANCE: NONE | TAP DANCE: ' | TAP DANCE: . | MOD TAP: CTRL+GUI | MOD TAP: ALT+GUI | // | |||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------| PLAY DYNAMIC MACRO 1 // | |||
// | MOD TAP: ALT | MOD TAP: CTRL | LAYER TAP: SHIFT | M TAP DANCE: ARROWS/GUI | MOD TAP: SHIFT+GUI | // | |||
// | | | | Ü | | // | |||
TD(EQL_PLUS), LALT_T(KC_A), LCTL_T(KC_O), LSFT_T(KC_E), TD(U_ARR_GUI), SGUI_T(KC_I), //-----------------------// | |||
// + | Á | Ó | É | Ú | Í | // | |||
// TAP DANCE: = | TAP DANCE: A | TAP DANCE: O | TAP DANCE: E | TAP DANCE: U | TAP DANCE: I | // | |||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------| META // | |||
// STOP RECORDING | MOD TAP: GUI+SHIFT+ALT | Q | J | K | X | // | |||
// | | | | | | // | |||
DM_RSTP, TD(SCLN_COLN), LCAG_T(KC_Q), TD(J_MED_MEH), TD(K_NUM_HYP), LCSG_T(KC_X), KC_LGUI, // | |||
// | : | | | | | // | |||
// DYNAMIC MACRO | TAP DANCE: ; | MOD TAP: SHIFT+GUI | M TAP DANCE: MEDIA/MEH | M TAP DANCE: ATM/HYPER | MOD TAP: CTL+SHIFT+GUI | // | |||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------// | |||
// LAYERS SWITCHER | APPLICATION MENU | | | // | |||
// | | | | SCROLL // | |||
TG(LAYERS), KC_APP, KC_NUM, KC_SCRL, KC_CAPS, // | |||
// | | | | NUM // | |||
// LAYER TOGGLE | | | | TAP DANCE: CAPS // | |||
//------------------------+-------------------------+-------------------------+-------------------------+------------------------// | |||
// HACKER DVORAK left thumb | |||
//------------------------+------------------------// | |||
// MOUSE WHEEL LEFT | MOUSE WHEEL RIGHT // | |||
// | // | |||
KC_WH_L, KC_WH_R, // | |||
// | // | |||
// | // | |||
//-------------------------+-------------------------+------------------------// | |||
// | | HOME // | |||
// | | // | |||
/* SPACE | BACKSPACE */ KC_HOME, // | |||
// | | // | |||
// | | // | |||
KC_SPC, KC_BSPC, //-----------------------// | |||
// | | END // | |||
// | | // | |||
/* | */ KC_END, // | |||
// | | // | |||
// | | // | |||
//-------------------------+-------------------------+------------------------// | |||
// HACKER DVORAK right hand | |||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------// | |||
// | | | | | | // | |||
// | | | | | | // | |||
DM_REC2, TD(APMR_PIPE), TD(RPRN_RBRC), TD(RCBR_RABK), TD(HASH_PERC), TD(ASTR_CIRC), XXXXXXX, // | |||
// | | | | | | // | |||
// | | | | | | // | |||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------// | |||
// | | | | | | // | |||
// | | | | | | // | |||
DM_PLY2, LAG_T(KC_F), LCG_T(KC_G), C_S_T(KC_C), LCA_T(KC_R), LAS_T(KC_L), TD(SLSH_BSLS), // | |||
// | | | | | | // | |||
// | | | | | | // | |||
// |-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------// | |||
// | | | | | | // | |||
// | | | | | | // | |||
/*-----------------------*/ SGUI_T(KC_D), TD(H_MOU_GUI), LSFT_T(KC_T), LCTL_T(KC_N), LALT_T(KC_S), TD(MINS_UNDS), // | |||
// | | | | | | // | |||
// | | | | | | // | |||
// |-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------// | |||
// | | | | | | // | |||
// | | | | | | // | |||
KC_LGUI, LCSG_T(KC_B), TD(M_CHO_HYP), TD(W_MED_MEH), LCAG_T(KC_V), LASG_T(KC_Z), COMPOSE, // | |||
// | | | | | | // | |||
// | | | | | | ⎄ // | |||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------// | |||
// | | | | // | |||
// | | | | // | |||
KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_SYRQ, // | |||
// | | | | // | |||
// | | | | // | |||
//------------------------+-------------------------+-------------------------+-------------------------+------------------------// | |||
// HACKER DVORAK right thumb | |||
//------------------------+------------------------// | |||
// | // | |||
// | // | |||
KC_WH_U, KC_WH_D, // | |||
// | // | |||
// | // | |||
//------------------------+-------------------------+------------------------// | |||
// | | // | |||
// | | // | |||
KC_PGUP, // | // | |||
// | | // | |||
// | | // | |||
//------------------------| | // | |||
// | | // | |||
// | | // | |||
KC_PGDN, KC_DEL, KC_ENT // | |||
// | | // | |||
// | | // | |||
//------------------------+-------------------------+------------------------// | |||
), | |||
[PLOVER] = LAYOUT_ergodox( | |||
// left hand | |||
XXXXXXX, XXXXXXX, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, KC_MS_BTN3, GUI_T(KC_NO), | |||
KC_ESC, KC_MS_BTN4, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_BTN5, PV_NUM, | |||
KC_TAB, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR, | |||
KC_CAPS, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, PV_STAR, | |||
XXXXXXX, TG(LAYERS), PV_NUM, PV_NUM, PV_NUM, | |||
// left thumb | |||
KC_SPACE, KC_BSPC, | |||
KC_HOME, | |||
PV_A, PV_O, KC_END, | |||
// right hand | |||
KC_MS_ACCEL2, KC_MS_ACCEL1, KC_MS_ACCEL0, KC_UP, KC_APPLICATION, XXXXXXX, KC_MS_WH_UP, | |||
PV_NUM, KC_MS_WH_LEFT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MS_WH_RIGHT, KC_MS_WH_DOWN, | |||
PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD, | |||
PV_STAR, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ, | |||
PV_NUM, PV_NUM, PV_NUM, PV_NUM, XXXXXXX, | |||
// right thumb | |||
KC_DELETE, KC_ENTER, | |||
KC_PGUP, | |||
KC_PGDN, PV_E, PV_U | |||
), | |||
[GAMING] = LAYOUT_ergodox( | |||
// left hand | |||
KC_ESCAPE, GUI_T(KC_MINS), KC_I, KC_O, KC_P, ALGR_T(KC_EQL), KC_T, | |||
KC_TAB, KC_LALT, KC_Q, KC_W, KC_E, ALL_T(KC_R), KC_G, | |||
LT(MOUSE, KC_GRV), KC_LCTL, KC_A, KC_S, KC_D, MEH_T(KC_F), | |||
KC_BSLS, KC_LSFT, KC_Z, KC_X, KC_C, SCMD_T(KC_V), KC_M, | |||
XXXXXXX, TG(LAYERS), KC_COMM, KC_DOT, KC_LBRC, | |||
// left thumb | |||
MO(MEDIA_FN), KC_NUM, | |||
KC_SCLN, | |||
KC_SPACE, KC_ENTER, KC_BSPC, | |||
// right hand | |||
KC_QUOT, KC_Y, KC_K, KC_U, KC_KP_7, KC_KP_8, KC_KP_9, | |||
KC_MS_WH_UP, KC_H, KC_J, KC_L, KC_KP_4, KC_KP_2, KC_KP_6, | |||
KC_B, KC_MS_UP, KC_N, KC_KP_1, KC_KP_5, KC_KP_3, | |||
KC_MS_WH_DOWN, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_UP, KC_KP_0, KC_SLASH, | |||
KC_RBRC, KC_LEFT, KC_DOWN, KC_RIGHT, XXXXXXX, | |||
// right thumb | |||
KC_MS_BTN5, MO(CHORD), | |||
KC_MS_BTN4, | |||
KC_MS_BTN3, KC_MS_BTN2, KC_MS_BTN1 | |||
), | |||
[ARROWS] = LAYOUT_ergodox( | |||
// left hand | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, SCMD_T(KC_NO), MEH_T(KC_NO), ALL_T(KC_NO), XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, KC_LCTL, KC_LSFT, XXXXXXX, _______, XXXXXXX, | |||
XXXXXXX, KC_RALT, KC_LALT, GUI_T(KC_NO), XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
// left thumb | |||
XXXXXXX, XXXXXXX, | |||
KC_HOME, | |||
KC_SPACE, KC_BSPC, KC_END, | |||
// right hand | |||
LGUI(KC_X), XXXXXXX, LCTL(KC_X), KC_MS_WH_UP, XXXXXXX, XXXXXXX, XXXXXXX, | |||
LGUI(KC_C), XXXXXXX, LCTL(KC_C), KC_UP, SCTL(KC_C), LCTL(KC_Z), LGUI(KC_Z), | |||
KC_MS_WH_LEFT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MS_WH_RIGHT, KC_APPLICATION, | |||
LGUI(KC_V), XXXXXXX, LCTL(KC_V), KC_MS_WH_DOWN, SCTL(KC_V), LCTL(KC_Y), SGUI(KC_Z), | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SCRL, | |||
// right thumb | |||
XXXXXXX, XXXXXXX, | |||
KC_PGUP, | |||
KC_PGDN, KC_DELETE, KC_ENTER | |||
), | |||
[MOUSE] = LAYOUT_ergodox( | |||
// left hand | |||
XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_WH_UP, LCTL(KC_X), XXXXXXX, LGUI(KC_X), | |||
LGUI(KC_Z), LCTL(KC_Z), SCTL(KC_C), KC_MS_UP, LCTL(KC_C), KC_MS_BTN4, LGUI(KC_C), | |||
KC_MS_BTN3, KC_MS_WH_LEFT, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_RIGHT, | |||
LGUI(KC_Z), LCTL(KC_Y), SCTL(KC_V), KC_MS_WH_DOWN, LCTL(KC_V), KC_MS_BTN5, LGUI(KC_V), | |||
KC_SCRL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
// left thumb | |||
XXXXXXX, XXXXXXX, | |||
XXXXXXX, | |||
KC_MS_BTN1, KC_MS_BTN2, XXXXXXX, | |||
// right hand | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, ALL_T(KC_NO), MEH_T(KC_NO), SCMD_T(KC_NO), XXXXXXX, | |||
XXXXXXX, _______, KC_MS_ACCEL1, KC_LSFT, KC_LCTL, KC_MS_ACCEL2, | |||
XXXXXXX, XXXXXXX, XXXXXXX, GUI_T(KC_NO), KC_LALT, KC_RALT, XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
// right thumb | |||
XXXXXXX, XXXXXXX, | |||
XXXXXXX, | |||
XXXXXXX, XXXXXXX, KC_MS_ACCEL0 | |||
), | |||
[NUMPAD] = LAYOUT_ergodox( | |||
// left hand | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, GUI_T(KC_NO), XXXXXXX, ALL_T(KC_NO), XXXXXXX, XXXXXXX, | |||
_______, KC_LCTL, KC_LSFT, _______, MEH_T(KC_NO), XXXXXXX, | |||
XXXXXXX, KC_RALT, KC_LALT, XXXXXXX, SCMD_T(KC_NO), XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
// left thumb | |||
XXXXXXX, XXXXXXX, | |||
KC_HOME, | |||
KC_SPACE, KC_BSPC, KC_END, | |||
// right hand | |||
KC_X, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, | |||
KC_O, KC_I, KC_1, KC_2, KC_3, KC_SLSH, KC_PERC, | |||
KC_M, KC_4, KC_5, KC_6, KC_PLUS, KC_MINS, | |||
KC_L, KC_J, KC_7, KC_8, KC_9, KC_ASTR, KC_CIRC, | |||
KC_DOT, KC_0, KC_COMM, KC_UNDS, KC_BSLS, | |||
// right thumb | |||
XXXXXXX, XXXXXXX, | |||
KC_PGUP, | |||
KC_PGDN, KC_DELETE, KC_ENTER | |||
), | |||
[LAYERS] = LAYOUT_ergodox( | |||
// left hand | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, | |||
// left thumb | |||
XXXXXXX, XXXXXXX, | |||
XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, | |||
// right hand | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, TO(DVORAK), TO(PLOVER), TO(GAMING), XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
// right thumb | |||
XXXXXXX, XXXXXXX, | |||
XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX | |||
), | |||
[MEDIA_FN] = LAYOUT_ergodox( | |||
// left hand | |||
KC_VOLD, KC_MUTE, RGB_TOG, XXXXXXX, KC_MAIL, KC_FIND, KC_WWW_REFRESH, | |||
KC_MPRV, KC_F9, KC_F7, KC_F5, KC_F3, KC_F1, KC_WWW_HOME, | |||
KC_PAUS, KC_F19, KC_F17, KC_F15, KC_F13, KC_F11, | |||
RGB_HUD, XXXXXXX, XXXXXXX, _______, KC_F23, KC_F21, KC_WWW_BACK, | |||
RGB_VAD, KC_CAPS, KC_PSCR, XXXXXXX, MO(FIRMWARE), | |||
// left thumb | |||
_______, XXXXXXX, | |||
XXXXXXX, | |||
XXXXXXX, XXXXXXX, KC_MEDIA_EJECT, | |||
// right hand | |||
KC_WWW_FAVORITES, KC_MYCM, KC_CALC, XXXXXXX, RGB_MOD, RGB_M_P, KC_VOLU, | |||
KC_WWW_SEARCH, KC_F2, KC_F4, KC_F6, KC_F8, KC_F10, KC_MNXT, | |||
KC_F12, KC_F14, KC_F16, KC_F18, KC_F20, KC_MPLY, | |||
KC_WWW_FORWARD, KC_F22, KC_F24, _______, XXXXXXX, XXXXXXX, RGB_HUI, | |||
KC_PWR, XXXXXXX, KC_SLEP, KC_WAKE, RGB_VAI, | |||
// right thumb | |||
XXXXXXX, XXXXXXX, | |||
XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX | |||
), | |||
[CHORD] = LAYOUT_ergodox( | |||
// left hand | |||
XXXXXXX, HYPR(KC_F1), HYPR(KC_F2), HYPR(KC_F3), HYPR(KC_F4), HYPR(KC_F5), XXXXXXX, | |||
XXXXXXX, HYPR(KC_F6), HYPR(KC_F7), HYPR(KC_F8), HYPR(KC_F9), HYPR(KC_F10), XXXXXXX, | |||
XXXXXXX, HYPR(KC_F11), HYPR(KC_F12), HYPR(KC_F13), HYPR(KC_F14), HYPR(KC_F15), | |||
XXXXXXX, HYPR(KC_F16), HYPR(KC_F17), HYPR(KC_F18), HYPR(KC_F19), HYPR(KC_F20), XXXXXXX, | |||
XXXXXXX, HYPR(KC_F21), HYPR(KC_F22), HYPR(KC_F23), HYPR(KC_F24), | |||
// left thumb | |||
XXXXXXX, XXXXXXX, | |||
XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, | |||
// right hand | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
// right thumb | |||
XXXXXXX, _______, | |||
XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX | |||
), | |||
[FIRMWARE] = LAYOUT_ergodox( | |||
// left hand | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, | |||
// left thumb | |||
XXXXXXX, XXXXXXX, | |||
XXXXXXX, | |||
QK_BOOT, XXXXXXX, XXXXXXX, | |||
// right hand | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |||
// right thumb | |||
XXXXXXX, XXXXXXX, | |||
XXXXXXX, | |||
XXXXXXX, XXXXXXX, EE_CLR | |||
) | |||
}; |
@ -1,13 +0,0 @@ | |||
// Compound keycode aliases | |||
#define SCTL(kc) LSFT(LCTL(kc)) // Modifier keys: SHIFT+CTRL+kc combination. | |||
// Tap | |||
#define LASG_T(kc) MT(MOD_LGUI | MOD_LALT | MOD_LSFT, kc) // Mod tap: kc when tapped, GUI+ALT+SHIFT when held. | |||
#define LCSG_T(kc) MT(MOD_LGUI | MOD_LSFT | MOD_LCTL, kc) // Mod tap: kc when tapped, GUI+CTL+SHIFT when held. | |||
#define LCG_T(kc) MT(MOD_LCTL | MOD_LGUI, kc) // Mod tap: kc when tapped, CTL+GUI when held. | |||
#define LAS_T(kc) MT(MOD_LALT | MOD_LSFT, kc) // Mod tap: kc when tapped, ALT+SHIFT when held. | |||
#define LAG_T(kc) MT(MOD_LALT | MOD_LGUI, kc) // Mod tap: kc when tapped, ALT+GUI when held. | |||
// Others | |||
#define COMPOSE KC_RALT // Compose key (used to input characters like á, ñ, ü). |
@ -1,7 +0,0 @@ | |||
// Define custom user keycodes: | |||
enum custom_keycodes { | |||
PLACEHOLDER = SAFE_RANGE, // Can always be here. | |||
MY_CUSTOM_MACRO, // Custom macro example. | |||
MY_OTHER_MACRO, // Custom macro example. | |||
DYNAMIC_MACRO_RANGE // Should always be the last. | |||
}; |
@ -1,28 +0,0 @@ | |||
#include QMK_KEYBOARD_H // Includes the QMK-verse. | |||
#include "keymap_plover.h" // Includes the Plover keymap for easier readability. | |||
// TODO: No eeprom changes unless needed, custom rgb settings for animations. | |||
#include "keycodes/aliases_definitions.c" | |||
#include "layers/layers_definitions.c" | |||
#include "tap_dance/tap_dance_setup.c" | |||
#include "tap_dance/tap_dances.c" | |||
#include "user/matrix_scan_user.c" | |||
#include "tap_dance/mod_tap_layer_dances/none_lead.c" | |||
#include "tap_dance/mod_tap_layer_dances/dot_comm.c" | |||
#include "tap_dance/mod_tap_layer_dances/quot_dquot.c" | |||
#include "tap_dance/mod_tap_layer_dances/scln_coln.c" | |||
#include "tap_dance/mod_tap_layer_dances/u_arrows_gui.c" | |||
#include "tap_dance/mod_tap_layer_dances/h_mouse_gui.c" | |||
#include "tap_dance/mod_tap_layer_dances/j_media_meh.c" | |||
#include "tap_dance/mod_tap_layer_dances/w_media_meh.c" | |||
#include "tap_dance/mod_tap_layer_dances/k_numpad_hyper.c" | |||
#include "tap_dance/mod_tap_layer_dances/m_chords_hyper.c" | |||
#include "tap_dance/tap_dance_actions.c" | |||
#include "keycodes/custom_keycodes.c" | |||
#include "dynamic_macro.h" // Includes dynamic macro definitions, needed *after* the custom keycodes. | |||
#include "hacker_dvorak.c" | |||
#include "user/eeconfig_init_user.c" | |||
#include "user/process_record_user.c" | |||
#include "plover/plover_mode.c" | |||
#include "user/layer_set_state_user.c" |
@ -1,12 +0,0 @@ | |||
enum layers { // Hacker Dvorak keyboard layers: | |||
DVORAK = 0, // * Dvorak base layer. | |||
PLOVER = 1, // * Steno layer for use with Plover. | |||
GAMING = 2, // * Gaming layer intended for general purpose playing. | |||
ARROWS = 3, // * Arrows movement keys and edition shortcuts. | |||
MOUSE = 4, // * Mouse movement keys and edition shortcuts. | |||
NUMPAD = 5, // * ATM style numpad with symbols and letters that should suffice to input any numeric literal. | |||
LAYERS = 6, // * Layer switcher used to change between DVORAK, PLOVER and GAMING layers. | |||
MEDIA_FN = 7, // * Media, RGB and function keys from F1 to F24 in symmetric fashion. | |||
CHORD = 8, // * Hot keys layer (uses hyper + F1 .. F24) suitable for global shortcut tasks. | |||
FIRMWARE = 9 // * Layer with firmware related functionality, like the reset and EEPROM keys. | |||
}; |
@ -1,15 +0,0 @@ | |||
{ | |||
"name": "hacker_dvorak", | |||
"version": "1.0.0", | |||
"description": "Inspired by the [*Programmer Dvorak*](https://www.kaufmann.no/roland/dvorak) keyboard layout, cherry picked ideas from other layouts in the [EZ Repository](https://configure.ergodox-ez.com/search?q=dvorak&legacy=true), a character distribution [heatmap vizualizer](https://run.plnkr.co/plunks/5EEO8nJ2wRzYAfT3), my own subjective use cases and lots of trial and error.", | |||
"main": "gulpfile.js", | |||
"scripts": { | |||
"test": "test" | |||
}, | |||
"author": "SalchiPapa", | |||
"license": "GPL-2.0", | |||
"dependencies": { | |||
"gulp": "^4.0.0", | |||
"gulp-run-command": "0.0.9" | |||
} | |||
} |
@ -1,20 +0,0 @@ | |||
// TODO: improve feedback | |||
void plover_toggle(void) { | |||
// Press "PHROLG" | |||
register_code(PV_LP); | |||
register_code(PV_LH); | |||
register_code(PV_LR); | |||
register_code(PV_O); | |||
register_code(PV_RL); | |||
register_code(PV_RG); | |||
// Release "PHROLG" | |||
unregister_code(PV_LP); | |||
unregister_code(PV_LH); | |||
unregister_code(PV_LR); | |||
unregister_code(PV_O); | |||
unregister_code(PV_RL); | |||
unregister_code(PV_RG); | |||
} | |||
bool PLOVER_MODE = false; |
@ -1,62 +0,0 @@ | |||
# [Ergodox EZ Hacker Dvorak Layout](https://configure.ergodox-ez.com/layouts/Wadz/latest/0) | |||
Inspired by the [*Programmer Dvorak*](https://www.kaufmann.no/roland/dvorak) keyboard layout, cherry picked ideas from other layouts in the [EZ Repository](https://configure.ergodox-ez.com/search?q=dvorak&legacy=true), a character distribution [heatmap vizualizer](https://run.plnkr.co/plunks/5EEO8nJ2wRzYAfT3), my own subjective use cases and lots of trial and error. | |||
## Setup | |||
Configure your OS keyboard layout to US, or the keymap will be incorrect. | |||
## Limitations | |||
I plan to use [QMK](https://docs.qmk.fm) in the future, in order to overcome some limitations of the Ergodox EZ [graphical configurator](https://configure.ergodox-ez.com/layouts/default/latest/0)), however I will defer that, until more progress is made to the new [configurator](https://medium.com/the-ergo/the-configurator-is-out-of-beta-e107aec80cae). | |||
## Layers | |||
1. Dvorak | |||
* US Dvorak layout. | |||
* All symbols (including shifted symbols). | |||
* All modifier are dual keys positioned near the home row. | |||
2. Querty | |||
* Used to overcome the limitation pointed above, when your OS layout is set to Dvorak instead of US, this way you can use | |||
Standard Dvorak (available by default on all the main operating systems) on other normal keybdoards and Hacker Dvorak on | |||
the Ergodox EZ Shine at the same time, without changing back and forth tho OS layout. | |||
3. Gaming | |||
* Still in development. | |||
* Left side is mainly "normal" Qwerty. | |||
* Right side is mainly for movement, either using the mouse, the arrow keys, the number pad or the `H`, `J`, `K`, `L` as direction keys. | |||
4. Arrows | |||
* Arrow keys navigation. | |||
* All modifier keys. | |||
* Common text edititng shortcuts (doesn't work for MacOS). | |||
5. Mouse | |||
* Mouse navigation. | |||
* All modifier keys. | |||
* Common text edititng shortcuts (doesn't work for MacOS). | |||
6. Numpad | |||
* ATM style numpad. | |||
* All modifier keys. | |||
* Letters from `A` to `F` for hexadecimal numbers (`B` is also used for binary numeric literals in most programming | |||
languages, ie. `0b11001`). | |||
* `X` for hexadecimal numeric literals in most programming languages, ie. `0xbeef`. | |||
* `O` for octal numeric literals in most programming languages, ie `0o123`. | |||
* `J` for complex numeric literals in Python, ie. `3j`. | |||
* `I` and `M` for complex Julia numeric literals, ie. `3im`. | |||
* Common symbols for mathematical operations. | |||
7. Hyper Fn | |||
* Useful for custom global shortcuts. | |||
8. Media Fn | |||
* Media keys. | |||
* Function keys. | |||
* EZ Shine keys. | |||
9. Meh Fn | |||
* Useful for custom application shortcuts. | |||
10. Meh Fn + | |||
* Useful for custom standard shortcuts. | |||
## To Do | |||
Add images. | |||
*** | |||
Please comment below if you have any ideas or suggestions. If you have used this layout or used it as a base, I'd love to hear about your experience! |
@ -1,37 +0,0 @@ | |||
# Set any rules.mk overrides for your specific keymap here. | |||
# See rules at https://docs.qmk.fm/#/config_options?id=the-rulesmk-file | |||
LTO_ENABLE = yes | |||
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | |||
TAP_DANCE_ENABLE = yes | |||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700b). | |||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450b). | |||
RGBLIGHT_ENABLE = yes | |||
LEADER_ENABLE = yes | |||
UNICODE_ENABLE = no | |||
COMMAND_ENABLE = no # Commands for debug and configuration | |||
SWAP_HANDS_ENABLE = no # Allow swapping hands of keyboard. | |||
# This are by default off: | |||
# COMBO_ENABLE = no | |||
# UCIS_ENABLE = no # For Unicode. | |||
# UNICODEMAP_ENABLE = no | |||
# SLEEP_LED_ENABLE = no # Turn off leds when computer is sleeping. | |||
# KEY_LOCK_ENABLE = no # (+1730b) | |||
# CONSOLE_ENABLE = no # Console for debug(+400b) | |||
# MIDI_ENABLE = no | |||
# BLUETOOTH_ENABLE = no | |||
# AUDIO_ENABLE = no | |||
# VARIABLE_TRACE = no | |||
# BACKLIGHT_ENABLE = no | |||
# RGB_MATRIX_ENABLE = no | |||
# POINTING_DEVICE_ENABLE = no | |||
# AUTO_SHIFT_ENABLE = no | |||
# This don't need argument? | |||
# CUSTOM_MATRIX # Custom matrix file for the ErgoDox EZ | |||
# SPLIT_KEYBOARD |
@ -1,41 +0,0 @@ | |||
//instanalize an instance of 'tap' for the Dot - Comma tap dance. | |||
static tap dot_comm_state = { | |||
.is_press_action = true, | |||
.state = 0 | |||
}; | |||
void dot_comm_finished(tap_dance_state_t *state, void *user_data) { | |||
dot_comm_state.state = current_dance(state); | |||
switch (dot_comm_state.state) { | |||
case SINGLE_TAP: | |||
register_code(KC_DOT); | |||
break; | |||
case SINGLE_HOLD: | |||
register_code(KC_LCTL); | |||
register_code(KC_LSFT); | |||
break; | |||
case DOUBLE_TAP: | |||
register_code(KC_COMM); | |||
break; | |||
} | |||
} | |||
void dot_comm_reset(tap_dance_state_t *state, void *user_data) { | |||
switch (dot_comm_state.state) { | |||
case SINGLE_TAP: | |||
unregister_code(KC_DOT); | |||
break; | |||
case SINGLE_HOLD: | |||
unregister_code(KC_LCTL); | |||
unregister_code(KC_LSFT); | |||
break; | |||
case DOUBLE_TAP: | |||
unregister_code(KC_COMM); | |||
break; | |||
} | |||
dot_comm_state.state = 0; | |||
} |
@ -1,39 +0,0 @@ | |||
//instanalize an instance of 'tap' for the H - Mouse - Gui tap dance. | |||
static tap h_mouse_gui_state = { | |||
.is_press_action = true, | |||
.state = 0 | |||
}; | |||
void h_mouse_gui_finished(tap_dance_state_t *state, void *user_data) { | |||
h_mouse_gui_state.state = current_dance(state); | |||
switch (h_mouse_gui_state.state) { | |||
case SINGLE_TAP: | |||
register_code(KC_H); | |||
break; | |||
case SINGLE_HOLD: | |||
layer_on(MOUSE); | |||
break; | |||
case DOUBLE_HOLD: | |||
register_code(KC_LGUI); | |||
break; | |||
} | |||
} | |||
void h_mouse_gui_reset(tap_dance_state_t *state, void *user_data) { | |||
switch (h_mouse_gui_state.state) { | |||
case SINGLE_TAP: | |||
unregister_code(KC_H); | |||
break; | |||
case SINGLE_HOLD: | |||
layer_off(MOUSE); | |||
break; | |||
case DOUBLE_HOLD: | |||
unregister_code(KC_LGUI); | |||
break; | |||
} | |||
h_mouse_gui_state.state = 0; | |||
} |
@ -1,43 +0,0 @@ | |||
//instanalize an instance of 'tap' for the J - Media - Meh tap dance. | |||
static tap j_media_meh_state = { | |||
.is_press_action = true, | |||
.state = 0 | |||
}; | |||
void j_media_meh_finished(tap_dance_state_t *state, void *user_data) { | |||
j_media_meh_state.state = current_dance(state); | |||
switch (j_media_meh_state.state) { | |||
case SINGLE_TAP: | |||
register_code(KC_J); | |||
break; | |||
case SINGLE_HOLD: | |||
layer_on(MEDIA_FN); | |||
break; | |||
case DOUBLE_HOLD: | |||
register_code(KC_LCTL); | |||
register_code(KC_LSFT); | |||
register_code(KC_LALT); | |||
break; | |||
} | |||
} | |||
void j_media_meh_reset(tap_dance_state_t *state, void *user_data) { | |||
switch (j_media_meh_state.state) { | |||
case SINGLE_TAP: | |||
unregister_code(KC_J); | |||
break; | |||
case SINGLE_HOLD: | |||
layer_off(MEDIA_FN); | |||
break; | |||
case DOUBLE_HOLD: | |||
unregister_code(KC_LCTL); | |||
unregister_code(KC_LSFT); | |||
unregister_code(KC_LALT); | |||
break; | |||
} | |||
j_media_meh_state.state = 0; | |||
} |
@ -1,45 +0,0 @@ | |||
//instanalize an instance of 'tap' for the K - Numpad - Hyper tap dance. | |||
static tap k_numpad_hyper_state = { | |||
.is_press_action = true, | |||
.state = 0 | |||
}; | |||
void k_numpad_hyper_finished(tap_dance_state_t *state, void *user_data) { | |||
k_numpad_hyper_state.state = current_dance(state); | |||
switch (k_numpad_hyper_state.state) { | |||
case SINGLE_TAP: | |||
register_code(KC_K); | |||
break; | |||
case SINGLE_HOLD: | |||
layer_on(NUMPAD); | |||
break; | |||
case DOUBLE_HOLD: | |||
register_code(KC_LCTL); | |||
register_code(KC_LSFT); | |||
register_code(KC_LALT); | |||
register_code(KC_LGUI); | |||
break; | |||
} | |||
} | |||
void k_numpad_hyper_reset(tap_dance_state_t *state, void *user_data) { | |||
switch (k_numpad_hyper_state.state) { | |||
case SINGLE_TAP: | |||
unregister_code(KC_K); | |||
break; | |||
case SINGLE_HOLD: | |||
layer_off(NUMPAD); | |||
break; | |||
case DOUBLE_HOLD: | |||
unregister_code(KC_LCTL); | |||
unregister_code(KC_LSFT); | |||
unregister_code(KC_LALT); | |||
unregister_code(KC_LGUI); | |||
break; | |||
} | |||
k_numpad_hyper_state.state = 0; | |||
} |
@ -1,45 +0,0 @@ | |||
//instanalize an instance of 'tap' for the M - Chords - Hyper tap dance. | |||
static tap m_chords_hyper_state = { | |||
.is_press_action = true, | |||
.state = 0 | |||
}; | |||
void m_chords_hyper_finished(tap_dance_state_t *state, void *user_data) { | |||
m_chords_hyper_state.state = current_dance(state); | |||
switch (m_chords_hyper_state.state) { | |||
case SINGLE_TAP: | |||
register_code(KC_M); | |||
break; | |||
case SINGLE_HOLD: | |||
layer_on(CHORD); | |||
break; | |||
case DOUBLE_HOLD: | |||
register_code(KC_LCTL); | |||
register_code(KC_LSFT); | |||
register_code(KC_LALT); | |||
register_code(KC_LGUI); | |||
break; | |||
} | |||
} | |||
void m_chords_hyper_reset(tap_dance_state_t *state, void *user_data) { | |||
switch (m_chords_hyper_state.state) { | |||
case SINGLE_TAP: | |||
unregister_code(KC_M); | |||
break; | |||
case SINGLE_HOLD: | |||
layer_off(CHORD); | |||
break; | |||
case DOUBLE_HOLD: | |||
unregister_code(KC_LCTL); | |||
unregister_code(KC_LSFT); | |||
unregister_code(KC_LALT); | |||
unregister_code(KC_LGUI); | |||
break; | |||
} | |||
m_chords_hyper_state.state = 0; | |||
} |
@ -1,40 +0,0 @@ | |||
//instanalize an instance of 'tap' for the None - Lead tap dance. | |||
static tap none_lead_state = { | |||
.is_press_action = true, | |||
.state = 0 | |||
}; | |||
void none_lead_finished(tap_dance_state_t *state, void *user_data) { | |||
none_lead_state.state = current_dance(state); | |||
switch (none_lead_state.state) { | |||
case SINGLE_TAP: | |||
register_code(KC_NO); | |||
break; | |||
case SINGLE_HOLD: | |||
register_code(KC_LALT); | |||
register_code(KC_LSFT); | |||
break; | |||
case DOUBLE_TAP: | |||
leader_start(); | |||
break; | |||
} | |||
} | |||
void none_lead_reset(tap_dance_state_t *state, void *user_data) { | |||
switch (none_lead_state.state) { | |||
case SINGLE_TAP: | |||
unregister_code(KC_NO); | |||
break; | |||
case SINGLE_HOLD: | |||
unregister_code(KC_LALT); | |||
unregister_code(KC_LSFT); | |||
break; | |||
case DOUBLE_TAP: | |||
break; | |||
} | |||
none_lead_state.state = 0; | |||
} |
@ -1,41 +0,0 @@ | |||
//instanalize an instance of 'tap' for the Quote - Double Quote tap dance. | |||
static tap quot_dquot_state = { | |||
.is_press_action = true, | |||
.state = 0 | |||
}; | |||
void quot_dquot_finished(tap_dance_state_t *state, void *user_data) { | |||
quot_dquot_state.state = current_dance(state); | |||
switch (quot_dquot_state.state) { | |||
case SINGLE_TAP: | |||
register_code(KC_QUOT); | |||
break; | |||
case SINGLE_HOLD: | |||
register_code(KC_LCTL); | |||
register_code(KC_LALT); | |||
break; | |||
case DOUBLE_TAP: | |||
register_code16(KC_DQUO); | |||
break; | |||
} | |||
} | |||
void quot_dquot_reset(tap_dance_state_t *state, void *user_data) { | |||
switch (quot_dquot_state.state) { | |||
case SINGLE_TAP: | |||
unregister_code(KC_QUOT); | |||
break; | |||
case SINGLE_HOLD: | |||
unregister_code(KC_LCTL); | |||
unregister_code(KC_LALT); | |||
break; | |||
case DOUBLE_TAP: | |||
unregister_code16(KC_DQUO); | |||
break; | |||
} | |||
quot_dquot_state.state = 0; | |||
} |
@ -1,43 +0,0 @@ | |||
//instanalize an instance of 'tap' for the Semicolon - Colon tap dance. | |||
static tap scln_coln_state = { | |||
.is_press_action = true, | |||
.state = 0 | |||
}; | |||
void scln_coln_finished(tap_dance_state_t *state, void *user_data) { | |||
scln_coln_state.state = current_dance(state); | |||
switch (scln_coln_state.state) { | |||
case SINGLE_TAP: | |||
register_code(KC_SCLN); | |||
break; | |||
case SINGLE_HOLD: | |||
register_code(KC_LALT); | |||
register_code(KC_LSFT); | |||
register_code(KC_LGUI); | |||
break; | |||
case DOUBLE_TAP: | |||
register_code16(KC_COLN); | |||
break; | |||
} | |||
} | |||
void scln_coln_reset(tap_dance_state_t *state, void *user_data) { | |||
switch (scln_coln_state.state) { | |||
case SINGLE_TAP: | |||
unregister_code(KC_SCLN); | |||
break; | |||
case SINGLE_HOLD: | |||
unregister_code(KC_LALT); | |||
unregister_code(KC_LSFT); | |||
unregister_code(KC_LGUI); | |||
break; | |||
case DOUBLE_TAP: | |||
unregister_code16(KC_COLN); | |||
break; | |||
} | |||
scln_coln_state.state = 0; | |||
} |
@ -1,39 +0,0 @@ | |||
//instanalize an instance of 'tap' for the U - Arrows - Gui tap dance. | |||
static tap u_arrows_gui_state = { | |||
.is_press_action = true, | |||
.state = 0 | |||
}; | |||
void u_arrows_gui_finished(tap_dance_state_t *state, void *user_data) { | |||
u_arrows_gui_state.state = current_dance(state); | |||
switch (u_arrows_gui_state.state) { | |||
case SINGLE_TAP: | |||
register_code(KC_U); | |||
break; | |||
case SINGLE_HOLD: | |||
layer_on(ARROWS); | |||
break; | |||
case DOUBLE_HOLD: | |||
register_code(KC_LGUI); | |||
break; | |||
} | |||
} | |||
void u_arrows_gui_reset(tap_dance_state_t *state, void *user_data) { | |||
switch (u_arrows_gui_state.state) { | |||
case SINGLE_TAP: | |||
unregister_code(KC_U); | |||
break; | |||
case SINGLE_HOLD: | |||
layer_off(ARROWS); | |||
break; | |||
case DOUBLE_HOLD: | |||
unregister_code(KC_LGUI); | |||
break; | |||
} | |||
u_arrows_gui_state.state = 0; | |||
} |
@ -1,43 +0,0 @@ | |||
//instanalize an instance of 'tap' for the W - Media - Meh tap dance. | |||
static tap w_media_meh_state = { | |||
.is_press_action = true, | |||
.state = 0 | |||
}; | |||
void w_media_meh_finished(tap_dance_state_t *state, void *user_data) { | |||
w_media_meh_state.state = current_dance(state); | |||
switch (w_media_meh_state.state) { | |||
case SINGLE_TAP: | |||
register_code(KC_W); | |||
break; | |||
case SINGLE_HOLD: | |||
layer_on(MEDIA_FN); | |||
break; | |||
case DOUBLE_HOLD: | |||
register_code(KC_LCTL); | |||
register_code(KC_LSFT); | |||
register_code(KC_LALT); | |||
break; | |||
} | |||
} | |||
void w_media_meh_reset(tap_dance_state_t *state, void *user_data) { | |||
switch (w_media_meh_state.state) { | |||
case SINGLE_TAP: | |||
unregister_code(KC_W); | |||
break; | |||
case SINGLE_HOLD: | |||
layer_off(MEDIA_FN); | |||
break; | |||
case DOUBLE_HOLD: | |||
unregister_code(KC_LCTL); | |||
unregister_code(KC_LSFT); | |||
unregister_code(KC_LALT); | |||
break; | |||
} | |||
w_media_meh_state.state = 0; | |||
} |
@ -1,44 +0,0 @@ | |||
// Register the double tap dances: | |||
tap_dance_action_t tap_dance_actions[] = { | |||
[EQL_PLUS] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, KC_PLUS), | |||
[MINS_UNDS] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, KC_UNDS), | |||
[SLSH_BSLS] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_BSLS), | |||
[GRV_TILD] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, KC_TILD), | |||
[ASTR_CIRC] = ACTION_TAP_DANCE_DOUBLE(KC_ASTR, KC_CIRC), | |||
[APMR_PIPE] = ACTION_TAP_DANCE_DOUBLE(KC_AMPR, KC_PIPE), | |||
[EXLM_QUES] = ACTION_TAP_DANCE_DOUBLE(KC_EXLM, KC_QUES), | |||
[HASH_PERC] = ACTION_TAP_DANCE_DOUBLE(KC_HASH, KC_PERC), | |||
[AT_DLR] = ACTION_TAP_DANCE_DOUBLE(KC_AT, KC_DLR), | |||
[LPRN_LBRC] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_LBRC), | |||
[RPRN_RBRC] = ACTION_TAP_DANCE_DOUBLE(KC_RPRN, KC_RBRC), | |||
[LCBR_LABK] = ACTION_TAP_DANCE_DOUBLE(KC_LCBR, KC_LABK), | |||
[RCBR_RABK] = ACTION_TAP_DANCE_DOUBLE(KC_RCBR, KC_RABK), | |||
[SCLN_COLN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, scln_coln_finished, scln_coln_reset), | |||
[QUOT_DQUO] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, quot_dquot_finished, quot_dquot_reset), | |||
[DOT_COMM] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dot_comm_finished, dot_comm_reset), | |||
[NONE_LEAD] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, none_lead_finished, none_lead_reset), | |||
[U_ARR_GUI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, u_arrows_gui_finished, u_arrows_gui_reset), | |||
[H_MOU_GUI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, h_mouse_gui_finished, h_mouse_gui_reset), | |||
[J_MED_MEH] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, j_media_meh_finished, j_media_meh_reset), | |||
[W_MED_MEH] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, w_media_meh_finished, w_media_meh_reset), | |||
[K_NUM_HYP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, k_numpad_hyper_finished, k_numpad_hyper_reset), | |||
[M_CHO_HYP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, m_chords_hyper_finished, m_chords_hyper_reset), | |||
}; | |||
uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { | |||
switch (keycode) { | |||
case TD(SCLN_COLN): | |||
case TD(QUOT_DQUO): | |||
case TD(DOT_COMM): | |||
case TD(NONE_LEAD): | |||
case TD(U_ARR_GUI): | |||
case TD(H_MOU_GUI): | |||
case TD(J_MED_MEH): | |||
case TD(W_MED_MEH): | |||
case TD(K_NUM_HYP): | |||
case TD(M_CHO_HYP): | |||
return DANCING_TERM; | |||
default: | |||
return TAPPING_TERM; | |||
} | |||
} |
@ -1,75 +0,0 @@ | |||
typedef struct { | |||
bool is_press_action; | |||
int state; | |||
} tap; | |||
enum { | |||
SINGLE_TAP = 1, | |||
SINGLE_HOLD = 2, | |||
DOUBLE_TAP = 3, | |||
DOUBLE_HOLD = 4, | |||
DOUBLE_SINGLE_TAP = 5, // Send two single taps. | |||
TRIPLE_TAP = 6, | |||
TRIPLE_HOLD = 7, | |||
TRIPLE_SINGLE_TAP = 8 // Send three single taps. | |||
}; | |||
/* Return an integer that corresponds to what kind of tap dance should be executed. | |||
* | |||
* How to figure out tap dance state: interrupted and pressed. | |||
* | |||
* Interrupted: If the state of a dance dance is "interrupted", that means that another key has been hit | |||
* under the tapping term. This is typically indicitive that you are trying to "tap" the key. | |||
* | |||
* Pressed: Whether or not the key is still being pressed. If this value is true, that means the tapping term | |||
* has ended, but the key is still being pressed down. This generally means the key is being "held". | |||
* | |||
* One thing that is currenlty not possible with qmk software in regards to tap dance is to mimic the "permissive hold" | |||
* feature. In general, advanced tap dances do not work well if they are used with commonly typed letters. | |||
* For example "A". Tap dances are best used on non-letter keys that are not hit while typing letters. | |||
* | |||
* Good places to put an advanced tap dance: | |||
* z,q,x,j,k,v,b, any function key, home/end, comma, semi-colon | |||
* | |||
* Criteria for "good placement" of a tap dance key: | |||
* Not a key that is hit frequently in a sentence | |||
* Not a key that is used frequently to double tap, for example 'tab' is often double tapped in a terminal, or | |||
* in a web form. So 'tab' would be a poor choice for a tap dance. | |||
* Letters used in common words as a double. For example 'p' in 'pepper'. If a tap dance function existed on the | |||
* letter 'p', the word 'pepper' would be quite frustating to type. | |||
* | |||
* For the third point, there does exist the 'DOUBLE_SINGLE_TAP', however this is not fully tested | |||
* | |||
*/ | |||
int current_dance(tap_dance_state_t *state) { | |||
int current_state = 0; | |||
if (state->count == 1) { | |||
if (state->interrupted || !state->pressed) { | |||
current_state = SINGLE_TAP; | |||
} else { | |||
current_state = SINGLE_HOLD; //key has not been interrupted, but they key is still held. Means you want to send a 'HOLD'. | |||
} | |||
} else if (state->count == 2) { | |||
/* | |||
* DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap | |||
* action when hitting 'pp'. Suggested use case for this return value is when you want to send two | |||
* keystrokes of the key, and not the 'double tap' action/macro. | |||
*/ | |||
if (state->interrupted) { | |||
current_state = DOUBLE_SINGLE_TAP; | |||
} else if (state->pressed) { | |||
current_state = DOUBLE_HOLD; | |||
} else { | |||
current_state = DOUBLE_TAP; | |||
} | |||
} else if (state->count == 3) { | |||
if (state->interrupted) { | |||
current_state = TRIPLE_SINGLE_TAP; | |||
} else if (state->pressed) { | |||
current_state = TRIPLE_HOLD; | |||
} else { | |||
current_state = TRIPLE_TAP; | |||
} | |||
} | |||
return current_state; | |||
} |
@ -1,98 +0,0 @@ | |||
//--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
// Single tap | Single hold | Double tap | Double hold | Triple tap | Triple hold // | |||
// Mod tap dances: // | | | | | // | |||
enum tap_dances { //--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
EQL_PLUS = 0, // = | | + | | | // | |||
// | | | | | // | |||
//--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
MINS_UNDS = 1, // - | | _ | | | // | |||
// | | | | | // | |||
//--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
SLSH_BSLS = 2, // / | | \ | | | // | |||
// | | | | | // | |||
//--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
GRV_TILD = 3, // ` | | ~ | | | // | |||
// | | | | | // | |||
//--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
QUOT_DQUO = 4, // ' | CTRL+ALT | " | | | // | |||
// | | | | | // | |||
//--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
SCLN_COLN = 5, // ; |ALT+SHIFT+META | : | | | // | |||
// | | | | | // | |||
//--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
ASTR_CIRC = 6, // * | | ^ | | | // | |||
// | | | | | // | |||
//--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
APMR_PIPE = 7, // & | | | | | | // | |||
// | | | | | // | |||
//--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
EXLM_QUES = 8, // ! | | ? | | | // | |||
// | | | | | // | |||
//--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
HASH_PERC = 9, // # | | % | | | // | |||
// | | | | | // | |||
//--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
AT_DLR = 10, // @ | | $ | | | // | |||
// | | | | | // | |||
//--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
LPRN_LBRC = 11, // ( | | [ | | | // | |||
// | | | | | // | |||
//--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
RPRN_RBRC = 12, // ) | | ] | | | // | |||
// | | | | | // | |||
//--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
LCBR_LABK = 13, // { | | < | | | // | |||
// | | | | | // | |||
//--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
RCBR_RABK = 14, // } | | > | | | // | |||
// | | | | | // | |||
//--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
DOT_COMM = 15, // . | CTRL+SHIFT | , | | | // | |||
// | | | | | // | |||
//--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
NONE_LEAD = 16, // NONE | ALT+SHIFT | LEAD | | | // | |||
// | | | | | // | |||
//--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
U_ARR_GUI = 17, // U | ARROWS | | GUI | | // | |||
// | | | | | // | |||
//--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
H_MOU_GUI = 18, // H | MOUSE | | GUI | | // | |||
// | | | | | // | |||
//--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
J_MED_MEH = 19, // J | MEDIA_FN | | MEH | | // | |||
// | | | | | // | |||
//--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
W_MED_MEH = 20, // W | MEDIA_FN | | MEH | | // | |||
// | | | | | // | |||
//--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
K_NUM_HYP = 21, // K | NUMPAD | | HYPER | | // | |||
// | | | | | // | |||
//--------------------------------------------------------------------------------------------// | |||
// | | | | | // | |||
M_CHO_HYP = 22, // M | CHORD | | HYPER | | // | |||
// | | | | | // | |||
//--------------------------------------------------------------------------------------------// | |||
}; |
@ -1,3 +0,0 @@ | |||
// void eeconfig_init_user(void) { | |||
// | |||
// }; |
@ -1,121 +0,0 @@ | |||
layer_state_t layer_state_set_user(layer_state_t state) { | |||
uint8_t layer = get_highest_layer(state); | |||
switch (layer) { | |||
case DVORAK: | |||
rgblight_sethsv_noeeprom(HSV_GREEN); | |||
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); | |||
if (PLOVER_MODE) { | |||
plover_toggle(); | |||
PLOVER_MODE = false; | |||
} | |||
break; | |||
case PLOVER: | |||
rgblight_sethsv_noeeprom(HSV_RED); | |||
rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3); | |||
if (!(PLOVER_MODE)) { | |||
plover_toggle(); | |||
PLOVER_MODE = true; | |||
} | |||
break; | |||
case GAMING: | |||
rgblight_sethsv_noeeprom(HSV_RED); | |||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | |||
if (PLOVER_MODE) { | |||
plover_toggle(); | |||
PLOVER_MODE = false; | |||
} | |||
break; | |||
case ARROWS: | |||
rgblight_sethsv_noeeprom(HSV_BLUE); | |||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | |||
if (PLOVER_MODE) { | |||
plover_toggle(); | |||
PLOVER_MODE = false; | |||
} | |||
break; | |||
case MOUSE: | |||
rgblight_sethsv_noeeprom(HSV_BLUE); | |||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | |||
if (PLOVER_MODE) { | |||
plover_toggle(); | |||
PLOVER_MODE = false; | |||
} | |||
break; | |||
case NUMPAD: | |||
rgblight_sethsv_noeeprom(HSV_BLUE); | |||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | |||
if (PLOVER_MODE) { | |||
plover_toggle(); | |||
PLOVER_MODE = false; | |||
} | |||
break; | |||
case LAYERS: | |||
rgblight_sethsv_noeeprom(HSV_CYAN); | |||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | |||
if (PLOVER_MODE) { | |||
plover_toggle(); | |||
PLOVER_MODE = false; | |||
} | |||
break; | |||
case MEDIA_FN: | |||
rgblight_sethsv_noeeprom(HSV_YELLOW); | |||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | |||
if (PLOVER_MODE) { | |||
plover_toggle(); | |||
PLOVER_MODE = false; | |||
} | |||
break; | |||
case CHORD: | |||
rgblight_sethsv_noeeprom(HSV_MAGENTA); | |||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | |||
if (PLOVER_MODE) { | |||
plover_toggle(); | |||
PLOVER_MODE = false; | |||
} | |||
break; | |||
case FIRMWARE: | |||
rgblight_sethsv_noeeprom(HSV_MAGENTA); | |||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | |||
if (PLOVER_MODE) { | |||
plover_toggle(); | |||
PLOVER_MODE = false; | |||
} | |||
break; | |||
default: | |||
break; | |||
} | |||
return state; | |||
} |
@ -1,20 +0,0 @@ | |||
bool MATRIX_SCANNED = false; | |||
void matrix_scan_user(void) { | |||
if (!(MATRIX_SCANNED)) { | |||
rgblight_sethsv_noeeprom(HSV_GREEN); | |||
MATRIX_SCANNED = true; | |||
} | |||
}; | |||
void leader_end_user(void) { | |||
if (leader_sequence_one_key(TD(APMR_PIPE))) { | |||
register_code(KC_LCTL); | |||
register_code(KC_LSFT); | |||
register_code(KC_U); | |||
unregister_code(KC_U); | |||
unregister_code(KC_LSFT); | |||
unregister_code(KC_LCTL); | |||
} | |||
} |
@ -1,75 +0,0 @@ | |||
// TODO: Improve this currently there is no feedback if activated by other means. | |||
bool CAPS_LOCK = false; | |||
bool NUM_LOCK = false; | |||
bool SCROLL_LOCK = false; | |||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
if (!process_record_dynamic_macro(keycode, record)) { | |||
return false; | |||
} | |||
switch (keycode) { | |||
case KC_CAPS_LOCK: | |||
if (record->event.pressed) { | |||
if (!(CAPS_LOCK)) { | |||
ergodox_right_led_1_on(); | |||
CAPS_LOCK = true; | |||
} else { | |||
ergodox_right_led_1_off(); | |||
CAPS_LOCK = false; | |||
} | |||
} | |||
return true; | |||
case KC_NUM_LOCK: | |||
if (record->event.pressed) { | |||
if (!(NUM_LOCK)) { | |||
ergodox_right_led_2_on(); | |||
NUM_LOCK = true; | |||
} else { | |||
ergodox_right_led_2_off(); | |||
NUM_LOCK = false; | |||
} | |||
} | |||
return true; | |||
case KC_SCROLL_LOCK: | |||
if (record->event.pressed) { | |||
if (!(SCROLL_LOCK)) { | |||
ergodox_right_led_3_on(); | |||
SCROLL_LOCK = true; | |||
} else { | |||
ergodox_right_led_3_off(); | |||
SCROLL_LOCK = false; | |||
} | |||
} | |||
return true; | |||
case KC_MS_WH_UP ... KC_MS_WH_RIGHT: | |||
if (record->event.pressed) { | |||
if (SCROLL_LOCK) { | |||
return false; | |||
} else { | |||
return true; | |||
} | |||
} | |||
case MY_CUSTOM_MACRO: | |||
if (record->event.pressed) { | |||
SEND_STRING("QMK is the best thing ever!"); // this is our macro! | |||
return false; | |||
} | |||
case MY_OTHER_MACRO: | |||
if (record->event.pressed) { | |||
SEND_STRING(SS_LCTL("ac")); // selects all and copies | |||
return false; | |||
} | |||
default: | |||
return true; | |||
} | |||
} |
@ -1,38 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
// lshift split, backspace split, full ANSI enter, full right shift | |||
#define LAYOUT_BZIO( \ | |||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49, \ | |||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ | |||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ | |||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ | |||
K40, K41, K42, K45, K4A, K4B, K4C, K4D \ | |||
) { \ | |||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ | |||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ | |||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D }, \ | |||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D }, \ | |||
{ K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, K4B, K4C, K4D } \ | |||
} | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* 0: HHKB with hyper key where ctrl used to be, and right half of left | |||
shift used as a key lock */ | |||
LAYOUT_BZIO( | |||
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_BSLS, KC_GRV, | |||
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_BSPC, | |||
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, QK_LOCK, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, | |||
KC_HYPR, KC_LGUI, KC_LALT, LT(1, KC_SPC), KC_RALT, KC_RGUI, KC_APP, KC_RCTL), | |||
/* 1: spacefn with WASD arrows/navigation block and extra space key for | |||
realignment of source code, plus IJKL mouse arrows, volume up/down in <>, | |||
and caps lock where it used to be */ | |||
LAYOUT_BZIO( | |||
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_TRNS, KC_TRNS, | |||
KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_INSERT, KC_MS_BTN2, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, | |||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_DELETE, KC_MS_BTN1, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_HOME, KC_SPC, KC_END, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | |||
}; |
@ -1 +0,0 @@ | |||
KEY_LOCK_ENABLE = yes |
@ -1,96 +0,0 @@ | |||
# [dragonchasers](https://github.com/dragonchaser) GH60 layout | |||
Layout derived from the default GH60 keymap. | |||
![Photo of the keyboard](https://pbs.twimg.com/media/DQzlD0yX0AA8spX.jpg) | |||
## Layers | |||
### Base Layer | |||
``` | |||
,-----------------------------------------------------------. | |||
|Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | | |||
|-----------------------------------------------------------| | |||
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | | |||
|-----------------------------------------------------------| | |||
|FN | A| S| D| F| G| H| J| K| L| ;| '|Return | | |||
|-----------------------------------------------------------| | |||
|Shift | Z| X| C| V| B| N| M| ,| .| /| Up |FN | | |||
|-----------------------------------------------------------| | |||
|Ctrl|Gui |Alt | Space |Alt |Left |Down|Right| | |||
`-----------------------------------------------------------' | |||
Note: right FN triggers function layer, | |||
left FN(CAPS) is a one-shot button for the macro layer | |||
``` | |||
### Function Layer | |||
``` | |||
,-----------------------------------------------------------. | |||
|GRV|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| DEL | | |||
|-----------------------------------------------------------| | |||
| MB3|MB2|MUP|MB1|MWU| | | |INS| |RST| | |Print| | |||
|-----------------------------------------------------------| | |||
| | ML|MDN|MR |MWD| | | | | | | | | |||
|-----------------------------------------------------------| | |||
|CAPS | | | | | | | | | | |PGUP| | | |||
|-----------------------------------------------------------| | |||
| | | | |Ctrl|HOME|PGD |END | | |||
`-----------------------------------------------------------' | |||
``` | |||
### Macro Layer | |||
``` | |||
,-----------------------------------------------------------. | |||
|DEF| |DUE| | | | | | | | | |GAM| ARR| | |||
|-----------------------------------------------------------| | |||
| |MAG|CLO|DUT|RBS|TIG| | | |COU|PSH| | | | | |||
|-----------------------------------------------------------| | |||
| |ADD|STS|DFF|FTC|PLL| | |LOG| | | | | |||
|-----------------------------------------------------------| | |||
| | | |COM| |BRN| | | | |MUT|VOL+|PLPA| | |||
|-----------------------------------------------------------| | |||
| | | | |APP |PREV|VOL-|NEXT| | |||
`-----------------------------------------------------------' | |||
Abbreviations: | |||
-------------- | |||
DEF - return to default layer | |||
DUE - enable git duet mode | |||
GAM - backlight WASD | |||
ARR - backlight arrows | |||
- | |||
MAG - git submodule sync --recursive \ | |||
&& git submodule update --init --recursive \ | |||
&& git submodule foreach --recursive "git co . \ | |||
&& git reset --hard && git clean -dffx" | |||
CLO - git clone | |||
DUT - git duet (when in duet mode) | |||
RBS - git rebase | |||
TIG - tig | |||
COU - git checkout | |||
PSH - git push | |||
- | |||
ADD - git add | |||
STS - git status | |||
DFF - git diff | |||
FTC - git fetch | |||
PLL - git pull | |||
LOG - git log | |||
- | |||
COM - git commit (or git duet commit if in duet mode) | |||
BRN - git branch | |||
MUT - audio mute | |||
VOL+ - increase volume | |||
PLPA - play/pause | |||
- | |||
APP - application (windows menu key) | |||
PREV - previous song | |||
VOL- - decrease volume | |||
NEXT - next song | |||
Note: git commands are SEND_STRING macros sent to the | |||
currently focused window Make sure it is your terminal :) | |||
``` | |||
**NOTE:** an outdated version of this keymap is also present for the Satan keyboard, which is no longer maintained since I could not get my hands on a properly working PCB. |
@ -1,328 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
#include <util/delay.h> | |||
extern keymap_config_t keymap_config; | |||
// Each layer gets a name for readability, which is then used in the keymap matrix below. | |||
// The underscores don't mean anything - you can have a layer called STUFF or any other name. | |||
// Layer names don't all need to be of the same length, obviously, and you can also skip them | |||
// entirely and just use numbers. | |||
#define _QW 0 | |||
#define _FL 1 | |||
#define _MC 2 | |||
bool git_duet = false; | |||
bool backlight_arrows = false; | |||
bool backlight_gaming = false; | |||
enum custom_keycodes { | |||
/* GIT related keycodes */ | |||
G_ADD = SAFE_RANGE, G_BRN, G_COM, G_COU, G_CLO, | |||
G_DFF, G_DUE, G_DUT, G_FTC, G_LOG, G_MAG, G_MRG, | |||
G_MRT, G_PSH, G_PLL, G_RBS, G_STH, G_STS, G_TIG, | |||
/* Multi-media related keycodes */ | |||
A_MUTE, A_NEXT, A_PLPA, A_PREV, A_VOUP, A_VDWN, | |||
/* System related shortcuts */ | |||
F_BTN, M_WAPP, K_ARR, K_WASD, | |||
}; | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* | |||
* ,-----------------------------------------------------------. | |||
* |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | | |||
* |-----------------------------------------------------------| | |||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | | |||
* |-----------------------------------------------------------| | |||
* |FN | A| S| D| F| G| H| J| K| L| ;| '|Return | | |||
* |-----------------------------------------------------------| | |||
* |Shift | Z| X| C| V| B| N| M| ,| .| /| FN |Up | | |||
* |-----------------------------------------------------------| | |||
* |Ctrl|Gui |Alt | Space |Alt |Left |Down|Right| | |||
* `-----------------------------------------------------------' | |||
* | |||
* Note: right FN triggers function layer, | |||
* left FN is a one-shot button for the macro layer | |||
*/ | |||
/* Layer 0: Qwerty */ | |||
[_QW] = LAYOUT_60_ansi_split_rshift( | |||
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_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, | |||
OSL(_MC), 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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, F_BTN, KC_UP, | |||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT | |||
), | |||
/* | |||
* ,-----------------------------------------------------------. | |||
* |GRV|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| DEL | | |||
* |-----------------------------------------------------------| | |||
* | MB3|MB2|MUP|MB1|MWU| | | |INS| |RST| | |Print| | |||
* |-----------------------------------------------------------| | |||
* | | ML|MDN|MR |MWD| | | | | | | | | |||
* |-----------------------------------------------------------| | |||
* |CAPS | | | | | | | | | | |PGUP| | | |||
* |-----------------------------------------------------------| | |||
* | | | | |Ctrl|HOME|PGD |END | | |||
* `-----------------------------------------------------------' | |||
*/ | |||
/* Layer 1: Functions */ | |||
[_FL] = LAYOUT_60_ansi_split_rshift( | |||
KC_GRV, 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_DEL, | |||
KC_BTN3, KC_BTN2, KC_MS_U, KC_BTN1, KC_WH_U, _______, _______, _______, KC_INS, _______, QK_BOOT, _______, _______, KC_PSCR, | |||
KC_CAPS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, _______, _______, _______, _______, _______, _______, KC_TILD, | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, | |||
_______, _______, _______, _______, KC_RCTL, KC_HOME, KC_PGDN, KC_END | |||
), | |||
/* | |||
* ,-----------------------------------------------------------. | |||
* |DEF| |DUE| | | | | | | | | |GAM| ARR| | |||
* |-----------------------------------------------------------| | |||
* | |MAG|CLO|DUT|RBS|TIG|MRT| | |COU|PSH| | | | | |||
* |-----------------------------------------------------------| | |||
* | |ADD|STS|DFF|FTC|PLL|MRG| |STH|LOG| | | F_OFF| | |||
* |-----------------------------------------------------------| | |||
* | | | |COM| |BRN| | | | |MUT|VOL+|PLPA| | |||
* |-----------------------------------------------------------| | |||
* | | | | |APP |PREV|VOL-|NEXT| | |||
* `-----------------------------------------------------------' | |||
* | |||
* Abbreviations: | |||
* -------------- | |||
* DEF - return to default layer | |||
* DUE - enable git duet mode | |||
* CLO - git clone | |||
* DUT - git duet (when in duet mode) | |||
* RBS - git rebase | |||
* MAG - git submodule sync --recursive && git submodule update --init --recursive && git submodule foreach --recursive "git co . && git reset --hard && git clean -dffx" | |||
* TIG - tig | |||
* MRG - git merge | |||
* MRT - git mergetool | |||
* COU - git checkout | |||
* PSH - git push | |||
* ADD - git add | |||
* STS - git status | |||
* DFF - git diff | |||
* FTC - git fetch | |||
* PLL - git pull | |||
* STH - git stash | |||
* LOG - git log | |||
* COM - git commit (or git duet commit if in duet mode) | |||
* BRN - git branch | |||
* APP - application (windows menu key) | |||
* MUT - audio mute | |||
* VOL+ - increase volume | |||
* VOL- - decrease volume | |||
* PLPA - play/pause | |||
* PREV - previous song | |||
* NEXT - next song | |||
* ARR - backlight arrow keys | |||
* GAM - backlight WASD | |||
* | |||
* Note: git commands are SEND_STRING macros sent to the | |||
* currently focused window Make sure it is your terminal :) | |||
*/ | |||
/* Layer 2: Macros (Git & Multimedia) */ | |||
[_MC] = LAYOUT_60_ansi_split_rshift( | |||
TO(_QW), XXXXXXX, G_DUE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, K_WASD, K_ARR, | |||
XXXXXXX, G_MAG, G_CLO, G_DUT, G_RBS, G_TIG, G_MRT, XXXXXXX, XXXXXXX, G_COU, G_PSH, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, G_ADD, G_STS, G_DFF, G_FTC, G_PLL, G_MRG, XXXXXXX, G_STH, G_LOG, XXXXXXX, XXXXXXX, XXXXXXX, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, G_COM, XXXXXXX, G_BRN, XXXXXXX, XXXXXXX, XXXXXXX, A_MUTE, A_PLPA, A_VOUP, | |||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_WAPP, A_PREV, A_VDWN, A_NEXT | |||
), | |||
}; | |||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
if (record->event.pressed) { | |||
switch(keycode) { | |||
/* | |||
* Begin git layer | |||
*/ | |||
case G_ADD: | |||
SEND_STRING("git add "); | |||
layer_off(_MC); | |||
return false;break; | |||
case G_BRN: | |||
SEND_STRING("git branch\n"); | |||
layer_off(_MC); | |||
return false;break; | |||
case G_CLO: | |||
SEND_STRING("git clone "); | |||
layer_off(_MC); | |||
return false;break; | |||
case G_COM: | |||
if(git_duet) { | |||
SEND_STRING("git duet-commit "); | |||
} else { | |||
SEND_STRING("git commit "); | |||
} | |||
layer_off(_MC); | |||
return false;break; | |||
case G_COU: | |||
SEND_STRING("git checkout "); | |||
layer_off(_MC); | |||
return false;break; | |||
case G_DFF: | |||
SEND_STRING("git diff\n"); | |||
layer_off(_MC); | |||
return false;break; | |||
case G_DUE: | |||
git_duet = !git_duet; | |||
if(git_duet) { | |||
gh60_esc_led_on(); | |||
} else { | |||
gh60_esc_led_off(); | |||
} | |||
layer_off(_MC); | |||
return false;break; | |||
case G_DUT: | |||
if(git_duet) { | |||
SEND_STRING("git duet "); | |||
} | |||
layer_off(_MC); | |||
return false; break; | |||
case G_FTC: | |||
SEND_STRING("git fetch "); | |||
layer_off(_MC); | |||
return false;break; | |||
case G_LOG: | |||
SEND_STRING("git log --graph\n"); | |||
layer_off(_MC); | |||
return false;break; | |||
case G_MAG: | |||
// This is some git-magic to resync recursive submodule structures inside git projects (thx to https://github.com/jimmykarily) | |||
SEND_STRING("git submodule sync --recursive && git submodule update --init --recursive && git submodule foreach --recursive \" git co . && git reset --hard && git clean -dffx \" \n"); | |||
layer_off(_MC); | |||
return false; break; | |||
case G_MRG: | |||
SEND_STRING("git merge "); | |||
layer_off(_MC); | |||
return false;break; | |||
case G_MRT: | |||
SEND_STRING("git mergetool "); | |||
layer_off(_MC); | |||
return false;break; | |||
case G_PLL: | |||
SEND_STRING("git pull "); | |||
layer_off(_MC); | |||
return false;break; | |||
case G_PSH: | |||
SEND_STRING("git push "); | |||
layer_off(_MC); | |||
return false;break; | |||
case G_RBS: | |||
SEND_STRING("git rebase "); | |||
layer_off(_MC); | |||
return false;break; | |||
case G_STH: | |||
SEND_STRING("git stash "); | |||
layer_off(_MC); | |||
return false;break; | |||
case G_STS: | |||
SEND_STRING("git status\n"); | |||
layer_off(_MC); | |||
return false;break; | |||
case G_TIG: | |||
SEND_STRING("tig\n"); | |||
layer_off(_MC); | |||
return false;break; | |||
/* | |||
* End git layer | |||
*/ | |||
/* | |||
* Begin multimedia keys | |||
*/ | |||
case A_MUTE: | |||
register_code(KC_AUDIO_MUTE); | |||
unregister_code(KC_AUDIO_MUTE); | |||
layer_off(_MC); | |||
return false;break; | |||
case A_PLPA: | |||
register_code(KC_MEDIA_PLAY_PAUSE); | |||
unregister_code(KC_MEDIA_PLAY_PAUSE); | |||
layer_off(_MC); | |||
return false;break; | |||
case A_VOUP: | |||
register_code(KC_AUDIO_VOL_UP); | |||
return false;break; | |||
case A_VDWN: | |||
register_code(KC_AUDIO_VOL_DOWN); | |||
return false;break; | |||
case A_PREV: | |||
register_code(KC_MEDIA_PREV_TRACK); | |||
unregister_code(KC_MEDIA_PREV_TRACK); | |||
layer_off(_MC); | |||
return false;break; | |||
case A_NEXT: | |||
register_code(KC_MEDIA_NEXT_TRACK); | |||
unregister_code(KC_MEDIA_NEXT_TRACK); | |||
layer_off(_MC); | |||
return false;break; | |||
/* | |||
* End multimedia keys | |||
*/ | |||
// Tap dance to get the app button mapped | |||
case M_WAPP: | |||
register_code(KC_APP); | |||
unregister_code(KC_APP); | |||
layer_off(_MC); | |||
return false;break; | |||
/* | |||
* Begin multimedia keys | |||
*/ | |||
case K_ARR: | |||
backlight_arrows = !backlight_arrows; | |||
if(backlight_arrows) { | |||
gh60_poker_leds_on(); | |||
} else { | |||
gh60_poker_leds_off(); | |||
} | |||
layer_off(_MC); | |||
return false;break; | |||
case K_WASD: | |||
backlight_gaming = !backlight_gaming; | |||
if(backlight_gaming) { | |||
gh60_wasd_leds_on(); | |||
} else { | |||
gh60_wasd_leds_off(); | |||
} | |||
layer_off(_MC); | |||
return false; break; | |||
case F_BTN: | |||
gh60_fn_led_on(); | |||
layer_on(_FL); | |||
return false;break; | |||
} | |||
/* | |||
* End multimedia keys | |||
*/ | |||
} else { | |||
switch(keycode) { | |||
/* | |||
* Oneshots that will switch back to the default layer on KEY_UP | |||
*/ | |||
case A_VOUP: | |||
unregister_code(KC_AUDIO_VOL_UP); | |||
layer_off(_MC); | |||
return false;break; | |||
case A_VDWN: | |||
unregister_code(KC_AUDIO_VOL_DOWN); | |||
layer_off(_MC); | |||
return false;break; | |||
case F_BTN: | |||
layer_off(_FL); | |||
gh60_fn_led_off(); | |||
return false;break; | |||
} | |||
} | |||
return true; | |||
}; |
@ -1,78 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
#define _DEFAULT 0 | |||
#define _FN 1 | |||
enum custom_keycodes { | |||
LED_TOGGLE = SAFE_RANGE | |||
}; | |||
int esc_led = 0; | |||
// Fillers to make layering more clear | |||
#define ______ KC_TRNS | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* Qwerty gui/alt/space/alt/gui | |||
* ,-----------------------------------------------------------------------------------------. | |||
* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | Enter | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* |LGUI | LAlt | Space | RAlt |RGUI | | |||
* `-----------------------------------------------------------------' | |||
*/ | |||
[_DEFAULT] = LAYOUT_60_ansi_split_bs_rshift( /* Basic QWERTY */ | |||
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_BSLS, KC_GRV, | |||
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_BSPC, | |||
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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), | |||
______, KC_LGUI, KC_LALT, KC_SPC, ______, KC_RALT, KC_RGUI, ______ | |||
), | |||
/* FN Layer | |||
* ,-----------------------------------------------------------------------------------------. | |||
* | Led | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | CAPS | | | | | | | | Psc | Slck| Paus| Up | | | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | | Vol-| Vol+| Mute| | | * | / | Home| PgUp| Left|Right| | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | | Prev| Play| Next| | | + | - | End |PgDn| Down| | | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | | | | Stop | | | |||
* `-----------------------------------------------------------------' | |||
*/ | |||
[_FN] = LAYOUT_60_ansi_split_bs_rshift( /* Layer 1 */ | |||
LED_TOGGLE,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_INS, KC_DEL, | |||
KC_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, ______, ______, | |||
______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT,______, | |||
______, KC_MPRV, KC_MPLY, KC_MNXT, ______, ______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, ______, ______, | |||
______, ______, ______, ______, ______, KC_MSTP, ______, ______ | |||
) | |||
}; | |||
void esc_led_toggle(void) { | |||
if (esc_led == 0){ | |||
esc_led = 1; | |||
gh60_esc_led_on(); | |||
} else { | |||
esc_led = 0; | |||
gh60_esc_led_off(); | |||
} | |||
} | |||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
switch (keycode) { | |||
case LED_TOGGLE: | |||
if (record->event.pressed) { | |||
esc_led_toggle(); | |||
} | |||
return false; | |||
} | |||
return true; | |||
} |
@ -1 +0,0 @@ | |||
SLEEP_LED_ENABLE = yes |
@ -1,48 +0,0 @@ | |||
/* Copyright 2018 Funderburker | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation, either version 2 of the License, or | |||
* (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
#include QMK_KEYBOARD_H | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* | |||
ISO HHKB layout: | |||
* 2u Backspace | |||
* ISO Enter | |||
* split left Shift | |||
* split right Shift | |||
* Caps as Control | |||
* 1u/1.5u/7u/1.5u//1u bottom row | |||
*/ | |||
/* 0: QWERTY */ | |||
[0] = LAYOUT( | |||
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_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_NO, | |||
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_BSLS, KC_ENT, | |||
KC_LSFT, KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(1), KC_RSFT, | |||
KC_NO, KC_LALT, KC_LGUI, KC_SPC, KC_NO, KC_NO, KC_RALT, KC_CAPS, KC_NO | |||
), | |||
/* 1: Fn layer */ | |||
[1] = LAYOUT( | |||
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_DEL, | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, KC_UP, _______, _______, | |||
_______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, KC_PGUP, KC_LEFT, KC_RGHT, _______, _______, | |||
_______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_DOWN, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______ | |||
), | |||
}; |
@ -1,34 +0,0 @@ | |||
/* | |||
Copyright 2012 Jun Wako <wakojun@gmail.com> | |||
This program is free software: you can redistribute it and/or modify | |||
it under the terms of the GNU General Public License as published by | |||
the Free Software Foundation, either version 2 of the License, or | |||
(at your option) any later version. | |||
This program is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
GNU General Public License for more details. | |||
You should have received a copy of the GNU General Public License | |||
along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
#pragma once | |||
#define WS2812_DI_PIN F4 | |||
#define RGBLED_NUM 8 | |||
#define RGBLIGHT_EFFECT_BREATHING | |||
#define RGBLIGHT_EFFECT_RAINBOW_MOOD | |||
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL | |||
#define RGBLIGHT_EFFECT_SNAKE | |||
#define RGBLIGHT_EFFECT_KNIGHT | |||
#define RGBLIGHT_EFFECT_CHRISTMAS | |||
#define RGBLIGHT_EFFECT_STATIC_GRADIENT | |||
#define RGBLIGHT_EFFECT_RGB_TEST | |||
#define RGBLIGHT_EFFECT_ALTERNATING | |||
#define RGBLIGHT_EFFECT_TWINKLE | |||
#define RGBLIGHT_HUE_STEP 8 | |||
#define RGBLIGHT_SAT_STEP 8 | |||
#define RGBLIGHT_VAL_STEP 8 |
@ -1,112 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
#define _BL 0 | |||
#define _AL 1 | |||
#define _FL 2 | |||
#define _UL 3 | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* | |||
* Base layer, pretty standard ANSI layout. | |||
* ,-----------------------------------------------------------. | |||
* |F(12)| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | | |||
* |-----------------------------------------------------------| | |||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | |||
* |-----------------------------------------------------------| | |||
* |Caps/Fn| A| S| D| F| G| H| J| K| L| ;| '|Return | | |||
* |-----------------------------------------------------------| | |||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | |||
* |-----------------------------------------------------------| | |||
* |Ctrl|Gui |Alt | Space |Alt |Fn |Menu|Ctrl| | |||
* `-----------------------------------------------------------' | |||
*/ | |||
[_BL] = LAYOUT( | |||
QK_GESC,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_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, | |||
LT(2, 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_NO,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_NO,KC_RSFT, | |||
KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_NO,KC_RALT,MO(2),KC_APP,KC_RCTL), | |||
/* | |||
* Locking arrow keys to WASD for when you need dedicated arrow keys | |||
* ,-----------------------------------------------------------. | |||
* | | | | | | | | | | | | | | | | |||
* |-----------------------------------------------------------| | |||
* | | |Up | | | | | | | | | | | | | |||
* |-----------------------------------------------------------| | |||
* | |Left|Down|Rght| | | | | | | | | | | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | | | | | | | | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | | | | |||
* `-----------------------------------------------------------' | |||
*/ | |||
[_AL] = LAYOUT( | |||
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_UP,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_LEFT,KC_DOWN,KC_RGHT,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,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), | |||
/* | |||
* Primary function layer, mostly the same as the traditional Pok3r layout. | |||
* ,-------------------------------------------------------------. | |||
* |`~ | F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12|DEL | | |||
* |-------------------------------------------------------------| | |||
* | |_AL| | | | |Calc|PgUp|Up|PgDn|Ptscn|Srlck|Pause| | | |||
* |-------------------------------------------------------------| | |||
* | | | | | | |Home|Left|Down|Rght|Ins| | | | |||
* |-------------------------------------------------------------| | |||
* | |_UL| | | | | | | | | | | | |||
* |-------------------------------------------------------------| | |||
* | | | | | | | | | | |||
* `-------------------------------------------------------------' | |||
*/ | |||
[_FL] = LAYOUT( | |||
KC_GRAVE,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_DELETE, | |||
KC_TRNS,TG(1),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_CALC,KC_PGUP,KC_UP,KC_PGDN,KC_PSCR,KC_SCRL,KC_PAUS,KC_TRNS, | |||
KC_TRNS,KC_MUTE,KC_VOLD,KC_VOLU,KC_TRNS,KC_TRNS,KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_INS,KC_TRNS,KC_TRNS,KC_TRNS, | |||
KC_TRNS,KC_TRNS,TG(3),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_END,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), | |||
/* | |||
* Locking layer for controlling the underglow. | |||
* | |||
* ,-----------------------------------------------------------. | |||
* | | | | | | | | | | | | | | | | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | | | | | | | | | | |||
* |-----------------------------------------------------------| | |||
* | |On|Mode| | | | | | | | | | | | |||
* |-----------------------------------------------------------| | |||
* | | |Hue+|Hue-|Sat+|Sat-|Val+|Val-| | | | | | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | | | | |||
* `-----------------------------------------------------------' | |||
*/ | |||
[_UL] = LAYOUT( | |||
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,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, | |||
KC_TRNS,RGB_TOG,RGB_MOD,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,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,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), | |||
}; | |||
void matrix_scan_user(void) { | |||
// Layer LED indicators | |||
// ESC led on when in function layer, WASD cluster leds enabled when on arrow cluster | |||
layer_state_t layer = layer_state; | |||
if (layer & (1<<1)) { | |||
gh60_wasd_leds_on(); | |||
} else { | |||
gh60_wasd_leds_off(); | |||
} | |||
if (layer & (1<<2)) { | |||
gh60_esc_led_on(); | |||
} else { | |||
gh60_esc_led_off(); | |||
} | |||
}; |
@ -1,16 +0,0 @@ | |||
robotmaxtron's GH60 Layout | |||
===================== | |||
##Quantum MK Firmware | |||
For the full Quantum feature list, see the parent readme.md. | |||
* Standard ANSI layout with Pok3r styled function layers | |||
* ESC key led enables when on function layer | |||
* Lockable layer with arrow keys on WASD with backlighting to indicate locked on arrow layer | |||
* Neopixel/WS2812 RGB Underglow Support | |||
## Reference Images | |||
![Wiring Refererence](https://i.imgur.com/BkJ39JD.jpg) | |||
### Additional Credits | |||
Keymap has been based on various keymaps available from the QMK Repo for the GH60-SATAN and KC60 keyboards. |
@ -1 +0,0 @@ | |||
RGBLIGHT_ENABLE = yes |
@ -1,18 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* 0: qwerty */ | |||
LAYOUT_60_ansi_split_bs_rshift( | |||
QK_GESC,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_BSLS,KC_GRV, | |||
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_BSPC, | |||
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_Z,KC_X,KC_C,KC_V,KC_B,KC_N,KC_M,KC_COMM,KC_DOT,KC_SLSH,KC_RSFT,MO(1), | |||
KC_LCTL,KC_LALT,KC_LGUI, KC_SPC, KC_RGUI,KC_RALT,KC_APP,KC_RCTL), | |||
/* 1: fn */ | |||
LAYOUT_60_ansi_split_bs_rshift( | |||
KC_GRV,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_TRNS, | |||
KC_CAPS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_UP,KC_TRNS,KC_TRNS, | |||
KC_TRNS,KC_VOLD,KC_VOLU,KC_MUTE,KC_TRNS,KC_TRNS,KC_PAST,KC_PSLS,KC_HOME,KC_PGUP,KC_LEFT,KC_RIGHT,KC_PENT, | |||
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PPLS,KC_PMNS,KC_END,KC_PGDN,KC_DOWN,KC_TRNS,KC_TRNS, | |||
KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS), | |||
}; |
@ -1,196 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
#include "rgblight.h" | |||
#define _DEFAULT 0 | |||
#define _FN 1 | |||
#define _VIM 10 | |||
#define _VIM_SHIFT 11 | |||
#define _VIM_CONTROL 12 | |||
enum custom_keycodes { | |||
DYNAMIC_MACRO_RANGE = SAFE_RANGE, | |||
a_MACRO, | |||
A_MACRO, | |||
I_MACRO, | |||
O_MACRO, | |||
}; | |||
#define KC_PREV_WORD LCTL(KC_LEFT) | |||
#define KC_NEXT_WORD LCTL(KC_RIGHT) | |||
#define KC_UNDO LCTL(KC_Z) | |||
#define KC_CUT LCTL(KC_X) | |||
#define KC_COPY LCTL(KC_C) | |||
#define KC_PASTE LCTL(KC_V) | |||
#include "dynamic_macro.h" | |||
static uint8_t old_layer = 0; | |||
// Fillers to make layering more clear | |||
#define ______ KC_TRNS | |||
#define XXXXXX KC_NO | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* Qwerty gui/alt/space/alt/gui | |||
* ,-----------------------------------------------------------------------------------------. | |||
* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | Enter | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | VIM | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | FN | LAlt | Space | RAlt |RGUI | | |||
* `-----------------------------------------------------------------' | |||
*/ | |||
[_DEFAULT] = LAYOUT_60_ansi_split_bs_rshift( /* Basic QWERTY */ | |||
QK_GESC , 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_BSLS , KC_GRV , | |||
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_BSPC , | |||
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_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_RSFT , TO(_VIM) , | |||
______ , MO(_FN) , KC_LALT , KC_SPC , KC_RALT , KC_RGUI , ______ , ______ | |||
), | |||
/* FN Layer | |||
* ,-----------------------------------------------------------------------------------------. | |||
* |GRAVE| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | CAPS | Vol-| Mute| Vol+|MAC+ |MAC |MAC- | PgUp| Home| |Print| Up | | Del | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | Ctrl | End | | PgDn| | | Left| Down| Up |Right| Left|Right| Enter | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | Shift | Prev| Play| Next| BL- | BL | BL+ | | | | Down| RShift | DEF | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | | LAlt | Space | RAlt | Reset | | |||
* `-----------------------------------------------------------------' | |||
*/ | |||
[_FN] = LAYOUT_60_ansi_split_bs_rshift( /* Layer 2 */ | |||
KC_GRAVE , 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_INS , KC_DEL , | |||
KC_CAPS , KC_VOLD , KC_MUTE , KC_VOLU , DM_REC1 , DM_PLY1 , DM_RSTP , KC_PGUP , KC_HOME , ______ , KC_PSCR , KC_UP , ______ , KC_DEL , | |||
KC_LCTL , KC_END , ______ , KC_PGDN , ______ , ______ , KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT , KC_LEFT , KC_RGHT , KC_ENT , | |||
KC_LSFT , KC_MPRV , KC_MPLY , KC_MNXT , BL_DOWN , BL_TOGG , BL_UP , ______ , ______ , ______ , KC_DOWN , KC_RSFT , TO(_DEFAULT) , | |||
______ , ______ , KC_LALT , KC_SPC , KC_RALT , QK_BOOT , ______ , ______ | |||
), | |||
/* VIM Layer | |||
* ,-----------------------------------------------------------------------------------------. | |||
* | DEF | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | | | WORD| WORD| | | COPY| UNDO| DEF |ENTER|PASTE| | | Del | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | V_Ctrl |a_ins| | | | | Left| Down| Up |Right| | | Enter | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | V_Shift | | | | | PREV| | | | | | RShift | Def | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | | LAlt | Space | RAlt | | | |||
* `-----------------------------------------------------------------' | |||
*/ | |||
[_VIM] = LAYOUT_60_ansi_split_bs_rshift( /* Layer 10 */ | |||
TO(_DEFAULT) , 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_BSLS , KC_GRV , | |||
XXXXXX , XXXXXX , KC_NEXT_WORD , KC_NEXT_WORD , XXXXXX , XXXXXX , KC_COPY , KC_UNDO , TO(_DEFAULT) , KC_ENTER , KC_PASTE , XXXXXX , XXXXXX , KC_DEL , | |||
MO(_VIM_CONTROL) , a_MACRO , XXXXXX , XXXXXX , XXXXXX , XXXXXX , KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT , XXXXXX , XXXXXX , KC_ENTER , | |||
MO(_VIM_SHIFT) , XXXXXX , XXXXXX , XXXXXX , XXXXXX , KC_PREV_WORD , XXXXXX , XXXXXX , XXXXXX , XXXXXX , XXXXXX , KC_RSFT , TO(_DEFAULT) , | |||
XXXXXX , XXXXXX , KC_LALT , KC_SPC , KC_RALT , XXXXXX , XXXXXX , XXXXXX | |||
), | |||
/* VIM Layer | |||
* ,-----------------------------------------------------------------------------------------. | |||
* | DEF | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | | | WORD| WORD| | | | |I_ins|ENTER| | | | Del | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | |A_ins| | | | | Left| Down| Up |Right| | | Enter | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | | | | | | PREV| | | | | | RShift | Def | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | | LAlt | Space | RAlt | | | |||
* `-----------------------------------------------------------------' | |||
*/ | |||
[_VIM_SHIFT] = LAYOUT_60_ansi_split_bs_rshift( /* Layer 11 */ | |||
TO(_DEFAULT) , 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_BSLS , KC_GRV , | |||
XXXXXX , XXXXXX , KC_NEXT_WORD , KC_NEXT_WORD , XXXXXX , XXXXXX , XXXXXX , XXXXXX , I_MACRO , O_MACRO , XXXXXX , XXXXXX , XXXXXX , KC_DEL , | |||
XXXXXX , A_MACRO , XXXXXX , KC_PGDN , XXXXXX , XXXXXX , KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT , XXXXXX , XXXXXX , KC_ENTER , | |||
XXXXXX , XXXXXX , XXXXXX , XXXXXX , XXXXXX , KC_PREV_WORD , XXXXXX , XXXXXX , XXXXXX , XXXXXX , XXXXXX , KC_RSFT , TO(_DEFAULT) , | |||
XXXXXX , XXXXXX , KC_LALT , KC_SPC , KC_RALT , QK_BOOT , XXXXXX , XXXXXX | |||
), | |||
/* FN Layer | |||
* ,-----------------------------------------------------------------------------------------. | |||
* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | | Vol-| Mute| Vol+| | | | PgUp| Ins | |Print| Up | | Del | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | Ctrl | App | | PgDn| | | Left| Down| Up |Right| Left|Right| Enter | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | Shift | Prev| Play| Next| BL- | BL | BL+ | | | | Down| RShift | Def | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | | LAlt | Space | RAlt | Reset | | |||
* `-----------------------------------------------------------------' | |||
*/ | |||
[_VIM_CONTROL] = LAYOUT_60_ansi_split_bs_rshift( /* Layer 12 */ | |||
TO(_DEFAULT) , 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_BSLS , KC_GRV , | |||
XXXXXX , XXXXXX , KC_NEXT_WORD , KC_NEXT_WORD , XXXXXX , XXXXXX , XXXXXX , XXXXXX , I_MACRO , O_MACRO , XXXXXX , XXXXXX , XXXXXX , KC_DEL , | |||
XXXXXX , A_MACRO , XXXXXX , KC_PGDN , XXXXXX , XXXXXX , KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT , XXXXXX , XXXXXX , KC_ENTER , | |||
XXXXXX , XXXXXX , XXXXXX , XXXXXX , XXXXXX , KC_PREV_WORD , XXXXXX , XXXXXX , XXXXXX , XXXXXX , XXXXXX , KC_RSFT , TO(_DEFAULT) , | |||
XXXXXX , XXXXXX , KC_LALT , KC_SPC , KC_RALT , QK_BOOT , XXXXXX , XXXXXX | |||
) , | |||
}; | |||
void persistent_default_layer_set(uint16_t default_layer) { | |||
eeconfig_update_default_layer(default_layer); | |||
default_layer_set(default_layer); | |||
} | |||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
if (!process_record_dynamic_macro(keycode, record)) { | |||
return false; | |||
} | |||
if (record->event.pressed) { | |||
switch(keycode) { | |||
case a_MACRO: | |||
SEND_STRING(SS_TAP(X_RIGHT)); | |||
layer_off(_VIM); | |||
return false; | |||
break; | |||
case A_MACRO: | |||
SEND_STRING(SS_TAP(X_END)); | |||
layer_off(_VIM_SHIFT); | |||
layer_off(_VIM); | |||
return false; | |||
break; | |||
case I_MACRO: | |||
SEND_STRING(SS_TAP(X_HOME)); | |||
layer_off(_VIM_SHIFT); | |||
layer_off(_VIM); | |||
return false; | |||
break; | |||
case O_MACRO: | |||
SEND_STRING(SS_TAP(X_ENTER)); | |||
layer_off(_VIM_SHIFT); | |||
layer_off(_VIM); | |||
return false; | |||
break; | |||
} | |||
} | |||
return true; | |||
} | |||
void matrix_scan_user(void) { | |||
uint8_t layer = get_highest_layer(layer_state); | |||
if (old_layer != layer) { | |||
switch (layer) { | |||
case _DEFAULT: | |||
case _FN: | |||
backlight_set(1); | |||
break; | |||
case _VIM: | |||
case _VIM_SHIFT: | |||
case _VIM_CONTROL: | |||
backlight_set(4); | |||
break; | |||
} | |||
old_layer = layer; | |||
} | |||
}; |
@ -1,13 +0,0 @@ | |||
# Addcninblue's HHKB-ish Layout | |||
Inspired by Dbroqua's layout | |||
[Layer 1](http://www.keyboard-layout-editor.com/#/gists/0e7798cb81c8f76baa5066ec1c34df8e): pretty standard layout. Shift + esc = ~, unlike normal hhkb. | |||
[Layer 2](http://www.keyboard-layout-editor.com/#/gists/096099221ac48d4d0c84a2b859bbb7c0): Vim-like layout. | |||
[Layer Vim](http://www.keyboard-layout-editor.com/#/gists/73b27b51c5e18d7999cc5fa39b4f3389) : vim layout until exit layout | |||
## Programming Instructions: | |||
Enter into programming mode and run the following command: | |||
``` | |||
$ sudo make satan:addcninblue:dfu | |||
``` |
@ -1,20 +0,0 @@ | |||
# Build Options | |||
# change to "no" to disable the options, or define them in the Makefile in | |||
# the appropriate keymap folder that will get included automatically | |||
# | |||
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite | |||
MOUSEKEY_ENABLE = no # Mouse keys(+4700) | |||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | |||
CONSOLE_ENABLE = no # Console for debug(+400) | |||
COMMAND_ENABLE = no # Commands for debug and configuration | |||
SLEEP_LED_ENABLE = no # Enables your LED to breathe while your computer is sleeping. | |||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ # nkro-doesnt-work | |||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality | |||
MIDI_ENABLE = no # MIDI controls | |||
AUDIO_ENABLE = no # Audio output on port C6 | |||
UNICODEMAP_ENABLE = no | |||
UNICODE_ENABLE = no # Unicode | |||
UCIS_ENABLE = no # Keep in mind that not all will work (See WinCompose for details on Windows). | |||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | |||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. | |||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend |
@ -1,8 +0,0 @@ | |||
#pragma once | |||
/*MOUSE CONFIG OPTIONS */ | |||
#define MOUSEKEY_INTERVAL 20 | |||
#define MOUSEKEY_DELAY 0 | |||
#define MOUSEKEY_TIME_TO_MAX 45 | |||
#define MOUSEKEY_MAX_SPEED 3 | |||
#define MOUSEKEY_WHEEL_DELAY 0 |
@ -1,127 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
#define BASE 0 // Default layer | |||
#define SPACE 1 // Space layer | |||
#define NUMPAD 2 // Alt layer | |||
#define CAPS 3 // Caps layer | |||
#define FN1 4 // Generic function layer | |||
#define MAC0 M(0) // | |||
#define MAC1 M(1) // | |||
#define MAC2 M(2) // | |||
#define MAC3 M(3) // | |||
#define MAC4 M(4) // | |||
#define MAC5 M(5) // | |||
#define MAC6 M(6) // | |||
#define MAC7 M(7) // | |||
#define MAC8 M(8) // | |||
#define MAC9 M(9) // | |||
#define GRAV KC_GRV // | |||
#define MEDI F(FNO1)// | |||
// General shortenings | |||
#define ESCA KC_ESC | |||
#define MINS KC_MINS | |||
#define EQUL KC_EQL | |||
#define BSPC KC_BSPC | |||
#define DELE KC_DEL | |||
#define LBRC KC_LBRC | |||
#define RBRC KC_RBRC | |||
#define ALTR KC_RALT | |||
#define SCLN KC_SCLN | |||
#define QUOT KC_QUOT | |||
#define NUHS KC_NUHS | |||
#define ENTE KC_ENT | |||
#define NUBS KC_NUBS // Less/ greater sign | |||
#define COMM KC_COMM // Comma | |||
#define FSTO KC_DOT // Full stop | |||
#define SLSH KC_SLSH | |||
#define ALTL KC_LALT | |||
#define GUIL KC_LGUI | |||
#define GUIR KC_RGUI | |||
#define MENO KC_MENU | |||
// Special Actions and Media Keys | |||
#define INSE KC_INS // Insert here | |||
#define HOME KC_HOME // Go to beginning of line | |||
#define ENDI KC_END // go to end of line | |||
#define PSCR KC_PSCR // Print Screen | |||
#define SLCK KC_SCRL // go to end of line | |||
#define PGDN KC_PGDN // go to end of line | |||
#define PGUP KC_PGUP // go to end of line | |||
#define PLPS KC_MPLY // Play/Pause | |||
#define PAUS KC_PAUS // Pause button | |||
#define MUTE KC_MUTE // Mute sound | |||
#define VOLU KC_VOLU // Volume increase | |||
#define VOLD KC_VOLD // Volume decrease | |||
#define MNXT KC_MNXT // next track | |||
#define MPRV KC_MPRV // prev track | |||
#define MSTP KC_MSTP // stop playing | |||
#define MSEL KC_MSEL // Select media (Start playing it) | |||
#define MAIL KC_MAIL // Open default mail app | |||
#define CALC KC_CALC // Open default calculator app | |||
#define MYCM KC_MYCM // Open default file manager | |||
// increase readability | |||
#define XXXXX KC_NO | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* Keymap BASE: (Base Layer) Default Layer | |||
* ,-----------------------------------------------------------. | |||
* |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | | |||
* |-----------------------------------------------------------| | |||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| R | | |||
* |-----------------------------------------------------------| | |||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '| # | R | | |||
* |-----------------------------------------------------------| | |||
* |Shft| \ | Z| X| C| V| B| N| M| ,| .| /|Shift | | |||
* |-----------------------------------------------------------| | |||
* |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl | | |||
* `-----------------------------------------------------------| | |||
*/ | |||
[BASE] = LAYOUT_60_iso( | |||
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_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, | |||
OSL(CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, | |||
SC_LSPO, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, | |||
KC_LCTL, KC_LGUI, KC_LALT, LT(SPACE, KC_SPC), KC_RALT, OSL(FN1), TG(NUMPAD), KC_RCTL | |||
), | |||
[SPACE] = LAYOUT_60_iso( | |||
KC_GRAVE, 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_DEL, | |||
_______, _______, _______, _______, MAIL, _______, _______, HOME, KC_UP, PSCR, SLCK, PAUS, PGUP, | |||
_______, _______, _______, PGUP, PGDN, _______, LALT(KC_F4), KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, | |||
_______, _______, _______, _______, CALC, _______, _______, _______, MUTE, VOLD, VOLU, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______ | |||
), | |||
[NUMPAD] = LAYOUT_60_iso( //Numpad and alt shortcuts | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______ | |||
), | |||
[CAPS] = LAYOUT_60_iso( //Mostly mouse layer with option for caps too | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||
_______, _______, KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, KC_MS_U, _______, _______, _______, _______, | |||
_______, KC_CAPS, _______, _______, KC_MS_BTN1, KC_MS_BTN2, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______ | |||
), | |||
[FN1] = LAYOUT_60_iso( //Functions/settings | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______ | |||
), | |||
}; | |||
@ -1,12 +0,0 @@ | |||
# UK ISO layout for the Satan GH60 | |||
## By Ben James | |||
----- | |||
This layout has a few unique features including: | |||
* Spacebar activates special features when held: | |||
* Arrow keys directly under right hand | |||
* Volume control | |||
* Fn keys on number row | |||
* PageUp/PageDn/Home/other general buttons | |||
* Mouse control when CAPS is held. Right hand controls mouse direction, left hand controls speed and mouse buttons. | |||
* Space cadet style brackets when left/right shift are tapped | |||
@ -1,18 +0,0 @@ | |||
# Build Options | |||
# change to "no" to disable the options, or define them in the Makefile in | |||
# the appropriate keymap folder that will get included automatically | |||
# | |||
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite | |||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700) | |||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | |||
CONSOLE_ENABLE = no # Console for debug(+400) | |||
COMMAND_ENABLE = yes # Commands for debug and configuration | |||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | |||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality | |||
MIDI_ENABLE = no # MIDI controls | |||
AUDIO_ENABLE = no # Audio output on port C6 | |||
UNICODE_ENABLE = no # Unicode | |||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | |||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. | |||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | |||
@ -1,68 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
#define _BL 0 | |||
#define _FL 1 | |||
#define _NAV 2 | |||
#define ALEFT LALT(KC_LEFT) | |||
#define ARGHT LALT(KC_RGHT) | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* Keymap _BL: (Base Layer) Default Layer | |||
* ,-----------------------------------------------------------. | |||
* |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | | |||
* |-----------------------------------------------------------| | |||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | | |||
* |-----------------------------------------------------------| | |||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return | | |||
* |-----------------------------------------------------------| | |||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | |||
* |-----------------------------------------------------------| | |||
* |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl | | |||
* `-----------------------------------------------------------' | |||
*/ | |||
[_BL] = LAYOUT_60_ansi( | |||
QK_GESC, 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_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, | |||
MO(2), 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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, | |||
KC_LCTL, KC_LALT,KC_LGUI, KC_SPC, KC_RGUI,KC_RALT, KC_RCTL, MO(_FL) ), | |||
/* Keymap _FL: Function Layer | |||
* ,-----------------------------------------------------------. | |||
* | | | | | | | | | | | | | | | | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | | | | | |BL-|BL+|BL | | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | | | | | | | | |||
* |-----------------------------------------------------------| | |||
* | | F1|F2 | F3|F4 | F5| F6| F7| F8| | | | | |||
* |-----------------------------------------------------------| | |||
* |QK_BOOT| | | | | | | | | |||
* `-----------------------------------------------------------' | |||
*/ | |||
[_FL] = LAYOUT_60_ansi( | |||
#ifdef RGBLIGHT_ENABLE | |||
KC_GRV , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10, KC_F11, KC_F12,_______, | |||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DOWN,BL_UP, BL_TOGG, | |||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, | |||
_______,RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,_______,_______,_______, | |||
QK_BOOT,_______,_______, _______, _______,_______,_______, _______ | |||
#else | |||
KC_GRV, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10, KC_F11, KC_F12,_______, | |||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DOWN,BL_UP, BL_TOGG, | |||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, | |||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, | |||
QK_BOOT,_______,_______, _______, _______,_______,_______,_______ | |||
#endif | |||
), | |||
[_NAV] = LAYOUT_60_ansi( | |||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, | |||
_______,_______,_______,_______,_______,_______,_______,ALEFT , KC_UP ,ARGHT ,_______,_______,_______,_______, | |||
_______,_______,_______,_______,_______,_______,_______,KC_LEFT,KC_DOWN,KC_RGHT,_______,_______, _______, | |||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, | |||
_______,_______,_______, _______, _______,_______,_______,_______), | |||
}; |
@ -1,2 +0,0 @@ | |||
#QWERTY keymap for Satan GH60 with layers for arrow keys, function keys, and backlight controls. | |||
#The layout of modifiers is intended to mimic the MacBook Air keyboard. |
@ -1,49 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
// Each layer gets a name for readability, which is then used in the keymap matrix below. | |||
// The underscores don't mean anything - you can have a layer called STUFF or any other name. | |||
// Layer names don't all need to be of the same length, obviously, and you can also skip them | |||
// entirely and just use numbers. | |||
#define _BL 0 | |||
#define _FL 1 | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* Keymap _BL: (Base Layer) Default Layer | |||
* ,-----------------------------------------------------------. | |||
* |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | | |||
* |-----------------------------------------------------------| | |||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | | |||
* |-----------------------------------------------------------| | |||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return | | |||
* |-----------------------------------------------------------| | |||
* |Shift | Z| X| C| V| B| N| M| ,| .| /| Up |FN | | |||
* |-----------------------------------------------------------| | |||
* |Ctrl|Gui |Alt | Space |Alt |Left |Down|Right| | |||
* `-----------------------------------------------------------' | |||
*/ | |||
[_BL] = LAYOUT_all( | |||
QK_GESC ,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_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_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_LSFT ,_______,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_UP ,MO(_FL) , | |||
KC_LCTL ,KC_LGUI,KC_LALT, KC_SPC ,KC_RALT,KC_LEFT,KC_DOWN,KC_RIGHT), | |||
/* Keymap _FL: Function Layer | |||
* ,-----------------------------------------------------------. | |||
* |GRV|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| DEL | | |||
* |-----------------------------------------------------------| | |||
* | MB3|MB2|MUP|MB1|MWU| | | |INS| |RST| | |Print| | |||
* |-----------------------------------------------------------| | |||
* | | ML|MDN|MR |MWD| | | | | | | | | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | | | | | |PGUP| | | |||
* |-----------------------------------------------------------| | |||
* | | | | |Ctrl|HOME|PGD |END | | |||
* `-----------------------------------------------------------' | |||
*/ | |||
[_FL] = LAYOUT_all( | |||
KC_GRV , 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_DEL ,_______, | |||
KC_MS_BTN3 ,KC_MS_BTN2 ,KC_MS_UP ,KC_MS_BTN1 ,KC_MS_WH_UP ,_______,_______,_______,KC_INS ,_______,QK_BOOT,_______,_______ ,KC_PSCR , | |||
_______ ,KC_MS_LEFT ,KC_MS_DOWN ,KC_MS_RIGHT,KC_MS_WH_DOWN,_______,_______,_______,_______,_______,_______,_______,_______ ,_______ , | |||
_______ ,_______ ,_______ ,_______ ,_______ ,_______,_______,_______,_______,_______,_______,_______,KC_PGUP ,_______ , | |||
KC_LCTL ,_______ ,KC_LALT , _______, KC_RCTL,KC_HOME,KC_PGDN ,KC_END ), | |||
}; |
@ -1,38 +0,0 @@ | |||
# [dragonchasers](https://github.com/dragonchaser) Satan GH60 layout | |||
Layout derived from the default Satan GH60 keymap. | |||
![Photo of the keyboard](https://pbs.twimg.com/media/DQzlD0yX0AA8spX.jpg) | |||
## Layers | |||
### Base | |||
``` | |||
,-----------------------------------------------------------. | |||
|Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | | |||
|-----------------------------------------------------------| | |||
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | | |||
|-----------------------------------------------------------| | |||
|CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return | | |||
|-----------------------------------------------------------| | |||
|Shift | Z| X| C| V| B| N| M| ,| .| /| Up |FN | | |||
|-----------------------------------------------------------| | |||
|Ctrl|Gui |Alt | Space |Alt |Left |Down|Right| | |||
`-----------------------------------------------------------' | |||
``` | |||
### Function Layer | |||
``` | |||
,-----------------------------------------------------------. | |||
|GRV|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| DEL | | |||
|-----------------------------------------------------------| | |||
| MB3|MB2|MUP|MB1|MWU| | | |INS| |RST| | |Print| | |||
|-----------------------------------------------------------| | |||
| | ML|MDN|MR |MWD| | | | | | | | | |||
|-----------------------------------------------------------| | |||
| | | | | | | | | | | |PGUP| | | |||
|-----------------------------------------------------------| | |||
| | | | |Ctrl|HOME|PGD |END | | |||
`-----------------------------------------------------------' | |||
``` |
@ -1,18 +0,0 @@ | |||
# Build Options | |||
# change to "no" to disable the options, or define them in the Makefile in | |||
# the appropriate keymap folder that will get included automatically | |||
# | |||
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite | |||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700) | |||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | |||
CONSOLE_ENABLE = no # Console for debug(+400) | |||
COMMAND_ENABLE = yes # Commands for debug and configuration | |||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | |||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality | |||
MIDI_ENABLE = no # MIDI controls | |||
AUDIO_ENABLE = no # Audio output on port C6 | |||
UNICODE_ENABLE = no # Unicode | |||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | |||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. | |||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | |||
@ -1,78 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
#include "keymap_extras/keymap_german.h" | |||
// Each layer gets a name for readability, which is then used in the keymap matrix below. | |||
// The underscores don't mean anything - you can have a layer called STUFF or any other name. | |||
// Layer names don't all need to be of the same length, obviously, and you can also skip them | |||
// entirely and just use numbers. | |||
#define _DEF 0 | |||
#define _FNK 1 | |||
#define _MEDIA 2 | |||
// dual-role shortcuts | |||
#define FN_CAPS LT(_MEDIA, KC_CAPS) | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* Keymap _DEF: Default Layer | |||
* ,------------------------------------------------------------. | |||
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| ß| ´|bcksp|fn1| | |||
* |------------------------------------------------------------| | |||
* |Tab | Q| W| E| R| T| Z| U| I| O| P| Ü| +| | | |||
* |----------------------------------------------------- Return| | |||
* |fn2 | A| S| D| F| G| H| J| K| L| Ö| Ä| # | | | |||
* |------------------------------------------------------------| | |||
* |Sft | < | Y| X| C| V| B| N| M| ,| .| -| RSft| del | | |||
* |------------------------------------------------------------| | |||
* |Ctrl|Win |Alt | Space |RAlt |Win |App|RCtrl| | |||
* `------------------------------------------------------------' | |||
*/ | |||
[_DEF] = LAYOUT_60_iso_split_bs_rshift( | |||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, DE_SS, DE_ACUT, KC_BSPC, MO(_FNK), | |||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UDIA, DE_PLUS, | |||
FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_ODIA, DE_ADIA, DE_HASH, KC_ENT, | |||
KC_LSFT, DE_LABK, DE_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, DE_MINS, KC_RSFT, KC_DELETE, | |||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_ALGR, KC_RGUI, KC_APP, KC_RCTL), | |||
/* Keymap _FNK: Function Keys | |||
* ,------------------------------------------------------------. | |||
* | ^ | F1| F2| F3| F4| F5| F6| F7| F8| F9| F0|F11|F12| Ins | | | |||
* |------------------------------------------------------------| | |||
* | |PGU| Up|PGD| | | |Ins|Hom|PDU| | | | | | |||
* |----------------------------------------------------- | | |||
* | |Lft|Dwn|Rgt| | | |Del|End|PGD| | | | | | |||
* |------------------------------------------------------------| | |||
* | | | | | | | | | | | | | | | | |||
* |------------------------------------------------------------| | |||
* | | | | | | | | | | |||
* `------------------------------------------------------------' | |||
*/ | |||
[_FNK] = LAYOUT_60_iso_split_bs_rshift( | |||
DE_CIRC, 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_INS, _______, | |||
_______, KC_PGUP, KC_UP, KC_PGDN, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, _______, | |||
_______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDN, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______), | |||
/* Keymap _MEDIA: Media and Mouse Layer | |||
* ,------------------------------------------------------------. | |||
* | | | | | | | | | | | | | | | | | |||
* |------------------------------------------------------------| | |||
* | | | | | | | |MLC| MU|MRC| | | | | | |||
* |----------------------------------------------------- | | |||
* | |PRV|VLD|VLU|NXT| | | ML| MD| MR| | | | | | |||
* |------------------------------------------------------------| | |||
* | | | | | | | | | | | | | UP | | | |||
* |------------------------------------------------------------| | |||
* | | | | PLAY | |LEFT|DWN|RIGHT| | |||
* `------------------------------------------------------------' | |||
*/ | |||
[_MEDIA] = LAYOUT_60_iso_split_bs_rshift( | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, _______, _______, _______, | |||
_______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP , _______, | |||
_______, _______, _______, KC_MPLY, _______, KC_LEFT, KC_DOWN, KC_RIGHT), | |||
}; |
@ -1,61 +0,0 @@ | |||
# Satan GH60 ISO-DE Layout with split backspace and right shift | |||
![Layout Image](https://i.imgur.com/a7znS69.jpg) | |||
## Default Layer | |||
This ISO-DE based layout has a split backspace. the left part is the actual backspace and the right parts serves as a FN key. | |||
The right shift is also split, with the right part serving as the del key. | |||
``` | |||
/* Keymap _DEF: Default Layer | |||
* ,------------------------------------------------------------. | |||
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| ß| ´|bcksp|fn1| | |||
* |------------------------------------------------------------| | |||
* |Tab | Q| W| E| R| T| Z| U| I| O| P| Ü| +| | | |||
* |----------------------------------------------------- Return| | |||
* |fn2 | A| S| D| F| G| H| J| K| L| Ö| Ä| # | | | |||
* |------------------------------------------------------------| | |||
* |Sft | < | Y| X| C| V| B| N| M| ,| .| -| RSft| del | | |||
* |------------------------------------------------------------| | |||
* |Ctrl|Win |Alt | Space |RAlt |Win |App|RCtrl| | |||
* `------------------------------------------------------------' | |||
*/ | |||
``` | |||
## FN Key Layer | |||
The Function keys can be accessed when holding fn1 (right part of backspace) | |||
``` | |||
/* Keymap _FNK: Function Keys | |||
* ,------------------------------------------------------------. | |||
* | ^ | F1| F2| F3| F4| F5| F6| F7| F8| F9| F0|F11|F12| Ins | | | |||
* |------------------------------------------------------------| | |||
* | |PGU| Up|PGD| | | |Ins|Hom|PDU| | | | | | |||
* |----------------------------------------------------- | | |||
* | |Lft|Dwn|Rgt| | | |Del|End|PGD| | | | | | |||
* |------------------------------------------------------------| | |||
* | | | | | | | | | | | | | | | | |||
* |------------------------------------------------------------| | |||
* | | | | | | | | | | |||
* `------------------------------------------------------------' | |||
*/ | |||
``` | |||
## Media and Mouse Layer | |||
The Media Keys and Mouse control can be accessed when holding capslock (fn2) | |||
``` | |||
/* Keymap _MEDIA: Media and Mouse Layer | |||
* ,------------------------------------------------------------. | |||
* | | | | | | | | | | | | | | | | | |||
* |------------------------------------------------------------| | |||
* | | | | | | | |MLC| MU|MRC| | | | | | |||
* |----------------------------------------------------- | | |||
* | |PRV|VLD|VLU|NXT| | | ML| MD| MR| | | | | | |||
* |------------------------------------------------------------| | |||
* | | | | | | | | | | | | | UP | | | |||
* |------------------------------------------------------------| | |||
* | | | | PLAY | |LEFT|DWN|RIGHT| | |||
* `------------------------------------------------------------' | |||
*/ | |||
``` |
@ -1,18 +0,0 @@ | |||
# Build Options | |||
# change to "no" to disable the options, or define them in the Makefile in | |||
# the appropriate keymap folder that will get included automatically | |||
# | |||
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite | |||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700) | |||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | |||
CONSOLE_ENABLE = no # Console for debug(+400) | |||
COMMAND_ENABLE = yes # Commands for debug and configuration | |||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | |||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality | |||
MIDI_ENABLE = no # MIDI controls | |||
AUDIO_ENABLE = no # Audio output on port C6 | |||
UNICODE_ENABLE = no # Unicode | |||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | |||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. | |||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | |||
@ -1,12 +0,0 @@ | |||
# denolfe's Layout | |||
Customized Satan keymap | |||
![Layout](https://i.imgur.com/IrSUSMR.png "Practical Keymap") | |||
## Programming Instructions: | |||
`cd` into keymap directory, `make dfu` | |||
## Features | |||
- Movement keys with <kbd>CapsLock</kbd> + <kbd>h</kbd>, <kbd>j</kbd>, <kbd>k</kbd>, <kbd>l</kbd> | |||
- Media Keys | |||
- Backlight control |
@ -1,72 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
#ifdef RGBLIGHT_ENABLE | |||
#include "rgblight.h" | |||
#endif | |||
// Each layer gets a name for readability, which is then used in the keymap matrix below. | |||
// The underscores don't mean anything - you can have a layer called STUFF or any other name. | |||
// Layer names don't all need to be of the same length, obviously, and you can also skip them | |||
// entirely and just use numbers. | |||
#define _BL 0 | |||
#define _FL 1 | |||
#define _SL 2 | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* Keymap _BL: (Base Layer) Default Layer | |||
* ,-----------------------------------------------------------. | |||
* |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | | |||
* |-----------------------------------------------------------| | |||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | | |||
* |-----------------------------------------------------------| | |||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return | | |||
* |-----------------------------------------------------------| | |||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | |||
* |-----------------------------------------------------------| | |||
* |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl | | |||
* `-----------------------------------------------------------' | |||
*/ | |||
[_BL] = LAYOUT_60_ansi( | |||
QK_GESC, 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_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, | |||
MO(_FL), 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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, | |||
KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RGUI, KC_RCTL), | |||
/* Keymap _FL: Function Layer | |||
* ,-----------------------------------------------------------. | |||
* | | | | | | | | | | | | | | QK_BOOT| | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | | | | | |BL-|BL+|BL | | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | | | | | | | | |||
* |-----------------------------------------------------------| | |||
* | | F1|F2 | F3|F4 | F5| F6| F7| F8| | | | | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | | | | |||
* `-----------------------------------------------------------' | |||
*/ | |||
[_FL] = LAYOUT_60_ansi( | |||
#ifdef RGBLIGHT_ENABLE | |||
KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DOWN, BL_UP, BL_TOGG, | |||
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, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | |||
#else | |||
KC_GRV, 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_DEL, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGUP, KC_TRNS, KC_END, KC_MPRV, KC_MNXT, KC_MPLY, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, BL_DOWN, BL_TOGG, BL_UP, KC_HOME, LCTL(KC_LEFT), LCTL(KC_END), LCTL(KC_RIGHT), KC_TRNS, QK_BOOT, | |||
KC_TRNS, KC_TRNS, LM(2, MOD_LSFT), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | |||
#endif | |||
), | |||
[_SL] = LAYOUT_60_ansi( | |||
KC_GRV, 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_DEL, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGUP, KC_TRNS, LSFT(KC_END), KC_MPRV, KC_MNXT, KC_MPLY, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LSFT(KC_LEFT), LSFT(KC_DOWN), LSFT(KC_UP), LSFT(KC_RIGHT), KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, BL_DOWN, BL_TOGG, BL_UP, LSFT(KC_HOME), LCTL(LSFT(KC_LEFT)), LCTL(LSFT(KC_END)), LCTL(LSFT(KC_RIGHT)), KC_TRNS, QK_BOOT, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | |||
}; |
@ -1,17 +0,0 @@ | |||
# Build Options | |||
# comment out to disable the options. | |||
# | |||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite | |||
MOUSEKEY_ENABLE = no # Mouse keys(+4700) | |||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | |||
CONSOLE_ENABLE = yes # Console for debug(+400) | |||
COMMAND_ENABLE = yes # Commands for debug and configuration | |||
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | |||
RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality (+4870) | |||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality (+1150) | |||
MIDI_ENABLE = no # MIDI controls | |||
AUDIO_ENABLE = no | |||
UNICODE_ENABLE = no # Unicode | |||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | |||
@ -1,26 +0,0 @@ | |||
/* | |||
Copyright 2012 Jun Wako <wakojun@gmail.com> | |||
This program is free software: you can redistribute it and/or modify | |||
it under the terms of the GNU General Public License as published by | |||
the Free Software Foundation, either version 2 of the License, or | |||
(at your option) any later version. | |||
This program is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
GNU General Public License for more details. | |||
You should have received a copy of the GNU General Public License | |||
along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
#ifndef CONFIG_H | |||
#define CONFIG_H | |||
#include "../../config.h" | |||
/* Tap Dance */ | |||
#define TAPPING_TERM 200 | |||
#endif |
@ -1,166 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
#define _DEFAULT 0 | |||
#define _FN 1 | |||
#define _MOUSE 2 | |||
#define _MOUSESHIFT 3 | |||
#define _UTIL 4 | |||
// Fillers to make layering more clear | |||
#define ______ KC_TRNS | |||
enum { | |||
SUPER_FN = 0, | |||
SINGLE_HOLD = 1, | |||
DOUBLE_HOLD = 2, | |||
TRIPLE_HOLD = 3 | |||
}; | |||
typedef struct { | |||
bool is_press_action; | |||
int state; | |||
} tap; | |||
int cur_dance (tap_dance_state_t *state) { | |||
if (state->interrupted == false || state->pressed) { | |||
if (state->count < 2) return SINGLE_HOLD; | |||
if (state->count < 3) return DOUBLE_HOLD; | |||
else return TRIPLE_HOLD; | |||
} | |||
else return 9; | |||
} | |||
//instantiate an instance of 'tap' for the 'fn' tap dance. | |||
static tap fn_tap_state = { | |||
.is_press_action = true, | |||
.state = 0 | |||
}; | |||
void fn_finished (tap_dance_state_t *state, void *user_data) { | |||
fn_tap_state.state = cur_dance(state); | |||
switch (fn_tap_state.state) { | |||
/* case SINGLE_HOLD: register_code(MO(_FN)); break; */ | |||
case SINGLE_HOLD: layer_on(_FN); break; | |||
case DOUBLE_HOLD: layer_on(_MOUSE); break; | |||
case TRIPLE_HOLD: layer_on(_UTIL); | |||
} | |||
} | |||
void fn_reset (tap_dance_state_t *state, void *user_data) { | |||
switch (fn_tap_state.state) { | |||
case SINGLE_HOLD: layer_off(_FN); break; | |||
case DOUBLE_HOLD: layer_off(_MOUSE); layer_off(_MOUSESHIFT); break; | |||
case TRIPLE_HOLD: layer_off(_UTIL); | |||
} | |||
} | |||
tap_dance_action_t tap_dance_actions[] = { | |||
[SUPER_FN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, fn_finished, fn_reset) | |||
}; | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* Qwerty gui/alt/space/alt/gui | |||
* ,-----------------------------------------------------------------------------------------. | |||
* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | Enter | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* |LGUI | LAlt | Space | RAlt |RGUI | | |||
* `-----------------------------------------------------------------' | |||
*/ | |||
[_DEFAULT] = LAYOUT_60_ansi_split_bs_rshift( /* Basic QWERTY */ | |||
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_BSLS, KC_GRV, | |||
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_BSPC, | |||
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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TD(SUPER_FN), | |||
______, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, ______, ______ | |||
), | |||
/* FN Layer | |||
* ,-----------------------------------------------------------------------------------------. | |||
* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | CAPS | BL- | BL+ | BL | | | | | Psc | Slck| Paus| Up | | | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | | Vol-| Vol+| Mute| | | * | / | Home| PgUp| Left|Right| | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | | Prev| Play| Next| | | + | - | End |PgDn| Down| | | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | | | | Stop | | | |||
* `-----------------------------------------------------------------' | |||
*/ | |||
[_FN] = LAYOUT_60_ansi_split_bs_rshift( /* Layer 1 */ | |||
______, 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_INS, KC_DEL, | |||
KC_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, ______, ______, | |||
______, KC_VOLD,KC_VOLU,KC_MUTE,______, ______, KC_PAST,KC_PSLS,KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, ______, | |||
______, KC_MPRV,KC_MPLY,KC_MNXT,______, ______, KC_PPLS,KC_PMNS,KC_END, KC_PGDN, KC_DOWN, ______, ______, | |||
______, ______, ______, ______, KC_MSTP, ______, ______, ______ | |||
), | |||
/* MOUSE Layer | |||
* ,-----------------------------------------------------------------------------------------. | |||
* | | | | | | | | | | | | | | |QK_BOOT| | |||
* |----------------------------------------------------------------------------------------- | |||
* | | | | | | | | | | | |UCurs| | | | |||
* |----------------------------------------------------------------------------------------- | |||
* | | | | | | | | | | |LCurs|RCurs| | | |||
* |----------------------------------------------------------------------------------------- | |||
* | ScrollHold| | | | | | | | | |DCurs| ScrollHold| | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | | | LClick | MClick| RClick| | |||
* `-----------------------------------------------------------------' | |||
*/ | |||
[_MOUSE] = LAYOUT_60_ansi_split_bs_rshift( | |||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, QK_BOOT, | |||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MS_UP, ______, ______, | |||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MS_LEFT, KC_MS_RIGHT, ______, | |||
MO(_MOUSESHIFT), ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MS_DOWN, MO(_MOUSESHIFT), ______, | |||
______, ______, ______, KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN2, ______, ______ | |||
), | |||
/* MOUSESHIFT Layer | |||
* ,-----------------------------------------------------------------------------------------. | |||
* | | | | | | | | | | | | | | | | | |||
* |----------------------------------------------------------------------------------------- | |||
* | | | | | | | | | | | |UScrl| | | | |||
* |----------------------------------------------------------------------------------------- | |||
* | | | | | | | | | | |LScrl|RScrl| | | |||
* |----------------------------------------------------------------------------------------- | |||
* | | | | | | | | | | |DScrl| | | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | | | | | | | |||
* `-----------------------------------------------------------------' | |||
*/ | |||
[_MOUSESHIFT] = LAYOUT_60_ansi_split_bs_rshift( | |||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, | |||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MS_WH_UP, ______, ______, | |||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MS_WH_LEFT, KC_MS_WH_RIGHT, ______, | |||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MS_WH_DOWN, ______, ______, | |||
______, ______, ______, ______, ______, ______, ______, ______ | |||
), | |||
/* UTIL Layer | |||
* ,-----------------------------------------------------------------------------------------. | |||
* | | | | | | | | | | | | | | |QK_BOOT| | |||
* |----------------------------------------------------------------------------------------- | |||
* | | | | | | | | | | | | | | | | |||
* |----------------------------------------------------------------------------------------- | |||
* | | | | | | | | | | | | | | | |||
* |----------------------------------------------------------------------------------------- | |||
* | | | | | | | | | | | | | | | |||
* |-----------------------------------------------------------------------------------------+ | |||
* | | | | | | | |||
* `-----------------------------------------------------------------' | |||
*/ | |||
[_UTIL] = LAYOUT_60_ansi_split_bs_rshift( | |||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, QK_BOOT, | |||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, | |||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, | |||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, | |||
______, ______, ______, ______, ______, ______, ______, ______ | |||
) | |||
}; |
@ -1,23 +0,0 @@ | |||
# dkrieger HHKB like Layout | |||
Base derived from dbroqua (special thanks) | |||
Based on HHKB with the following [dip switches][1] engaged: | |||
- SW3: delete key -> backspace | |||
- SW5: swap alt and meta keys | |||
- SW2: Mac Mode (partial implementation, includes media keys | |||
- Note: this was copied from dbroqua, there seem to have been some | |||
modifications from stock Mac Mode | |||
Additionally, this layout includes a mouse layer engaged by tapping Fn 3 times, | |||
holding on the third time. The arrow keys move the mouse, scrolling when shift | |||
is held (either left or right). Right alt is left click, right meta is right | |||
click. | |||
# Programming Instructions: | |||
Enter into programming mode and run the following command. | |||
``` | |||
$ sudo KEYMAP=dkrieger_hhkb make dfu | |||
``` | |||
[1]: http://www.elitekeyboards.com/products.php?sub=pfu_keyboards,hhkbpro2&pid=pdkb400b |
@ -1,19 +0,0 @@ | |||
# Build Options | |||
# change to "no" to disable the options, or define them in the Makefile in | |||
# the appropriate keymap folder that will get included automatically | |||
# | |||
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite | |||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700) | |||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | |||
CONSOLE_ENABLE = yes # Console for debug(+400) | |||
COMMAND_ENABLE = yes # Commands for debug and configuration | |||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | |||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | |||
MIDI_ENABLE = no # MIDI controls | |||
AUDIO_ENABLE = no # Audio output on port C6 | |||
UNICODE_ENABLE = no # Unicode | |||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | |||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. | |||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | |||
TAP_DANCE_ENABLE = yes | |||
@ -1,146 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
#define MY_ESC LT(1, KC_ESC) | |||
#define MY_ENT LT(1, KC_ENT) | |||
#define MY_APP LT(2, KC_APP) | |||
#define MY_LCA TD(TD_LCTL_ALT) | |||
#define MY_RCA TD(TD_RCTL_ALT) | |||
#define MY_LGA TD(TD_LGUI_ALT) | |||
#define MY_RGA TD(TD_RGUI_ALT) | |||
#define MY_LCG TD(TD_LCTL_GUI) | |||
#define MY_RCG TD(TD_RCTL_GUI) | |||
#define MY_LSH TD(TD_LSFT_HPR) | |||
#define MY_RSH TD(TD_RSFT_HPR) | |||
enum { | |||
TD_LCTL_ALT, | |||
TD_RCTL_ALT, | |||
TD_LGUI_ALT, | |||
TD_RGUI_ALT, | |||
TD_LCTL_GUI, | |||
TD_RCTL_GUI, | |||
TD_LSFT_HPR, | |||
TD_RSFT_HPR | |||
}; | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
LAYOUT_60_ansi( | |||
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_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, | |||
MY_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, MY_ENT, | |||
MY_LSH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MY_RSH, | |||
MY_LGA, MY_LCG, MY_LCA, KC_SPC, MY_RCA, MY_RCG, MY_APP, MY_RGA), | |||
LAYOUT_60_ansi( | |||
KC_TRNS, 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_DEL, | |||
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, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | |||
LAYOUT_60_ansi( | |||
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, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, DB_TOGG, 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, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | |||
}; | |||
enum { | |||
SINGLE_TAP = 1, | |||
SINGLE_HOLD = 2, | |||
DOUBLE_TAP = 3, | |||
DOUBLE_HOLD = 4, | |||
DOUBLE_SINGLE_TAP = 5, | |||
UNKNOWN_TAP = 6 | |||
}; | |||
typedef struct { | |||
bool is_press_action; | |||
int state; | |||
} tap; | |||
int cur_dance(tap_dance_state_t *state) { | |||
switch (state->count) { | |||
case 1: | |||
if (state->interrupted || state->pressed == 0) { | |||
return SINGLE_TAP; | |||
} | |||
return SINGLE_HOLD; | |||
case 2: | |||
if (state->interrupted) { | |||
return DOUBLE_SINGLE_TAP; | |||
} | |||
if (state->pressed) { | |||
return DOUBLE_HOLD; | |||
} | |||
return DOUBLE_TAP; | |||
} | |||
return UNKNOWN_TAP; | |||
} | |||
#define my_dance_combo(N, K0, REGFN, UNREGFN) my_dance_combo_expanded(N, K0, REGFN, UNREGFN) | |||
#define my_dance_combo_expanded(N, K0, REGFN, UNREGFN) \ | |||
static tap N ## _state = { \ | |||
.is_press_action = true, \ | |||
.state = 0 \ | |||
}; \ | |||
\ | |||
void N ## _finished(tap_dance_state_t *state, void *user_data) { \ | |||
N ## _state.state = cur_dance(state); \ | |||
switch (N ## _state.state) { \ | |||
case SINGLE_TAP: case SINGLE_HOLD: \ | |||
register_code(K0); \ | |||
break; \ | |||
case DOUBLE_TAP: case DOUBLE_SINGLE_TAP: case DOUBLE_HOLD: \ | |||
register_code(K0); \ | |||
REGFN; \ | |||
break; \ | |||
} \ | |||
} \ | |||
\ | |||
void N ## _reset(tap_dance_state_t *state, void *user_data) { \ | |||
switch (N ## _state.state) { \ | |||
case SINGLE_TAP: case SINGLE_HOLD: \ | |||
unregister_code(K0); \ | |||
break; \ | |||
case DOUBLE_TAP: case DOUBLE_SINGLE_TAP: case DOUBLE_HOLD: \ | |||
UNREGFN; \ | |||
unregister_code(K0); \ | |||
break; \ | |||
} \ | |||
N ## _state.state = 0; \ | |||
} | |||
#define my_dance_reg_code_1(K1) register_code(K1) | |||
#define my_dance_unreg_code_1(K1) unregister_code(K1) | |||
#define my_dance_combo_1(N, K0, K1) \ | |||
my_dance_combo(N, K0, my_dance_reg_code_1(K1), my_dance_unreg_code_1(K1)) | |||
#define my_dance_reg_code_3(K1, K2, K3) \ | |||
do { register_code(K1); register_code(K2); register_code(K3); } while (0) | |||
#define my_dance_unreg_code_3(K1, K2, K3) \ | |||
do { unregister_code(K3); unregister_code(K2); unregister_code(K1); } while (0) | |||
#define my_dance_combo_3(N, K0, K1, K2, K3) \ | |||
my_dance_combo(N, K0, my_dance_reg_code_3(K1, K2, K3), my_dance_unreg_code_3(K1, K2, K3)) | |||
my_dance_combo_1(lca, KC_LCTL, KC_LALT) | |||
my_dance_combo_1(rca, KC_RCTL, KC_RALT) | |||
my_dance_combo_1(lga, KC_LGUI, KC_LALT) | |||
my_dance_combo_1(rga, KC_RGUI, KC_RALT) | |||
my_dance_combo_1(lcg, KC_LCTL, KC_LGUI) | |||
my_dance_combo_1(rcg, KC_RCTL, KC_RGUI) | |||
my_dance_combo_3(lsh, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI) | |||
my_dance_combo_3(rsh, KC_RSFT, KC_RCTL, KC_RALT, KC_RGUI) | |||
tap_dance_action_t tap_dance_actions[] = { | |||
[TD_LCTL_ALT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lca_finished, lca_reset), | |||
[TD_RCTL_ALT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rca_finished, rca_reset), | |||
[TD_LGUI_ALT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lga_finished, lga_reset), | |||
[TD_RGUI_ALT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rga_finished, rga_reset), | |||
[TD_LCTL_GUI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lcg_finished, lcg_reset), | |||
[TD_RCTL_GUI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rcg_finished, rcg_reset), | |||
[TD_LSFT_HPR] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lsh_finished, lsh_reset), | |||
[TD_RSFT_HPR] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rsh_finished, rsh_reset) | |||
}; |
@ -1,13 +0,0 @@ | |||
# Satan GH60 ANSI Layout that uses tap dance | |||
![Satan GH60 Image](https://i.imgur.com/T5FX7Sn.png) | |||
Notes: | |||
- Enter and Esc keys activate layer Fn1 when held, and work as usual when tapped. | |||
- Menu key activates layer Fn2 when held, and works as usual when tapped. | |||
- For the next keys a first key is used when held, and a second one is used when tapped 2 times: | |||
- Shift and Hyper; | |||
- Win and Win+Alt; | |||
- Ctrl and Ctrl+Alt; | |||
- Alt and Win+Ctrl. | |||
@ -1,19 +0,0 @@ | |||
# Build Options | |||
# change to "no" to disable the options, or define them in the Makefile in | |||
# the appropriate keymap folder that will get included automatically | |||
# | |||
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite | |||
MOUSEKEY_ENABLE = no # Mouse keys(+4700) | |||
EXTRAKEY_ENABLE = no # Audio control and System control(+450) | |||
CONSOLE_ENABLE = no # Console for debug(+400) | |||
COMMAND_ENABLE = yes # Commands for debug and configuration | |||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | |||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | |||
MIDI_ENABLE = no # MIDI controls | |||
AUDIO_ENABLE = no # Audio output on port C6 | |||
UNICODE_ENABLE = no # Unicode | |||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | |||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. | |||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | |||
TAP_DANCE_ENABLE = yes | |||
@ -1,31 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
#define KC_____ KC_TRNS | |||
#define KC_FN MO(1) // Fn | |||
#define KC_FNLK TG(1) // Fn lock | |||
#define KC_HOME LGUI(KC_LEFT) // Home, or cmd-left | |||
#define KC_END LGUI(KC_RGHT) // End, or cmd-right | |||
#define KC_SLP LGUI(LALT(KC_PWR)) // sleep, or cmd-option-power | |||
#define KC_SCLK LCTL(LSFT(KC_PWR)) // lock screen, or ctrl-shift-power | |||
// Mark I keyboard layout for GH60 Satan | |||
// http://www.keyboard-layout-editor.com/#/gists/e1cde292bd2094cc3b763206d4d2cfb5 | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
// 0: qwerty | |||
[0] = LAYOUT_all( | |||
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_BSPC, KC_NO, | |||
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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, | |||
KC_LSFT, KC_FN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_FN, | |||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, KC_FNLK | |||
), | |||
// 1: fn layer | |||
[1] = LAYOUT_all( | |||
KC_GRV, 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_DEL, _______, | |||
_______, KC_VOLU, _______, _______, _______, _______, _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, _______, _______, | |||
_______, KC_VOLD, KC_MRWD, KC_MPLY, KC_MFFD, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, | |||
_______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_SCLK, KC_SLP, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______ | |||
) | |||
}; |
@ -1,5 +0,0 @@ | |||
# Mark I layout for GH60 Satan | |||
A Mac keyboard for touch typists who enjoy having a Fn key on both the left-hand and right-hand side. | |||
[Layout](http://www.keyboard-layout-editor.com/#/gists/e1cde292bd2094cc3b763206d4d2cfb5) |
@ -1,55 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
// Each layer gets a name for readability, which is then used in the keymap matrix below. | |||
// The underscores don't mean anything - you can have a layer called STUFF or any other name. | |||
// Layer names don't all need to be of the same length, obviously, and you can also skip them | |||
// entirely and just use numbers. | |||
enum layer_names { | |||
_BL, | |||
_FL | |||
}; | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* Keymap _BL: (Base Layer) Default Layer | |||
* ,-----------------------------------------------------------. | |||
* | ~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backsp | | |||
* |-----------------------------------------------------------| | |||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | | |||
* |-----------------------------------------------------------| | |||
* |ESC | A| S| D| F| G| H| J| K| L| ;| '|Return | | |||
* |-----------------------------------------------------------| | |||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | |||
* |-----------------------------------------------------------| | |||
* |Ctrl|Gui |Alt | Space |Alt |FL |Gui |FL(tgl)| | |||
* `-----------------------------------------------------------' | |||
*/ | |||
[_BL] = LAYOUT_60_ansi( | |||
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_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_ESC, 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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, | |||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RGUI, TG(_FL) | |||
), | |||
/* Keymap _FL: Function Layer | |||
* ,-----------------------------------------------------------. | |||
* | | F1|F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| DEL | | |||
* |-----------------------------------------------------------| | |||
* | |Home|PgUp| | | | | | | | |BR- |BR+ | | | |||
* |-----------------------------------------------------------| | |||
* | |End|PgDn| | | |Left|Down|Up|Right|Prv|Nxt|Ply | | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | | |Vdn|Vup|Mute| | | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | | | | |||
* `-----------------------------------------------------------' | |||
* hjkl for arrows because vim | |||
*/ | |||
[_FL] = LAYOUT_60_ansi( | |||
KC_TRNS, 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_DEL, | |||
KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14, KC_F15, KC_TRNS, | |||
KC_TRNS, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_MPRV, KC_MNXT, KC_MPLY, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | |||
), | |||
}; |
@ -1 +0,0 @@ | |||
Standard layout with caps lock replaced by esc. Navigation and multimedia keys are on the second layer. |
@ -1,26 +0,0 @@ | |||
// Backlight configuration | |||
#undef BACKLIGHT_LEVELS | |||
#define BACKLIGHT_LEVELS 10 | |||
// Underlight configuration | |||
#undef WS2812_DI_PIN | |||
#define WS2812_DI_PIN B2 | |||
#undef RGBLED_NUM | |||
#define RGBLED_NUM 16 // Number of LEDs | |||
#undef RGBLIGHT_HUE_STEP | |||
#define RGBLIGHT_HUE_STEP 8 | |||
#undef RGBLIGHT_SAT_STEP | |||
#define RGBLIGHT_SAT_STEP 8 | |||
#undef RGBLIGHT_VAL_STEP | |||
#define RGBLIGHT_VAL_STEP 8 | |||
#define RGBLIGHT_EFFECT_BREATHING | |||
#define RGBLIGHT_EFFECT_RAINBOW_MOOD | |||
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL | |||
#define RGBLIGHT_EFFECT_SNAKE | |||
#define RGBLIGHT_EFFECT_KNIGHT | |||
#define RGBLIGHT_EFFECT_CHRISTMAS | |||
#define RGBLIGHT_EFFECT_STATIC_GRADIENT | |||
#define RGBLIGHT_EFFECT_RGB_TEST | |||
#define RGBLIGHT_EFFECT_ALTERNATING | |||
#define RGBLIGHT_EFFECT_TWINKLE |
@ -1,98 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
#define BASE 0 // Default layer | |||
#define MOUSE 1 // Space layer | |||
#define NUMPAD 2 // Alt layer | |||
#define CAPS 3 // Caps layer | |||
// General shortenings | |||
#define ESCA KC_ESC | |||
#define MINS KC_MINS | |||
#define EQUL KC_EQL | |||
#define BSPC KC_BSPC | |||
#define DELE KC_DEL | |||
#define LBRC KC_LBRC | |||
#define RBRC KC_RBRC | |||
#define ALTR KC_RALT | |||
#define SCLN KC_SCLN | |||
#define QUOT KC_QUOT | |||
#define NUHS KC_NUHS | |||
#define ENTE KC_ENT | |||
#define NUBS KC_NUBS // Less/ greater sign | |||
#define COMM KC_COMM // Comma | |||
#define FSTO KC_DOT // Full stop | |||
#define SLSH KC_SLSH | |||
#define ALTL KC_LALT | |||
#define GUIL KC_LGUI | |||
#define GUIR KC_RGUI | |||
#define MENO KC_MENU | |||
// Special Actions and Media Keys | |||
#define INSE KC_INS // Insert here | |||
#define HOME KC_HOME // Go to beginning of line | |||
#define ENDI KC_END // go to end of line | |||
#define PSCR KC_PSCR // Print Screen | |||
#define SLCK KC_SCRL // go to end of line | |||
#define PGDN KC_PGDN // go to end of line | |||
#define PGUP KC_PGUP // go to end of line | |||
#define PLPS KC_MPLY // Play/Pause | |||
#define PAUS KC_PAUS // Pause button | |||
#define MUTE KC_MUTE // Mute sound | |||
#define VOLU KC_VOLU // Volume increase | |||
#define VOLD KC_VOLD // Volume decrease | |||
#define MNXT KC_MNXT // next track | |||
#define MPRV KC_MPRV // prev track | |||
#define MSTP KC_MSTP // stop playing | |||
#define MSEL KC_MSEL // Select media (Start playing it) | |||
#define MAIL KC_MAIL // Open default mail app | |||
#define CALC KC_CALC // Open default calculator app | |||
#define MYCM KC_MYCM // Open default file manager | |||
// increase readability | |||
#define XXXXX KC_NO | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* Keymap BASE: (Base Layer) Default Layer | |||
* ,-----------------------------------------------------------. | |||
* |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | | |||
* |-----------------------------------------------------------| | |||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| R | | |||
* |-----------------------------------------------------------| | |||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '| # | R | | |||
* |-----------------------------------------------------------| | |||
* |Shft| \ | Z| X| C| V| B| N| M| ,| .| /|Shift | | |||
* |-----------------------------------------------------------| | |||
* |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl | | |||
* `-----------------------------------------------------------| | |||
*/ | |||
[ BASE ] = KEYMAP_ISO_SPLITRSHIFT( | |||
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_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, XXXXX, | |||
LT(CAPS, 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_NUHS, KC_ENT, | |||
KC_LSFT, KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, XXXXX, | |||
KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, MO(CAPS), TG(NUMPAD), TG(MOUSE)), | |||
[ MOUSE ] = KEYMAP( // Mouse controls | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXX, | |||
_______, _______, _______, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_U, KC_MS_BTN2, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXX, | |||
_______, _______, _______, _______, _______, _______, _______, _______), | |||
[ NUMPAD ] = KEYMAP( //Numpad and alt shortcuts | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXX, | |||
_______, BL_TOGG, BL_DOWN,BL_UP, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, _______, _______, | |||
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, _______, | |||
_______, _______, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_7, KC_8, KC_9, KC_0, _______, _______, XXXXX, | |||
_______, _______, _______, _______, _______, _______, _______, _______), | |||
[ CAPS ] = KEYMAP( // Main "function" key, arrows, media control | |||
KC_GRAVE, 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_DEL, XXXXX, | |||
_______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, PGDN, KC_UP, PGUP, PSCR, SLCK, PAUS, _______, | |||
_______, KC_VOLD, KC_MUTE, KC_VOLU, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXX, | |||
_______, _______, _______, _______, _______, _______, _______, _______) | |||
}; |
@ -1,18 +0,0 @@ | |||
# ISO layout for the Satan GH60 | |||
### Originally by Ben James, forked by Oliver Granlund | |||
![Finished product](https://i.imgur.com/s5HAgr6.jpg) | |||
I've wanted to make this as close to a P0ker as possible, but some macros in | |||
the P0ker don't make sense... | |||
Some of the features: | |||
* Caps activates special features when held: | |||
* Arrow keys directly under right hand | |||
* Volume control | |||
* Fn keys on number row | |||
* PageUp/PageDn/Home/other general buttons | |||
* Mouse control | |||
* Numpad (works so much better if this would be ortho) | |||
### RGB-strip | |||
![Behind the scenes](https://i.imgur.com/reHLXrc.jpg) |
@ -1,17 +0,0 @@ | |||
# Build Options | |||
# change to "no" to disable the options, or define them in the Makefile in | |||
# the appropriate keymap folder that will get included automatically | |||
# | |||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite | |||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700) | |||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | |||
CONSOLE_ENABLE = no # Console for debug(+400) | |||
COMMAND_ENABLE = no # Commands for debug and configuration | |||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | |||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality | |||
MIDI_ENABLE = no # MIDI controls | |||
AUDIO_ENABLE = no # Audio output on port C6 | |||
UNICODE_ENABLE = no # Unicode | |||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | |||
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. | |||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend |
@ -1,83 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
#define _BASE 0 | |||
#define _FNO 1 | |||
#define _FNT 2 | |||
#define ________ KC_TRNS | |||
#define XXXXXXXX KC_NO | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* | |||
* Base layer | |||
* | |||
* ------------------------------------------------------------------------------------------- | |||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | Del | | |||
* ------------------------------------------------------------------------------------------- | |||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp | | |||
* ------------------------------------------------------------------------------------------- | |||
* | Fn1 | A | S | D | F | G | H | J | K | L | ; | ' | Enter | | |||
* ------------------------------------------------------------------------------------------- | |||
* | Shift | Z | X | C | V | B | N | M | , | . | / | Up | Fn2 | | |||
* ------------------------------------------------------------------------------------------- | |||
* | Ctrl | Win | Alt | Space | AltGr | Left | Down | Right | | |||
* ------------------------------------------------------------------------------------------- | |||
*/ | |||
[_BASE] = LAYOUT_60_ansi_split_bs_rshift( | |||
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_BSLS, KC_DEL, | |||
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_BSPC, | |||
MO(_FNO), 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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, MO(_FNT), | |||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT | |||
), | |||
/* | |||
* Fn1 layer | |||
* | |||
* ------------------------------------------------------------------------------------------- | |||
* | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Prsc| Ins | | |||
* ------------------------------------------------------------------------------------------- | |||
* | | | | | | | | | | | | | | | | |||
* ------------------------------------------------------------------------------------------- | |||
* | NONE | | | | | | | | | | | | | | |||
* ------------------------------------------------------------------------------------------- | |||
* | | | | | | | | | | | | PgUp | | | |||
* ------------------------------------------------------------------------------------------- | |||
* | | | | | | Home | PgDn | End | | |||
* ------------------------------------------------------------------------------------------- | |||
*/ | |||
[_FNO] = LAYOUT_60_ansi_split_bs_rshift( | |||
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_INS, | |||
________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, | |||
________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, | |||
________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, KC_PGUP, ________, | |||
________, ________, ________, ________, ________, KC_HOME, KC_PGDN, KC_END | |||
), | |||
/* | |||
* Fn2 layer | |||
* | |||
* TODO: macro buttons | |||
* | |||
* ------------------------------------------------------------------------------------------- | |||
* | | | | | | | | | | | | | | | | | |||
* ------------------------------------------------------------------------------------------- | |||
* | | | | | | | | | | Prev| Play| Next| | | | |||
* ------------------------------------------------------------------------------------------- | |||
* | CapsLk | | | | | | | | | Vol-| Vol+| Mute| | | |||
* ------------------------------------------------------------------------------------------- | |||
* | | | | | | | | | | Stop| | | NONE| | |||
* ------------------------------------------------------------------------------------------- | |||
* | Reset | Menu | | | M1 | M2 | M3 | M4 | | |||
* ------------------------------------------------------------------------------------------- | |||
*/ | |||
[_FNT] = LAYOUT_60_ansi_split_bs_rshift( | |||
________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, | |||
________, ________, ________, ________, ________, ________, ________, ________, ________, KC_MPRV, KC_MPLY, KC_MNXT, ________, ________, | |||
KC_CAPS, ________, ________, ________, ________, ________, ________, ________, ________, KC_VOLD, KC_VOLU, KC_MUTE, ________, | |||
________, ________, ________, ________, ________, ________, ________, ________, ________, KC_MSTP, ________, ________, ________, | |||
QK_BOOT, KC_MENU, ________, ________, ________, ________, ________, ________ | |||
), | |||
}; |
@ -1,47 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
// Each layer gets a name for readability, which is then used in the keymap matrix below. | |||
// The underscores don't mean anything - you can have a layer called STUFF or any other name. | |||
// Layer names don't all need to be of the same length, obviously, and you can also skip them | |||
// entirely and just use numbers. | |||
#define _BL 0 | |||
#define _FL 1 | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* Keymap _BL: (Base Layer) Default Layer | |||
* ,-----------------------------------------------------------. | |||
* |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ | ~ | | |||
* |-----------------------------------------------------------| | |||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|bksp | | |||
* |-----------------------------------------------------------| | |||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return | | |||
* |-----------------------------------------------------------| | |||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift| fn | | |||
* |-----------------------------------------------------------| | |||
* |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl | | |||
* `-----------------------------------------------------------' | |||
*/ | |||
[_BL] = LAYOUT_60_ansi_split_bs_rshift( | |||
QK_GESC, 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_BSLS, KC_GRV, | |||
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_BSPC, | |||
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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FL), | |||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_MENU, KC_RCTL | |||
), | |||
[_FL] = LAYOUT_60_ansi_split_bs_rshift( | |||
#ifdef RGBLIGHT_ENABLE | |||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, QK_BOOT, | |||
KC_CAPS, _______, RGB_TOG, RGB_MOD, RGB_HUI, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, _______, KC_DEL, | |||
_______, KC_VOLD, RGB_HUD, RGB_SAI, RGB_SAD, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, | |||
_______, RGB_VAI, RGB_VAD, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______ | |||
#else | |||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, QK_BOOT, | |||
KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, _______, KC_DEL, | |||
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, | |||
_______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______ | |||
#endif | |||
), | |||
}; |
@ -1,3 +0,0 @@ | |||
# sethbc's Satan GH60 layout | |||
HHKB style split right shift and split backspace. Largely based on the HHKB layout. |
@ -1,18 +0,0 @@ | |||
# Build Options | |||
# change to "no" to disable the options, or define them in the Makefile in | |||
# the appropriate keymap folder that will get included automatically | |||
# | |||
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite | |||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700) | |||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | |||
CONSOLE_ENABLE = no # Console for debug(+400) | |||
COMMAND_ENABLE = yes # Commands for debug and configuration | |||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | |||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality | |||
MIDI_ENABLE = no # MIDI controls | |||
AUDIO_ENABLE = no # Audio output on port C6 | |||
UNICODE_ENABLE = no # Unicode | |||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | |||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. | |||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | |||
@ -1,75 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
// Each layer gets a name for readability, which is then used in the keymap matrix below. | |||
#define _BL 0 | |||
#define _FL 1 | |||
#define _CL 3 | |||
// Add names for complex momentary keys, to keep the keymap matrix aligned better. | |||
#define CTL_ESC MT(MOD_LCTL,KC_ESC) | |||
#define GUI_ENT MT(MOD_RGUI, KC_ENT) | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* Keymap _BL: (Base Layer) Default Layer | |||
* ,-----------------------------------------------------------. | |||
* | `| F1| F2| F3| F4| F5| F6| F7| F8| F9| F0| -| =|Del | | |||
* |-----------------------------------------------------------| | |||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | | |||
* |-----------------------------------------------------------| | |||
* |Ctl/Esc| A| S| D| F| G| H| J| K| L| ;| '|Return | | |||
* |-----------------------------------------------------------| | |||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | |||
* |-----------------------------------------------------------| | |||
* |Ctrl|Alt |Gui | Space |Gui |Alt |FN |Ctrl | | |||
* `-----------------------------------------------------------' | |||
*/ | |||
[_BL] = LAYOUT_60_ansi( | |||
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_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, | |||
CTL_ESC, 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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, | |||
MO(_CL), KC_RALT, KC_LGUI, KC_SPC, GUI_ENT, KC_RALT, KC_RCTL, MO(_FL)), | |||
/* Keymap _FL: Function Layer | |||
* ,-----------------------------------------------------------. | |||
* | `| | | | | | | | | | | | | QK_BOOT| | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | | | | | | | | | | |||
* |-----------------------------------------------------------| | |||
* | |VDN|VUP|MUTE| | | | | | | | | | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | | | | | | | | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | | | | |||
* `-----------------------------------------------------------' | |||
*/ | |||
[_FL] = LAYOUT_60_ansi( | |||
KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______), | |||
/* Keymap _CL: Control+ Layer | |||
* ,-----------------------------------------------------------. | |||
* |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| Del | | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | | | | |PGU| | | | | |||
* |-----------------------------------------------------------| | |||
* | | | | | | |LFT| DN| UP|RGT| | | | | |||
* |-----------------------------------------------------------| | |||
* | | | | | | |PGD| | | | | | | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | | | | |||
* `-----------------------------------------------------------' | |||
*/ | |||
[_CL] = LAYOUT_60_ansi( | |||
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_DEL, | |||
KC_TAB, LCTL(KC_Q), LCTL(KC_W), LCTL(KC_E), LCTL(KC_R), LCTL(KC_T), LCTL(KC_Y), LCTL(KC_U), LCTL(KC_I), LCTL(KC_O), KC_PGUP, KC_ESC, LCTL(KC_RBRC), LCTL(KC_BSLS), | |||
_______, LCTL(KC_A), LCTL(KC_S), LCTL(KC_D), LCTL(KC_F), LCTL(KC_G), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, LCTL(KC_SCLN), LCTL(KC_QUOT), LCTL(KC_ENT), | |||
KC_LSFT, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_PGDN, LCTL(KC_N), LCTL(KC_M), LCTL(KC_COMM), LCTL(KC_DOT), LCTL(KC_SLSH), LCTL(KC_RSFT), | |||
_______, LCTL(KC_LALT), LCTL(KC_LGUI), LCTL(KC_SPC), LCTL(KC_RGUI), LCTL(KC_RALT), KC_RCTL, MO(_FL)), | |||
}; | |||
@ -1,34 +0,0 @@ | |||
# Spaceman Spiff Layout for GH60 Satan | |||
![Keyboard Layout](https://i.imgur.com/M9glFON.png) | |||
<!-- http://www.keyboard-layout-editor.com/#/gists/32feaaa31c29afb8198a8ef591db6ddf --> | |||
Designed specifically to make switching back-n-forth with the Apple's MacBook Pro keyboard intuitive. Has a slight tendency toward readline/vim keybindings. | |||
Caps locks becomes an `Esc` when pressed alone, or a `Ctrl` when pressed with another key. | |||
# Base Layer | |||
As simalar to the Apple keyboard as possible. Notiable exception is `Caps Lock`: | |||
- `Esc` when pressed alone | |||
- `Ctrl` when pressed with another key | |||
# Control+ Layer | |||
Left Ctrl key switches to the "Control+ Layer". This layer mostly acts like a control key in most cases, with a few exceptions: | |||
- `Ctl+` + `hjkl` are vim-style motion keys | |||
- `Ctl+` + `p` and `Ctl+` + `n` are page up and down | |||
- `Ctl+` + `Backspace` is forward delete | |||
# Fn Layer | |||
Audio Controls: | |||
- `Fn` + `a` Volume Down | |||
- `Fn` + `s` Volume Up | |||
- `Fn` + `d` Mute | |||
To flash this layout you need to press `Fn+Backspace` | |||
@ -1,20 +0,0 @@ | |||
Unxmaal's GH60 Satan Layout | |||
===================== | |||
* Mostly stolen from /u/robotmaxtron | |||
##Quantum MK Firmware | |||
For the full Quantum feature list, see the parent readme.md. | |||
* Standard Mac ANSI layout | |||
* Spacebar acts as space when tapped, Fn when held | |||
* Menu acts as menu when tapped, Fn2 when held | |||
* Layer1: | |||
* Top row = `~, F1-F12, Del | |||
* JKIL = arrow cluster | |||
* Layer2: | |||
* Top row = media controls | |||
* JKIL = PgDn/Up/Home/Insert | |||
* Backspace = Reset | |||
### Additional Credits | |||
Keymap has been based on various keymaps available from the QMK Repo for the GH60-SATAN and KC60 keyboards. |
@ -1,84 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
// Each layer gets a name for readability, which is then used in the keymap matrix below. | |||
// The underscores don't mean anything - you can have a layer called STUFF or any other name. | |||
// Layer names don't all need to be of the same length, obviously, and you can also skip them | |||
// entirely and just use numbers. | |||
#define _BL 0 | |||
#define _AL 1 | |||
#define _FL 2 | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* | |||
* ANSI Base, Mac style | |||
* ,-----------------------------------------------------------------------------. | |||
* |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| = | Backsp | | |||
* |-----------------------------------------------------------------------------| | |||
* |Tab | Q | W | E | R | T | Y | U | I| O| P| [| ]| \| | |||
* |-----------------------------------------------------------------------------| | |||
* |Caps/Fn | A| S| D| F| G| H| J| K| L| ;| '| Enter | | |||
* |-----------------------------------------------------------------------------| | |||
* |Shift | Z| X| C| V| B| N| M| ,| .| /| Shift | | |||
* |-----------------------------------------------------------------------------| | |||
* |Fn|Alt |Gui | Space(tapped), Fn(held) |Gui |Alt |Menu(tapped, Fn2(held)|Ctrl| | |||
* `-----------------------------------------------------------------------------' | |||
*/ | |||
[_BL] = LAYOUT_60_ansi( | |||
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_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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, | |||
MO(_AL), KC_LALT, KC_LGUI, LT(_AL, KC_SPACE), KC_RGUI, KC_RALT, LT(_FL, KC_MENU), KC_RCTL | |||
), | |||
/* | |||
* Pok3r style arrow cluster | |||
* ,-----------------------------------------------------------. | |||
* |`~ | F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12|DEL | | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | | |Up| | | | | | | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | |Left|Down|Right| | | | | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | | | | | | | | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | | | | |||
* `-----------------------------------------------------------' | |||
*/ | |||
[_AL] = LAYOUT_60_ansi( | |||
KC_GRV, 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_DELETE, | |||
_______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______ | |||
), | |||
/* Keymap _FL: Function Layer | |||
* ,-----------------------------------------------------------. | |||
* | | | | | | | | | | | | | | QK_BOOT| | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | | | | | |BL-|BL+|BL | | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | | | | | | | | |||
* |-----------------------------------------------------------| | |||
* | | RGB on|RGB step|Hue+|Hue- |Sat+|Sat-|Val+| Val-| | | | | |||
* |-----------------------------------------------------------| | |||
* | | | | | | | | | | |||
* `-----------------------------------------------------------' | |||
*/ | |||
[_FL] = LAYOUT_60_ansi( | |||
#ifdef RGBLIGHT_ENABLE | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DOWN, BL_UP, BL_TOGG, | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______ | |||
#else | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DOWN, BL_UP, BL_TOGG, | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______ | |||
#endif | |||
), | |||
}; |
@ -1,18 +0,0 @@ | |||
# Build Options | |||
# change to "no" to disable the options, or define them in the Makefile in | |||
# the appropriate keymap folder that will get included automatically | |||
# | |||
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite | |||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700) | |||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | |||
CONSOLE_ENABLE = no # Console for debug(+400) | |||
COMMAND_ENABLE = yes # Commands for debug and configuration | |||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | |||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality | |||
MIDI_ENABLE = no # MIDI controls | |||
AUDIO_ENABLE = no # Audio output on port C6 | |||
UNICODE_ENABLE = no # Unicode | |||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | |||
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. | |||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | |||
@ -1,23 +0,0 @@ | |||
# QMK Keyboard Firmware for HHKB | |||
## Modifications | |||
### HHKB Fn Layer | |||
Added some Media keys. | |||
### Utility Layer (SpaceFN) | |||
Hold `Space` for: | |||
- Vi-style direction keys. | |||
- WASD-style mouse keys. | |||
- Dynamic macro playback on `1` and `2`. | |||
- Qwerty/Colemak/Dvorak layout selection on `-`, `=` and `\ ` | |||
### Dynamic Macros | |||
Hold `q` and press: | |||
- `1` or `2` to record macro 1 or 2. | |||
- `s` to stop recording. |
@ -1,10 +0,0 @@ | |||
#pragma once | |||
#undef MANUFACTURER | |||
#undef PRODUCT | |||
#define MANUFACTURER "QMK" | |||
#define PRODUCT "HHKB QMK cinaeco" | |||
// Increase "Tap" detection window. Avoid missing 'q' or 'z' when typing slowly. | |||
#undef TAPPING_TERM | |||
#define TAPPING_TERM 230 |