Ao criar um quiosque, primeiro listaria qual é o comportamento esperado. O comportamento esperado de um quiosque deve ser, da sua pergunta:
- Um aplicativo gráfico único para executar a tela inteira
- Este aplicativo gráfico é iniciado automaticamente quando o servidor é inicializado
- No caso em que um usuário é capaz de interromper o aplicativo (propositalmente ou após um erro), esse aplicativo deve ser reiniciado novamente.
Acho que sua abordagem, a partir de uma área de trabalho completa e tentando remover as coisas desnecessárias (como Unity), não é a abordagem correta. De minha própria experiência, eu pesquiso quais são os componentes mínimos a serem atingidos pelos objetivos acima.
Para mim, os componentes mínimos são:
- Um X Server, é iniciado automaticamente durante o tempo de inicialização sem o login do usuário (sem qualquer camada como gdm , etc.
- Um gerenciador do Windows (para desenhar e gerenciar a janela do próprio aplicativo) com a capacidade de remover o botão minimizar, maximizar, fechar ... da barra de título. (se o seu aplicativo já estiver em tela cheia por padrão, este componente pode ser opcional).
- Um script para verificar se o aplicativo ainda está em execução e reiniciá-lo, caso não esteja.
Então, a partir de uma instalação do Ubuntu Server, sem qualquer componente gráfico instalado, você terá que instalar pelo menos Xorg ( sudo apt-get install xorg
).
Na linha de comando, você sempre pode iniciar o servidor X com startx
.
Para iniciar o aplicativo gráfico junto com o servidor X, você terá que criar um arquivo .xsession
cujo objetivo é informar ao servidor X qual aplicativo será iniciado após o próprio servidor X.