My pseudo Presentation Mode

John Hupp lubuntu at prpcompany.com
Fri Dec 19 18:22:42 UTC 2014


My most-hated-bugs list includes 
https://bugs.launchpad.net/ubuntu/+source/xfce4-power-manager/+bug/1193716. 
If you are streaming video in your browser, after 10 minutes it will 
blank and then lock the screen (unless you keep moving the mouse). The 
bug has been fixed for 14.10, but policy has prevented the fix from 
being back-ported to the LTS.  Worry about a regression I suppose, but a 
usability black eye for the LTS.

I wrote a script that toggles to a pseudo Presentation Mode (and back to 
Normal Mode if you run it again) and notifies the user of the present 
mode.  I also made up a desktop entry file named Power Mode Toggler that 
will run the script from the Preferences menu.

Note that the Presentation Mode settings are not permanent, but expire 
with the session.

To use these, install the very small libnotify-bin package, which is 
required for the user notifications.  Then as root, create both files in 
/usr/local/share/applications (or an equivalent location). Remember to 
make the script executable.

------------------------------------------------------------------------

#!/bin/bash
# /usr/local/share/applications/xset-mode.sh
# A script to toggle between Presentation and Normal mode and notify the 
user of the mode

STATUS_MONITOR=$(xset q | grep "DPMS is" | awk '{print $3}')

     if [ "$STATUS_MONITOR" == "Enabled" ]; then

        xset s off
        xset -dpms
        notify-send -t 5000 “The computer is now in Presentation Mode”

     else

        xset s on
        xset +dpms
        notify-send -t 5000 “The computer is now in Normal Mode”

     fi

------------------------------------------------------------------------

A desktop entry file to run the script and appear in the Preferences 
menu as Power Mode Toggler:
/usr/local/share/applications/power-mode-toggler.desktop

[Desktop Entry]
Version=1.0

Type=Application

Name=Power Mode Toggle
Icon=xfpm-ac-adapter

Exec=bash /usr/local/share/applications/xset-mode.sh
Terminal=false

Categories=Settings
Name[en_US]=Power Mode Toggler
Comment[en_US]=Toggle between Presentation and Normal Mode

------------------------------------------------------------------------

*Arcane Background Reading*

A summary of my research into this problem:

/*Command Line Behavior*/

Command line utility xset sets the X user preferences

Some commands:
xset q - queries the current settings for the X user preferences
xset s on/off - turn the screen saver functions on  or  off
xset -dpms/+dpms - disables/enables the DPMS functions

xset q output includes these two sections which determine the screen 
behavior:

Screen Saver:
   prefer blanking:  yes    allow exposures:  yes
   timeout: 600    cycle:  600

DPMS (Energy Star):
   Standby: 600    Suspend: 0    Off: 900
   DPMS is Enabled
   Monitor is On

This xset output is the reliable indicator of behavior, not the GUI 
interfaces.

An ad hoc Presentation Mode:
$ xset s off    # sets Screen Saver timeout: 0
$ xset -dpms    # disables DPMS, though leaving the Standby, Suspend, 
Off values unaffected
This works!

An ad hoc Normal Mode:
$ xset s on    # sets Screen Saver timeout to the X default: 600
$ xset +dpms    # enables DPMS with whatever Standby, Suspend, Off 
values are current

------------------------------------------------------------------------

/*GUI Interface Behavior (A Mess)*/

Menu: Preferences: Power Manager, Light Locker
     (xfce4-power-manager-settings, light-locker-settings)

Changing settings in LL/XPM will also change the output of xset q, but 
changing settings via xset does not result in changes to the LL/XPM 
interfaces.  Perhaps a reboot would effect that.

If you set XPM systray icon to always appear and right-click it, you can 
choose Mode: Normal/Presentation.  But Presentation Mode merely disables 
DPMS and does not turn off the screen saver.

Note that light-locker-settings and xfce4-power-manager-settings both 
offer sliders to set monitor blank/sleep and monitor switched off.  But 
these operate in lock-step: changing a slider setting in LL will also 
change it in XPM.  However, the effects in xset depend on which 
interface you made the change from!!!

XPM: By default the monitor-sleep slider affects DPMS Standby, but the 
Extended tab can set it to affect DPMS Suspend instead.  The 
monitor-offs slider affects DPMS Off.  XPM has no effect on the Screen 
Saver section.

LL: The monitor-blank slider affects Screen Saver timeout.  The 
monitor-off slider affects DPMS Standby and sets DPMS Off: 0. Setting 
Enable Light Locker On/Off has varying effects depending on the initial 
state.  Enabling LL after it had been disabled set the Screen Saver 
timeout: 600 and DPMS Off: 0.  I thought I found a case that set Screen 
Saver timeout: 0, but couldn’t duplicate that result.

An Ad Hoc Presentation Mode: Set XPM systray icon to always appear; 
right-click it and choose Mode: Presentation.  Set LL monitor-blank 
slider to Never and Apply.

An Ad Hoc Normal Mode: Right-click XPM systray icon and choose Mode: 
Normal.  Set LL monitor-blank slider to 10 minutes and Apply.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/lubuntu-users/attachments/20141219/d4609ab6/attachment.html>


More information about the Lubuntu-users mailing list