| Title: A kiosk computer running OpenBSD | |
| Author: Solène | |
| Date: 11 October 2022 | |
| Tags: openbsd | |
| Description: In this article you will learn how to create kiosks | |
| systems with OpenBSD | |
| # 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 | |
| # 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. | |
| # 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. | |
| # 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! |