Copyright © 2012 Linutop SAS
The Linutop Kiosk is a secured web browser, and digital display manager. More info on linutop.com.
The Linutop Kiosk offers two modes aiming at different uses:
Both modes can be used at the same time, allowing to use the digital signage mode as a screen saver when the kiosk is not used.
The Linutop Kiosk is divided in two parts.
linutop-webkiosk is the main application. It can be started from the menu, entry.
linutop-wksettings is the configuration manager. It can be started from the menu, entry. This application is executed with the administrator rights. It defines how the main application will behave.
Starting the configuration tool will display the following screen:

The top section of the tab (Main use) lets you choose the mode:
This choice will enable the tab. The application displays the content of a playlist in a loop.
This choice will enable the tab. The main application will behave like a standard web browser, with the restrictions you'll setup (whitelist or blacklist of URLs, maximum session duration...).
This choice will simply enable all the features of the main application. At the end of browsing session, the digital signage feature will start to act like a screen saver.
The next section (Misc) allows to setup a few things:
If selected, the Kiosk will start in fullscreen mode.
If selected, the default system screen saver will never start.
If selected, the Kiosk will automatically start when the system boots.
If selected, a password will be prompted. This password will be asked to the user when he tries to exit the application.
Allows to select the default font used when displaying web pages (in kiosk mode and in digital signage mode).
The tab of the configuration tool lets you define how the web browser should behave. It is split in 3 parts:

These parameters define how the Kiosk will behave, and what will be shown to the user.
Do not display the navigation toolbar. This setting can be activated if you allow navigation on only one website (a catalog of your shop articles for instance).
If checked, a button will appear in the navigation toolbar. If no password has been set, clicking on this button will leave the application.
If checked, a button will let the user explicitely clear his session. This will clear all cookies, all site authentications and clear the browsing history.
If unchecked, the application will wait for an external event to decide to start a web session.
URL to display when a session starts.
Defines how long (in seconds) the application should wait before cleaning the current session if the user is inactive. Setting this parameter to 0 will forbid the application to clean the session.
The Kiosk can be configured to forbid access to some Internet resources. You can define a list of URLs that will be used either as a blacklist (list of forbidden URLs, everything else is allowed) or as a whitelist (only the listed URLs are allowed). You can obviously choose to not restrict the URLs.
The list uses a set of URL patterns. The * has a special meaning. It symbolises any letter, as many as you want. For instance, to allow anything hosted by Google, you can use:
http*://*.google.*This will allow to use both http and https protocols (http*://), on any subdomain (*.google) of any country (google.*).
The patterns can be defined as regular expressions. If you don't know what that is, you just don't need this! If you are familiar with regex's, have fun!
By default the file:// protocol, allowing the browser to act as a file browser, is forbiden. To enable this feature, check the checkbox.
If you use the Linutop Kiosk for a public access point, you probably want to check a few things to secure the browser and the system.
The browser offers standard features for such an application:

The tab of the configuration tool defines how the display part of the application should behave.

