Howto - Kiosk con Firefox e Virtual Keyboard

Oggi stavo lavorando ad un progetto molto interessante finalizzato all'installazione di un "mesh-up" tra Firefox e una virtual keyboard su una macchinetta tipo kiosk, e ho recuperato abbastanza materiale per poterci scrivere un piccolo howto nella speranza di aiutare tutti coloro che avessero necessità analoghe (internet point, bar, etc...)
Come sistema operativo per la prova è stato scelto Debian netinstall (snapshoot fresca di giornata) anche se sarebbe stato meglio Debian Etch, per via del server grafico più testato. Una volta terminata l'installazione di X.org, e derivati, abbiamo bisogno di:
1- Iceweasel o, in alternativa, Firefox. Meglio la versione 2 (poi vedremo perchè)
2- Un paio di plugins per la geometria della finestra principale e un locker che "chiude" all'utente qualsiasi tipo di menu o combinazione di tasti
3- Una virtual-keyboard
4- Un pannello touchscreen con driver supportati dal kernel 2.6.25-2 (attuale kernel di Lenny)
5- Opzionale - uno script per avviare direttamente Firefox e la Virtual-keyboard
Bloccare Firefox
Iceweasel è installato di default, ma nulla ci vieta di scaricare la versione di Firefox in formato binario, previa installazione delle libstdc++5:
su -c "aptitude install libstdc++5"
Scarichiamo quindi il pacchetto (versione supportata fino al 15 Dicembre 2008, almeno per quanto riguarda gli upgrade di sicurezza):
Ho scelto la vecchia versione perche' attualmente i due plugins che ci interessano sono pienamente supportati:
Scompattiamo il tarbal in una directory a nostra scelta, entriamoci e lanciamo:
./firefox
...per installare le due estensioni elencate in precedenza. Riguardo a Custom Geometry, si tratta solo di impostare la giusta "centratura" considerando lo spazio che verrà invece occupato dalla keyboard. Nel mio caso, con un monitor di 1440x900, le misure saranno: Height=700 Width=1440 NB: Per la manutenzione, una volta installato r-kiosk, bisogna necessariamente avviare il browser con:
firefox -safe-mode
..e spuntare la disabilitazione momentanea dei plugins. Gli altri valori li metteremo a "0". Questo significa che la nostra tastira virtuale dovrà essere larga 1440px e alta 200px, per completare il mesh-up:

Virtual KeyboardAd essere sinceri non ne ho ancora trovata una che riesca a soddisfare appieno le esigenze, perchè tutte, più o meno, hanno molti pregi ma altrettanti difetti. Iniziamo da xvkbd. xvkbd

Questo software ha il grande vantaggio di essere pienamente compatibile con una sessione X pura. C'e' un comodo menu per abilitare/disabilitare intere porzioni di layout (come i tasti speciali F*) o per abilitare il focus nella form da riempire. Interessante, se non fondamentale, la possibilità di selezionare le geometrie della finestra sull'asse X e sull'asse Y, oltre alla distanza dal margine sinistro (left/top). Lo stile è molto "retrò" e graficamente lascia a desiderare. Se da un lato possiamo chiudere un occhio riguardo l'aspetto, c'è da considerare che il menu delle opzioni non può essere nascosto, e per il focus dobbiamo premere (almeno per la prima volta) il pulsante dedicato.Innumerevoli i crash, sia nella versione dei repository (di Lenny quanto di Ubuntu) sia nella più aggiornata versione in formato sorgente. Impensabile, onestamente, per l'impiego in un sistema "embedded" che deve funzionare praticamente sempre. PRO:
- Veloce
- Compatibile
- Molte opzioni utili
- Geometria variabile
- Interfaccia grafica moderna (kxvkbd)
- Click automatico con ritardo
- Suono simulato pcspkr
- Lock tasti speciali
CONTRO:
- Menu accessibile da chiunque
- Nessun file di configurazione
- Numerosi crash
Impostazione layout faticosa
su -c "apt-get install xvkbd"
Per "joinare" la finestra ridimensionata di Firefox lo lanceremo in questa maniera:
xvkbd -geometry 1440x200+0+700
Matchbox-keyboard

