Last active
February 25, 2021 01:34
-
-
Save iakobou/3beb40f69f16c85247e32c6dc6f8651f to your computer and use it in GitHub Desktop.
BM60 Poker GH60 keymap for use at work
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// This is my BM60 Poker GH60 keymap for use at work | |
/* Copyright 2020 ipetepete | |
* | |
* 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 | |
enum my_keycodes { | |
MEET = SAFE_RANGE, | |
BM60, | |
MAKE, | |
CLEAR, | |
BRB, | |
FOOD, | |
AWAY, | |
BACK, | |
READJUMP, | |
PATIENT, | |
SLEEP, | |
ROD, | |
}; | |
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |
switch (keycode) { | |
case MEET: | |
if (record->event.pressed) { | |
// when keycode MEET is pressed | |
SEND_STRING("https://insert.com/url"); | |
} else { | |
// when keycode MEET is released | |
} | |
break; | |
case BM60: | |
if (record->event.pressed) { | |
// when keycode BM60 is pressed | |
SEND_STRING("cd /file/path/to/qmk_firmware"SS_TAP(X_ENTER)); | |
} else { | |
// when keycode BM60 is released | |
} | |
break; | |
case MAKE: | |
if (record->event.pressed) { | |
// when keycode MAKE is pressed | |
SEND_STRING("make bm60poker:Phonevon:dfu"SS_TAP(X_ENTER)); | |
} else { | |
// when keycode MAKE is released | |
} | |
break; | |
case CLEAR: | |
if (record->event.pressed) { | |
// when keycode CLEAR is pressed | |
SEND_STRING(SS_LGUI(SS_LSFT("x"))); | |
_delay_ms(500); | |
SEND_STRING(SS_TAP(X_ENTER)); | |
_delay_ms(500); | |
SEND_STRING(SS_LGUI(SS_LSFT("x"))); | |
_delay_ms(500); | |
SEND_STRING(SS_TAP(X_ENTER)); | |
_delay_ms(500); | |
SEND_STRING(SS_LGUI(SS_LSFT("x"))); | |
_delay_ms(500); | |
SEND_STRING(SS_TAP(X_ENTER)); | |
_delay_ms(500); | |
SEND_STRING(SS_LGUI(SS_LSFT("x"))); | |
_delay_ms(500); | |
SEND_STRING(SS_TAP(X_ENTER)); | |
_delay_ms(500); | |
SEND_STRING(SS_LGUI(SS_LSFT("x"))); | |
_delay_ms(500); | |
SEND_STRING(SS_TAP(X_ENTER)); | |
} else { | |
// when keycode CLEAR is released | |
} | |
break; | |
case BRB: | |
if (record->event.pressed) { | |
// when keycode BRB is pressed | |
SEND_STRING("/status "SS_TAP(X_SPACE)); | |
_delay_ms(500); | |
SEND_STRING(":brb: "); | |
_delay_ms(500); | |
SEND_STRING("Stepping away for a brief moment"SS_TAP(X_ENTER)); | |
} else { | |
// when keycode BRB is released | |
} | |
break; | |
case FOOD: | |
if (record->event.pressed) { | |
// when keycode FOOD is pressed | |
SEND_STRING("/status "SS_TAP(X_SPACE)); | |
_delay_ms(500); | |
SEND_STRING(":pizza: "); | |
_delay_ms(500); | |
SEND_STRING("Fooding . . ."SS_TAP(X_ENTER)); | |
} else { | |
// when keycode FOOD is released | |
} | |
break; | |
case AWAY: | |
if (record->event.pressed) { | |
// when keycode AWAY is pressed | |
SEND_STRING("/status "SS_TAP(X_SPACE)); | |
_delay_ms(500); | |
SEND_STRING(":away: "); | |
_delay_ms(500); | |
SEND_STRING("I am away from my computer."SS_TAP(X_ENTER)); | |
} else { | |
// when keycode AWAY is released | |
} | |
break; | |
case BACK: | |
if (record->event.pressed) { | |
// when keycode BACK is pressed | |
SEND_STRING("/status "SS_TAP(X_SPACE)); | |
_delay_ms(500); | |
SEND_STRING("clear"); | |
_delay_ms(500); | |
SEND_STRING(SS_TAP(X_ENTER)); | |
} else { | |
// when keycode BACK is released | |
} | |
break; | |
case READJUMP: | |
if (record->event.pressed) { | |
// when keycode READJUMP is pressed | |
SEND_STRING(SS_TAP(X_ESCAPE)); | |
SEND_STRING(SS_TAP(X_END)); | |
} else { | |
// when keycode READJUMP is released | |
} | |
break; | |
case PATIENT: | |
if (record->event.pressed) { | |
// when keycode WAIT is pressed | |
SEND_STRING("Insert macro text here"); | |
} else { | |
// when keycode WAIT is released | |
} | |
break; | |
case SLEEP: | |
if (record->event.pressed) { | |
//when keycode SLEEP is pressed | |
SEND_STRING(SS_LCTRL(SS_LGUI("q"))); | |
_delay_ms(250); | |
SEND_STRING(SS_TAP(X_ESCAPE)); | |
} else { | |
//when keycode SLEEP is released | |
} | |
break; | |
case ROD: | |
if (record->event.pressed) { | |
//when keycode ROD is pressed | |
SEND_STRING("Insert macro text here"); | |
} else { | |
//when keycode ROD is released | |
} | |
break; | |
} | |
return true; //Process all other keycodes normally | |
}; | |
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |
[0] = LAYOUT_60_ansi( | |
KC_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(1), 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, MO(2), MO(3), MO(4), MO(5) | |
), | |
[1] = LAYOUT_60_ansi( | |
KC_GRAVE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, | |
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LGUI(LSFT(KC_X)), | |
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT, KC_END, KC_TRNS, | |
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F13, KC_TRNS, KC_TRNS, KC_PGDN, KC_MRWD, KC_MFFD, KC_TRNS, KC_TRNS, | |
KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | |
), | |
[2] = LAYOUT_60_ansi( | |
READJUMP, 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, PATIENT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, CLEAR, | |
KC_TRNS, MEET, KC_TRNS, ROD, 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, | |
BRB, FOOD, AWAY, BACK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | |
), | |
[3] = LAYOUT_60_ansi( | |
LGUI(LALT(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, SLEEP, | |
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, LCTL(LGUI(KC_Q)), 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 | |
), | |
[4] = LAYOUT_60_ansi( | |
KC_TRNS, BM60, MAKE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, | |
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, 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 | |
), | |
[5] = LAYOUT_60_ansi( | |
KC_TRNS, RGB_MOD, RGB_RMOD, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ | |
KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_SPI, KC_TRNS, \ | |
KC_TRNS, RGB_HUD, RGB_SAD, 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, 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 \ | |
), | |
}; | |
void matrix_init_user(void) { | |
}; | |
void matrix_scan_user(void) { | |
}; | |
//layer indication | |
//layer 0 = base layer | |
/* | |
void rgb_matrix_indicators_kb(void) { | |
rgb_matrix_set_color(index, red, green, blue); | |
} | |
*/ | |
//layer 1 = CAPS layer = Standard functions = Green (0, 255, 0) | |
//layer 2 = RALT layer = Macro functions = Yellow (255, 255, 0) | |
//layer 3 = Fn layer = System functions, Function keys = Orange (250, 100, 0) | |
//layer 4 = APP layer = Keyboard functions = Red (255, 0, 0) | |
//layer 5 = RCTRL layer = RGB keyboard functions = Cyan (0, 190, 255) | |
void rgb_matrix_indicators_user(void) { | |
uint8_t layer = biton32(layer_state); | |
switch (layer) { | |
case 0: | |
//Light up all the keys in blue OR set to use EEPROM??? | |
// rgb_matrix_set_color_all(0, 0, 255); | |
// set default to static color with RGB = 0, 0, 255 but still be able to rotate through the options??? | |
// rgb_matrix_mode(mode) | |
// config.h #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR | |
break; | |
case 1: | |
rgb_matrix_set_color_all(0, 0, 0); // rest of keys blank/black | |
rgb_matrix_set_color(34, 0, 255, 0); // h home | |
rgb_matrix_set_color(35, 0, 255, 0); // j left | |
rgb_matrix_set_color(36, 0, 255, 0); // k up | |
rgb_matrix_set_color(37, 0, 255, 0); // l down | |
rgb_matrix_set_color(38, 0, 255, 0); // ; right | |
rgb_matrix_set_color(39, 0, 255, 0); // ' end | |
rgb_matrix_set_color(28, 0, 255, 0); // CAPS fn | |
rgb_matrix_set_color(10, 0, 255, 0); // 0 mute | |
rgb_matrix_set_color(11, 0, 255, 0); // - vol down | |
rgb_matrix_set_color(12, 0, 255, 0); // = vol up | |
rgb_matrix_set_color(13, 0, 255, 0); // BACKSP delete | |
rgb_matrix_set_color(21, 0, 255, 0); // u PgUp | |
rgb_matrix_set_color(27, 0, 255, 0); // BACKSL macro | |
rgb_matrix_set_color(48, 0, 255, 0); // m PgDn | |
rgb_matrix_set_color(49, 0, 255, 0); // , previous | |
rgb_matrix_set_color(50, 0, 255, 0); // . next | |
rgb_matrix_set_color(56, 0, 255, 0); // SPACE Play/Pause | |
rgb_matrix_set_color(0, 0, 255, 0); // ESC grave | |
rgb_matrix_set_color(45, 0, 255, 0); // v F13 | |
rgb_matrix_set_color(61, 0, 255, 0); // underglow | |
rgb_matrix_set_color(62, 0, 255, 0); // underglow | |
rgb_matrix_set_color(63, 0, 255, 0); // underglow | |
rgb_matrix_set_color(64, 0, 255, 0); // underglow | |
rgb_matrix_set_color(65, 0, 255, 0); // underglow | |
rgb_matrix_set_color(66, 0, 255, 0); // underglow | |
break; | |
case 2: | |
rgb_matrix_set_color_all(0, 0, 0); // rest of keys blank/black | |
rgb_matrix_set_color(29, 255, 255, 0); // a macro | |
rgb_matrix_set_color(31, 255, 255, 0); // d macro | |
rgb_matrix_set_color(27, 255, 255, 0); // BACKSL macro | |
rgb_matrix_set_color(16, 255, 255, 0); // w macro | |
rgb_matrix_set_color(53, 255, 255, 0); // LCTRL macro | |
rgb_matrix_set_color(54, 255, 255, 0); // LALT macro | |
rgb_matrix_set_color(55, 255, 255, 0); // LGUI macro | |
rgb_matrix_set_color(56, 255, 255, 0); // SPACE macro | |
rgb_matrix_set_color(57, 255, 255, 0); // RGUI fn | |
rgb_matrix_set_color(0, 255, 255, 0); // ESC macro | |
rgb_matrix_set_color(61, 255, 255, 0); // underglow indication | |
rgb_matrix_set_color(62, 255, 255, 0); // underglow indication | |
rgb_matrix_set_color(63, 255, 255, 0); // underglow indication | |
rgb_matrix_set_color(64, 255, 255, 0); // underglow indication | |
rgb_matrix_set_color(65, 255, 255, 0); // underglow indication | |
rgb_matrix_set_color(66, 255, 255, 0); // underglow indication | |
break; | |
case 3: | |
rgb_matrix_set_color_all(0, 0, 0); // rest of keys blank/black | |
rgb_matrix_set_color(0, 250, 100, 0); // ESC macro | |
rgb_matrix_set_color(1, 250, 100, 0); // 1 F1 | |
rgb_matrix_set_color(2, 250, 100, 0); // 2 F2 | |
rgb_matrix_set_color(3, 250, 100, 0); // 3 F3 | |
rgb_matrix_set_color(4, 250, 100, 0); // 4 F4 | |
rgb_matrix_set_color(5, 250, 100, 0); // 5 F5 | |
rgb_matrix_set_color(6, 250, 100, 0); // 6 F6 | |
rgb_matrix_set_color(7, 250, 100, 0); // 7 F7 | |
rgb_matrix_set_color(8, 250, 100, 0); // 8 F8 | |
rgb_matrix_set_color(9, 250, 100, 0); // 9 F9 | |
rgb_matrix_set_color(10, 250, 100, 0); // 0 F10 | |
rgb_matrix_set_color(11, 250, 100, 0); // - F11 | |
rgb_matrix_set_color(12, 250, 100, 0); // = F12 | |
rgb_matrix_set_color(13, 250, 100, 0); // BACKSP macro | |
rgb_matrix_set_color(37, 250, 100, 0); // l macro | |
rgb_matrix_set_color(58, 250, 100, 0); // Fn fn | |
rgb_matrix_set_color(61, 250, 100, 0); // underglow indication | |
rgb_matrix_set_color(62, 250, 100, 0); // underglow indication | |
rgb_matrix_set_color(63, 250, 100, 0); // underglow indication | |
rgb_matrix_set_color(64, 250, 100, 0); // underglow indication | |
rgb_matrix_set_color(65, 250, 100, 0); // underglow indication | |
rgb_matrix_set_color(66, 250, 100, 0); // underglow indication | |
break; | |
case 4: | |
rgb_matrix_set_color_all(0, 0, 0); // rest of keys blank/black | |
rgb_matrix_set_color(1, 255, 0, 0); // 1 macro | |
rgb_matrix_set_color(2, 255, 0, 0); // 2 macro | |
rgb_matrix_set_color(13, 255, 0, 0); // BACKSPACE reset | |
rgb_matrix_set_color(61, 255, 0, 0); // underglow indication | |
rgb_matrix_set_color(62, 255, 0, 0); // underglow indication | |
rgb_matrix_set_color(63, 255, 0, 0); // underglow indication | |
rgb_matrix_set_color(64, 255, 0, 0); // underglow indication | |
rgb_matrix_set_color(65, 255, 0, 0); // underglow indication | |
rgb_matrix_set_color(66, 255, 0, 0); // underglow indication | |
rgb_matrix_set_color(59, 255, 0, 0); // underglow indication | |
break; | |
case 5: | |
// RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T | |
rgb_matrix_set_color_all(0, 0, 0); // rest of keys blank/black | |
// rgb_matrix_set_color(0, 0, 190, 255); // ESC RGB Toggle | |
rgb_matrix_set_color(1, 0, 190, 255); // 1 RGB Mode Next | |
rgb_matrix_set_color(2, 0, 190, 255); // 2 RGB Mode Previous | |
rgb_matrix_set_color(3, 0, 190, 255); // 3 RGB M_P Static Color | |
rgb_matrix_set_color(4, 0, 190, 255); // 4 RGB M_B Breathing | |
rgb_matrix_set_color(5, 0, 190, 255); // 5 RGB M_R Full gradient scrolling left to right | |
rgb_matrix_set_color(6, 0, 190, 255); // 6 RGB M_SW Full gradient spinning pinwheel around center of keyboard | |
// rgb_matrix_set_color(7, 0, 190, 255); // 7 RGB M_SN | |
// rgb_matrix_set_color(8, 0, 190, 255); // 8 RGB M_K | |
// rgb_matrix_set_color(9, 0, 190, 255); // 9 RGB M_X | |
// rgb_matrix_set_color(10, 0, 190, 255); // 0 RGB M_G | |
// rgb_matrix_set_color(11, 0, 190, 255); // - RGB M_T | |
rgb_matrix_set_color(15, 0, 190, 255); // q Hue Increase | |
rgb_matrix_set_color(16, 0, 190, 255); // w Saturation Increase | |
rgb_matrix_set_color(17, 0, 190, 255); // e Brightness Increase | |
rgb_matrix_set_color(29, 0, 190, 255); // a Hue Decrease | |
rgb_matrix_set_color(30, 0, 190, 255); // s Saturation Decrease | |
rgb_matrix_set_color(31, 0, 190, 255); // d Brightness Decrease | |
rgb_matrix_set_color(26, 0, 190, 255); // ] Speed Increase | |
rgb_matrix_set_color(25, 0, 190, 255); // [ Speed Decrease | |
rgb_matrix_set_color(61, 0, 190, 255); // underglow indication | |
rgb_matrix_set_color(62, 0, 190, 255); // underglow indication | |
rgb_matrix_set_color(63, 0, 190, 255); // underglow indication | |
rgb_matrix_set_color(64, 0, 190, 255); // underglow indication | |
rgb_matrix_set_color(65, 0, 190, 255); // underglow indication | |
rgb_matrix_set_color(66, 0, 190, 255); // underglow indication | |
rgb_matrix_set_color(60, 0, 190, 255); // underglow indication | |
break; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment