DEV Community

Vikas Kumar
Vikas Kumar

Posted on

How to Keep Your Screen Awake: The Complete Guide (Windows, Mac, Mobile)

Stop your display from dimming, locking, or falling asleep. Here is a developer-friendly guide to keeping your screen active using web APIs, terminal commands, OS configurations, and hardware.

In this article

  1. The Modern Web Method (Screen Wake Lock API)
  2. Command Line Utilities for Power Users
  3. Native Operating System Settings
  4. Hardware Hacks & Mouse Jigglers
  5. Side-by-Side Comparison

Whether you are monitoring a hours-long deployment build, delivering an important slide presentation, following a complicated coding tutorial, or reading documentation, there is nothing more frustrating than having your screen dim and lock unexpectedly.

Operating systems default to strict screen timeouts to save battery and secure your system. However, when you need a temporary override, you have several powerful methods at your disposal. In this comprehensive guide, we will break down the most effective ways to keep your screen awake and active across Windows, Mac, and mobile platforms.

1. The Modern Web Method (Screen Wake Lock API)

The easiest and most platform-agnostic way to prevent screen sleep is using the modern browser-native Screen Wake Lock API. It allows web applications to request a temporary wake lock that holds the display active as long as the page is visible.

This is the technology driving this free No Sleep Tool. Because it runs entirely inside the browser sandboxed environment, it requires no setup, no installer, and has absolutely zero corporate security or malware risk.

How it works under the hood
Developers can request a screen wake lock with just a few lines of JavaScript:

JavaScript Screen Wake Lock Implementation:

let wakeLock = null;
async function requestWakeLock() {
  try {
    if ("wakeLock" in navigator) {
      wakeLock = await navigator.wakeLock.request("screen");
      console.log("Screen Wake Lock is active!");

      // Listen for release events
      wakeLock.addEventListener("release", () => {
        console.log("Screen Wake Lock was released.");
      });
    }
  } catch (err) {
    console.error(`${err.name}: ${err.message}`);
  }
}
Enter fullscreen mode Exit fullscreen mode

Since wake locks are automatically released when the user switches tabs or minimizes the window, you should listen for visibility changes to re-acquire the lock when the user returns to the page:

Handling Visibility Changes

document.addEventListener("visibilitychange", async () => {
  if (wakeLock !== null && document.visibilityState === "visible") {
    await requestWakeLock();
  }
});
Enter fullscreen mode Exit fullscreen mode

Try the free No Sleep Tool

Keep your display awake instantly with a single tap. Works on Chrome, Safari, and Edge.

2. Command Line Utilities for Power Users

For software engineers and system administrators, invoking a terminal command is often the quickest path to prevent a system from sleeping during long-running scripts or logs monitoring.

macOS: caffeinate
Mac computers come preloaded with a built-in terminal command utility named caffeinate. Here are some of the most useful commands:

macOS Caffeinate Commands

Prevent display sleep and system idle (keeps screen on indefinitely)

caffeinate -d

Keep screen awake for 1 hour (3600 seconds)

caffeinate -u -t 3600

Keep computer awake until a specific command or process finishes

caffeinate -i npm run build
Windows: PowerToys Awake & PowerShell
Windows users can install Microsoft's official PowerToys suite, which contains a utility named Awake. It displays a blue cup icon in the system tray and allows you to toggle indefinite wakefulness or set a custom countdown.

If you are on a restricted machine where you cannot install software, you can run a simple, harmless PowerShell loop that simulates a virtual keypress (such as F15) every 60 seconds. This feeds activity to the operating system and keeps it awake:

PowerShell Safe Stay-Awake Script

$wscript = New-Object -ComObject Wscript.Shell;
while ($true) {
    $wscript.SendKeys('{F15}');
    Start-Sleep -Seconds 60;
}
Enter fullscreen mode Exit fullscreen mode

Linux: systemd-inhibit
On Linux machines utilizing systemd, you can prevent sleep while running a command by using systemd-inhibit:

Linux Systemd Inhibit
systemd-inhibit --what=idle --who="Build Process" --why="Compiling dependency tree" npm run build

3. Native Operating System Settings

If you want to permanently or semi-permanently adjust how your system handles inactivity, you can update your settings menu.

Windows 10/11

  • Open the Settings panel (Win + I).
  • Go to System > Power & battery.
  • Expand the Screen and sleep dropdown.
  • Adjust the timeouts for when plugged in or on battery power.
  • macOS
  • Open System Settings from the Apple logo menu.
  • Scroll down and click Lock Screen.
  • Locate Turn display off on battery when inactive and Turn display off on power adapter when inactive.
  • Adjust the time thresholds or choose Never.

4. Hardware Hacks & Mouse Jigglers

A physical mouse jiggler is a hardware USB dongle that emulates a mouse cursor moving slightly back and forth. There are also mechanical platforms where you place your physical mouse onto a rotating disc.

Corporate Security Warning

Many enterprise IT security solutions actively monitor USB device registrations. Plugging an unauthorized USB mouse jiggler into a company laptop can register a security alert or flag your profile for compliance review. Additionally, security software can analyze mouse movements for synthetic patterns.

Browser-native methods like the No Sleep Tool are completely passive and do not register external hardware, making them a much safer option for corporate environments.

5. Side-by-Side Comparison

Side-by-Side Comparison

Try the online tool here.

Top comments (0)