2

I'm trying to something like a kiosk.

So, I'm creating a custom install of Ubuntu Desktop 14.04 using Ubuntu-Builder, and I'm simply trying to have a program start up right on boot. I do not want the global menu bar on top to display, or the side bar with the short cuts to applications to display. I just want a program to execute in full screen, even if the user exits the program. The program already runs in full screen by the way.

I've tried removing Unity, and when I do that, when Ubuntu boots up, it says that you cannot log into Ubuntu. Does anyone have any suggestions?

Here's what I've tried:

sudo apt-get autoremove --purge unity unity-common unity-services unity-lens-* unity-scope-*

I'm also having difficulties having the program boot on start up, because I'm used to adding the program to execute to the users .profile. Any suggestions for this as well?

Thanks in advance.

Someone13
  • 263
  • 1
  • 3
  • 11

3 Answers3

4

When building a Kiosk, I would first list what is the expected behavior. Expected behavior of a Kiosk should be, from your question :

  • A single graphical application to run fullscreen
  • This graphical application is started automatically when the server boot up
  • In the case that a user is able to stop the application (on purpose or after an error), this application should be restarted again.

I thing that your approach, starting from a full desktop and trying to remove the unnecessary things (like Unity) is not the correct approach. From my own experience, I search what are the minimal components to have to be achieve the above goals.

For me, the minimal components are :

  • An X Server, automatically launch during boot time without user login (without any layer like gdm, etc.
  • A Windows manager (to draw and manage the window of your application itself) with the ability to remove the minimize, maximize, close, ... button of the title bar. (if your application is already fullscreen by default this component can be optional.)
  • A script to check that the application is still running and to restart it in case it is not.

So starting from an Ubuntu Server installation, without any graphical component installed, you will have to install at least Xorg (sudo apt-get install xorg).
From the command line, you can always start the X server with startx.
To launch the graphical application together with the X server, you will have to create an .xsession file which purpose is to tell the X server which application to launch after the X server itself.

Benoit
  • 7,637
2

I've covered this a few times on the site and again on my blog (from Ubuntu Server (recommended) or from Ubuntu Desktop).

I wouldn't mess around with trying to selectively unhook things from the traditional Ubuntu desktop, just load X and the application. It sounds gritty but it's fairly basic and only involves just a few tasks:

  • Disabling LightDM (if installed) which is what would normally start our X session (echo manual | sudo tee /etc/init/lightdm.override)
  • Telling X that anybody can start an instance (sudo dpkg-reconfigure x11-common)
  • Creating a new Upstart service that starts X and runs either a script or an application directly.

The new Upstart script is the biggest element to the whole thing but loosely consists of:

start on (filesystem and stopped udevtrigger)
stop on runlevel [06]

console output
emits starting-x

respawn

exec sudo -u pranay startx /etc/X11/Xsession /path/to/application --

And you'd save that as something like /etc/init/kiosk.conf.

Oli
  • 299,380
0

I couldn't really understand your problem very well, but from what i get you have removed the Unity bar right? if yes then this might be the problem since many people have reported problems after removing Unity with no solution found yet so try reverting back to the original settings and as for the full screen thing F11 takes most apps full screen, Firefox, chromium, libreoffice etc. and many game apps already open in full screen so you could just put a task to press F11 when you open these apps instead of modifying a patch.

To make apps fullscreen temporarly (one session)

-change screen resolution so it fits only the application

-for something a little more permanent you could change xrandr (Ps. This is risky stuff be careful)

pranay
  • 54