16

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.

4 Answers4

12

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.

Zanna
  • 72,312
11
#!/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

Rinzwind
  • 309,379
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.

Radu Rădeanu
  • 174,089
  • 51
  • 332
  • 407
Neon John
  • 139
0

The previous answer will not work. If you open a terminal and issue: xset q you will see that dpms will be enabled. The easiest way I have found to solve this issue is by going into the startup applications and create 2 applications. The name you give them does not matter, the 2 commands you need are this: xset s off (this disables the screensaver) and xset -dpms (disables dpms). I wish that I new which config file to put these commands in, but I do not.