--- GPM_v2_spec.txt	2008-03-04 17:12:11.162515000 +0800
+++ GPM_v3_spec.txt	2008-03-04 17:10:52.651850000 +0800
@@ -6,7 +6,7 @@
          Author:  Simon Zheng
 
     1.3  Date of This Document:
-         Jau 16th, 2008
+         Mar 4th, 2008
 
 2. Background
 This project provides Solaris users with GNOME Power Manager utitilies. Solaris
@@ -68,10 +68,10 @@
 gnome-power-manager daemon is a session daemon for GNOME Desktop, which is 
 automatically started by gnome-session when logging in GNOME desktop session. It's 
 unprivileged and run by the user. Basically it's a policy agent talking with HAL 
-layer and libpolkit. (Here, a policy points an action specified by user and stored 
+and libpolkit. (Here, a gconf policy means an action specified by user and stored 
 in gconf, e.g, an action when battery is low, or an action that will be triggered 
-when lid is closed.) Generally gnome-power-manager receives HAL event via D-Bus and
-then enforces predefined policy by calling HAL interface to do the real action, such 
+when lid is closed.) Generally gnome-power-manager listens for HAL events via D-Bus 
+and responds with user-configurable reactions through HAL interfaces, such 
 as suspend, hibernate, set CPU frequency policy, etc.
 
 And D-Bus interfaces "org.freedesktop.PowerManagement" are exported to be used for
@@ -119,7 +119,8 @@
 4.7 Power button
 On JDS, pressing power button makes HAL emit a signal to notify gnome-power-manager.
 Then gnome-power-manager enforces a predefined policy (via HAL interfaces), suspend
-or hibernate or shutdown.
+or hibernate or shutdown, or interact with the user (display the above selectable 
+actions in a dialog to the user throught gnome-sys-supend LSARC/2003/569).
 
 4.8 CPU frequency scaling
 At present, CPUFreq HAL supports two types of CPU power management policies, "On 
@@ -128,7 +129,23 @@
 "Performance" means getting full CPU utilization all the time. Both policies can 
 be configured from GNOME Power Manager.
 
-4.9 Hardware capability and PolicyKit privilege checking
+4.9 Default policy values
+Each user logging into JDS for the first time will get some default policy values. 
+like "If suspend is supported on machine, system will suspend when lid close.  If 
+suspend is not supported, the action will be to do nothing by default.", "no change
+in brightness", "no change in cpufreq policy", "Interact with the user when 
+pressing power button".
+
+And then, only when the user has enough permission, these gconf policies are presented 
+to the user and allowed to change.
+
+4.10 Screen locking
+By default, when system is resumed from suspend, hibernate or blanking screen, GPM 
+will automatically lock screen to requrie user passward. To be convient, we also 
+provide the user with a configurable GUI option, which is used to disable or enable 
+screen locking.
+
+4.11 Hardware capability and PolicyKit privilege checking
 Since the above features aren't present on all systems and to all users. Before 
 showing the user GUI, it needs to check hardware capability or user PolicyKit 
 privilege. Hardware capability is checked through some special HAL properties, like
@@ -155,7 +172,7 @@
 running action via HAL interface, gnome-power-manager itself won't explicitly check
 PolicyKit privileges since HAL layer is able to check before doing the real action.
 
-4.10 HAL Dependency
+4.12 HAL Dependency
 Basically GNOME Power Manager is a mere consumer of the core functionality provided 
 by the PSARC cases listed below. Some basic HAL API, such as "GetPropertyString" 
 and "SetPropertyString", are provided by "Removable Media Enhancements in Solaris" 
@@ -231,6 +248,12 @@
 								X11R6.4: Update/upgrade
                                                                 of X Server
 
+  xscreensaver-command CLI              Committed               LSARC/2001/121          Used to lock screen
+                                                                XScreensaver
+
+  gnome-sys-suspend CLI                 Committed               LSARC/2003/569          Interact with the user about 
+                                                                GNOME sys-suspend       suspend action
+
   HAL API                               Volatile		PSARC/2005/399          Basic HAL APIs 								            		
                                                                 Tamarack: Removable 
                                                                 Media Enhancements
@@ -277,6 +300,8 @@
     LSARC/2001/348	GNOME Panel
     LSARC/2006/368      D-BUS Message Bus System
     PSARC/1998/299      X11R6.4: Update/upgrade of X Server
+    LSARC/2001/121      XScreenSaver
+    LSARC/2003/569      GNOME sys-suspend 
     PSARC/2005/399      Tamarack: Removable Media Enhancements in Solaris 
     PSARC/2006/601      Battery Project
     PSARC/2007/679      CPUFreq HAL
@@ -287,4 +312,5 @@
     ./contracts/contract-cpu-freq-GPM.txt
     ./contracts/contract-desktop-battery.txt
     ./contracts/contract-hal.txt
+    ./contracts/contract-GPM-support.txt
 

