Getting a kiosk style system up and running is not very hard. It does require setting up your system and involves editing several files. This setup should work for most gnu/linux systems with gnome installed. It depends on GDM being the login manager. It uses the mozilla kiosk browser and the twm-kiosk window manager. These may be obtained from
the Kiosk Project site and don't forget to read those docs.
- Install the twm-kiosk window manager and verifiy it works. Read all the twm-kiosk docs. To start twm-kiosk do: xinit /path-to/twm/twm-kiosk --:0 from a tty. You may want to edit the /etc/X11/twm/system.twmrc file to remove, or add to, items from the 'defops' section once you have your kiosk system working. The 'defops' section of twm-kiosk and twm system.twmrc file is the definition of the left-click popup menu.
- Install the kiosk browser and verify it works. Read all the kiosk browser docs.
- Edit the /etc/X11/twm/kiosk-default.sh script as needed. This file should already contain the line:
xterm -e mozilla -chrome chrome://kiosk/content/' if this line is not in there then copy it in.
- Edit the /etc/X11/gdm/Init/default file, this file may be symlink to /etc/X11/xdm/Xsetup_0 or it may be /usr/etc/gdm/Init/default depending on your system.
Here is a sample Xsetup_0 file:
#!/bin/sh
# Xsetup for Red Hat Linux
# Copyright (c) 1999, 2000 Red Hat, Inc.
/usr/X11R6/bin/xsetroot -solid "#356390"
xterm -e /extraspace/twm/twm/twm-kiosk
/sbin/pidof -s kdm &> /dev/null && [ $? -eq 0 -a -x /usr/bin/kdmdesktop ] && /usr/bin/kdmdesktop && sleep 1s
# only set the background if the xsri program is installed
if [ -x /usr/bin/xsri ]; then
/usr/bin/xsri -geometry +5+5 -avoid 300x250 -keep-aspect \
/usr/share/pixmaps/redhat/redhat-transparent.png
fi
Notice the line xterm -e /extraspace/twm/twm/twm-kiosk contains the path to the twm-kiosk installed on my system - your path will probably be different. Also you may not need the xterm -e depending on how your system is setup. Anyway this starts the twm-kiosk which starts the kiosk browser before the login window appears. In the /etc/X11/gdm/Init/default file you would only need to add the xterm -e /extraspace/twm/twm/twm-kiosk line. I should also point out that you could start twm or fvwm or some other program just as easily. But beware that starting some programs without a window manager will cause them to not work correctly becuase they rely on the window manager for mouse, keyboard tracking and other gui related issues.
If all goes well you should now have a system that boots and goes directly into a kiosk mode. Is there more that could be done to make your kiosk system better? You bet! This is just a base system that could be tuned to better match your situation. I use this base setup on standalone pc's and on thin clients, vist The Linux Terminal Server Project for information on thin clients.
After you get the basic setup working you may want to investigate some things:
- In your xconfig you may want to disable the ctrl+alt+backspace command. Look at the 'DontZap', 'DontZoom' flags in the 'ServerFlags' section. This command allows the Xsession to be killed, not something you want in a production kiosk system.
- You may want to start xscreen saver from the /etc/X11/twm/kiosk-default.sh file. You could then use the banner screen saver to display a message after some period of inactivity.
- If you are using mozilla or the kiosk browser in a thin client environment you will need to use mozilla-0.9.9 because of a bug in the profile manager.
- Disable access to your system bios. Again this is one of those things that you don't want users to be able to do in a production kiosk system. Most bios let you set an access password.