#!/bin/sh

NOWSIGNAGE_VERSION=5.3.44
USER_NAME=display

## Install Dependencies
#apt install sway -y # ~69.0MB
#apt install libfuse2 -y # 362.0KB
#apt install libnss3 -y # ~1504.0KB
#apt install libatk1.0-0 -y # ~223.0KB
#apt install libatk1.0-0 -y # ~1335.0KB
#apt install libcups2-dev -y # ~88.0MB
#apt install libgtk-3-dev -y # ~49.8MB
#apt install libasound2 -y # ~510.0KB


interface_name=$(udevadm info -p /sys/class/net/eth0 -q property --property ID_NET_NAME_SLOT --value)

# If the slot variable was empty, then prefer to use the path variable instead. Because Debian
if [ -z "$interface_name" ]; then
  interface_name=$(udevadm info -p /sys/class/net/eth0 -q property --property ID_NET_NAME_PATH --value)
fi

sed -i "s/eth0/$interface_name/g" /etc/network/interfaces

## Download NowSignage
wget -O /dos/now_signage.appimage https://cdn.nowsignage.com/linux/NowSignage+Client-$NOWSIGNAGE_VERSION.AppImage
chmod +x /dos/now_signage.appimage

## User Setup
useradd --create-home --shell /bin/bash $USER_NAME
passwd -l $USER_NAME
usermod -aG video $USER_NAME
usermod -aG render $USER_NAME
usermod -aG fuse $USER_NAME
#loginctl enable-linger $USER_NAME
mkdir -p /var/lib/systemd/linger
touch /var/lib/systemd/linger/$USER_NAME
chmod 755 /var/lib/systemd/linger/$USER_NAME

cat <<EOF > /etc/systemd/system/sway-kiosk.service
[Unit]
Description=Sway kiosk compositor
After=seatd.service
Requires=seatd.service

[Service]
User=display

Environment=XDG_RUNTIME_DIR=/run/user/1001
Environment=WLR_RENDERER_ALLOW_SOFTWARE=1

ExecStart=/usr/bin/sway
Restart=always
RestartSec=2

[Install]
WantedBy=multi-user.target
EOF

cat <<EOF > /home/$USER_NAME/.config/systemd/user/nowsignage.service
[Unit]
Description=NowSignage
#After=sway-kiosk.service
#Requires=sway-kiosk.service

[Service]
Environment=XDG_RUNTIME_DIR=/run/user/1001
Environment=DISPLAY=:0

ExecStart=/dos/now_signage.appimage
Restart=always
RestartSec=10

[Install]
WantedBy=default.target
EOF


mkdir -p /home/$USER_NAME/.config/systemd/user

mkdir -p /home/$USER_NAME/.config/sway

cat <<EOF > /home/$USER_NAME/.config/sway/config
output * bg #ff00a2 solid_color

exec /dos/now_signage.appimage

xwayland enable

focus_follows_mouse no
seat seat0 hide_cursor 1000

default_border none
EOF

chown $USER_NAME:$USER_NAME /home/$USER_NAME -R

systemctl enable sway-kiosk.service
