My need is simple: Make a Raspberry PI 3 thin client. For that, I need the following items to be achieved:

  • A Kiosk mode software, that would not allow the user to change configurations
  • A Kiosk mode software that would allow me to call external binaries (like xfreerdp)
  • A Kiosk mode software that would allow me to create simple forms (like user and password) so I can pass those as parameters to other software (like xfreerdp)
    • It need to be done this way cause we have a .rdp file with all the Gateway and Connection Broker logic built-in. We can't just start the connection and let the default Windows 2012 Login be shown (doesn't work).

The problem:

All solutions I can find deal only with having a browser at kiosk or fullscreen mode. I need more than just browsing the internet.

My current (and not-so-good) solution involves creating those forms with yad and some scripting to capture user input and pass it to xfreedrp, but I'm thinking at the future here, like using puppet to manage those scripts, or a web page that could be accessed by all clients. And also xfreerdp is not the only software that will be used by the user. Showing webpages and vmware-view-client are other software I need to stuff the thinclient with.

So far what I have found:

  • Using a simple window manager like XFCE: Will cost time to make it customized to my needs, and time to make a sync feature work to keep things updated when needed.
  • Use chromium-browser or firefox Kiosk will not allow me to run local commands for obvious security reasons.
  • Sugarized seems to be a good option to create html5 forms, but I will still have the web browser limitations for external software
  • Rpitc seems to be a good distribuition, but it only have the "stuff installed". All this can be achieved by installing Debian/Raspbian and typing some apt-get.
  • M:tier is a thinclient-like interface written in python. It seems to be my best bet here, but I could not figure a way to capture user and password and pass it to xfreerdp (maybe call yad from here)

The essential stuff:

xfreerdp, ocs-inventory-agent, vmware-view-client, a web browser, vnc server, ssh daemon and a GUI where I can wrap-up info that will help our first level support guys to access the equipment (ip address and hostname basically), a clock and a poweroff button.

Back to the question: Any tips on a distribution or an easily customizable GUI where I could put all those "big icons" to the user?


I have done this in two ways, one of which was to use a simple window manager, as you mentioned. However, when I say "simple," I mean twm, which is about as simple as it gets. The customization would really be nothing more than listing the application(s) that need to be started in your ~/.xinitrc, plus a little messing around with a twmrc file.

This solution worked well. twm is very customizable, so it was easy to launch an arbitrary GUI application in "kiosk mode," i.e., fullscreen, no title bar. You can also start any other application, like x11vnc, in the background for your remote login requirements. This is worth looking into. I don't think it will take any longer to customize to your needs than any other method.

The other option that works well, but requires more effort, is to build a Qt application using the EGLFS plugin. In this case, you're not running X11 at all, and your top-level window in the Qt application is run full-screen. This is probably much more effort than you'd like, and it's going to take a lot of effort to get remote access working.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy