Pessoalmente passo a passo todas as coisas lightdm
e Xsession
e apenas lanço a minha própria instância do X que acabou de iniciar o Firefox. Parece um pesadelo, mas é realmente simples com um pequeno script Upstart
start on (filesystem and stopped udevtrigger)
stop on runlevel [06]
console output
emits starting-x
respawn
exec sudo -u thomas startx /etc/X11/Xsession /path/to/kiosk.sh --
Obviamente, mude o nome de usuário para qualquer usuário que você queira rodar, mas é praticamente isso. Salve isso como /etc/init/x.conf
e então você deve ser capaz de sudo start x
e você está fora (ele carregará na inicialização). Se o Firefox travar, ele recarregará o X com uma nova instância.
Se você tem uma instalação completa do Ubuntu instalada, pode ser necessário desabilitar o LightDM primeiro com:
sudo stop lightdm
echo manual | sudo tee /etc/init/lightdm.override
E o seu perfil do Firefox é totalmente com você. Você pode até mesmo fazer um script em alguma restauração de perfil para que, se alguém quebrar o seu perfil, você só precise reiniciar o serviço x
e ele estará usando a cópia limpa novamente. Apenas uma ideia.
Desde então, escrevi um post em criando um quiosque do zero com o 14.04 e Chrome .
Para seu problema de configuração sem fio, sugiro manter o máximo disso longe de usuários casuais. Você pode configurar uma conexão usando um TTY de maneira bastante simples:
sudo nmcli dev wifi con <SSID> password <password>
Isso deve adicionar a conexão ao sistema e conectar-se (e conectar-se automaticamente no futuro), mas eu não testei isso. Talvez nem precise do sudo
, mas tudo depende dos privilégios que seu usuário principal tem.
O simples benefício de carregar algo em segundo plano aqui é que não há chance de algum transeunte ter acesso a um diálogo de configurações gráficas de rede. Isso requer que o operador possa seguir as instruções.
Se eles não puderem lidar com isso, você poderá razoavelmente modificar facilmente seu kiosk.sh
para procurar por conexões existentes e perguntar se há zenity
-questions no comando nmcli
anterior:
if [[ $(nmcli con | wc -l) == 1 ]]; then
SSID=$(zenity ...)
PASS=$(zenity ...)
nmcli dev wifi con $SSID password $PASS
fi
Essa é apenas uma ideia aproximada. Você precisará trabalhar nisso. Pode haver um aplicativo de configuração gráfico de gerenciamento de rede independente melhor.