How to handle screen blanking

| No Comments | No TrackBacks
I (spaetz) have been thinking about how to handle screen blanking in SHR. Currently there are 2 overlapping and conflicting mechanisms that blank the screen: The illume power gadget (code) and frameworkd which uses idle timeouts for screen dimming/blanking/suspend.

Illume does a good job, in that it also is able to suspend after blanking in a way that a tap with the stylus will wake up the Moko but not be registered as a click. On the downside, it doesn't know about specific situations, such as when in a phone call (at least that is what I think).

frameworkd knows about that and prevents dimming e.g. while in a call, the only issue with it is that is blanks the screen (it actually only turns the backlight off) but does nothing else. So when you tap on the screen to make it bright again, and you have managed to tap the "Delete" button (or any other widget that does something), then it will execute that action.

Currently both are turned on, which makes for a very confusing situation. Sometimes a tap will hit a button, sometimes not. If you disable screen blanking in SHR-settings, illume will stilll blank the screen, etc. How should this be resolved?

There are 3 issues to be resolved:
  1. Currently frameworkd blanking in SHR is broken because of an obsolete rules.yaml files. This needs to be fixed first.
  2. frameworkd blanking needs to prevent the first stylus tap to click anything on the screen. This also needs fixing independent of how the rest is handled.
  3. illume power settings and frameworkd need to be made compatible. Generally, I like that there are power settings in the illume preferences, but ideally those settings would do the same thing as when setting timeouts in framworkd via shr-settings (or the config file), and ideally they would honor each other (ie modifying frameworkd.conf should show up in the illume power config). Alternatively one could do away with either illume power settings completely or disable the frameworkd timeouts
Usually, when the screen goes blank (isn't there some more energy efficient way of turning the screen off, rather than just disable the backlight by the way?), we should be able to suspend at the same time to save power. Of course there needs to be an easy way to prevent suspend in certain situations (#172, #300), e.g. while logging a GPS track or while in an SSH session via WLAN etc. But I think we  can save some power by applying somewhat more aggressive defaults here.

UPDATE: After talking to raster on IRC I have been convinced that frameworkd works in a hacky manner. Screen blanking needs to go through proper X rather than just turning of the backlight behind X's back. Still, what frameworkd knows is when not to go blank. So the correct solution is to issue xommands (like "xset s activate") to make the screensaver do the right thing (or prevent it from doing so).

No TrackBacks

TrackBack URL: http://blog.shr-project.org/cgi-bin/mt/mt-tb.cgi/6

Leave a comment

Pages

About this Entry

This page contains a single entry by spaetz published on February 2, 2009 8:51 AM.

What is still needed before we release? was the previous entry in this blog.

SHR SMS app usability issues is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.