Advertisement
hakbraley

QMK RGB Toggle Layer

Jul 27th, 2021 (edited)
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.92 KB | None | 0 0
  1. #define RGB_HOLD_LIMIT 400  //hold for less than 400ms to toggle RGB
  2.  
  3. enum custom_keycodes {
  4.     RGB_MACRO = SAFE_RANGE,  //custom keycode, name it what you want
  5. }
  6.  
  7. uint16_t rgb_hold_timer = 0;  //timer variable
  8.  
  9. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  10.     switch (keycode) {
  11.         case RGB_MACRO:
  12.             if (record->event.pressed) {        //when RGB_MACRO is pressed
  13.                 rgb_hold_timer = timer_read();  //  mark the time it was pressed
  14.                 layer_on(layer);                //  go to (layer)
  15.             } else {                            //when RGB_MACRO is released
  16.                 layer_off(layer);               //  leave (layer)
  17.                 if (timer_elapsed(rgb_hold_timer) < RGB_HOLD_LIMIT)
  18.                     tap_code16(RGB_TOG);        //  toggle RGB if held less than RGB_HOLD_LIMIT ms
  19.             }
  20.             break;
  21.         }
  22.     return true;
  23. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement