This is part of an experiment to use Linux as a kiosk system. We've already managed to create a computer that does nothing else but show a Firefox web browser window, but we have yet a couple of problems to solve :
Multimedia can be covered at least partially by installing browser plugins, add-ons and extensions. In that case, it would also be good if the configuration of Firefox, including all add-ons and plug-ins and helper applications (mpeg files etc ...) , could be automated - or at least copied from one machine to another. [Need to check this]
As an alternative to this configuration, you can use this fluxbox configuration. It's based of an Ubuntu base system, and a bit more modern.
By extending the 'nothing but a web browser setup, we can solve this situation by
alternative : do it server-based : run everything off a server, eg. like webmin does. For the client configuration, that means we're back to a simple 'web client' setup. Another approach : set up a desktop environment and lock it down, i.e. prevent the user from accessing certain features. This can be implemented with KDE in Kiosk Mode or Ubuntu / Gnome Lockdown.
We apt-get install x-windows-system fwvm ,
and the required applications : openoffice.org, mozilla-firefox, totem, (...)
and bastille to secure the system afterwards.
refer to the next page for details
After fwvm is installed, startx and click on the screen : you'll get a menu where you find 'setup form'. Click this to creat a skeleton configuration. This we should do only once - we'll try to reproduce our 'ideal' setup later by copying the files.
Stop fvwm and go look in your home directory. You'll find a directory ~/.fvwm/, in which there is a collection of configuration files. The ones of most interest to us are :
With these components, it should be possible to configure a GUI where the user can launch applications by clicking buttons and/or selecting items from the start menu - without the overkill of a fullblown desktop environment.
a Linux System with fvwm2 Window Manager showing a task bar with start button, and a number of applications : Firefox web browser, Totem Movie Player, an OpenOffice spreadsheet and a calculator ...
The default configuration of fvwm is ... well ... ugly. It has the feel of an 1980's desktop (think : Windows 3.0 or older) and the color scheme hurts the eye. However, every aspect of the desktop is configurable and with some simple modifications (change fonts, choose different colors, use gradients in stead of solid colors, apply transparancy, reduce the width of the borders, ...) it can be turned into a flashy, modern looking GUI that can easily comlpate with a recent Microsoft Office, Gnome or KDE Desktop. (below are links to some examples)
/usr/X11R6/lib/X11/xinit/xinitrc is supposedly the main config and startup script for X-server, but on my (Debian) system, it just refers back to /etc/X11/Xsessions - keeping configuration neetly in /etc :-). We could use these (or the equivalent but user specific .xinitrc and .xsession in the /home/www directory) to set the background color for the GUI etc. However, as fvwm allows us to execute commands, we can put everuthing in the .fvwm2rc configuration in the user home directory - thus keeping the complete GUI setup in 1 place.
this is the main configuration file of fvwm and governs the look and feel of the GUI, the contents of the menus, etc. It refers to a number of other config files where additional details for specific GUI components. We add / modify the following settings to suit our needs :
# root window background color, corsor, and load screensaver Exec exec xscreensaver& Exec exec xsetroot -solid darkslateblue -fg white -cursor_name arrow DeskTopSize 1x1 # multiple / virtual desktops are confusing for MS-Windows users :-) # set colors and fonts for menu a.o. MenuStyle * fwvm, Foreground black, Background grey, Greyed grey40 MenuStyle * Font -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-* Style * HilightFore white, HilightBack blue Style * RandomPlacement, SmartPlacement #window title bars - color gradients for a "modern" look TitleStyle (VGradient 128 2 royalblue1 50 royalblue3 50 royalblue4) # Window Title Bar Buttons more or less as in Microsoft Windows # But beware, their default icon won't match the function Mouse 0 2 A Delete Mouse 0 6 A Iconify Mouse 0 4 A Maximize 0 100 Mouse 0 4 A Maximize 100 0 Mouse 0 4 A Maximize
The 'Exec exec' stament allows us to call external programs and commands, either from a menu or directly from .fvwm2rc when it's read as the window manager starts up. This is usefull to include commands and scripts for which there are no suitable keywords in the fvwm configuration files.
Next, you decide what Windows components you'll want to show. We opt for nothing but a taskbar. Look foor the statements that look like the one below, coment them out, and add or leave only a TaskBar. Note also that we can include the 'xsetroot' command here to set the root window (eg backgroundcolor). This allows us to keep all of the GUI configuration in fvwm in stead of spreading it over multiple locations.
AddToFunc Startfunction +I Module FvwmTaskBar Read ConfigFvwmTaskBar
Then, modify the menu's that it only shows installed applications that you will allow your user to use. Locate statements that look like the ones below, and add, delete, and modify at will. For the applications you want added, you onlu need the names of their executable - assuming their location has been put on the PATH bu the setup script that installed and configured them.
DestroyMenu FvwmMenuRoot AddToMenu FvwmMenuRoot "$[gt.Start Menu]" Title + "Browser" Exec exec firefox + "Play Movie" Exec exec totem #keep it simple, don't use submenus DestroyMenu FvwmUtilities
Finally, change the look and feel of the Windows Components. In our case it's just the taskbar. Components each have their own configuration file, so we go for ConfigFvwnTaskBar. This is in fact an extension of .fvwm2rc, so the syntax is similar (and in fact, we could just copy this file into .fvwm2rc so we only need maintain 1 configuration file.
So, edit the Styles (colors, fonts, behaviour, ...). Delete or comment out the "AutoHide" option - you mau want the TaskBar to be visible at all times because it's the only navigation you users have left.
Style "FvwmTaskBar" NoTitle, BorderWidth , HandleWidth 1 Style "FvwmTaskBar" AlwaysOnTop Style "FvwmTaskBar" Font -adobe-helvetica-medium-r-*-*-10-*-*-*-*-*-*-* #FvwmTaskBar : AutoHide
I focused on Microsoft Windows lookalikes here as to show that using linux + fvwm can be an alternative for Windows computers while still offering the users something they're used too. But there's nothing to stop you from using (or developing) other looks and themes.
Now we know how to where and how to configure a kiosk-like system, it's time to work out some more details, and put it all together in 1 system - preferably so that we can repeat the same setup on any number of computers. We go in to that on the next page
Not satisfied with Debian's rather conservative approach to xserver setup and graphics configuration ? Impressed by how Redhat and Knoppix seem t get the maximum out of every monitor and video card ? Learn how to use knoppix hardware detection and xserver setup on a regular Debian system.
You may want to lock down the system, eg with BastilleLinux. In this locked down Ubunto/Gnome desktop kiosk system are some details about appropriate settings.
Not a big fan of Debian ? Maybe you want to try this setup starting from an Ubuntu system with Gnome Desktop or Fluxbox window manager. It is possible if you set up a minimal Ubuntu in expert mode and then
customize the Gnome desktop, or
Setup a customized "fluxbox" desktop environment