For more details please visit http://fisherworks.cn/?p=2517
$ sudo apt update && sudo apt dist-upgrade
$ sudo apt install vim-nox openssh-server chromium-browser x11vnc slick-greeter
On lightdm configuration screen choose lightdm
Disable Chromium notifications (password section ... etc)
$ sudo vim /etc/lightdm/lightdm.conf
[SeatDefaults]
autologin-user=kiosk
autologin-user-timeout=0
user-session=ubuntu
greeter-session=unity-greeter
$ sudo vim /etc/lightdm/lightdm.conf.d/50-myconfig.conf
[SeatDefaults]
autologin-user=kiosk
$ sudo mkdir /home/kiosk/.config/autostart && sudo vim /home/kiosk/.config/autostart/kiosk.desktop
[Desktop Entry]
Type=Application
Name=Kiosk
Exec=/home/kiosk/kiosk.sh
X-GNOME-Autostart-enabled=true
$ vim /home/kiosk/kiosk.sh
#!/bin/bash
# Run this script in display 0 - the monitor
export DISPLAY=:0
# Run x11vnc
/usr/bin/x11vnc -create -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth /var/run/lightdm/root/:0 -rfbauth /home/kiosk/.x11vnc.pass -forever -rfbport 5905 &
# If Chromium crashes (usually due to rebooting), clear the crash flag so we don't have the annoying warning bar
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' /home/kiosk/.config/chromium/Default/Preferences
sed -i 's/"exit_type":"Crashed"/"exit_type":"Normal"/' /home/kiosk/.config/chromium/Default/Preferences
# Run Chromium
/usr/bin/chromium-browser --kiosk https://duckduckgo.com &
$ chmod +x kiosk.sh
Create x11vcn password
$ x11vnc -storepasswd kiosk#2019 .x11vnc.pass
To change the screen resolution
$ xrandr -d :0 -s 1366x768
You don't need to install vim-nox plus it's complicated to use anyway. Nano is much more friendlier to use, especially when just editing config files. I think it comes already installed on Ubuntu 18.04 & 20.04; not completely sure. But if not it's quick to install and has a much smaller filesize than vim-nox.