
Já viram displays de quiosques? Em sua maioria rodam com laptops e apresentações em PowerPoint ou LibreOffice, trocando de slide a cada tempo determinado e em loop.
Além de menu de preços em restaurantes, que alternam com imagens sugestivas das comidas do local, também é comum ter esses tipos de displays em ambientes de desenvolvimento ou devops. Nesses, ao contrário do anterior, não é desejável ter um slide estático com os dados, mas mostrar uma página de gráficos em andamento, como MRTG, ou compilação de código, ou execução de um teste, etc.

É possível usar um laptop ou desktop potente com chrome ou chromium como browser e utilizar um javascript pra alternar entre as abas, mas, como todo bom hacker gosta, existem alternativas mais simples e intereressantes. Uma delas é rodando num raspberrypi com python.
A história toda começou quando tentei implementar essa troca de contexto no chromium, que usava toda CPU do raspberrypi 2B+ que tínhamos disponível. Trocamos pelo epiphany-browser, que utiliza menos memória, mas não permite ter abas. Como conheço o desenvolvedor do epiphany, o Gustavo Kov, mantenedor do Debian, pedi carinhosamente pra implementar o que eu precisava. A resposta virou quase um meme.

Em tom de desafio ele me disse pra fazer eu mesmo essa implementação e utilizar webkit, que tem tudo o que eu precisava.
Durante uma das hackathons promovidas pela empresa, eu resolvi topar o desafio e escrevi um programa em python com QT4 pra fazer esse display que alterna as páginas. O projeto roda bem num raspbian baseado em Debian Jesse. Precisa também de libqtwebkit4 e de python-qt4. O projeto pode ser encontrado aqui:
https://github.com/helioloureiro/raspresenterpy
Os passos são, num raspberripy ou PC:
sudo apt install libqtwebkit4 python-qt4 git clone https://github.com/helioloureiro/raspresenterpy.git cd raspresenterpy nohup ./raspresenterpy.sh
O arquivo raspresenterpy.conf lista cada url que será mostrada por linha, de forma bem simples. É possível colocar qualquer coisa por linha, de http:// à file:///. Se o browser consegue abrir, o raspresenterpy também abrirá com webkit.
O tempo em que cada página é mostrada é por padrão 60 segundos, mas pode ser alterada dentro do arquivo raspresenterpy na linha 37. Basta colocar o valor desejado em segundo para TIMER.
Para iniciar automaticamente na tela gráfica basta criar um arquivo /home/pi/.config/autostart/raspresenterpy.desktop como esse a seguir:
/home/pi/.config/autostart# more raspresenterpy.desktop [Desktop Entry] Type=Application Exec=/home/pi/raspresenterpy/raspresenterpy.sh Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true Name=raspresenterpy Comment=Startup Script
A vantagem do raspresenterpy é que ele não precisa de nenhum browser pesado. Ele continua com PyQT4 mas está nos meus planos de férias passar algum tempinho pra portar ele pro PyQT5.
Por fim um vídeo de uma lightning talk que fiz durante a PyCon Sweden 2016 onde mostrei o raspresenterpy.
Deixe um comentário