Today at work in my capacity as chairman of the game development club, I was asked to start thinking about how we can spruce up an interactive kiosk that was built for our reception area by a local design company...
It's basically a big TV screen driven by a Raspberry Pi, built into a very large and prettily stylized wall... unfortunately the software driving the screen is pretty basic. It's basically just a very boring 5 page static website with very plain content that doesn't look very much like the pretty wall around it. It has a custom built keyboard with 5 buttons (Home, 1, 2, 3, 4) and a USB port. Plugging in your USB stick will result in it copying some brochures onto it automatically.
So the idea is to make the content shown on the screen a bit more dynamic like a game or at least some animated web pages. To do this we need to figure out:
- How to run Chrome in full screen mode automatically on boot (currently there's a lot of manual restarting going on whenever the power drops or the Pi crashes).
- If we need to keep the Pi for the keyboard and USB functionality or if we can replace it with something more powerful.
- A game or at least more dynamic website to provide the same information in a more stylish way.
So I was quickly able to figure out number 2 and just wanted to share the steps here in case they could be useful for someone else (or in-case I forget). This can be handy for anyone who wants to display an HTML 5 game or interactive art piece at an event.
Chrome Kiosk Mode
My initial Google searches suggested that I should use the
--kiosk flag to launch the browser in full-screen mode, but it turns out this doesn't work. Looks like the feature broke some time in 2015 and no-ones bothered to fix it back up again…
A colleague that was in the same planning session found another flag
--start-fullscreen which works, so you can try that.
The option I found is a Chrome App that could do the job instead - it also seems to have some nice additional functionality like automatic daily restarts, network based administration and many more.
The process to get it working is as follows:
- Open Chrome
- Go to chrome://settings/
- Under People add a new user profile for the kiosk (I called mine Kiosk) – be sure to tick the option to create a desktop shortcut.
- Launch Kiosk user’s Chrome instance and install the Kiosk app
- The Kiosk application’s configuration screen should launch in a new window - configure it:
- Set URL for content
- Hide cursor ON
- Local administration ON
- Username & password (I used admin:admin for now to avoid forgetting)
- Sleep mode: prevent from sleeping
- At this point the Kiosk window will be in kiosk mode – get rid of it for now with Alt-F4
- In the window you installed from navigate to chrome://apps
- Right-click Kiosk and select Create shortcuts and create a desktop shortcut – the created shortcut has all the command line options needed to select the correct Chrome user profile and to launch the Kiosk app.
- Now make it start on boot (tested on Windows 10):
- Press WinKey+R
- Enter shell:startup
- Press ENTER
- Copy the Kiosk link from your desktop to the startup folder
- Reboot and the browser should launch in kiosk after startup.