> For the complete documentation index, see [llms.txt](https://marlborough-college.gitbook.io/attic-lab/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://marlborough-college.gitbook.io/attic-lab/raspberry-pi/setup/kiosk-mode.md).

# Kiosk Mode

Feb 2020

{% embed url="<https://wolfgang-ziegler.com/blog/setting-up-a-raspberrypi-in-kiosk-mode-2020>" %}

This image I used is **Raspbian Buster with desktop** and it comes with a Chromium browser installed by default. Also I am running with the default user *pi*, which is relevant for the example below and needs to be considered if you are running a different user.

So these are the steps I took to get a basic clean Kiosk Experience.

### Hide the Mouse Cursor <a href="#hide-the-mouse-cursor" id="hide-the-mouse-cursor"></a>

First, we want to get rid of the mouse cursor on the desktop. This is really simple and only requires us to install the unclutter package.

```
$ sudo apt-get install unclutter
```

> To make sure that this actually worked, we can simply restart the desktop using following command:
>
> ```
> $ sudo service lightdm restart
> ```

### Disable the Screensaver <a href="#disable-the-screensaver" id="disable-the-screensaver"></a>

The next important step is to prevent the screensaver kicking in and blanking the screen. The simplest configuration I could come up with was changing the file `/etc/xdg/lxsession/LXDE-pi/autostart` like this:

```
@lxpanel --profile LXDE
@pcmanfm --desktop --profile LXDE
@xset s off
@xset -dpms
@xset s noblank

@/home/pi/run.sh
```

#### Auto Start a Browser <a href="#auto-start-a-browser" id="auto-start-a-browser"></a>

The last entry in the above configuration file launches the the script `/home/pi/run.sh`, which will contain the code for **launching Chromium in Kiosk Mode**. But we have to create that file first:

```
$ touch /home/pi/run.sh
```

Then make it executable:

```
$ chmod +x /home/pi/run.sh
```

Now, let’s edit this file so it looks like this (note: the line breaks are just for formatting reasons).

```
#!/bin/sh
/usr/bin/chromium-browser --app=http://your-site
  --kiosk
  --noerrdialogs
  --disable-session-crashed-bubble
  --disable-infobars
  --check-for-update-interval=604800
  --disable-pinch
  --start-fullscreen
```

{% hint style="warning" %}
All above parameters must be on same line
{% endhint %}