The most important section is the frame. It allows to setup how the data to be displayed should be retrieved. Two distinct methods can be used:
A playlist can be downloaded from a web or ftp site. To do so, check the button, and set the URL to access the file. This remote playlist uses an XML format, offering advanced features. See the Scheduler section for details.
The Linutop TV service makes it easy to generate such playlists. If you have a Linutop TV account, the tab of the Linutop Configuration Panel offers a simple way to configure the Linutop Kiosk.
To add items to this list, simply drag and drop file from the file manager. The type of the file (video or image) will be detected automatically using the file name extension. URLs must be prefixed with the access protocol (usually http://).
Items can be ordered in the tree using drag and drop as well. You can define how long each item will be displayed (in seconds) in the column. Videos don't use this parameter, they will be entirely displayed.
The and buttons allow to manipulate the list as well.
Playlists can be imported and exported using the and buttons.
If you display web pages, you might need to perform logins on the websites. Two possibilities can be used, depending on how the website authenticates you.
If the site uses HTTP authentication (usually a popup window asking for a login and password), the login and password have to be included in the URL:
http://mylogin:mypassword@mysite.com
The section defines a few more parameters:
If checked, the mouse pointer will disappear during slideshows.
If checked, the videos will not output sound.
Interval (in seconds) to use as default for items added to the static playlist.
How much minutes should we wait before trying to see if the playlist has been updated (remote playlist).
The Linutop Kiosk can use an XML file to define multiple playlists, managed by a scheduler. It is possible to manually create these files.
The scheduler uses loop blocks to define the various
playlists. Each loop must have an id attribute
(0 being reserved for the default playlist). A single loop
will contain the list of the items to displays:
<schedule>
<loop id="0">
<item uri="http://www.google.com" time="10" />
<item uri="http://my_server/display/an_image.png" type="image" time="5" />
<item uri="http://my_server/display/a_video.avi" type="video" />
<item uri="http://my_server/display/an_image_as_web_page" time="5" />
<item uri="http://my_server/display/a_video_as_web_page" />
</loop>
</schedule>
The previous example shows the definition of a basic playlist. The <schedule> and <loop> nodes are mandatory. The "id" attribute is also mandatory.
Each item must define an uri" attribute which indicates where
the item can be found. It can use several schemes, depending on the type attribute:
will show a web page (the type attribute
must be omitted)
type attribute is present, the
webkiosk will download the file, and display it as a local file (the file is
cached, and redownloaded only if needed).
type attribute is missing, the
uri will be used as if it were a web page (no cache).
The two supported types are image and video.
for URLs and images a time attribute must be defined. It
stores the number of seconds that the item should be displayed. For videos,
the next item will be displayed when the video has ended.
http:// for HTTP access (web
server)ftp:// for FTP accessfile:// for file
accessAuthentication is supported. For example, using a FTP authentication in a URI would give:
uri="ftp://username:passwd@server/myfile"
Several loops can be defined. Each loop must have a uniq ID, and must define a time period. The loop ID'ed 0 will be the default loop, used if other loops don't match the current date/time.
Here are some examples of loops describing the schedule options:
<schedule>
<loop id="0">
<!-- default playlist defined here -->
</loop>
<loop id="1" start="14:00" end="18:15">
<!-- this playlist will be read every day between 14:00 and 18:15 -->
</loop>
<loop id="2" start="14:00" end="18:15" weekdays="0246">
<!-- this playlist will be read every monday, wednesday,
friday and sunday between 14:00 and 18:15 -->
</loop>
<loop id="3" start="2011/03/25 00:00">
<!-- this playlist will be used starting on march the 25th of 2011 -->
</loop>
<loop id="4" start="20:00" end="06:00" idle="1">
<!-- this playlist is marked as idle. This will shut down the screen of the client -->
</loop>
</schedule>
Combinations of these examples can be used.

Configuration of your display system is done in 3 steps:
Upload your files on Linutop TV. With the Linutop TV library interface you can upload your files (videos, images or URLs).
Create your display playlist. Organize your files and set up their display parameters.
Display your playlist. Connect your display screens to your Linutop TV account.

Linutop.tv can be accessed from any PC.
For more information: www.linutop.tv
The tab of the setup interface lets you define which proxy to use.

User name and password entries can be left blank if your proxy doesn't require authentication.
The URI can take two forms:
The set of applications displaying specific files can be configured in the main configuration file (/etc/xdg/webkiosk/preferences). The association between files and applications is done using mime types, in a [mimetypes] section.
Simple exemple of file associations:
[mimetypes] application/pdf = evince
When using the local playlist to define the slideshow (no XML), the application will guess the type of each item to display using the protocol and file extension. If not correctly detected, the default behaviour is to display the item as a web page. To override this behaviour, you can associate filename extensions with display types.
The known types are:
The association is done in the main configuration file (/etc/xdg/webkiosk/preferences), in a [slideshow-types] section. For exemple:
[slideshow-types] iso = video flv = video gif = image
Scripts can be executed when some event happen on the kiosk. For each hook a different script must be used. The scripts just need to be named like the event, and to be executable. The scripts must be saved in the hook dir (/etc/xdg/webkiosk/hooks/).
The current events are:
In Kiosk mode, a prestart script can be used to define whether a web session should be triggered when the kiosk application starts. It can obviously also setup a few things before the application startup.
The prestart script is /etc/xdg/webkiosk/prestart. It will be used if it exists and is executable.
If the script returns 0, a web session will be triggered at startup. Any other return code will start the kiosk in display mode.
The browser offers a DBus interface, allowing to control a few things.
The DBus interface listens signals sent on the system bus on the object /com/linutop/WebKiosk. The messages are:
dbus-send can be used to send the signals:
# stop the current session dbus-send --system /com/linutop/WebKiosk com.linutop.WebKiosk.Signal.StopSession # add 2 minutes to the timer dbus-send --system /com/linutop/WebKiosk com.linutop.WebKiosk.Signal.AddTime uint32:120