File Exchange

image thumbnail

Insomnia: prevent computer sleep mode

version (2.29 KB) by Francesco Montorsi
This small utility prevents, on Windows computers, the automatic sleep mode.


Updated 25 Apr 2012

View License

This small utility prevents, on Windows computers, the automatic sleep mode often activated by "aggressive" power policies.

Preventing computer sleep mode (a.k.a "power save") is mostly useful while doing long computations in a MATLAB script.

This utility has been inspired by the original INSOMNIA Windows utility!

Cite As

Francesco Montorsi (2020). Insomnia: prevent computer sleep mode (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (9)

Good job but not working for me. Instead, I use the following commands at the begining and at the end of my script:

At the begining:

% Inhibit computer from going to sleep

system('powercfg -setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c');

At the end:

% Allow computer to go to sleep

system('powercfg -setactive 381b4222-f694-41f0-9685-ff5bb260df2e');

The GUID used in each case is different on each computer. It can be queried by typing 'powercfg -list' on a command line window. There is a GUID for each energy mode, just choose the ones that allow or prevent the computer from going to sleep mode.

Hi Parth! unfortunately it is much harder to create an "insomnia" tool for Linux... the closest thing I could found is "Caffeine":
but it looks pretty hard to integrate in a MATLAB script...


Extremely useful - thank you! Any idea if there's an equivalent solution within MATLAB or the file exchange for OSX or Unix platforms?

Awesome work! I added this to my startup.m and finish.m files so that the computer doesn't sleep when I have MATLAB open (since I'm usually doing some heavy number-crunching).

I've updated the ZIP file with corrected files!

Sam Roberts

The file insomnia_header.h appears to be missing from the submission.

yes, you're right. I will replace global with persistent keyword asap :)


Perhaps you want to store insomnia_prevExecState as PERSISTENT instead of GLOBAL?


- changed global to persistent insomnia_prevExecState
- uploaded insomnia_header.h

MATLAB Release Compatibility
Created with R2010b
Compatible with any release
Platform Compatibility
Windows macOS Linux