-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup-raspi-kiosk.sh
92 lines (80 loc) · 3.46 KB
/
setup-raspi-kiosk.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/bin/bash
#check if script was run as root
if (( $EUID != 0 )); then
echo "Please run as root!"
exit
fi
echo "Please provide your space URL. Your domain should look like this:
> \"https://yourname.collaborates.io\""
read domain
echo "--------------------------------------"
echo "checking whether the domain exists ..."
curl -s --head $domain | head -n 1 | grep "HTTP/1.[01] [23].." > /dev/null
# on success (page exists), $? will be 0; on failure (page does not exist or
# is unreachable), $? will be 1
if [[ $? -eq 0 ]]; then
echo "ERROR: Could not connect to '$domain'. Please check that you have spelled the url correctly and that this device is connected to the internet."
exit 0
else
echo "SUCCESS: Cool! $domain is up and running!"
fi
echo "--------------------------------------"
#Install packages
echo "STATUS: updating apt ..."
sudo apt update
echo "STATUS: installing the unclutter package ..."
sudo apt install unclutter
echo "STATUS: installing the cec-utils package ..."
sudo apt install cec-utils
#create hdmi scripts
#power on
echo "STATUS: creating script /home/pi/hdmipoweron.sh"
echo "# power on HDMI on HDMI 1 port
vcgencmd display_power 1
# use cec for connected TVs
echo 'on 0.0.0.0' | cec-client -s -d 1
# use HDMI adapter as active source
echo 'as' | cec-client -s -d 1" > /home/pi/hdmipoweron.sh
#power off
echo "STATUS: creating script /home/pi/hdmipoweroff.sh"
echo "#power off hdmi device on HDMI 1 port
vcgencmd display_power 0
# use cec for connected TVs
echo 'standby 0.0.0.0' | cec-client -s -d 1" > /home/pi/hdmipoweroff.sh
#make the scripts executable
echo "STATUS: making hdmi-scripts executable"
sudo chmod a+x /home/pi/hdmipoweron.sh
sudo chmod a+x /home/pi/hdmipoweroff.sh
echo "--------------------------------------"
echo "
INFO: This will override all existing entries in /etc/xdg/lxsession/LXDE-pi/autostart"
read -p "Press enter to continue or ^C to cancel"
#create autostart file for chromium kiosk mode on startup
echo "# autostart script
# generated by
# https://github.com/hafven/raspi-collaborates-display
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
point-rpi
# hide mouse cursor
@unclutter
# turn off screensaver
@xset s off
@xset -dpms
@xset s noblank
# start chromium in kiosk mode an navigate to your collaboates.io url
@chromium-browser --noerrdialogs --incognito --disable-crash-reporter --disable-infobars --force-device-scale-factor=1.00 --kiosk --app=$domain" > /etc/xdg/lxsession/LXDE-pi/autostart
echo "STATUS: creating entries in crontab"
#add scheduler to crontab to automatically turn of connected display to given time
## turn on hdmi connected device on boot
(crontab -l 2>/dev/null; echo "@reboot /home/pi/hdmipoweron.sh") | crontab -
(crontab -l 2>/dev/null; echo "# Edit the following line to controll when to turn off the display. See https://crontab.guru/ for syntax") | crontab -
(crontab -l 2>/dev/null; echo "0 20 * * * /home/pi/hdmipoweroff.sh") | crontab -
(crontab -l 2>/dev/null; echo "# Edit the following line to controll when to wake up the display. See https://crontab.guru/ for syntax") | crontab -
(crontab -l 2>/dev/null; echo "0 8 * * * sudo reboot") | crontab -
echo "INFO: All entries created."
echo "Your HDMI-Display connected to HDMI Port 1 will be automatically switched on at 8:00h daily"
echo "Your HDMI-Display connected to HDMI Port 1 will be automtically switched off at 20:00h daily"
echo "To change the cron-job configuration run comman 'crontab -e'"
exit 1