<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Vikas Kumar</title>
    <description>The latest articles on DEV Community by Vikas Kumar (@jon_snow_013f35cf68a89d2b).</description>
    <link>https://dev.to/jon_snow_013f35cf68a89d2b</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3960475%2Ffddbd411-e60c-46cd-9504-a5a692cd3aeb.png</url>
      <title>DEV Community: Vikas Kumar</title>
      <link>https://dev.to/jon_snow_013f35cf68a89d2b</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jon_snow_013f35cf68a89d2b"/>
    <language>en</language>
    <item>
      <title>How to Keep Your Screen Awake: The Complete Guide (Windows, Mac, Mobile)</title>
      <dc:creator>Vikas Kumar</dc:creator>
      <pubDate>Mon, 01 Jun 2026 12:09:26 +0000</pubDate>
      <link>https://dev.to/jon_snow_013f35cf68a89d2b/how-to-keep-your-screen-awake-the-complete-guide-windows-mac-mobile-3019</link>
      <guid>https://dev.to/jon_snow_013f35cf68a89d2b/how-to-keep-your-screen-awake-the-complete-guide-windows-mac-mobile-3019</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;In this article&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Modern Web Method (Screen Wake Lock API)&lt;/li&gt;
&lt;li&gt;Command Line Utilities for Power Users&lt;/li&gt;
&lt;li&gt;Native Operating System Settings&lt;/li&gt;
&lt;li&gt;Hardware Hacks &amp;amp; Mouse Jigglers&lt;/li&gt;
&lt;li&gt;Side-by-Side Comparison&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. The Modern Web Method (Screen Wake Lock API)
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;This is the technology driving this free &lt;a href="https://jtools.app/no-sleep" rel="noopener noreferrer"&gt;No Sleep Tool&lt;/a&gt;. Because it runs entirely inside the browser sandboxed environment, it requires no setup, no installer, and has absolutely zero corporate security or malware risk.&lt;/p&gt;

&lt;p&gt;How it works under the hood&lt;br&gt;
Developers can request a screen wake lock with just a few lines of JavaScript:&lt;/p&gt;

&lt;p&gt;JavaScript Screen Wake Lock Implementation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;wakeLock&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;requestWakeLock&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;wakeLock&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;navigator&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;wakeLock&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nb"&gt;navigator&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;wakeLock&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;request&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;screen&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Screen Wake Lock is active!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

      &lt;span class="c1"&gt;// Listen for release events&lt;/span&gt;
      &lt;span class="nx"&gt;wakeLock&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;release&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Screen Wake Lock was released.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;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:&lt;/p&gt;

&lt;p&gt;Handling Visibility Changes&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;visibilitychange&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;wakeLock&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;visibilityState&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;visible&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;requestWakeLock&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Try the free &lt;a href="https://jtools.app/no-sleep" rel="noopener noreferrer"&gt;No Sleep Tool&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Keep your display awake instantly with a single tap. Works on Chrome, Safari, and Edge.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Command Line Utilities for Power Users
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;macOS: &lt;code&gt;caffeinate&lt;/code&gt;&lt;br&gt;
Mac computers come preloaded with a built-in terminal command utility named caffeinate. Here are some of the most useful commands:&lt;/p&gt;

&lt;p&gt;macOS Caffeinate Commands&lt;/p&gt;
&lt;h3&gt;
  
  
  Prevent display sleep and system idle (keeps screen on indefinitely)
&lt;/h3&gt;

&lt;p&gt;caffeinate -d&lt;/p&gt;
&lt;h3&gt;
  
  
  Keep screen awake for 1 hour (3600 seconds)
&lt;/h3&gt;

&lt;p&gt;caffeinate -u -t 3600&lt;/p&gt;
&lt;h3&gt;
  
  
  Keep computer awake until a specific command or process finishes
&lt;/h3&gt;

&lt;p&gt;caffeinate -i npm run build&lt;br&gt;
Windows: PowerToys Awake &amp;amp; PowerShell&lt;br&gt;
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.&lt;/p&gt;

&lt;p&gt;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:&lt;/p&gt;

&lt;p&gt;PowerShell Safe Stay-Awake Script&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$wscript&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;New-Object&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-ComObject&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Wscript.Shell&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="kr"&gt;while&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;$true&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nv"&gt;$wscript&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;SendKeys&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'{F15}'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="n"&gt;Start-Sleep&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Seconds&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;60&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Linux: &lt;code&gt;systemd-inhibit&lt;/code&gt;&lt;br&gt;
On Linux machines utilizing systemd, you can prevent sleep while running a command by using systemd-inhibit:&lt;/p&gt;

&lt;p&gt;Linux Systemd Inhibit&lt;br&gt;
systemd-inhibit --what=idle --who="Build Process" --why="Compiling dependency tree" npm run build&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Native Operating System Settings
&lt;/h2&gt;

&lt;p&gt;If you want to permanently or semi-permanently adjust how your system handles inactivity, you can update your settings menu.&lt;/p&gt;

&lt;p&gt;Windows 10/11&lt;/p&gt;

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

&lt;h2&gt;
  
  
  4. Hardware Hacks &amp;amp; Mouse Jigglers
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Corporate Security Warning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;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.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Browser-native methods like the &lt;a href="https://jtools.app/no-sleep" rel="noopener noreferrer"&gt;No Sleep Tool&lt;/a&gt; are completely passive and do not register external hardware, making them a much safer option for corporate environments.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Side-by-Side Comparison
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F22f87tjan5cfsc5d7c6s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F22f87tjan5cfsc5d7c6s.png" alt="Side-by-Side Comparison" width="800" height="319"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Try the online tool &lt;a href="https://jtools.app/no-sleep" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>tutorial</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
