webXsaver

Copyright 2004-2006, NC State University

Authors:
Ilan Gerald Volow - Code, design, and implementation.
Everette Gray Allen - Concept, direction, testing and documentation.

Email:
help@ncsu.edu

URL:
Binary -
http://www.ncsu.edu/mac/downloads/webXsaverII.zip
Source - http://www.ncsu.edu/mac/downloads/webXsaver.src.zip
License - http://www.ncsu.edu/mac/software/license.html

Introduction
webXsaver is a screen saver module which displays a web page.  Any web content supported by Apple's WebKit should display.  Client side pull is supported by WebKit.  We have used webXsaver with a MacMini attached via an DVI to HTMI cable to a 32" LCD TV to create web based digital signs and in our standard lab images to combat screen burn in and advertise our services on idle lab machines.

Requirements
MacOS X 10.3+.  webXsaver may work on earlier versions of MacOS X as long as Apple's WebKit frameworks (install Safari to get these) are installed but it has not been tested. 
There is no version for MacOS 9 and there never will be.
There never will be a port to any other operating system.

Install
Download and unzip the webXsaver.zip file, double click webXsaver.saver, and allow MacOS to install for all users.  This should put the file in /Library/Screen Savers.  Configure using the System Preferences panel for screen savers or use Plist Editor to change /Library/Screen Savers/webXsaver.saver/Contents/Resources/webloc.plist.  There is one key pair name webLocation.   Should look like this:
-----
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>webLocation</key>
<string>http://www.apple.com/</string>
</dict>
</plist>
-----
For use over the LoginWindow see Deployment Tips section.


Known Issues

1) Preview of the module in System Preferences has a display bug that shows the preview quarter size.  Feel free to fix the source if you know how.

Deployment tips

Running webXsaver over Loginwindow

Note: Credit for this tip goes to Andrina Kelly on  the AFP548 web site where I found the script. 
See: http://www.afp548.com/article.php?story=20050125100846729

webXsaver (or any screen saver module available to all users) can be run over the MacOS X 10.3+ login window using cron and a simple bash shell script.
The idea is to have cron test for a logged in user if none then test for the screen saver engine running and if not then run the screen saver engine with a specific module. 

To accomplish this we need 3 things, a) properly working webXsaver installed in /Library/Screen Savers b) a crontab entry in root's crontab (/var/cron/tabs/root) and a script to do the needed testing which we choose to put in /private/etc/scripts but could live in any readable path.

Example cron entry:
Use a cron entry for root (/private/var/cron/tabs/root) of:
*/5    *    *    *    *    /private/etc/scripts/loginsaver.sh

Script to get the screen saver running over login window:

The following script should be /private/etc/scripts/loginsaver.sh
#! /bin/bash
# begin loginsaver.sh bash script
# Note the double vertical bars are operators for evaluation of the return codes in bash so if the
# grep on who returns nothing found ie 1 then the grep on the ps will run and if it returns nothing found the screen saver engine will run
# Also using */5 in the minute field of the crontab executes this same command at intervals not a new instance of the command  every n minutes I think

/usr/bin/who | /usr/bin/awk '{ print $2 }'| grep console || ps acx | grep -q ScreenSaverEngine || /System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine -module webXsaver

# end loginsaver.sh

This should get everything going. 

EGA 1022200