How to permanently disable monitor power saver using the command line?

31,508

Solution 1

#!/bin/bash
export DISPLAY=:0.0

if [ $# -eq 0 ]; then
  echo usage: $(basename $0) "on|off|status"
  exit 1
fi

if [ $1 = "off" ]; then
  echo -en "Turning monitor off..."
  xset dpms force off
  echo -en "done.\nCheck:"
  xset -q|grep "Monitor is"
elif [ $1 = "on" ]; then
  echo -en "Turning monitor on..."
  xset dpms force on
  echo -en "done.\nCheck:"
  xset -q|grep "Monitor is"
elif [ $1 = "status" ]; then
  xset -q|sed -ne 's/^[ ]*Monitor is //p'
else
  echo usage: $(basename $0) "on|off|status"
fi

Save this script in something like /usr/bin, give it a name (like switch_dpms) and make it executable with chmod 664 /usr/bin/switch_dpm.

Now all you need to do is add it to a cron job. So open your crontab file with:

crontab -e

and add this at the bottom:

@reboot /usr/bin/switch_dpms off

Every reboot it will turn dpms to off and you can also turn it on from commandline by doing /usr/bin/switch_dpms on or check its status with /usr/bin/switch_dpms status.

Source for the script

Solution 2

This will work. Open terminal in the /etc/xdg/autostart directory. Issue this command:

sudo -H gedit nodpms.desktop

Hit enter, you will have to input your password. Gedit will open, copy and pasted the following code in and then save.

[Desktop Entry]
Type=Application
Exec=xset -dpms
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_US]=nodpms
Name=nodpms
Comment[en_US]=
Comment=

Issue this in the still open terminal:

sudo -H gedit noscreenblank.desktop

Hit enter, you will have to input your password. Gedit will open, copy and pasted the following code in and then save.

Exec=xset s off
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_US]=noscreenblank
Name=noscreenblank
Comment[en_US]=
Comment=

Close the terminal. Open the file browser and navigate to the etc/xdg/autostart directory. Ensure that the files, nodpms.desktop and noscreenblank.desktop are there. If so, close everything and then reboot.

After reboot you can run an xset q command in terminal and see that dpms and screen blanking are turned off.

Solution 3

The solution to the screen blanking problem is simple once the right option is found. This has to do with power saving, but it isn't in an obvious place.

In 12.04 Gnome go to:

Applications > System tools > System Settings.

Select Brightness and Lock.

Uncheck the box for Dim screen to save power.

Next to the Turn screen off when inactive for option, select the amount of time before the screen is turned off. I selected 1 hour. Never is one selection that is available.

Share:
31,508

Related videos on Youtube

Admin
Author by

Admin

Updated on September 18, 2022

Comments

  • Admin
    Admin over 1 year

    I have tried as following:

    1. Turn off: export DISPLAY=:0.0 && xset dpms force off 
    2. Turn on: export DISPLAY=:0.0 && xset -dpms
    

    Which works but that is a temporary solution, which does not fix my problem yet. When i reboot system it start again and again the same auto turn off mode.

    How can i now remotely using SSH turn it off forever?

    IMPORTANT:

    - KIOSK (ATM machine will use this option)
    - 24/7 advertising display/slides will use this
    

    Optional Note: this guide i followed http://v2kblog.blogspot.com/2008/08/disabling-monitor-power-saver.html , but permanent solution did not worked.

    • Admin
      Admin over 12 years
      not sure about a command line solution - but you should be able to turn off powersaving by adding a dpms option to the monitor section of your xorg.conf
    • Admin
      Admin over 12 years
      OK - it is worth adding that stuff into your question. I presume you tried the "monitor xorg trick and it didnt work"? - also add that into your question.
    • Admin
      Admin over 12 years
      This works nice for me: crontab -e; */1 * * * * export DISPLAY=:0.0 && xset s 20; xset -dpms
  • Tofusoul
    Tofusoul over 12 years
    Still its not permanent 24/7 enabled mode? Its a KIOSK like you go to "BANK ATM machines to take money". And it becomes always BLACK screen. So people want to press a button, but they cant. Nobody wants to physically go every ATM machines to turn it on every morning.
  • Tofusoul
    Tofusoul over 12 years
    If it has to be crontab -e? Then i can also simply do "xset dpms force on" every 0 0 0 0 0, but its completely crazy i find. Because its in the operating system somewhere, who will completely deactivate that.
  • Rinzwind
    Rinzwind over 12 years
    I seriously do not understand why you make it so difficult!? Where in your question did you say it is a kiosk? I would suggest adding in this info in your question cuz my answer might change based on that. The script I posted works and is easy to use and understand. And no it does not have to be crontab. That is just to set the screen off when rebooting. But you can do this anywhere in the chain from booting to desktop/command line when booted. Why is it 'crazy'? I think it is normal to add something like this to cron.
  • Tofusoul
    Tofusoul over 12 years
    Many thanks for your input (just updated my KIOSK in the question too). But about the crontab -e i thought in very begin but did not apply that, because its involving timer, using timers i am not sure 100% KIOSK will be turned on or off when the system reboot once. I want to push or tell the system. Please turn this 100% off. So that no one have to run after the 100 ATM machines to check whether or not it was off. Also i have large screens on the shop for advertising which is 24/7 slides stays running. I cant trust my linux if its not 100% turning that option off. Please advise.
  • Rinzwind
    Rinzwind over 12 years
    Join us in chat: chat.stackexchange.com/rooms/201/ask-ubuntu-general-room Maybe this goes quicker when talking dutch (Hoping you are not talking French ;) )
  • Admin
    Admin almost 11 years
    You may create: $ echo -e '#!/bin/bash\nsleep 50\nexport DISPLAY=:0.0\nxset s off\nxset -dpms' > /var/tmp/pp.sh; cat /var/tmp/pp.sh; contab -e /var/tmp/pp.sh
  • tripleee
    tripleee about 7 years
    Don't use /usr/bin for your own scripts. It should be exclusively managed by dpkg for files installed from .deb packages. The directory /usr/local/bin exists precisely for this purpose, and won't be modified by any automated system maintenance or upgrade.
  • xealits
    xealits over 5 years
    in ubuntu 18.04 this setting did not stop dimming, I had to use xset -dpms
  • jonasstaehle
    jonasstaehle about 4 years
    Thanks. This finally fixed it for me on Ubuntu 19.10. My monitor was turning off after 30s of inactivity.