Advertisement
hakbraley

QMK Stop Screensaver

Sep 2nd, 2021 (edited)
986
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.43 KB | None | 0 0
  1. /*  https://www.reddit.com/r/olkb/comments/pgdsh6/possible_to_keep_screen_alive_with_qmk/
  2.  *  Code to prevent computer from falling asleep.
  3.  *  This should go into keymap.c
  4.  */
  5.  
  6. #define SCREENSAVE_DELAY 120000  //configure how long to wait after last activity. 120000ms = 2 mins
  7.  
  8. enum custom_keycodes {
  9.     NO_SLEEP = SAFE_RANGE,  //custom macro key.  turns on screensaver mode
  10.     //other macros,
  11.     //...
  12. };
  13.  
  14.  
  15. bool stop_screensaver = false;     //screensaver mode status
  16. uint32_t last_activity_timer = 0;
  17.  
  18. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  19.     if (record->event.pressed)
  20.         stop_screensaver = false;  //turn off screensaver mode on any keypress
  21.    
  22.     switch (keycode) {
  23.         case NO_SLEEP:
  24.             if (record->event.pressed) {               //if NO_SLEEP is pressed
  25.                 stop_screensaver = true;               //turn on screensaver mode
  26.                 last_activity_timer = timer_read32();  //reset timer
  27.             }
  28.             break;
  29.         //other macros...
  30.     }
  31.     return true;
  32. }
  33.  
  34.  
  35. void matrix_scan_user(void) {
  36.     if (stop_screensaver) {                                             //if screensaver mode is active
  37.         if (timer_elapsed32(last_activity_timer) > SCREENSAVE_DELAY) {  //and no key has been pressed in more than SCREENSAVE_DELAY ms
  38.             tap_code16(KC_F13);                                         //  tap F13
  39.             last_activity_timer = timer_read32();                       //  reset last_activity_timer
  40.         }
  41.     }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement