<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kerkness.ca &#187; kiosk</title>
	<atom:link href="http://www.kerkness.ca/tagged/kiosk/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kerkness.ca</link>
	<description>flexing my kerkness, among other things</description>
	<lastBuildDate>Wed, 14 Oct 2009 15:12:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.3</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Locking Down the Ubuntu Log-In Screen</title>
		<link>http://www.kerkness.ca/locking-down-the-ubuntu-log-in-screen/</link>
		<comments>http://www.kerkness.ca/locking-down-the-ubuntu-log-in-screen/#comments</comments>
		<pubDate>Sat, 21 Jun 2008 03:33:00 +0000</pubDate>
		<dc:creator>Kerk</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[kiosk]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.kerkness.ca/blog/?p=49</guid>
		<description><![CDATA[One of the requirements I have for a kiosk project is to use a timed login instead of an automatic log in when the server boots. This is required so that some special drivers for the touchscreen have time to load and also gives an admin time to log-in using their profile if need be.
When [...]]]></description>
			<content:encoded><![CDATA[<p>One of the requirements I have for a kiosk project is to use a timed login instead of an automatic log in when the server boots. This is required so that some special drivers for the touchscreen have time to load and also gives an admin time to log-in using their profile if need be.</p>
<p>When the computer boots the Ubuntu login screen is displayed for 10 seconds before the limited user account is automatically logged in and the kiosk application is automatically launched.</p>
<p>The problem with this process is that during this 10 second window someone could change the login session from the default ( I normally use blackbox ) to something else by using the little &#8220;options&#8221; button in the bottom left corner. ( or at least it&#8217;s in the bottom left corner of the default Ubuntu login theme &#8216;human&#8217; ).</p>
<p>If you want to lock down or even just customize the login screen to suit your needs an easy way to do this is to edit the XML file which defines and places the elements on the login window.  You can edit the main file for the default human theme with gedit.
<pre>cd /usr/share/gdm/themes/Humansudo cp Human.xml Human.xml.backupsudo gedit Human.xml</pre>
<p>In my file I just commented out the &lt;item&gt; element which defined the option button.  Voila !  No more option button.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerkness.ca/locking-down-the-ubuntu-log-in-screen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Setting up a Kiosk Watchdog for your Ubuntu Blackbox Kiosk</title>
		<link>http://www.kerkness.ca/setting-up-a-kiosk-watchdog-for-your-ubuntu-blackbox-kiosk/</link>
		<comments>http://www.kerkness.ca/setting-up-a-kiosk-watchdog-for-your-ubuntu-blackbox-kiosk/#comments</comments>
		<pubDate>Fri, 09 May 2008 02:36:00 +0000</pubDate>
		<dc:creator>Kerk</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[kiosk]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.kerkness.ca/blog/?p=44</guid>
		<description><![CDATA[Previously I put together a post which describes how to build a Kiosk computer using Ubuntu, Blackbox and Firefox.  I&#8217;m following that up with details on how to monitor the kiosk so that you can be notified when/if the computer or services fail.  I&#8217;ll break this post into two sections.
1) Monitoring the computer [...]]]></description>
			<content:encoded><![CDATA[<p>Previously I put together a post which describes how to build a <a href="http://kerkness.blogspot.com/2008/04/creating-touch-screen-kiosk-using-flex.html">Kiosk computer using Ubuntu, Blackbox and Firefox</a>.  I&#8217;m following that up with details on how to monitor the kiosk so that you can be notified when/if the computer or services fail.  I&#8217;ll break this post into two sections.</p>
<p>1) Monitoring the computer services and network<br />2) Monitoring FireFox performance</p>
<p><span style="font-size:180%;"><span style="font-weight: bold;">Monitoring the computer services and network</span></span></p>
<p>Because our Kiosk computer is an Ubuntu server and running apache/php/mysql locally there are several open source network and service monitoring programs.  The one I found most suitable for my solution is called <a href="http://www.tildeslash.com/monit/">Monit</a> and I found a very good post at <a href="http://www.ubuntugeek.com/monitoring-ubuntu-services-using-monit.html">Ubuntu Geek</a> describing how to install monit on ubuntu and configure it.  I basically followed the Ubuntu Geek tutorial but made some modifications to the config file.  My revised process is below.
<ol>
<li>Install Monit
<pre>sudo apt-get install monit</pre>
</li>
<li>Configure Monit. Open <span style="font-style: italic; font-weight: bold;">/etc/monit/monitrc</span> in your favorite text editor.  Below is an example of how I set up my own configuration file. It should be pretty self explanatory.
<pre>## Start monit in background (run as daemon) and check the services at 2-minute## intervals.set daemon  120

## Set syslog logging with the 'daemon' facility.set logfile syslog facility log_daemon

## Set list of mailservers for alert delivery.## I use my ISP's SMTP server for better reliability and means## I don't need an smtp server running on my Kioskset mailserver mail.shawcable.com

## Use event queue if mailserver unavailableset eventqueuebasedir /var/monit  # set the base directory where events will be storedslots 100           # optionaly limit the queue size

## You can set the alert recipient hereset alert someone@domain.com

# Monitor Apachecheck process apache2 with pidfile /var/run/apache2.pid

# Action to be taken when apache failsstart program = "/etc/init.d/apache2 start"stop program = "/etc/init.d/apache2 start"# Admin will notify by mail if below the condition satisfied belowif cpu is greater than 60% for 2 cycles then alertif cpu > 60% for 5 cycles then restartif children > 10 then alertif children > 50 then restartif loadavg(5min) greater than 10 for 8 cycles then stopif 3 restarts within 5 cycles then timeoutgroup servers

# Monitor MySQLcheck process mysql with pidfile /var/run/mysqld/mysqld.pidgroup databasestart program = "/etc/init.d/mysql start"stop program = "/etc/init.d/mysql stop"if failed host 127.0.0.1 port 3306 then restartif failed host 127.0.0.1 port 3306 then alertif 5 restarts within 5 cycles then timeout

# Monitor SSH Servicecheck process sshd with pidfile /var/run/sshd.pidstart program = "/etc/init.d/ssh start"stop program = "/etc/init.d/ssh stop"if failed port 22 protocol ssh then restartif failed port 22 protocol ssh then alertif 5 restarts within 5 cycles then timeoutgroup programs

# Check servicescheck system localhostif loadavg (1min) > 4 then alertif loadavg (5min) > 2 then alertif memory usage > 75% then alertif cpu usage (user) > 70% then alertif cpu usage (system) > 80% then alertif cpu usage (wait) > 20% then alert</pre>
</li>
<li>Set Monit to start automagically.  Open the file <span style="font-style: italic; font-weight: bold;">/etc/default/monit</span> and change the <span style="font-style: italic; font-weight: bold;">startup</span> value to <span style="font-style: italic; font-weight: bold;">1</span>.  You can now start monit with the following command.
<pre>sudo /etc/init.d/monit start</pre>
</li>
</ol>
<p>If you want to be able to access Monit&#8217;s web based interface remotely then check out the Ubuntu Geek tutorial for more information.  I am not enabling this ability in my kiosk at present.<br /><span style="font-size:180%;"><br /><span style="font-weight: bold;">Monitoring FireFox performance</span></span></p>
<p>By using Monit we are able to get good alerts regarding the overall health of our Kiosk.  But Monit doesn&#8217;t tell us is how our Kiosk client (Firefox) is behaving. If Firefox starts to eat up a percentage of your kiosk&#8217;s available memory or CPU power you should be notified early.</p>
<p>I myself am not that great at building BASH scripts so I opted to create a PHP script which tests a few conditions and sends an email if Firefox isn&#8217;t running or is using too many resources.  This script can be run as a cron job every few minutes.  My PHP script requires the open source class <a href="http://sourceforge.net/projects/phpmailer">PHPMailer</a> which makes sending email from PHP a snap.</p>
<p>Here is my php script.
<pre> /*** This script gets the CPU and MEM usage of Firefox*/$cpu = 0;$mem = 0;$failed = false;

// Get the PID of firefox$pid = exec('pidof firefox-bin');

// If firefox is running get memoryif ( $pid ){$status_str = exec('ps aux | grep "'. $pid .'" | grep -v grep');$status = explode( ' ', $status_str );// Strip blanksforeach( $status as $k=>$v ){  if ( trim($v) == '' ) unset($status[$k]);}$status = array_values($status);

$cpu = $status[2];$mem = $status[3];

if ( $cpu >= 60 || $mem >= 60 ){   $failed = true;   $message = "Firefox is using $cpu% of CPU and $mem% of MEM";}

} else {

// Firefox is not running$failed = true;$message = "Firefox is NOT running";

}

