Inactive Screen - Shigure

Display Shiguri after "?" seconds of inactivity

  1. // ==UserScript==
  2. // @name Inactive Screen - Shigure
  3. // @namespace inactivescreenshigure
  4. // @version 1.0
  5. // @description Display Shiguri after "?" seconds of inactivity
  6. // @author Who cares
  7. // @license GPLv3
  8. // @match *://*/*
  9. // @exclude *://example.com/* // Add url
  10. // @grant GM_addStyle
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15.  
  16. let idleTimer;
  17. const idleTime = 90000; // Set time, 90000 = 90 seconds
  18.  
  19. function startIdleTimer() {
  20. idleTimer = setTimeout(() => {
  21. showGif();
  22. }, idleTime);
  23. }
  24.  
  25. function resetIdleTimer() {
  26. clearTimeout(idleTimer);
  27. startIdleTimer();
  28. }
  29.  
  30. function showGif() {
  31. const gifOverlay = document.createElement('div');
  32. gifOverlay.id = 'gif-overlay';
  33. document.body.appendChild(gifOverlay);
  34. }
  35.  
  36. function removeGif() {
  37. const gifOverlay = document.getElementById('gif-overlay');
  38. if (gifOverlay) {
  39. gifOverlay.remove();
  40. resetIdleTimer();
  41. }
  42. }
  43.  
  44. GM_addStyle(`
  45. #gif-overlay {
  46. position: fixed;
  47. bottom: 25px;
  48. right: 25px;
  49. width: 160px;
  50. height: 210px;
  51. background-image: url('https://i.ibb.co/0jZDGqD/shigure.gif');
  52. background-repeat: no-repeat;
  53. filter: blur(0px);
  54. z-index: 9999;
  55. }
  56. `);
  57.  
  58. document.addEventListener('mousemove', removeGif);
  59. document.addEventListener('keypress', removeGif);
  60.  
  61. startIdleTimer();
  62. })();