Matchbox-keyboard, rifacimento di xkbd, fa parte della suite dell'omonimo window-manager. Non ho ancora ben capito come si possa ridimensionare perchè sia l'help che il man sono carenti di queste informazioni. Molto probabilmente. a differenza di xvkbd, si deve agire direttamente nei files XML di configurazione.PRO
- Flessibilità di configurazione tramite file XML
- Internazionalizzazione
- Versione migliorata
- Poche dipendenze
- Selezione layout tramite ID (da riga di comando)
- Essenziale e adatta allo scopo
CONTRO
- Non immediata nella comprensione
- Homepage
Anche matchbox-keyboard si trova nei repository delle maggiori distribuzioni linux:
su -c "apt-get install matchbox-keyboard"
Sorgenti
python setup.py install
./configure make su -c "make install"
Onboard Progetto nuovo, anzi forse troppo nuovo, in hosting su Launchpad. Ha come unica dipendenza la libreria Libfakekey ed è scritto in python. Sarebbe fenomenale perchè riassume la semplicità del layout (coadiuvato da onboard-settings) e la grafica pulita, con uno spunto di colore che non fa mai male. Il problema principale è la totale perdita del focus in ambiente X. Si potrebbe comunque adottare un window-management stile openbox o peakWM ed operare sui bordi delle finestre e la cancellazione dei menu sul tasto destro del mouse per impedire agli utenti di gironzolare tra le applicazioni del sistema.

Nell'esempio:
onboard -s 1440x200 -x 0 -y 700 &
PRO
- Colorata ed essenziale
- Geometria variabile
- Sviluppata in python
- Stabile
CONTRO
- Focus assente (solo in X )
- La funzione Always on top lavora ad intermittenza
- Homepage
L'installazione si trascina dietro la libreria citata in precedenza (Ubuntu):
sudo apt-get install onboard
NB: Le dipendenze necessarie alla compilazione sono davvero tante. Nei repository di Debian Lenny non esiste il pacchetto e quello per Ubuntu NON VA BENE! Gok

Acronimo di GNOME On-screen Keyboard, un progetto relativamente recente e altrettanto interessante. Diciamo che non si tratta proprio di un applicazione per kiosk, ma una potente console di controllo per gestire non solo l'input della tastiera ma anche le finestre aperte sul desktop.
sudo apt-get install gok
PRO
- Ottima interfaccia configurazione
- Manualistica abbastanza esauriente
- Singolare nel suo genere
- Keyboards dinamiche
- Supporto alle tecnologie assistite
CONTRO
- Una sola nota stonata. Anche in questo caso, nessuna possibilità di "nascondere" i menu di controllo
- Homepage
Chiudiamo il giro guidato alle virtual-keyboard con Gtkeyboard. Gtkeyboard

sudo apt-get install gtkeyboard
Gtkeyboard è una applicazione della Free Software Foundation scritta in C, e basata sulle Gimp toolkit, ideata prevalentemente per persone diversamente abili, con necessità di utilizzare tool X11 che prevedono un input da tastiera. Nelle modeste features troviamo una specie di editor di shortcut HTML, un word processor (a scomparsa) e un X-capable-system che consente di redirezionare su buona parte delle X-applications i bottoni premuti sulla tastiera.
sudo apt-get install gtkeyboard
NB: Non presente nei repository di Lenny
Qui pro e contro non ce ne sono. Si tratta, come spiegato prima, di un tool non idoneo per un kiosk perchè pensato per ambiti diversi. Conclusioni Con una punta di amarezza devo dire che non esistono, ad oggi, applicazioni opensources di questo tipo veramente valide per essere seriamente prese in considerazione. Accanto a quelle recensite, ce ne sono tante altre sviluppate in php o javascript, che non ho avuto modo di provare. Per questo credo che la soluzione al problema vada ricercata "in casa propria" mettendo mano ad un editor di testo cominciando a buttare giu' qualche riga di codice cercando di ritagliarsi una tastiera su misura. Tra le cinque, quelle che mi hanno maggiormente convinto sono la Onboard, che non posso utilizzare con X per via del focus, e xvkbd. Ho mandato una mail al mantainer di xvkbd perchè quello che le manca è la possibilità di nascondere il menu di configurazione ... poi sarebbe perfetta. Si vede che al momento della sua creazione nessuno ha mai pensato che potesse essere impiegata in un sistema embedded come tastiera accessibile a chiunque. ;)
- divilinux's blog
- 1582 reads

Post new comment