I was recently asked to create a kiddie-kiosk on my home server for entertaining my children. I was tasked with providing my children access to a single website (http://abcmouse.com) without letting them change any other files or settings. The kiosk also had to be easy to use – accessible with a minimum of clicks and with the ability to quickly close the session and login as another user. My home server is running Ubuntu 12.04 LTS Server with LXDE / Lubuntu Desktop. Most of the online tutorials I came across were for older versions of Ubuntu – before the switch to lightdm – and they were all concerned with creating a completely locked down environment for use by the general public. As this was not my goal (my son will immediately be taken out for ice cream should he ever gain root access!), I modified the steps in this tutorial, to create my own kid-friendly quasi-kiosk environment in a few simple steps:
-
Create a new unprivileged “kiosk” user that can login without a password
-
Install openbox (sudo apt-get install openbox) if it is not already installed. Note that Lubuntu should be packaged with openbox.
-
Create a ~/.xsession file (~/.xinitrc seemed to be ignored) with the following lines under the kiosk user’s home directory:
#!/bin/bash
xset s off
xset -dpms
openbox-session &
chromium-browser %u http://www.abcmouse.com –start-maximized -
Login with the new kiosk account using the “User Defined Session” session option (important). The “User Defined Session” option calls the code in .xsession when setting up the X environment.
-
Optional: Configure Chromium settings as necessary (i.e. disable JavaScript, Cookies, etc…)
Once configured, the kiosk session should start with Chromium maximized – and no other options or panels will be available. Closing the browser will end the session and drop you back to the login screen.
Additional Notes:
-
I tried using matchbox as outlined in the above tutorial, but found openbox to be more to my liking (windows came with a close icon, no annoying text at the top) – and it came installed with Lubuntu.
-
The two “xset” commands in the .xsession file disable the screensaver and the screen’s power-saving mode.
-
Most tutorials called chromium-browser in a while loop. Such a loop keeps the kiosk running even when the browser is closed and makes it very difficult (impossible?) to exit the kiosk session without hitting the shutdown switch on the box. Again, this is was not my preference. Eliminating the while loop allowed me to quickly end the kiosk session by closing the browser.
-
I decided against using Chromium’s –kiosk switch as this both disabled the URL bar (desired) and hid the window close option (not desired) – meaning Alt + F4 was required to logout. I don’t think my 4 year old naturally gravitates to keyboard shortcuts – yet – but if I begin to notice him minimizing the browser window (which can be painful to remedy) and generally getting stuck, this switch may be invoked (or matchbox used in lieu of openbox).
-
Chromium’s –incognito switch was also recommended on several tutorials as this kept the user from modifying the browser profile and prevented browsing history from being saved. I actually prefer to keep my children’s browsing history and I also noticed that going incognito kept them from automatically logging into their website.

Recent Comments