Table of Contents
openEASE Kiosk mode with IIYAMA Touchscreen
What you need
- IIYAMA Touchscreen
- VGA or DVI cable
- USB cable
- Ubuntu 14.04
Hardware Driver
Ubuntu 14.04 is shipped with required drivers that enable the screen to …
- … display the Desktop
- … emulate mouse clicks and dragging events with Button 1 pressed
Issues
Wrong Offset
Using multiple screens yields in offset of emulated events. See FIX for a workaround. If both screens have the same dimensions and the touchscreen is left of your main monitor, this call should fix it:
xinput set-prop 'ELAN Touchscreen' --type=float 'Coordinate Transformation Matrix' 0.5 0 0 0 1 0 0 0 1
or if the touchscreen is right of your main monitor:
xinput set-prop 'ELAN Touchscreen' --type=float 'Coordinate Transformation Matrix' 0.5 0 0.5 0 1 0 0 0 1
Firefox touch events
It seems that firefox lacks support for proper touch events. use chromium instead.
Chromium Kiosk Mode
In kiosk mode the user has limited access to the computer, only one fullscreen application allows interaction with the system.
openEASE session
Login managers are starting sessions after a user logs in. Such sessions usually start a window manager and possibly other default software services. in case of openEASE we only need a running web browser. Since firefox has issues with touch events we have to stick with chromium for now.
Make sure chromium is installed:
sudo apt-get install chromium
A window manager seems required. I prefer using a lightweight manager such as xfwm4. Make sure the WM is installed:
sudo apt-get install xfwm4
Sessions are defined in .desktop files. Create a new openEASE session at /usr/share/xsessions/openease.desktop with following content:
[Desktop Entry] Name=openEASE Comment=This session logs you into openEASE Exec=/usr/bin/openease.sh Icon= Type=Application X-LightDM-DesktopName=Chromium X-Ubuntu-Gettext-Domain=gnome-session-3.0
TODO include openEASE icon
The session references a shell script /usr/bin/openease.sh. Create this file with following content:
#!/bin/bash xfwm4 & xscreensaver -nosplash & sleep 3 chromium-browser --app=https://data.open-ease.org --kiosk
The session should now appear in the list of sessions in the login manager.
Login Manager
First create/select a dedicated unix user for guests and allow the user to log in without password:
sudo gpasswd -a guest nopasswdlogin
Now make openEASE the default session of the system by editing /etc/lightdm/lightdm.conf, adding these lines:
[SeatDefaults] user-session=openease greater-show-manual-login=true
Screensaver
Install xscreensaver from ubuntu packages:
sudo apt-get install xscreensaver
Start xscreensaver for configuration:
xscreensaver-demo
Set the blank time to something reasonable such as 10 minutes.
Then, kill the screensaver:
killall xscreensaver
Open configuration file at *~/.xscreensaver* and add following “program”:
"openEASE" mplayer -shuffle -nosound -really-quiet \ -nolirc -nostop-xscreensaver -wid \ $XSCREENSAVER_WINDOW -fs -loop 0 \ $HOME/Videos/* \n\
This “program” can be used to show videos that are available in the directory ~/Videos/ while no one is using the touch screen. To select the video loop, open *xscreensaver-demo* again, select “Just one screensaver” and select “openEASE” from the list of screensavers.