Kiosk Mode for Raspberry Pi with Touch Display

You can enable the default “Screen Blanking” functionality (turns the screen off after 10 minutes and on after touch) if you are using a Raspberry Pi:
https://www.raspberrypi.com/documentation/computers/configuration.html#screen-blanking-3

Alternatively use a presence sensor and the MQTT integration:

I’m using a Raspberry Pi 4, and Home Assistant is barely usable—neither in the browser nor in the kiosk browser. It’s extremely laggy. Do you have similar issues? How smoothly does it run on a Pi 5, or how can I fix this problem?

What kind of HA cards are you displaying? Some people reporting performance issues with the thermostate card.

I’m using also a RPI 4 with 4GB memory and don’t experience this kind of problems.

Very nice project, it is running here very smoothly on a spare PI. Thanks for all the good work!

1 Like

I have been testing this project for about 3 weeks and everything runs smoothly on a Rpi5 8Gb + 10" display. The only unsightly thing is the circular mouse cursor, which cannot be hidden yet (or I don’t know how). I have only encountered one display issue with the Lovelace Horizon Card component, which does not update in real time and requires a page refresh. This issue does not exist on other devices.

Using a Raspberry Pi 5 8gb and a sandisk ultra (and sandisk extreme pro). This works well and the MQTT entities are a very nice touch.

The only issue is that the TouchKio cpu usage spikes when my dashboard has any RTSP stream picture entity cards and there’s some user interface lag. I dropped down to 720p rtsp streams and the lag is still there. I am still investigating this further

Hi, I am trying to run touchkio but during setup I got following errors:
sudo dpkg -i touchkio_1.1.2_arm64.deb && touchkio --setup Selecting previously unselected package touchkio. (Reading database … 127467 files and directories currently installed.) Preparing to unpack touchkio_1.1.2_arm64.deb … Unpacking touchkio (1.1.2) … Setting up touchkio (1.1.2) … Processing triggers for desktop-file-utils (0.26-1) … Processing triggers for mailcap (3.70+nmu1) … [4350:0401/182020.689383:ERROR:gbm_wrapper.cc(79)] Failed to get fd for plane.: No such file or directory (2) [4350:0401/182020.689796:ERROR:gbm_wrapper.cc(262)] Failed to export buffer to dma_buf: No such file or directory (2) [4350:0401/182020.690059:ERROR:gbm_wrapper.cc(79)] Failed to get fd for plane.: No such file or directory (2) [4350:0401/182020.690196:ERROR:gbm_wrapper.cc(262)] Failed to export buffer to dma_buf: No such file or directory (2) [4350:0401/182020.690371:ERROR:gbm_wrapper.cc(79)] Failed to get fd for plane.: No such file or directory (2) [4350:0401/182020.690460:ERROR:gbm_wrapper.cc(262)] Failed to export buffer to dma_buf: No such file or directory (2) [4350:0401/182020.690602:ERROR:gbm_wrapper.cc(79)] Failed to get fd for plane.: No such file or directory (2) [4350:0401/182020.690698:ERROR:gbm_wrapper.cc(262)] Failed to export buffer to dma_buf: No such file or directory (2) [4350:0401/182020.690833:ERROR:gbm_wrapper.cc(79)] Failed to get fd for plane.: No such file or directory (2) [4350:0401/182020.690932:ERROR:gbm_wrapper.cc(262)] Failed to export buffer to dma_buf: No such file or directory (2) [4350:0401/182020.691070:ERROR:gbm_wrapper.cc(79)] Failed to get fd for plane.: No such file or directory (2) [4350:0401/182020.691166:ERROR:gbm_wrapper.cc(262)] Failed to export buffer to dma_buf: No such file or directory (2) [4350:0401/182020.691331:ERROR:gbm_wrapper.cc(79)] Failed to get fd for plane.: No such file or directory (2) [4350:0401/182020.691455:ERROR:gbm_wrapper.cc(262)] Failed to export buffer to dma_buf: No such file or directory (2) [4350:0401/182020.691617:ERROR:gbm_wrapper.cc(79)] Failed to get fd for plane.: No such file or directory (2) [4350:0401/182020.691786:ERROR:gbm_wrapper.cc(262)] Failed to export buffer to dma_buf: No such file or directory (2) [4350:0401/182020.693040:ERROR:gbm_wrapper.cc(79)] Failed to get fd for plane.: No such file or directory (2) [4350:0401/182020.693195:ERROR:gbm_wrapper.cc(262)] Failed to export buffer to dma_buf: No such file or directory (2) [4350:0401/182020.693371:ERROR:gbm_wrapper.cc(79)] Failed to get fd for plane.: No such file or directory (2) [4350:0401/182020.693467:ERROR:gbm_wrapper.cc(262)] Failed to export buffer to dma_buf: No such file or directory (2) [4350:0401/182020.693621:ERROR:gbm_wrapper.cc(79)] Failed to get fd for plane.: No such file or directory (2) [4350:0401/182020.693727:ERROR:gbm_wrapper.cc(262)] Failed to export buffer to dma_buf: No such file or directory (2) [4350:0401/182020.693886:ERROR:gbm_wrapper.cc(79)] Failed to get fd for plane.: No such file or directory (2) [4350:0401/182020.693986:ERROR:gbm_wrapper.cc(262)] Failed to export buffer to dma_buf: No such file or directory (2) [4350:0401/182020.694135:ERROR:gbm_wrapper.cc(79)] Failed to get fd for plane.: No such file or directory (2) [4350:0401/182020.694223:ERROR:gbm_wrapper.cc(262)] Failed to export buffer to dma_buf: No such file or directory (2) Enter WEB url (http://192.168.1.42:8123):
I am appreciated for any help or clue. Thank you.

The ERROR:gbm_wrapper.cc(262)] message is a known upstream bug that can be ignored as mentioned in the README.md. Just continue to Enter WEB url etc. and the setup should succeed.

