Another way to make a KIOSK with nearly any distro,
though TINY CORE is rather ideal.
First, lets agree a kiosk has to:
a) boot to an opening screen in such a way as to prevent a user from halting/altering that process,
then
b) if a user tries to exit that screen, prevent them from accessing drives or configuration,
either of the kiosk menu system (aka browser), or the actual system files (aka Linux/Tiny Core/Windows Manager etc.)
c) Optionally, in some cases, you might want users to be able to access
specific applications; like a kiosk that provides a word processor, spreadsheets etc.
in addition to the standard fare of going online and serving up web pages. Or a kiosk
might just be serving local content, such as a kiosk at a harbor that talks
about the location and various activities, events and sea life etc.
To accomplish the first objective - the boot - is rather simple::
I have a shell script that:
a) checks for the folder /home/tc/.X.d and creates it if it doesn't exist
b) checks for the file /home/tc/.X.d/kiosk.sh and copies a script to that file name if it doesn't exist
c) and if it has to do those 2 steps, it then exits
d) and the Tiny Core boot process then launches /home/tc/.X.d/kiosk.sh
e) and since those steps do not have to be done, the /home/tc/.X.d/kiosk.sh script then does a tce-load -i firefox, followed by firefox awebpage.htm (whatever you want the html page to be called),
f) and the script then checks the PS command (loops) and if firefox is shut down, it reboots right away.
Of course some fast users could do a quickie top, find the script and stop it - maybe - before it reboots,
but using any sort of close firefox keystroke triggers a pretty darn fast reboot.
To get firefox to do a full screen is rather easy using javascript and the window.Innerheight and width commands, along with the resize and to ensure the browser will allow that, a simple modification of the user.js file and then copying that to the /home/tc/.mozilla/12345etc./user.js file, along with creating a firefox profile.ini before loading firefox pretty much guarantees the browser's configuration will be the same at each boot and you can thereby prevent users from changing the configuration from within firefox.
It takes a bit of arm wrestling to go through all the firefox configuration items using about:config in the address bar, but once you have it set the way you want it you can pretty much lock users out of being able to change your settings and with your kiosk.sh script running background, pretty much prevent users from breaking out to any windows manager of any flavor.
Perfect? No, but pretty hard to get around for the average or even seasoned user unless they completely break out of the windows manager altogether...and someone like that is probably likely to just bring a CD or USB Flash Drive with their own Tiny Core on it and now you have a different set of issues altogether.
To get applications to run for them - i.e. AbiWord, you can use the NETCAT command (NC) and a browser page that uses a form posted to local system: I wrote an entire menu-driven system with NC and Firefox and easily call scripts and modify files on the hard drive from web page - basically a mini-server at the local level - pretty easy to do.
I did not list code here as I am not sure if we are supposed to do that, but to summarize:
a) use the .X.d folder for a start up script and get firefox and your web/home page going
b) set firefox parameters with user.js
c) use javascript to get your full screen
d) make sure your script checks the output of the PS command so if firefox terminates you reboot
...simple...set one of these up tonight as a matter of fact for a Veterans Hall location.