Lockdown Kiosk
เรื่องถัดมาของการเซ็ตลินุกซ์ที่โรงเรียน คือการเซ็ตเครื่อง touchscreen ให้เป็น kiosk นำเสนอข้อมูลโรงเรียน หลังจากคิดถึง solution หลายๆ แบบ ประกอบกับข้อจำกัดเรื่องเวลาที่มี ก็เลยตกลงว่าจะใช้ S5 ที่เคยใช้ present ที่ BTD2 นี่แหละ นำเสนอเนื้อหาผ่านเว็บเบราว์เซอร์แบบ fullscreen โดยเซ็ตอัพ epiphany แบบ lockdown ซึ่งก็ไม่มีอะไรซับซ้อน เพียงแค่กำหนด gconf key สองแห่ง คือ
- /apps/epiphany/lockdown/fullscreen = true
- /apps/epiphany/general/show_toolbars = false
คีย์แรก เป็นการบังคับให้ epiphany แสดงเป็น fullscreen เสมอ ซึ่งโดยปกติ จะคงเหลือ toolbar แสดงไว้ด้านบนอยู่ ก็จัดการซ่อนเสียด้วยคีย์ที่สอง
จากนั้น ก็เซ็ต gdm ให้ auto login และ timeout login เข้ามายังผู้ใช้ที่ใช้นำเสนอนี้ โดยกำหนดให้โปรแกรมในวาระของผู้ใช้ที่ว่า ไปเรียก personal session ของ epiphany เสีย (/usr/bin/epiphany -p) ซึ่งการเรียก personal session แทน session ปกติ จะทำให้ epiphany ไม่พยายาม recover session เดิมถ้าครั้งที่แล้วถูกปิดแบบผิดปกติ ซึ่งการ recover ดังกล่าว จะมีกล่องโต้ตอบมาถามก่อน ซึ่งไม่เนียนสำหรับ kiosk
ก็เป็นอันว่า เมื่อเปิดเครื่องขึ้นมา ก็จะ login อัตโนมัติ และเปิด epiphany แบบเต็มจอ ที่เหลือก็แค่เซ็ตหน้า home page ให้ชี้ไปหา slide ของเรา ก็จบ
นอกจากนี้ อาจจะเซ็ต lockdown อื่นๆ ไว้ เผื่อกรณีที่ epiphany พัง แล้วเผยให้เห็นเดสก์ท็อปข้างหลัง ก็ต้องไม่ให้ผู้ชมที่ซุกซนไปเรียกโปรแกรมอื่นมาเล่นได้ ซึ่งเครื่องมืออย่าง pessulus หรือ sabayon จะช่วยอำนวยความสะดวกได้มากทีเดียว
ส่วนเนื้อหา ก็จำเป็นต้องปรับโครงสร้างการนำเสนอนิดหน่อย:
- สิ่งที่เราไม่ต้องการ คือเมื่อคลิกเมาส์ (หรือแตะหน้าจอ touchscreen) เราไม่ต้องการให้เปิด slide หน้าถัดไปโดยอัตโนมัติ แต่ต้องการให้ผู้ชมแตะที่ปุ่มที่กำหนดเท่านั้น ก็เข้าไป hack javascript ของ S5 นิดหน่อย ให้ข้าม event นั้นไปเสีย รวมทั้งปิด navigator ด้วย
- แก้ไข stylesheet เพื่อให้วาด hyperlink ด้วยปุ่มกด และใช้เป็นช่องทางหลักในการเปลี่ยนหน้า
ตัวเลือกอื่นๆ ที่นึกถึง คือใช้ Impress (หรือกระทั่ง PowerPoint) แต่ปัญหาคือ ไม่รู้วิธีบังคับให้แสดง fullscreen แบบ lockdown (ooimpress -show presentation นั้นได้อยู่ แต่ไม่รู้วิธีให้ไม่เข้า edit mode —แอบเห็นแว้บๆ ว่า evince ใน GNOME 2.18 จะอ่าน Impress ได้ อาจเป็นคำตอบในอนาคต) รวมทั้งการปรับไม่ให้แสดงหน้าถัดไปเมื่อคลิกเมาส์ อีกทางเลือกหนึ่งคือโปรแกรมประเภท Authorware แต่ดูจะกินเวลาเตรียมการมากเกินไป เรื่องการเขียนโปรแกรมแบบ visual ยิ่งไม่ต้องพูดถึง ด้วยเวลาอันจำกัด บวกกับการคำนึงถึงความสะดวกในการเพิ่มข้อมูล ใช้แบบที่ว่ามาข้างบนนี่ ดูจะกินเวลาน้อยที่สุดแล้วละ และแน่นอนว่า Iceweasel ก็คง lockdown ได้ในลักษณะเดียวกัน