Question

I want to create a C++ application that is to run on some Linux platform on a specific laptop computer. I do however not want the users of this laptop to use any other applications/system features than this program - much like the kiosk modes you would find on computers in a typical internet café.

One issue is that the laptop will be booted by the user, and such has to start my software automatically - leaving as little room as possible for the user to intervene with the process. It does not have to be completely secure, but it should be as close as possible.

What would be the best way to accomplish such a thing? Does there exist (free) Linux distributions specifically made for this (if not, I will probably use Arch Linux)? Are there any steps I could/should take in my program, or can I leave it all to the OS? Would creating my own little Linux distribution specifically for this be worth it?

Was it helpful?

Solution

This shouldn't be on stackoverflow but anyway:

Run a plain X session with no window manager, into this plain X session start your program in fullscreen. Done.

I run a small XUL application this way:

X :10 &
sleep 10

DISPLAY=:10 xulrunner ~/zkfoxtemp/application.ini

OTHER TIPS

I would use a minimal live linux distribution - I prefer tinycorelinux but most will do.

  • using a minimal distribution ensures that the system doesn't have almost any features or programs you didn't plant there, and will make it easy to modify according to your needs
  • use a window manager as many programs don't behave properly if ran in plain X session (especially if they use pop up windows), but remove all it's menus and shortcuts
  • prefer booting from a read only media - this will minimize the chances of corruption (accidentally or intentionally)
  • remove unneeded services and features from the boot and login scripts
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top