1 Like

You may want to have a look into @jsuanet comment in Remove mouse pointer · Issue #11 · leukipp/touchkio · GitHub.

When you are in a hurry you can always build this version yourself.
See Home · labwc/labwc Wiki · GitHub

Hi, thank you. It is working now. I have just one problem: after RPi restart, the TouchKio starts with blank screen and is necessary to run:
~ $ systemctl --user status touchkio.service
~ $ systemctl --user restart touchkio.service
(Note: restart only doesn’t work.)
Do you have any suggestion? I will edit and provide my step-by-step installation from scratch (from opening box with RPi to functional TouchKio).
Thank you.

Here is my step-by-step guide. Any comment is appreciated.

2 Likes

Hey I would really like to try out Touchkio but I am having a hell of a time getting it running. I am trying to do this with things I have laying around first, so it’s not on a Pi (I have a few Pi 3B+'s doing other things but other dashboard attempts using them have been fruitless)… I’m a total weenie when it comes to Linux but I can follow directions… I’ve tried several times with fresh installs of Debian 12, with different GUIs (KDE,MATE, and LXCE) and not been able to get Touchkio to load… I can see something pop up on the desktop them disappear. I tried installing Debian without a desktop and installing Labwc from Git, but I can’t make it through the build process due to a sub build dependency that I can’t seem to get installed (I’m not at home right now to tell you exactly what it is but it requires a version 1.23 which is not stable but the version in the repo is 1.21 - I’ve tried downloading v1.23 and installing via dpkg but meson doesn’t see it for some reason). Is Labwc required for this? Any idea why Touchkio is not displaying on the native desktops? Any help would be appreciated. Thanks

  • Which hardware did you try? Keep in mind that RPi 3 like hardware is to slow to run it (see hardware).
  • Use the fastest available drive (SDCard) that you have laying around.
  • Only 64bit devices will work with the pre-build binaries, also install a 64bit OS.
  • Labwc is not required but best supported (MQTT brightness control, etc). The basic features should also run on Debian/Ubuntu with an X environment.

Have you ever tried fullpageos?
I use it with a pi3.
I is not that fast, but to show things and sometimes interact with it, it‘s ok.

Yes, installing FullPageOS with Imager is the fastest Solution for displaying websites and I use it occasionally for some projects.

But for HA it’s a pain…especially when using touch screens. You only know better once you have tried some alternatives.

Sorry I forgot to mention that. It’s a HP T620 “thin client”, which has a AMD GX-415GA and 8GB RAM, and 16GB SSD. I have a couple of those laying around because I had bought them for another project which they turned out to be unsuitable for. It’s an old CPU but it’s still faster than even the Pi5 so I don’t think that would be the problem. If it’ll run on a Pi it should run on this. And I did use the 64 bit install of Bookworm, and I want to use it with a 24" Elo touchscreen.

Is there an easier way of installing Labwc other than building it from the Git repository? Because that’s where I’m running into the problem with trying to install it. Do I need Gnome or KDE installed (because they’re always preselected on a Debian install) to use it?

You dont need Labwc, any other Wayland or X11 environment will also (partially) work.

It should not matter, but try Debian XFCE (maybe just live) as it was reported to be working:
https://cdimage.debian.org/debian-cd/12.10.0-live/amd64/iso-hybrid/

See also fix dpkg usage in installation instructions · Issue #28 · leukipp/touchkio · GitHub if the .deb installation fails.

Ok I am really getting frustrated with this. After spending WAYYYY too much time trying to get this to work (i mean at least a couple dozen hours wasted on something that according to the documentation should be as easy as running a damn script) I FINALLY at least got it to load… Except… It looks like this.

I mean, what the actual FCK am I doing wrong now? Not only does it not display properly, I can’t kill it from SSH with systemctl --user stop touchkio.service except for the first time. Once I restart it, the command does nothing and I have to reboot because I cant find any other way to kill it locally - and then it comes up garbled again, I can kill it once from SSH, then never again. No side panel either, and I can move the cursor (it is currently hooked up to my monitor at my desk with a keyboard and mouse) but clicking anywhere does nothing.

In an effort to get Labwc working I installed Trixie RC1, installed Labwc, and fell on my face yet again. Could not get it to work. Reinstalled again. Used Plasma 6. It says it’s running in Wayland mode. That’s where I finally got this damn thing to actually install and run. But now I have this. Oh, and why is it loading the “Overview” instead of the dashboard? I put in the URL of the dashboard I want (http://10.9.10.40:8123/dashboard-dashboard/0), and it brings up the overview (http://10.9.10.40:8123/lovelace/0). ??? ??? ???

For someone who has no experience with any RPI devices, how “difficult” would this project be?

I am tired of my tablet losing it’s battery entity and thus not firing the charging 20-80% automation. So i am looking to build a reliable device myself but free time is little and expensive. I have seen some nice cases on makerworld which i can print for the display and the RPI so that would suit my needs quit wel.

It took me about 30 minutes on an Rpi5 8Gb to get it working on a 15" touchscreen. I had no errors during 1 month of testing and everything works as expected.

1 Like