Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include QMK_KEYBOARD_H
- #define _DESK 0
- #define _ENCODERS 1
- #define _WOW 2
- #define _PHOTOSHOP 3
- #define _ILLUSTRATOR 4
- void matrix_init_user(void) {
- // Set default layer, if enabled
- rgblight_enable();
- rgblight_sethsv(190, 170, 255);
- rgblight_mode(RGBLIGHT_MODE_STATIC_LIGHT);
- }
- enum my_keycodes {
- ENABLE_SELECTOR = SAFE_RANGE
- };
- layer_state_t selected_layer = 0;
- const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Macropad
- * ,--------------------.
- * | Rot1 | Rot2 | Rot3 |
- * |------+------+------|
- * | 1 | 2 | 3 |
- * |------+------+------|
- * | 4 | 5 | 6 |
- * `--------------------'
- */
- [_DESK] = LAYOUT(
- ENABLE_SELECTOR, LT(1,KC_MUTE), LT(1,KC_NO),
- KC_MYCM, KC_ENT, KC_ESC
- ),
- [_ENCODERS] = LAYOUT(
- _______, _______, _______,
- KC_NO, KC_NO, KC_NO
- ),
- [_WOW] = LAYOUT(
- ENABLE_SELECTOR, _______, LSFT(KC_J),
- KC_C, KC_M, KC_U
- ),
- [_PHOTOSHOP] = LAYOUT(
- KC_B, _______, KC_E,
- KC_V, KC_P, KC_U
- ),
- [_ILLUSTRATOR] = LAYOUT(
- KC_B, _______, KC_E,
- KC_V, KC_P, KC_U
- ),
- };
- bool selector_enabled = false;
- bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case ENABLE_SELECTOR:
- if (record->event.pressed) {
- selector_enabled = true;
- register_code16(KC_LALT);
- tap_code16(KC_TAB);
- tap_code16(LSFT(KC_TAB));
- } else {
- selector_enabled = false;
- unregister_code16(KC_LALT);
- }
- return false;
- default:
- return true; // Process all other keycodes normally
- }
- }
- void encoder_update_user(uint8_t index, bool clockwise) {
- // left encoder
- if (index == 0) {
- switch(index){
- default:
- if (selector_enabled) {
- if (!clockwise) {
- tap_code16(LSFT(KC_TAB));
- } else {
- tap_code16(KC_TAB);
- }
- }
- if (selector_enabled == false) {
- if (!clockwise && selected_layer < 10) {
- selected_layer ++;
- } else if (clockwise && selected_layer > 0){
- selected_layer --;
- }
- layer_clear();
- layer_on(selected_layer);
- }
- break;
- }
- }
- // middle encoder
- if (index == 1) {
- switch(biton32(layer_state)){
- case 1:
- if (clockwise){
- rgblight_sethsv(190, 170, 255);
- } else{
- rgblight_sethsv(160, 100, 255);
- }
- break;
- default:
- if (clockwise){
- tap_code(KC_VOLD);
- } else{
- tap_code(KC_VOLU);
- }
- break;
- }
- }
- // right encoder
- else if (index == 2) {
- switch(biton32(layer_state)){
- case 1:
- if (clockwise){
- tap_code(KC_WFWD);
- } else{
- tap_code(KC_WBAK);
- }
- break;
- default:
- if (clockwise) {
- tap_code(KC_WH_D);
- } else{
- tap_code(KC_WH_U);
- }
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement