MSzturc / obsidian-advanced-slides

Create markdown-based reveal.js presentations in Obsidian
https://mszturc.github.io/obsidian-advanced-slides/
MIT License
939 stars 80 forks source link

feat: Prevent suspend during presentation w/ Screen Wake Lock API #296

Open batonac opened 3 months ago

batonac commented 3 months ago

Is your feature request related to a problem? Please describe. Currently the screen can turn off and the computer suspend during a Advanced Slides presentation, which is problematic.

Describe the solution you'd like It seems easy enough to utilize the Screen Wake Lock API:

// Create a reference for the Wake Lock.
let wakeLock = null;

// create an async function to request a wake lock
try {
  wakeLock = await navigator.wakeLock.request("screen");
  statusElem.textContent = "Wake Lock is active!";
} catch (err) {
  // The Wake Lock request has failed - usually system related, such as battery.
  statusElem.textContent = `${err.name}, ${err.message}`;
}

Describe alternatives you've considered The computer can be set to disable suspend, but that's a cumbersome solution.

Additional context Secure context is required, but apparently localhost qualifies:

Locally-delivered resources such as those with http://127.0.0.1 URLs, http://localhost and http://*.localhost URLs (e.g. http://dev.whatever.localhost/), and file:// URLs are also considered to have been delivered securely.