Billboard Screen Saver Setup

Billboard can be run on both Windows and Apple platforms. Below are instructions on how to get the screen saver running properly.

Microsoft Windows - WolfTech Billboard Screensaver (WBS)

The WolfTech Billboard Screensaver (WBS) can be downloaded from https://billboard.ncsu.edu/screensaver/WolfTechBillboard.zip

First, extract the archive and copy "WolfTech Billboard.scr" to C:\Program Files\WolfTech Billboard (you will need to create this directory if this is your first installation)

Once you have copied the file into the proper folder, right click on the screensaver icon and hit "Install". This will take you to your "Screen Saver Settings" page. The WolfTech Billboard Screen Saver has now been installed. You can further edit your settings by clicking the "Settings" tab, if necessary. WBS options are explained in full in the WolfTech Wiki: http://www.wolftech.ncsu.edu/support/support/WolfTech_Billboard_Screensaver

Macintosh OSX 10.6+ - webXsaver Installation and Basic Setup (screensaver method)

First, download the current version of webXsaver binary and install it onto the Mac. Once you have installed the screen saver, set it as the active screensaver (System Preferences > Desktop and Screen Saver > Screen Saver tab -- and then select webXsaver on the list on the left).

While webXsaver is selected, click the options button underneath the screen saver preview. A text box will pop up asking for the URL webXsaver should access. In this box, please enter: https://billboard.ncsu.edu

NOTE: Usng webXpreloginagent to run over the login window in Apple has been sandboxed and restricted in 10.7. As such, webXpreloginagent is not compatible with 10.7.

Macintosh OSX 10.6+ - webXkiosk Installation and Basic Setup (app method)

First, download the current version of webXkiosk and install it onto the Mac. Create a user that automatically logs in, then put webXkioskII.app in the startup items. There is a preference in webXkioskII that enables Sign Mode - cmd+k to get prefs, default password is to leave the password field blank.

In order to be robust to power failures, a LaunchDaemon is used to start and keep the app running. The LaunchDaemon can be found at http://www.ncsu.edu/mac/downloads/webXkiosk.keepalive.zip.

More information can be found at http://www.ncsu.edu/mac/software/webXkiosk.html.

Raspberry Pi

Although not officially supported here is some information on the installation and Basic Setup for a Raspberry Pi [updated 7/14/16].


Legacy Installation Instructions

The following installation instructions are only relevant to older operating systems.

webXsaver Installation and Basic Setup (OSX 10.5 and earlier only)

First, download the legacy version of webXsaver binary and install it onto the Mac. Once you have installed the screen saver, set it as the active screensaver (System Preferences > Desktop and Screen Saver > Screen Saver tab -- and then select webXsaver on the list on the left).

Now that webXsaver is installed, we need to edit the URL that the bulletin board looks at. In order to do that, open up a terminal and navigate to the folder

/Library/Screen Savers/webXsaver.saver/Contents/Resources/

and open the "webloc.plist" file using the command:

pico -w webloc.plist

From there, the file should contain text like this ('Note:' the URL in the <string></string> parameters may be different)

<dict>
	<key>webLocation</key>
	<string>http://originalurl</string>
</dict>

And replace the value of <string> with https://billboard.ncsu.edu -- so that the full file looks 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>https://billboard.ncsu.edu/</string>
</dict>
</plist>

Getting The Screen Saver To Work Over The Login Window (OSX 10.4 and earlier only)

The hardest part of setting up webXsaver is setting it up so that it will load up when the computer is idle at the login screen. Note: Most of the code and text below is slightly modified from its original source at http://prowiki.isc-csg.upenn.edu:16080/index.php/Using_a_ScreenSaver_over_the_LoginWindow

First, open up a terminal window and navigate to the folder /Library/Scripts/UserScripts (you'll probably need to create this folder). Once in that folder, create a file called loginwindowScreenSaver.bash and paste the following code into it:

#!/bin/bash

screenSaverEngine='/System/Library/Frameworks/ScreenSaver.framework/Versions/Current/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine'

# first we check to see if we are at the loginwindow
if (( `/bin/ps -awwxco command,user | /usr/bin/grep '^loginwindow ' | /usr/bin/grep -c 'root'` > 0 )); then
	# next we look to see if the screensaver is already running
	if (( `/bin/ps -awwxco command,user | /usr/bin/grep -c '^ScreenSaverEngin '` < 1 )); then
		# and finally, we check to see that we have been idle long enough
		minIdleTime=`/usr/bin/defaults -currentHost read com.apple.screensaver idleTime`
		if [ -z "$minIdleTime" ]; then
			minIdleTime=60
		fi
		idleTime=`/usr/sbin/ioreg -c IOHIDSystem | /usr/bin/awk '/HIDIdleTime/ {print $NF/1000000000; exit}'`
		idleTime=`/bin/echo "scale=0; $idleTime/1" | /usr/bin/bc`
		if (( $idleTime > $minIdleTime )); then
			moduleName=`/usr/bin/defaults -currentHost read com.apple.screensaver moduleName`
			if [ -n "$moduleName" ]; then
				$screenSaverEngine -module $moduleName &
			else
				$screenSaverEngine &
			fi
		fi
	fi
fi

# note that this generates some complaints, but does work

After saving the file, you will need to chown the file as root and chmod it to 755 so it has permission to be run:

sudo chown root /Library/Scripts/UserScripts/loginwindowScreenSaver.bash
sudo chmod 755 /Library/Scripts/UserScripts/loginwindowScreenSaver.bash

Next, we need to enter an entry into the Crontab that will run the script. You can access the Crontab by typing the following:

sudo crontab -u root -e

This should bring up either blank window with tildes along the left hand side, or possibly other crontab entries, such as the one that Norton Antivirus puts in there. Use the arrow keys to get near the end of the last line of the file, and then push "i" to go into "insert mode" (this is a version of the "vi" editor, and is a bit arcane).

Now that you are in "insert mode" go to the end of the last line and press return a few times to get to a new line. You will then want to enter the following lines:

# Entered by <your name here> on <put the date here>
*/5	*	*	*	*	/Library/Scripts/UserScripts/loginwindowScreenSaver.bash

The first line is just a comment (and you should put your own information there), and is a good idea so that others who might be modifying this later know who has been doing what. The spaces between the *'s should be tabs (but can be single spaces... it just looks better with tabs).

Once this looks right press the 'esc' key to get out of "insert mode" and then press ":wq" and the return key to quit and save changes. Hopefully you will not get any errors.

Setting Preferences

Running the next two commands in your terminal will ensure that it is the webXsaver that will display. The "idleTime" setting of 180 seconds along with the "run every 5 minutes" should ensure that Billboard will begin displaying within 5-8 minutes of the computer sitting idly at the login screen (the timing of this is kind of finicky).

defaults -currentHost write com.apple.screensaver idleTime -int 180
defaults -currentHost write com.apple.screensaver moduleName 'webXsaver'

Additional Information

Some WolfTech slides use standard Macintosh fonts such as Zapfino and Brush Script MT. While these fonts will automatically be recognized when running the screen saver on a user account, they will not display when the screen saver is run over the login window until they are copied into the System's fonts folder. You can do so by running the following command:

cp /Library/Fonts/* /System/Library/Fonts/

After this, you'll be able to use any of the installed fonts on your computer in your presentations. Note: If you install any new fonts after running this command, you will need to make sure the font exists in both /Library/Fonts and /System/Library/Fonts