Keep Screen Awake

Keep screen awake toggle via Tampermonkey menu

  1. // ==UserScript==
  2. // @name Keep Screen Awake
  3. // @namespace YMHOMER
  4. // @version 1.0
  5. // @description Keep screen awake toggle via Tampermonkey menu
  6. // @match *://*/*
  7. // @grant GM_registerMenuCommand
  8. // @run-at document-idle
  9. // @license MIT
  10. // ==/UserScript==
  11. (function() {
  12. 'use strict';
  13. let keepAwake = false;
  14. let wakeLock = null;
  15. async function toggleKeepAwake() {
  16. if (!keepAwake) {
  17. try {
  18. wakeLock = await navigator.wakeLock.request('screen');
  19. keepAwake = true;
  20. alert('Keep Screen Awake - ON');
  21. } catch (err) {
  22. console.error('Keep Screen Awake - failed:', err);
  23. alert('Keep Screen Awake - failed');
  24. }
  25. } else {
  26. if (wakeLock) {
  27. wakeLock.release().then(() => {
  28. wakeLock = null;
  29. keepAwake = false;
  30. alert('Keep Screen Awake - Off');
  31. });
  32. }
  33. }
  34. }
  35. if (typeof GM_registerMenuCommand === 'function') {
  36. GM_registerMenuCommand('Turn ON - Keep Screen Awake', toggleKeepAwake);
  37. } else {
  38. alert("GM_registerMenuCommand error");
  39. }
  40. })();