Howto - Kiosk con Firefox e Virtual Keyboard

Image Hosted by ImageShack.us

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:

e

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

a

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

w

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

Libreria

./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.

s

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

d

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

a

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. ;)

un'alternativa a firefox

un'alternativa a firefox potrebbe essere l'utilizzare opera in kiosk mode ;-)

ne avevo messo su uno per l'utente "ospite" su un pc di casa , ma nn avevo giocato con la Virtual Keyboard....
ora *devo* trovare uno schermo touch! :-D

@fortAlamo Cioè?..c'e'

@fortAlamo
Cioè?..c'e' qualche plugin anche per Opera?

io per il mio tablet uso il

io per il mio tablet uso il programma cellwriter. Ha un pulsante con cui puoi switchare dalla modalita' di riconoscimento della scrittura a quella di normale tastiera. Esente da crash, ne gradisco l'aspetto. Non so se puoi in qualche maniera eliminare quel bottone, ma credo sia fattibile smanettando.
http://img253.imageshack.us/my.php?image=cellwriterkeysgm9.png

@zippole Ho installato

@zippole
Ho installato cellwriter e ne ho letto le opzioni nell'help, molto sommariamente...ma probabilmente mi hai consigliato il software piu' azzeccato per questo progetto.
;)

Piu' che un plugin e' un

Piu' che un plugin e' un "modo" di avvio di opera
da terminale :
opera -kioskmode

per maggiori info dai un occhio a
http://www.opera.com/support/mastering/kiosk/ ;-)

io vi farei una statua La

io vi farei una statua
La tastiera è proprio quella che cercavo, salvo cambiare dallo xorg.conf il layout perchè cellwriter non usa ALT+GR (quindi niente chiocciolina)

La scoperta di Opera, e del kioskmode, è stata altrettanto risolutiva, perche' Opera è l'unico browser che non perde il focus su X..incredibie..hehe

L'alternativa poteva essere la tastiera onboard, ma

1- C'e' un pulsante "menu" che se premuto attiva la sidebar di opera, nonostante il kioskmode. Va levato dal file xml di configurazione
2- la onboard ha due menu laterali che permettono la configurazione. L'idea poteva essere quella di spostare l'asse X piu' a destra in modo da tagliarlo fuori..ma l'effetto del "buco" non e' molto bello da vedere

Grazie a tutti!!!
:)

ciao, invece di usare

ciao, invece di usare quell'estenzione per firefox, ci sono anche le comode opzioni di avvio:
Mozilla options
-height Set height of startup window to .
-width Set width of startup window to .

@zippole Mi potresti

@zippole
Mi potresti indicare che Tablet hai? Linux ci gira OK? Senza problemi?
(puoi scrivermi da qui http://2dvisio.wordpress.com/contattami/ o direttamente come commento, grazie)

Grazie.

un HP TX2130EL prima o poi

un HP TX2130EL
prima o poi lo recensico per ubuntuforums, ma non ne ho ancora provato tutte le funzioni.
Lo schermo e' un wacom, la penna grafica funziona benissimo grazie ad una patch non ufficiale che pero' non tiene conto della calibrazione del touchscreen che non e' utlizzabile con le dita (la penna e' il motivo di cellwriter).
La vga esterna funziona egregiamente, a casa lo uso su un monitor 22" a 1680x1050.
L'audio funziona, a patto di aggiungere ad alsa-base "options snd-hda-intel model=hp"
La rete wireless funziona con ndiswrapper, non ne sono soddisfatto ma almeno funziona. (occhio che i driver sono difficili da trovare, ndiswrapper non supporta i driver per vista e ufficialmente non viene fornito driver per xp)
Il masterizzatore supporta lightscribe, ma non ho provato, e mi manca il test per l'uscita supervideo.

C'e' un bug delle cpu amd, se hai 4giga di ram o piu il suspend to ram ti corrompe il filesystem perche' la cpu non supporta il IOMMU hardware, ma solo software che va abilitato esplicitamente (cosi' non e' di default)... ma nel mio caso le ram sono 3Giga e l'ho scoperto solo leggendo qua e la' :P
C'e' un thread lunghissimo su ubuntuforums per gli hp della serie 2xxx (e pure uno per i 1xxx che non hanno la penna per lo schermo, ma solo il touch).

Ah si.. usando il monitor esterno ho qualche fastidio, tipo non poter tenere una risoluzione diversa per lo schermo del tablet, che quindi diventa inutilizzabile (lo uso a portellina sempre chiusa come fosse un destkop normale, poi per uscire sovrascrivo xorg.conf con un backup coi valori validi per il wacom a schermo singolo). Se gioco a tremulous sul 22', non posso andare a fullscreen, o meglio il fullscreen e' tutto nero ad eccezione del quadratino 640x480 centrale (la mia risoluz di gioco). Ma succede solo sul monitor esterno, e non succede con altri giochi come warzone2100 o warcarft3 in wine.

Io sono veramente soddisfatto dell'acquisto, non avrei potuto prendere di meglio *per le mie esigenze*.
Se stai per avere un pezzo simile per le mani, e vuoi qualche info in piu (o i driver wireless) contattami: amba presso inbox, com

Io non ho avuto bisogno

Io non ho avuto bisogno della tastiera virtuale, ma il kiosk l'ho fatto così:
http://ulisse.wordpress.com/2008/02/22/xubuntu-epiphany-ancora-piu-kiosk/

Invia nuovo commento

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Linee e paragrafi vanno a capo automaticamente.

Maggiori informazioni sulle opzioni di formattazione.

CAPTCHA
Questa domanda serve per verificare che tu sia un visitatore umano (non un computer) e per prevenire lo spam
16 + 4 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.