-
-
Notifications
You must be signed in to change notification settings - Fork 39.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bonta keymap for massdrop/ALT #6391
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
#include QMK_KEYBOARD_H | ||
|
||
enum alt_keycodes { | ||
U_T_AUTO = SAFE_RANGE, //USB Extra Port Toggle Auto Detect / Always Active | ||
U_T_AGCR, //USB Toggle Automatic GCR control | ||
DBG_TOG, //DEBUG Toggle On / Off | ||
DBG_MTRX, //DEBUG Toggle Matrix Prints | ||
DBG_KBD, //DEBUG Toggle Keyboard Prints | ||
DBG_MOU, //DEBUG Toggle Mouse Prints | ||
MD_BOOT, //Restart into bootloader after hold timeout | ||
}; | ||
|
||
#define TG_NKRO MAGIC_TOGGLE_NKRO //Toggle 6KRO / NKRO mode | ||
#define RGB_BRU RGB_VAI | ||
#define RGB_BRD RGB_VAD | ||
|
||
keymap_config_t keymap_config; | ||
|
||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
[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_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_BSLS, KC_HOME, \ | ||
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_PGUP, \ | ||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \ | ||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT \ | ||
), | ||
[1] = LAYOUT( | ||
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_F13, KC_MUTE, \ | ||
_______, RGB_SPD, RGB_BRU, RGB_SPI, _______, _______, _______, U_T_AUTO,U_T_AGCR,_______, KC_PSCR, KC_SLCK, KC_PAUS, _______, KC_END, \ | ||
_______, RGB_RMOD,RGB_BRD, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, \ | ||
_______, RGB_TOG, _______, _______, _______, MD_BOOT, TG_NKRO, _______, _______, _______, _______, _______, KC_VOLU, KC_VOLD, \ | ||
_______, _______, _______, KC_MPLY, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT \ | ||
) | ||
}; | ||
|
||
// Runs just one time when the keyboard initializes. | ||
void matrix_init_user(void) { | ||
}; | ||
|
||
// Runs constantly in the background, in a loop. | ||
void matrix_scan_user(void) { | ||
}; | ||
|
||
#define MODS_SHIFT (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT)) | ||
#define MODS_CTRL (get_mods() & MOD_BIT(KC_LCTL) || get_mods() & MOD_BIT(KC_RCTRL)) | ||
#define MODS_ALT (get_mods() & MOD_BIT(KC_LALT) || get_mods() & MOD_BIT(KC_RALT)) | ||
|
||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
static uint32_t key_timer; | ||
|
||
switch (keycode) { | ||
case U_T_AUTO: | ||
if (record->event.pressed && MODS_SHIFT && MODS_CTRL) { | ||
TOGGLE_FLAG_AND_PRINT(usb_extra_manual, "USB extra port manual mode"); | ||
} | ||
return false; | ||
case U_T_AGCR: | ||
if (record->event.pressed && MODS_SHIFT && MODS_CTRL) { | ||
TOGGLE_FLAG_AND_PRINT(usb_gcr_auto, "USB GCR auto mode"); | ||
} | ||
return false; | ||
case DBG_TOG: | ||
if (record->event.pressed) { | ||
TOGGLE_FLAG_AND_PRINT(debug_enable, "Debug mode"); | ||
} | ||
return false; | ||
case DBG_MTRX: | ||
if (record->event.pressed) { | ||
TOGGLE_FLAG_AND_PRINT(debug_matrix, "Debug matrix"); | ||
} | ||
return false; | ||
case DBG_KBD: | ||
if (record->event.pressed) { | ||
TOGGLE_FLAG_AND_PRINT(debug_keyboard, "Debug keyboard"); | ||
} | ||
return false; | ||
case DBG_MOU: | ||
if (record->event.pressed) { | ||
TOGGLE_FLAG_AND_PRINT(debug_mouse, "Debug mouse"); | ||
} | ||
return false; | ||
case RGB_TOG: | ||
if (record->event.pressed) { | ||
switch (rgb_matrix_get_flags()) { | ||
case LED_FLAG_ALL: { | ||
rgb_matrix_set_flags(LED_FLAG_KEYLIGHT); | ||
rgb_matrix_set_color_all(0, 0, 0); | ||
} | ||
break; | ||
case LED_FLAG_KEYLIGHT: { | ||
rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); | ||
rgb_matrix_set_color_all(0, 0, 0); | ||
} | ||
break; | ||
default: { | ||
rgb_matrix_set_flags(LED_FLAG_ALL); | ||
} | ||
break; | ||
} | ||
} | ||
return false; | ||
case MD_BOOT: | ||
if (record->event.pressed) { | ||
key_timer = timer_read32(); | ||
} else { | ||
if (timer_elapsed32(key_timer) >= 500) { | ||
reset_keyboard(); | ||
} | ||
} | ||
return false; | ||
default: | ||
return true; //Process all other keycodes normally | ||
} | ||
} |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
QMK has macros for these checks built in; you don't need to define your own if you use the native ones.
qmk_firmware/tmk_core/common/keycode.h
Lines 49 to 63 in bffbb4b