Trying to set up a CentOS 6 linux system to act as a nagios display, but we don't want users to have to log in or be able to interact with anything.  This is just to feed the "big board" status display in the NOC.   Someone suggested buying something to run on windows as a screen saver, but I thought this was something that should be easier.  

CentOS 6 is running GNOME 2.3x, so I started here:

https://help.gnome.org/admin/gdm/2.32/configuration.html.en

The key thing to understand, and that is not clearly stated in the online documentation is that the background image for the login screen is essentially the desktop background for the gdm user.  Once you understand that, the aggravation of all the different machinations to make the change alleviate somewhat.   When I successfully modified the image that was being used for the desktop background, it was reflected here:

/var/lib/gdm/.gconf/desktop/gnome/background/%gconf.xml

The same file would be modified for any user that changed their personal after-login desktop background.  The contents of the file are XML, and the item that effected this change was:

<gconf>
    <entry name="picture_filename" mtime="1435348154" type="string">
        <stringvalue>/usr/share/backgrounds/cosmos/background-1.xml</stringvalue>
    </entry>
</gconf>

That just changes the gdm user's background.  Making it update or cycle is another issue.

First I disabled the GUI login prompt by renaming and chmod 000-ing /usr/share/gdm/autostart/LoginWindow/gdm-simple-greeter.desktop.

Then I created a script which would refresh the background with a specified image at regular intervals(proof of concept; left out the infinite loop):

#!/bin/sh

IMAGEDIR="/home/user/screens"
IMAGE_PREFIX="screen"
IMAGE_EXTENSION="png"

ROTATION_DELAY=10

LAST_SCREEN=`cat ${IMAGEDIR}/last`
# initialize
SCREEN_NUMBER=1

while [ SCREEN_NUMBER -le $LAST_SCREEN ] 
    do
    SCREENFILE="${IMAGEDIR}/${IMAGE_PREFIX}${SCREEN_NUMBER}.${IMAGE_EXTENSION}"
    gconftool-2 -t string -s /desktop/gnome/background/picture_filename "${SCREENFILE}"
    SCREEN_NUMBER=`expr $SCREEN_NUMBER + 1`
    sleep $ROTATION_DELAY
    done

Once that script was in place at /usr/local/bin/nagios-background, I created /usr/share/gdm/autostart/LoginWindow/nagios-background.desktop:

[Desktop Entry]
Type=Application
Name=Nagios
Exec="/usr/local/bin/nagios-background"
OnlyShowIn=GNOME;
X-GNOME-Autostart-Phase=Application
X-GNOME-Autostart-Notify=true
X-GNOME-AutoRestart=true


See also:

/usr/share/gdm/autostart/LoginWindow/ which contains all of the applications that auto-start for gdm's login screen.  You can usurp some of the existing files to craft a custom one that starts an application automatically, such as a browser pointed at a URL.  Be careful to secure the browser so that you are not providing a real vector into the system.

I disabled 'gdm-simple-greeter.desktop', which is what provides the GUI login prompt.