if ( $failed ){$body = date('l jS of F Y h:i:s A',time() )."nn";$body .= $message;

// Create and Send Emailrequire_once( "/class/phpmailer/class.phpmailer.php");

$mail = new PHPMailer();$mail->From     = ' firefox@mykiosk ';$mail->FromName = " Firefox Status ";$mail->Host     = 'mail.shawcable.com';$mail->Mailer   = "smtp";

$mail->Subject = "Firefox Issue on ArtTouch";$mail->AddAddress(" someone@domain.com ");

$mail->IsHtml(0);$mail->Body    = $body;

// LOG RESULTSif(! $mail->Send() ) {   error_log("There was an error ending Firefox Performance Alert " . $mail->ErrorInfo );}}</pre>
<p>If anyone wants to turn this into a bash script instead of PHP and share it that would be great.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerkness.ca/setting-up-a-kiosk-watchdog-for-your-ubuntu-blackbox-kiosk/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Creating a Touch Screen Kiosk using Firefox, Ubuntu and Blackbox</title>
		<link>http://www.kerkness.ca/creating-a-touch-screen-kiosk-using-firefox-ubuntu-and-blackbox/</link>
		<comments>http://www.kerkness.ca/creating-a-touch-screen-kiosk-using-firefox-ubuntu-and-blackbox/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 23:15:00 +0000</pubDate>
		<dc:creator>Kerk</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[blackbox]]></category>
		<category><![CDATA[kiosk]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.kerkness.ca/blog/?p=35</guid>
		<description><![CDATA[Several of the components and posts on this web site have revolved around a business project I&#8217;ve been working on which involves creating a touch screen kiosk for use in a public space.  I thought it might be beneficial (at least from my own documenting needs) to provide a post covering the overall process [...]]]></description>
			<content:encoded><![CDATA[<p>Several of the components and posts on this web site have revolved around a business project I&#8217;ve been working on which involves creating a touch screen kiosk for use in a public space.  I thought it might be beneficial (at least from my own documenting needs) to provide a post covering the overall process of getting a secure touch screen system up running.</p>
<p>The easiest way to build a kiosk application is to customize a web page to serve as the kiosk interface. Launch the web page in a browser and set the browser to run in full screen mode and voila, instant kiosk.  To turn it into a touch screen kiosk all you need to do is buy an <a href="http://www.google.ca/search?q=touchscreen+lcd">LCD touch screen monitor</a> and your all set.</p>
<p>This basic solution might work fine if you&#8217;re always standing next to the computer and can enable full screen mode every time it reboots and also stop anyone from mucking around with your computer should the browser crash and they get access to the desktop.</p>
<p>Setting up a kiosk which can run in a public space and have reasonable enough security to prevent someone from mucking around with it should the browser crash or computer crash takes a little more thought.</p>
<p>I&#8217;ve addressed the overall solution in two parts.</p>
<p>1) The server/host computer<br />2) The browser<br /><span style="font-weight: bold;"><br /><span style="font-size:180%;">1) The Server / Host Computer<br /></span><br /></span><span>The computer used to host a touch screen application needs some thoughtful consideration. You want something that will offer good reliable performance and also prevent anyone who might be feeling a little malicious from causing the computer or your application any harm. My touch screen system does NOT have a keyboard attached to it which certainly helps in providing a certain level of security but I still need to take steps to make sure the user cannot get access to the desktop, general file system or any application other than the Firefox browser.</p>
<p>For my solution I decided to run Ubuntu 7.10 and use Blackbox as the default desktop environment.  Ubuntu allows me to run an apache http server as well as mysql locally. This keeps the application running very fast, provides me with dynamic data and requires no internet connection. Your kiosk application could be simple straight HTML running locally or running off a remote web server whatever suits your needs.  Using Ubuntu (or really any flavor of linux you&#8217;re comfortable with) keeps your kiosk highly customizable.</p>
<p>Using the Blackbox windows manager instead of the default Gnome or KDE desktop environment allows me to lockout the user from accessing anything other than Firefox and keeps your kiosk as a light weight, fast computer with a single focus.</p>
<p><span style="font-weight: bold;">How to set up the server/host computer<br /></span></span>
<ol>
<li><span style="font-weight: bold; font-style: italic;">Download and install Ubuntu 7.10</span><br />A default install is fine. The main user you will create during install will be considered a super user. You&#8217;ll later create a user account specifically for accessing the touch screen application. <a href="http://www.ubuntu.net/getubuntu/download">Click here to get Ubuntu</a></p>
</li>
<li><span style="font-weight: bold; font-style: italic;">Install Apache, PHP5 and MySQL (Optional)</span><br />My specific application uses dynamic data and requires both Apache and PHP. Using an Ubuntu computer makes it easy to run these services locally and means my computer doesn&#8217;t require a dedicated internet connection. Although having one makes remote administration and updates easier. <a href="http://ubuntuguide.org/wiki/Ubuntu:Gutsy#How_to_install_Apache_and_PHP5">To install these on the computer just reference the UbuntuGuide.org wiki
<p></a></li>
<li><span style="font-weight: bold; font-style: italic;">Create a limited user account</span><br />While your touch screen application is running you&#8217;ll want to have a limited user account logged into the computer.
<p>To create this account log into Ubuntu using the account you created during install and select :</p>
<p><span style="font-style: italic;">System > Administration > Users and Groups</span></p>
<p>From the <span style="font-style: italic;">User settings</span> window select:</p>
<p><span style="font-style: italic;">Add User<br /></span><br />From the <span style="font-style: italic;">New User Account</span> window fill in the <span style="font-style: italic;">Basic Settings</span> for your user. For the purpose of this example we will use the username: <span style="font-weight: bold;">touchuser</span>. After you&#8217;ve provided a user name and and password select the <span style="font-style: italic;">User Privileges</span> tab.  Unselect all options which are not a requirement of your touch screen application. For my application I blocked access to all external hard drives, cdroms, floppies and log monitors.</p>
</li>
<li><span style="font-weight: bold; font-style: italic;">Install Blackbox Window Manager</span><br />Blackbox is a fast, lightweight and minimal windows manager for the X Window System.  <a href="http://blackboxwm.sourceforge.net/AboutBlackbox">You can learn more about it here</a>. Blackbox will be setup as the default desktop for our host computer.  I use Blackbox because it helps prevent the touch screen user from having access to any applications unless they are specifically enabled via Blackbox.
<p>To install blackbox open up the terminal and type the following command.
<pre>sudo apt-get install blackbox blackbox-themes</pre>
<p>Next we need to create a .blackboxrc file and a .blackbox directory. These will be used to define our configuration settings for our desktop and define what applications touchuser has access to. Note: we are going to do this in the home directory of the touchuser account not the account we are logged in as. After we create the file and directory we set permissions on them.
<pre>sudo mkdir /home/touchuser/.blackboxsudo touch /home/touchuser/.blackboxrcsudo chown touchuser /home/touchuser/.blackboxsudo chown touchuser /home/touchuser/.blackboxrcsudo chgrp touchuser /home/touchuser/.blackboxsudo chgrp touchuser /home/touchuser/.blackboxrc</pre>
</li>
<li><span style="font-weight: bold; font-style: italic;">Define the .blackboxrc File</span><br />Using your favorite text editor add the following definitions to the .blackboxrc file.  Note the reference to <span style="font-style: italic;">/home/touchuser/.blackbox/menu</span>. This file will be created in the next step.</li>
<pre>session.styleFile: /usr/share/blackbox/styles/Graysession.menuFile: /home/touchuser/.blackbox/menusession.screen0.workspaces: 1session.screen0.workspaceNames: My Touch Screensession.fullMaximization: True</pre>
<p><span style="font-weight: bold;">NOTE:</span> If you decide to run Blackbox now you may find yourself unable to complete the rest of the steps in this tutorial. All the steps for setting up the host computer assume you are logged into Ubuntu using the user created during install and running a Gnome session. If you&#8217;re logged into Blackbox press CTRL + ALT + BACKSPACE to return to the Ubuntu login screen. You can select the &#8216;options&#8217; button to change what windows manager is used when you log in.</p>
<li><span style="font-weight: bold; font-style: italic;">Create the Blackbox menu file</span><br />By default the Blackbox desktop provides no icons. To launch a program the user needs to right-click on the desktop to see a menu of available applications.  We want to provide our own menu settings so that the only application available to our user is Firefox. This is really only of limited use as right-clicking on a touch screen is impossible as far as I know, but in case someone figures out how to do it we don&#8217;t want them to have access to anything other than the browser.
<p>Enter the following commands into the terminal to create the menu file and set appropriate permissions.
<pre>sudo touch /home/touchuser/.blackbox/menusudo chgrp touchuser /home/touchuser/.blackbox/menusudo chown touchuser /home/touchuser/.blackbox/menu</pre>
<p>To limit our menu to only provide access to Firefox open up the menu file and add the following.
<pre>[begin] (ArtTouch)[exec] (firefox) {firefox}[end]</pre>
<p>For more details on configuring blackbox and creating menus <a href="http://blackboxwm.sourceforge.net/">see the blackbox wiki<br /></a></li>
<li><span style="font-weight: bold; font-style: italic;">Install iDesk</span><br />Blackbox doesn&#8217;t by default support desktop icons which is okay since we are building a minimal system. Well what if the Firefox browser crashes and the touch screen user is left starting at an empty desktop with no ability to right-click and relaunch the browser.  To provide a solution to this problem we are going to install iDesk which adds icon support to minimal window managers such as Blackbox.
<p>To install iDesk open a terminal and provide the following command
<pre>sudo apt-get install idesk</pre>
<p>Once iDesk is installed we need to create an .ideskrc file for configuration settings and create an .idesktop folder where we can define our icons.
<pre>sudo touch /home/touchuser/.ideskrcsudo mkdir /home/touchuser/.idesktopsudo chgrp touchuser /home/touchuser/.ideskrcsudo chgrp touchuser /home/touchuser/.idesktopsudo chown touchuser /home/touchuser/.ideskrcsudo chown touchuser /home/touchuser/.idesktop</pre>
<p>Next open up the .ideskrc file and add the following
<pre>table ConfigBackground.Color: #C2CCFFendtable ActionsExecute[0]: left singleClkend</pre>
<p>This is a very minimal use of iDesk configuration options for more see the <a href="http://idesk.sourceforge.net/wiki/index.php/Idesk-usage">iDesk Usage Wiki<br /></a></li>
<li><span style="font-weight: bold; font-style: italic;">Create an Icon and define icon commands</span><br />Next we need to create an icon for our desktop. You could use the standard Firefox icon but you&#8217;re probably best to create a PNG specifically for your touch screen application.  Create a PNG file (for example touchicon.png) and stick it in the .idesktop directory.  To add the icon to the desktop we need to create a file with a .lnk extension and place it in the .desktop directory also.
<pre>sudo touch /home/touchuser/.idesktop/touchicon.lnksudo chown touchuser /home/touchuser/.idesktop/touchicon.lnksudo chgrp touchuser /home/touchuser/.idesktop/touchicon.lnk</pre>
<p>Open the touchicon.lnk file and add the following. Adjust &#8216;caption&#8217;, &#8216;tooltip&#8217;, &#8216;width&#8217;, &#8216;height&#8217; and &#8216;x/y&#8217; coordinates to suit your needs.
<pre>table IconCaption: Touch ApplicationToolTip.Caption: Touch Me To LaunchCommand: firefoxIcon: /home/touchuser/.idesktop/touchicon.pngWidth: 400Height: 275X: 100Y: 100end</pre>
</li>
<li><span style="font-weight: bold; font-style: italic;">Create Blackbox startup script</span><br />Now that we have a minimal desktop and we also have an icon for our desktop we need to make sure that iDesk is automatically run when Blackbox runs (by default it doesn&#8217;t).  To do this we are going to create a startup script for Blackbox.
<p>Create a file called <span style="font-style: italic;">.bbstartup.sh</span> in your touchuser&#8217;s home directory
<pre>sudo touch /home/touchuser/.bbstartup.shsudo chgrp touchuser /home/touchuser/.bbstartup.shsudo chown touchuser /home/touchuser/.bbstartup.shsudo chmod x+ /home/touchuser/.bbstartup.sh</pre>
<p>Add the following to the <span style="font-style: italic;">.bbstartup.sh</span> file
<pre>#!/bin/shidesk &amp;exec blackbox</pre>
<p>Now we need to change the path of exec blackbox in <span style="font-style: italic;">/usr/share/xsessions/blackbox.desktop</span>. Start by making a backup
<pre>sudo cp /usr/share/xsessions/blackbox.desktop /usr/share/xsessions/blackbox.desktop_backup</pre>
<p>Edit <span style="font-style: italic;">/usr/share/xsessions/blackbox.desktop</span> and make the following changes to <span style="font-style: italic;">Exec</span> and <span style="font-style: italic;">TryExec</span> definitions
<pre>[Desktop Entry]Encoding=UTF-8Name=BlackBoxComment=Highly configurable and low resource X11 Window managerExec=<b>/home/touchuser/.bbstartup.sh</b>Terminal=FalseTryExec=<b>/home/touchuser/.bbstartup.sh</b>Type=Application</pre>
</li>
<li><span style="font-weight: bold; font-style: italic;">Set Auto-login and define Blackbox as default window manager</span><br />The final step in configuring our server/host computer is to set up Ubuntu to automatically log into our touchuser profile and to use Blackbox as the default windows manager.  This ensures that if the computer crashes or reboots that it immediately goes into kiosk mode. (note we&#8217;ll further improve this by making the browser automatically launch later).
<p>Open the Login Window Preferences by selecting:</p>
<p><span style="font-style: italic;">System > Administration > Login Window</span></p>
<p>Under the <span style="font-style: italic;">General</span> tab select <span style="font-style: italic;">&#8216;Blackbox&#8217;</span> for default session.<br />Under the <span style="font-style: italic;">Security</span> tab select <span style="font-style: italic;">&#8216;Enable automatic login&#8217;</span> and select the user <span style="font-style: italic;">&#8216;touchuser&#8217;</span></li>
</ol>
<p>Hopefully after all that you should now have a basic set up to run a kiosk. When the computer boots it should load directly to a Blackbox desktop that allows the user to launch Firefox and only Firefox. In the next step of the process we are going to modify a few settings in Firefox to make sure it loads our touch screen application as it&#8217;s homepage and automatically launches in full screen mode when the computer boots up.</p>
<p><span style="font-size:130%;"><span style="font-weight: bold;">NOTE:</span></span>  If the computer is running in kiosk mode and you want to be able to login as your super user and get back to a fully functional Gnome desktop all you need to do is plug in a keyboard and press <span style="font-weight: bold; font-style: italic;">CTRL + ALT + BACKSPACE</span>.   This will kill the Blackbox session and bring you to the Ubuntu login screen.<a href="http://idesk.sourceforge.net/wiki/index.php/Main_Page"></a></p>
<p><span style="font-size:180%;"><span style="font-weight: bold;">2) The Browser<br /></span></span><br />Now that we have our host computer set up and running we&#8217;ll want to make a few small changes to the preferences of our Firefox browser so that it performs well as a kiosk client.
<ol>
<li><span style="font-weight: bold; font-style: italic;">Set the Home Page</span><br />This should be pretty obvious.  When the browser launches we want it to automatically load our Kiosk application. For my solution I have the Kiosk application running locally as a Flex/PHP application.  Your kiosk doesn&#8217;t have to be Flex, it could be a Flash or simple HTML web page and it could be running remotely or locally. Whatever the case may be you&#8217;ll want to set the URL location of your application as the homepage for Firefox.</p>
</li>
<li><span style="font-weight: bold; font-style: italic;">Disabling session restore</span><br />When Firefox crashes or the computer is shutdown before closing the browser, Firefox will by default ask if you want to restore your previous session or start a new one the next time it launches. This is kind of a pointless feature for the kiosk as you&#8217;ll likely always want it to start a new session.  You can disable this feature by logging into your kiosk as &#8216;touchuser&#8217; launching Firefox and entering <span style="font-weight: bold; font-style: italic;">&#8216;about:config&#8217; </span>in address bar.
<p>Find the preference settings for  <span style="font-style: italic;">browser.sessionstore.resume_from_crash</span> and <span style="font-style: italic;">browser.sessionstore.resume_session_once</span> and set their values to <span style="font-weight: bold; font-style: italic;">false</span>.</p>
</li>
<li><span style="font-weight: bold; font-style: italic;">Getting the browser to automatically launch in fullscreen mode.</span><br />When the browser is launched in order to provide a true kiosk type environment we want it to load in full screen mode giving the user no access to the navigation bar and locked out of most shortcuts. The easiest way to do this is to install one of the many &#8216;<a href="https://addons.mozilla.org/en-US/firefox/search?q=Full+Screen&amp;cat=all">Full Screen</a>&#8216; extensions available for Firefox.
<p>The one I recommend is <a href="https://addons.mozilla.org/en-US/firefox/addon/1659">R-Kiosk.</a> For the pure purpose of running a web based Kiosk it does a very good job. While logged in as &#8216;touchuser&#8217; <a href="https://addons.mozilla.org/en-US/firefox/addon/1659">Visit this link in Firefox</a> and click the &#8216;<span style="font-weight: bold; font-style: italic;">Add To Firefox</span>&#8216; button.</p>
<p><span style="font-weight: bold;">NOTE:</span>  After this component is added to Firefox you&#8217;ll be unable to make any preference or configuration changes to Firefox unless you launch it in safe mode.  For information on how to run Firefox in safe mode, <a href="http://kb.mozillazine.org/Safe_Mode_%28Firefox%29">visit this link</a>.</p>
</li>
<li><span style="font-weight: bold; font-style: italic;">Setting the browser to automatically launch after boot</span><br />When our kiosk system is booted it will automatically login as with the touchuser profile and load our Blackbox desktop. Now we also want Firefox to automatically launch so that after the system boots the user is presented with our Kiosk application running in all it&#8217;s full screen glory.
<p>This is very simple to accomplish by adding one line to the Blackbox startup script we created in step 9 when setting up the host computer. You&#8217;ll need to log into Ubuntu as the user you defined during install for this step.</p>
<p>Open <span style="font-style: italic;">/user/touchuser/.bbstartup</span> and add the following line
<pre>#!/bin/shidesk &amp;<b>/usr/bin/firefox &amp;</b>exec blackbox</pre>
<p></li>
</ol>
<p><span style="font-size:100%;">If everything has gone as I hope, you should have a fully functioning kiosk system. The only thing left to do is buy yourself a fancy <a href="http://www.google.ca/search?q=touchscreen+lcd">touchscreen LCD</a> monitor and plug it in.</p>
<p></span>References for this setup can be found at the following links.<br /><a href="http://ubuntuforums.org/showthread.php?t=125084">HOWTO: A Blackbox Guide</a><br /><a href="http://blackboxwm.sourceforge.net/">Blackbox Wiki</a><br /><a href="http://idesk.sourceforge.net/wiki/index.php/Main_Page">iDesk Wiki</a><br /><span style="font-size:180%;"><span style="font-size:100%;"><br /></span><span style="font-weight: bold;"></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerkness.ca/creating-a-touch-screen-kiosk-using-firefox-ubuntu-and-blackbox/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
