loading
At work we have the frequent need for a machine that will allow students to access the internet without having full access to a computer.  To accomplish this task we previously resorted to creating AutoHotKey scripts on a Windows XP machine.  Many of the students and the staff who monitored these computers took issue with the computer's slow boot and running speed.  To cope with this we started to explore alternatives to Windows.  This is where we combined Ubuntu (a fast operating system) with Chromium-browser (one of the fastest browsers).  Now we have really old machines running as web kiosks that boot in 20 seconds or less and are very responsive to clicks, typing, and even flash videos and animations.

Follow the steps in this Instructable to set up Ubuntu, and Chromium if you haven't already.

Some potential uses for this type of system:
    * Web Kiosk
    * Information Booth
    * SubsonicGuest Interface
    * X10 House Control

Step 1: Add XScreensaver & Ubuntu Restricted Extras

On our systems we found that even LCD monitors got burnt in after time.  They are not supposed to be able to do this, but they were.  To remedy this, we tried to get the default screensavers to come up.  They were not great at running from a script.  Instead the best option for this is to install the xscreensaver packages.  I like to do this from the command line so click Applications, highlight Accessories, and click Terminal.  From there enter the command "sudo apt-get install xscreensav* -y" without the quotation marks.  The asterisk at the end allows aptitude to install all of the packages that start with xscreensav, thus installing all the additional screensavers available.
If you will be using flash you will need to install the plugin for it.  The best way I've found to do this is similar to adding xscreensaver.  In the terminal window enter "sudo apt-get isntall ubuntu-restricted-extras -y".  Once this is done close the Terminal window.
Made it back by runnig a terminal...then <br> <br>sudo nano /etc/lightdm/lightdm.conf <br> <br>and deleting the autologin user line.
<p>How did you get to the terminal? CTRL-ALT-T doesn't work for me.</p>
ctrl+alt+t only works while in a window manager. ctrl+alt+f1 or ctrl+alt+f2 should take you to an alternate tty though.
Excellent! Glad you figured it out. Thanks for posting the answer!
<p>hi, this is a great article and just about to attempt to seutp the kiosk desktop. is it possible to use these steps but add our in house developed app instead of Chromium. im new to Ubuntu and slowly learning how to use and setup as i go along, so please go easy on me. the app is saved in the Bin folder.</p><p>Thanks in Advance</p>
Yeah, you should be able to in step 6 by replacing the chromium line in /usr/share/xsessions/chromeKiosk.sh with your own application.
Hi Natrinicle <br>would the above work on ubuntu 16.04.1 LTS? or will i have to downgrade or source an alternative method?
To be completely honest, I haven't tried this in years. It might work but I've been tempted to take down the article until I could verify it. I can't imagine the desktop files would have changed that much but there might be a few minor tweaks that need to be discovered.
hi Natrinicle<br>thanks ever so much for your reply this helps loads and much appreciated. i will try this out shortly<br>Many thanks :-D
<p>Hi This post is great and know its pretty old now, but i was wandering if these steps can be used to run our in house developed app instead of cromium. ive installed it in the Bin folder. as you can probably tell im new To Ubuntu so please go easy on me :)</p>
<p>This is a simple kiosk software.<br><br>Try this simple addon on Firefox: <a href="https://addons.mozilla.org/addon/mkiosk/" rel="nofollow">https://addons.mozilla.org/addon/mkiosk/</a><br>mKiosk for Browser Firefox</p>
<p>Try to use mKiosk firefox plugin - https://addons.mozilla.org/addon/mkiosk/ - Public Firefox Kiosk Mode with optional Tabs Guides for Access Point. Complete solution. Block downloads/addon, bookmarks, reset kiosk inactivity, retry on errors, restricted interface, show favorites as buttons and more...</p>
<p>Cannot get past the last step in Ubuntu 15.04. I cannot find System-&gt; Administration, no longer available. How do I do autologin and apply the kiosk mode as the default session</p>
<p>In order to get to System&gt;Administration&gt;Users/Groups you have to install gnome-system-tools in Ubuntu 15.04</p><blockquote><strong>sudo apt-get install gnome-system-tools</strong><br></blockquote><p>I know it's a bit off-topic, but still... I think it's unwise to do kiosk on non-LTS version of Ubuntu. <strong>LTS</strong> stands for <strong>Long Term Support</strong>, which basically means that you will have <strong>5 years</strong> of supported operating system instead of 1 year (or even less) with Standard Edition of it.<br>More info: <a href="https://wiki.ubuntu.com/LTS" rel="nofollow"> https://wiki.ubuntu.com/LTS</a></p>
<p>Makes perfect sense to use the LTS version. I was able to find the 'Users/Groups'. However, I cannot locate the 'Login Screen Settings'; I will check again to be sure</p>
<p>Finally got it to work.</p><p>Chromium does not launch in full screen mode. Any work around?</p>
<p>Thank you for the help, anyway you could make a youtube video guide trying to get it to work on Ubuntu 14.04 but does not boot up into chrome automatically.</p>
So you're wanting a video on how to install Ubuntu?
<p>Sorry meant creating a kiosk workstation on ubuntu 14.04 or higher.</p><p>Dont have any problem installing ubuntu.</p><p>Thank you in advance</p>
<p>For that you'd need to customize to your needs. You could start with a limited user account that automatically logs in but anything beyond that would have to be up to you to decide how you wanted it set up.</p>
<p>Can Anyone please explain this code to me :</p><p>running ubuntu got everything working thank you the only two problems I have is :</p><p>1. Cant seem to fiqure out how to resize to fill the screen (could you please make a guide)</p><p>2. I would like to understand the code below. </p><p>#!/bin/bash<br> <br>xscreensaver -nosplash &amp;<br> <br>cat ~/.config/chromium/Local\ State | perl -pe &quot;s/\&quot;bottom.*/\&quot;bottom\&quot;: <br> $(xrandr | grep \* | cut -d' ' -f4 | cut -d'x' -f2),/&quot; &gt; <br>~/.config/chromium/Local\ State<br> <br>cat ~/.config/chromium/Local\ State | perl -pe &quot;s/\&quot;right.*/\&quot;right\&quot;: <br>$(xrandr | grep \* | cut -d' ' -f4 | cut -d'x' -f1),/&quot; &gt; <br>~/.config/chromium/Local\ State<br> <br>while true; do chromium-browser %u --start-maximized; sleep 5s; done</p><p>running ubuntu 14.04</p><p>Thank you in Advance </p>
1. Chromium is a bit buggy to get fullscreen which is what that code was meant to work around. Likely they have patched it again so that these variables are ignored from the preferences file.<br><br>2. <br>#!/bin/bash - Indicates that this file is a script that should be executed with bash<br><br>xscreensaver -nosplash &amp; - http://explainshell.com/explain?cmd=xscreensaver+-nosplash+%26<br><br>cat ~/.config/chromium/Local\ State | perl -pe &quot;s/\&quot;bottom.*/\&quot;bottom\&quot;: <br>$(xrandr | grep \* | cut -d' ' -f4 | cut -d'x' -f2),/&quot; &gt; <br>~/.config/chromium/Local\ State - http://explainshell.com/explain?cmd=cat+~%2F.config%2Fchromium%2FLocal%5C+State+%7C+perl+-pe+%22s%2F%5C%22bottom.*%2F%5C%22bottom%5C%22%3A++%24%28xrandr+%7C+grep+%5C*+%7C+cut+-d%27+%27+-f4+%7C+cut+-d%27x%27+-f2%29%2C%2F%22+%3E++~%2F.config%2Fchromium%2FLocal%5C+State<br><br>cat ~/.config/chromium/Local\ State | perl -pe &quot;s/\&quot;right.*/\&quot;right\&quot;: <br>$(xrandr | grep \* | cut -d' ' -f4 | cut -d'x' -f1),/&quot; &gt; <br>~/.config/chromium/Local\ State - http://explainshell.com/explain?cmd=cat+~%2F.config%2Fchromium%2FLocal%5C+State+%7C+perl+-pe+%22s%2F%5C%22right.*%2F%5C%22right%5C%22%3A++%24%28xrandr+%7C+grep+%5C*+%7C+cut+-d%27+%27+-f4+%7C+cut+-d%27x%27+-f1%29%2C%2F%22+%3E++~%2F.config%2Fchromium%2FLocal%5C+State<br><br>while true; do chromium-browser %u --start-maximized; sleep 5s; done - http://explainshell.com/explain?cmd=while+true%3B+do+chromium-browser+%25u+--start-maximized%3B+sleep+5s%3B+done
<p>When I make the kiosk.desktop and the chromeKiosk.sh files, I get an error in the terminal while trying to save. The error says that it cannot find the path and that it failed to save. But this doesn't happen when I open the files again. Is this normal for the first time?</p><p>Reason I ask is that when I get logged into my Kiosk Account, it just goes to the desktop and sits there. Doesn't open anything.</p>
Did you verify that the path exists? Try running ls adding a folder each time till you get to where those files are saved. e.g. &quot;ls /usr&quot; then &quot;ls /usr/local&quot; using the path for those files. Post the results and I'll help interpret them.
<p>Hi,</p><p>i have a wyse t50 with enhanced ubuntu linux and want to connect to a linux server. could you please help me in the configuration of t50 client?</p><p>thanks in advance.</p>
JavierC4,<br><br>That is extremely out of scope. Having never worked with that terminal emulator before I would simply be Googling for the answer, same as you would.
<p>What am i doing wrong? I got 1 computer to work but the rest are not. I receive unable to launch x sessions. Please help.</p>
<p>I had the same message. You have to make sure, that you have made your script executable, which was mentioned in the very last step.</p><p>$ sudo chmod 755 /usr/share/xsessions/chromeKiosk.sh</p>
Looks like it's attempting to find a file &quot;/usr/share/xsessions/chromekiosk.sh&quot; but not finding it. In step 6, did you create both files or just the one?
<p>sorry =) repeat </p><p>how can i give a possibility to resize chromium?</p>
You would need a windowing system loaded to resize Chromium on the fly. Otherwise, I used to edit the config files for this. Sounds like Google EOL'd those settings so I'm not certain at this point.
<p>I have successfully set this up on Ubuntu 12.04 on an All In One Dell PC, however, i am having an issue;</p><p>When chromium is launched from a script, multi-touch is disabled. If i use the switch --touch-devices=N (N being the device number of the touchscreen found typing &quot;xinput list&quot;) i get touch-- sort of. If i do single clicks, fine. If I do two finger or more clicks, it breaks and touch no longer works.</p>
Hrmm, sounds like some kind of a touch driver may need to be loaded for the multi-touch to work. I'd get in contact with Dell or see if you can find anything online about getting that particular model's multi-touch working in Ubuntu.
<p>I want to make a panel PC that controls a PLC trough a webinterface (fixed IP),<br>i imagine this works great for this. but what happens when power goes out?</p><p>can i make it reboot in to this kiosk mode? <br>and if i clone the SD drives that it runs on, is there a easy way to change the IP addres when clients have a different IP range?<br>eg: 192.168.0.x instead of 192.168.1.x</p><p>Great tutorial!</p><p>regards,</p><p>Bjorn</p>
Rebooting into kiosk mode works automatically if you follow the instructions. You can edit the /etc/network/interfaces file on the sdcard before installing it in the new computer.
<p>The IP addres of the kiosk itself would be DHCP, <br>I meant the IP addres in the browser, at one client the PLC would be 192.168.1.160 (fixed IP), and other client would be 192.168.0.160.</p><p>Thank you for your help :-D</p>
<p>Oh, I see! Sorry for the confusion. I would recommend using the /etc/hosts file and setting a hostname that you would use in Chromium. For instance <a href="http://plcinterface/..." rel="nofollow"> http://plcinterface/... </a> with the hosts file containing:</p><p>192.168.1.160 plcinterface www.plcinterface etc...</p>
<p>Sooo, I set this up on Ubuntu 14.04, and I got it working, but there's a problem. </p><p>I don't know how to <em>exit the</em> kiosk mode and log in to a different account. I can access the terminal through some of the methods detailed below, but I don't have Sudo access because the Kiosk account is a basic user, and that's as far as I know how to get. </p><p>Any and all help is appreciated. </p>
<p>You can also hit ALT-F4 to quit Chrome(ium) and return to the Kiosk user's desktop, then switch users.</p>
Alt+F4 shouldn't return you to the desktop if you set up the .desktop config files per my Instructable. It should kill Chromium, wait a few seconds, then relaunch it.
You can use ctrl+alt+F1 or ctrl+alt+F2 to switch to a terminal login. From there, login with a user that has access to sudo.
<p>I've had the system set up for a couple weeks and have casually been interacting with it in my spare time, ensuring it is locked down. I then realized there is a glaringly obvious way bypassing the full screen locked down nature.<br>Is there a way to edit the right click menu? With a simple mouse wheel click, or a right click &quot;open link in new Window&quot;/&quot;New Tab&quot; selection, a simple and commonly known technique gives the user a URL bar and full reign of the settings menu, etc.</p>
When I tested this years ago, it didn't give you the URL bar or settings menu from a new tab page. If you follow the part of setting it so that Chrome's settings are read only, you shouldn't need to worry as closing the browser/reopening it should reset the state.
<p>I made it but am having a small issue. I used a P4. Ubuntu 14 ran, but was sluggish so I used lubuntu instead and it behaves much snappier. and works short of one thing glitch:<br>When it loads into kiosk mode, it has narrow strip across the bottom where the toolbar would be in the normal desktop mode and it shows whatever the wallpaper is set as in that strip.<br>Any ideas on how to get rid of this strip?</p><p>If related, on Step 5 where you said to edit the Local State file, I did not find the Top or Left line to enter zero. I had to use leafpad as an editor in LXDE and even did a file search for left and top with no results.<br>Did this go away in recent Chrome versions?</p>
<p>It does look like they removed this file in recent versions. Not sure if they just moved it or renamed it or if they got rid of it altogether. The strip across the bottom is likely something to do with this file missing (I was getting similar things with Chrome before I edited that).</p>
<p>Thank you very much.</p>
<p>It does look like they removed this file in recent versions. Not sure if they just moved it or renamed it or if they got rid of it altogether. The strip across the bottom is likely something to do with this file missing (I was getting similar things with Chrome before I edited that).</p>
<p>Super tutorial and it's exactly what I am looking for.</p><p>Just one thing though... I need to use Firefox browser rather than Chromium as I will be using a touch screen and for some reason Chromium doesn't work very well for me.</p><p>I'm just stuck at step 7 and 8 and how to launch Firefox rather than Chromium. Can you help?</p><p>Thanks</p>
<p>I'm not certain where you would set Firefox's dimensions as I haven't really dug into it, but you would want to change /usr/share/xsessions/kiosk.desktop's Exec line to point to the Firefox executable. You can find where this is by running &quot;which firefox&quot;. Then you will want to remove/change both lines that start with cat in /usr/share/xsessions/chromeKiosk.sh and change chromium-browser to firefox as well.</p>
<p>Great tutorial.<br><br>Suppose I would like to deploy this on multiple machines. Could I have a script that runs and makes all of these changes at once? Or can I copy and paste some files/folders?<br><br>Any help would be appreciated.<br><br>Rico</p>