About me: My name is Solène Rapenne, pronouns she/her. I like learning and sharing knowledge. Hobbies: '(BSD OpenBSD Qubes OS Lisp cmdline gaming security QubesOS internet-stuff). I love percent and lambda characters. OpenBSD developer solene@. No AI is involved in this blog.

Contact me: solene at dataswamp dot org or @solene@bsd.network (mastodon).

I'm a freelance OpenBSD, FreeBSD, Linux and Qubes OS consultant, this includes DevOps, DevSecOps, technical writing or documentation work.

If you enjoy this blog, you can sponsor my open source work financially so I can write this blog and contribute to Free Software as my daily job.

A kiosk computer running OpenBSD

Written by Solène, on 11 October 2022.
Tags: #openbsd

Comments on Fediverse/Mastodon

1. Introduction §

Let's have fun doing OpenBSD kiosks! As explained in a recent article, a kiosk is a computer dedicated to display things or to be used interactively without being able to escape the current program.

I modified the script surf-display which run the web browser surf in full screen and run various commands to sanitize the environment to prevent users to escape surf to make it compatible with OpenBSD.

surf-display-openbsd project page

surf-display project page

2. Installation §

It's rather simple

  1. git clone https://tildegit.org/solene/surf-display-openbsd
  2. install -m 555 surf-display-openbsd/bin/surf-display /usr/local/bin/
  3. edit ~/.xsession to use /usr/local/bin/surf-display as a window manager

You will also need dependencies:

pkg_add surf wmctrl blackbox xdotool unclutter

Now, when you log in your user, surf will be started automatically, and you can't escape it, so you will need to switch to a TTY if you want to disable it, or through ssh.

3. Configuration §

The configuration is relatively simple for a single screen setup. Edit the file /etc/surf-display and put the URL you want to display as the value of DEFAULT_WWW_URI=, this file will be loaded by surf-display when it runs, otherwise OpenBSD website will be displayed.

4. Conclusion §

It's still a bit rough for OpenBSD, I'd like to add xprintidle to automatically restart the session if the user has been inactive, but it's working really well already!