Linux Kiosk – Configure with Wayland / Xorg

kiosklinuxwaylandxorg

Self – answered now, see below:

I am setting up a kiosk system with a browser. Now my manjaro system is updating and it seems that Xorg is replaced by Wayland. With Xorg it was clear I could use server flags e.g. /etc/X11/xorg.conf.d/15-no-vt.conf – to avoid switching VTs I could put in the Xorg config this:

Section "ServerFlags"
        Option  "DontVTSwitch"  "True"
EndSection

And there are other great options as well, such as DontZapetc. Is it even possible to have these options with Wayland? I am using i3 as window manager and setup I am trying to follow is http://surf.suckless.org/files/kiosk_mode

I don't quite know whetehr to persist with manjaro (Arch) or to set up something more conventional such as Ubuntu. I have little experience with configuring Xorg or Wayland; I know I must be sounding a bit confused. Thanks for any advice you can offer!

Update: I was a bit confused, still don't know the extent of it, but I set up a working system here as explained below.

Best Answer

Setup survey kiosk

Arch system (manjaro). Display manager is LXDM and window manager is i3; browser is Surf.

Install surf, apache, mariadb and php, see that they work. Do not forget to execute mysql_secure_installation.Then install limesurvey by unzipping in apache www root. Then configure limesurvey by going to http://localhost/limesurvey/admin - you may be asked some sensible questions. Create your survey and obtain it's link. We presume there are only root and kiosk users set tup on the system. For configuring your survey you can use any other browser - e.g. chrome or firefox. Surf by default gives only one window with no tabs and for my purposes I was very happy with that.

Now the kiosk bit:

For kiosk we want system to log in the kiosk user automatically and stay just on one page (this is where our survey gets done and upon each submission presented afresh to users).

Setup Xorg

Create the file /etc/X11/xorg.conf.d/15-no-vt.conf.

Section "ServerFlags"
    Option  "DontVTSwitch"  "True"
    Option  "DontZap"       "True"
EndSection

This was the file I was worried about in respect to Wayland. I was confused. These settings get picked up just fine.

Enable autologin

Configure LXDM via /etc/lxdm/lxdm.conf. You need to uncomment or add the following.

autologin=kiosk
session=i3

Adjust i3 setup

All i3 configuration is done in ~/.config/i3/config. Most settings go well at the very start - so that you can comment them out quickly if you need to use i3 in normal mode.

set $mod Mod4
# shut down system with systemd/polkit (i.e. remains the only key combination that works)
bindsym Control+Shift+C exec /usr/bin/systemctl poweroff

# make surf start in fullscreen
for_window [class="Surf"] fullscreen

# execute surf in kiosk mode
exec /usr/bin/surf -K http://localhost/limesurvey/index.php/541114?lang=en

# use nitrogen for wallpaper if expecting at times to log in normally as well
exec --no-startup-id nitrogen --restore

Keep the screen on

So far so good from available kiosk guides, but not sufficient if you want to always keep the screen on. You need to disable display power management. When leaving work, you can always press that physical Off button. You can control power management via xset commands. Importantly - LXDM reads ~/.xprofile (not .xinputrc etc.) so this is where you want to put the commands to turn off all power saving for the display:

xset s 0 0 s noblank s noexpose &
xset -dpms &

Lock the system

Finally you may want to lock accounts to prevent other than autologin. To undo this you will use passwd -u and to get to do that after this stage you will need to use single mode logon by appending init=/etc/bash to grub kernel line at boot time. But for now in a root terminal you should execute:

passwd -l root
passwd -l kiosk

You can further proceed to secure grub2 menus with password, if you wish. But your kiosk survey system is ready.

Related Question