Chrome Kiosk Mode

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:

  1. 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).
  2. If we need to keep the Pi for the keyboard and USB functionality or if we can replace it with something more powerful.
  3. 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…

Vanilla Chrome

A colleague that was in the same planning session found another flag --start-fullscreen which works, so you can try that.

Kiosk App

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:

  1. Open Chrome
  2. Go to chrome://settings/
  3. 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.
  4. Launch Kiosk user’s Chrome instance and install the Kiosk app
  5. 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
    • Save
  6. At this point the Kiosk window will be in kiosk mode – get rid of it for now with Alt-F4
  7. In the window you installed from navigate to chrome://apps
  8. 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.
  9. 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
  10. Reboot and the browser should launch in kiosk after startup.

Matt Van Der Westhuizen

Back-end service developer at Ubisoft Blue Byte by day - wannabe game designer & developer by night.