Kweb em modo kioski

Não sei nem como intitular esse artigo. Deixei esse navegador por último porque ele é muito mais do que um browser. Utilizar o kweb em modo kioski é o mínimo que pode ser feito com ele, mas o mais interessante (em minha opinião, claro) é utilizá-lo como window manager. Sério, usá-lo sem ler a documentação é um desperdício de recurso.

O que é o kweb

A documentação começa apresentando-o como um browser kioski mínimo, pequeno e eficiente, escrito em C, baseado no webkit. Ele foi desenvolvido especialmente para Raspberry e conta com diversos recursos embutidos:

  • Suporte a HTML5.
  • Visualizador de PDF (através do Evince, Xpdf ou Mupdf).
  • Download assíncrono (suportado por downloads manager como o wget ou uGet).
  • Suporte completo a mídias, usando o omxplayer.
  • Uma interface de comando que suporta qualquer tipo de programa dentro de um arquivo HTML.
  • Um menu e painel de controle para acessar todas as configurações de um só lugar.
  • Aceleração de vídeo e imagem através da GPU.

Suas aplicações são:

  • Atuar como um browser comum.
  • Substituir completamente o desktop.
  • Servir de kioski.

Ele foi concebido para poupar recursos do Raspberry, como CPU e memória. Invés de incutir montes de funcionalidades internamente, ele se aproveita de recursos externos para diversas tarefas, tornando-o assim um browser extremamente leve. Ainda assim, ele oferece recursos únicos, não encontrados em outros browsers, como torná-lo seu desktop padrão!

Ele conta também com um updater interno, para que você mantenha sua versão sempre atualizada. Algumas dependências devem ser supridas:

omxplayer, youtube-dl, wget, mupdf or xpdf, leafpad, lxterminal

Os programas recomendados:

sudo apt-get install evince xpdf xterm uget-gtk tint2

Para tocar vídeos contidos em HTML5 dentro da janela do browser, o kweb3 utiliza os recursos do GTK+3. Alguns bugs são relatados em relação ao webkitgtk3, mas devem ser corrigidos com o tempo.

Para rodá-lo de um terminal (cujo sistema não esteja rodando um desktop no momento da execução) utilize:

xinit ./ktop

Isso iniciará o servidor gráfico, o openbox, uma barra de tarefas e o kweb. Com apenas isso, já devemos ter algo como:

 

User Agent

Eis um truque prático disponível no Kweb. Alguns sites não renderizam se o browser não for Firefox ou Chrome. Para “burlar” essa limitação, um recurso que permite inclusive simular um browser mobile pode ser utilizado procedendo ao símbolo de “$”:

$Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:43.0) Gecko/20100101 Firefox/43.0

Para restaurar o comportamento padrão do browser, use “$” sem parâmetros. Mas no menu dele tem a opção de enviar esses comandos através de clique, não precisa fazer nada manualmente.

Menu de contexto

O botão direito do mouse abre um menu com opções conforme o contexto, como qualquer gerenciador de janelas o faz. De qualquer modo, não é necessário decorar nada. No menu principal tem vários botões que vão direto para recursos do sistema:

Kweb em modo kioski

Modificadores

Alguns recursos estão disponíveis como:

Alt+F

Alterna entre janela padrão e tela cheia.

Alt+K

Alterna entre ocultar ou exibir a barra de ferramentas e entrada de URL.

Alt+C

Fecha a janela atual. Se não houver outra, encerra a principal.

Alt+I

Limpa o texto de entrada e coloca o cursor em ponto para digitação. Grande atalho.

Zoom

A ampliação pode ser feita com a tecla Ctrl pressionada enquanto se utiliza o scroll do mouse, com mínima de 50% e máxima de 200%.

Suporte de mídia

Em conjunto com a fundação Raspberry Pi e Collabora.com, o Kweb3 pode tocar vídeo HTML5 diretamente dentro do browser. Com a versão kweb (sem o “3”) não é possível. O mesmo para sites com players em flash. Mas tanto o kweb como kweb3 podem fazer uso do omxplayer, que tem suporte total à GPU do Raspberry.

Ambiente Kweb

É a partir daqui que realmente me apaixonei por esse monstrinho. O kweb environment consiste em um conjunto de páginas HTML localmente alocadas que fazem uso extensivo das aplicação da interface e interagem com os programas chamados de “helpers”, além de qualquer outro programa instalado no sistema de sua Raspberry. Ele possui uma série de botões para acessar os helpers, editor, manual, player e outros. Esses recursos terei que mostrar em vídeo, cujo link disponho mais adiante.

Desabilitar modo gráfico do Raspberry

Coloque o Raspberry para iniciar sem modo gráfico. Abra o programa raspi-config e siga esses menus:

sudo raspi-config

3 – Boot Options  no menu principal.

raspi-config - Kweb em modo kioskiB1 – Desktop / CLI no segundo menu

B1 Console ou B2 Console Autologin no terceiro. Optei por autologin.

Depois faça a reinicialização do sistema.

Instalar o Kweb e colocar o Kweb em modo kioski

Estou usando o Raspbian baseado no Debian Buster para colocar o Kweb em modo kioski. Para saber sua versão, use o comando:

cat /etc/debian_version

Deve retornar a versão 10.4. Se for outra versão (mais antiga ou mais atual, dependendo do momento em que estiver vendo esse artigo), certifique-se do codinome:

lsb_release -c

Deve retornar nesse formato:

Tendo as informações em mente:

wget http://steinerdatenbank.de/software/kweb-1.7.9.8.tar.gz
tar -xzf kweb-1.7.9.8.tar.gz
cd kweb-1.7.9.8
./debinstall

wget http://steinerdatenbank.de/software/kweb_upgrade_buster_20190823.tar.gz
tar -xzf kweb_upgrade_buster_20190823.tar.gz
cd kweb_upgrade_buster_20190823
./install

Para outras versões, siga o método de instalação (sempre atualizado, inclusive versão do Kweb) através desse link.

Se desejar instalar uma barra de tarefas leve, aproveite para instalar o tint2:

sudo apt-get install -y tint2

Agora crie um arquivo com o nome desejado em /home/pi para fazer a inicialização. Use seu editor preferido (nano, mcedit, vi etc). Seguindo o exemplo da documentação, criei com o nome kdesk e adicionei o seguinte conteúdo:

#!/bin/sh
tint2 &
openbox --config-file ~/.config/openbox/rc.xml --startup "kweb -HZQU4+-zbhrqfpoklgtjneduwxyavcsmi#?!., file:///usr/local/share/kweb/desktop.html"

Depois de salvar o arquivo, dê permissão de execução a ele e então inicie o servidor gráfico assim:

chmod 750 kdesk
sudo xinit ./kdesk

A página inicial não terá essa beleza deslumbrante, mas deve ser aberto o browser com a barra de tarefas embaixo, desse modo (após digitar a URL, claro):

Kweb em modo kioski - tela

Para colocar o Kweb em modo kioski, utilize Alt+K e Alt+A.

Agora, dê uma olhada no que nesse momento parece um mero browser, mas em outro artigo veremos como utilizá-lo no lugar do desktop!

Se fechar o browser, o X continuará aberto. Através de um terminal podemos reabrir o browser digitando:

DISPLAY=:0 kweb &

Deixo o resto para o próximo artigo (porque ainda estou configurando o modo desktop)!

 

Revisão: Ricardo Amaral de Andrade

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.