#!/bin/bash # Function to display the menu show_menu() { DIALOG_RESULT=$(dialog --title "Configuration Menu" --menu "Choose an option:" 15 50 3 \ 1 "Change Scaling, Kiosk Type, and Websites" \ 2 "Change VNC Password" \ 3 "Exit" \ 3>&1 1>&2 2>&3 3>&-) echo $DIALOG_RESULT } # Function to configure start.sh configure_start_sh() { SCALE_FACTOR=$(dialog --title "Display Scaling Factor" --inputbox "Enter the display scaling factor (e.g., 1 for 1080p, 2 for 4K):" 8 50 "1" 3>&1 1>&2 2>&3 3>&-) DIALOG_RESULT=$(dialog --title "start.sh Configuration" --menu "Choose the script example:" 15 50 2 \ 1 "Simple website script" \ 2 "Two or more tabs alternating every 30 seconds" \ 3>&1 1>&2 2>&3 3>&-) if [ "$DIALOG_RESULT" = "1" ]; then WEBSITE=$(dialog --title "Enter Website URL" --inputbox "Please enter the URL for the simple website:" 8 50 "https://www.example.com" 3>&1 1>&2 2>&3 3>&-) set_start_script_single $SCALE_FACTOR $WEBSITE elif [ "$DIALOG_RESULT" = "2" ]; then TAB_COUNT=$(dialog --title "Number of Tabs" --inputbox "Enter number of tabs:" 8 50 "3" 3>&1 1>&2 2>&3 3>&-) local tab_urls=() for (( i=1; i<=TAB_COUNT; i++ )); do URL=$(dialog --title "Enter URL for Tab $i" --inputbox "Enter URL:" 8 50 "http://example$i.com" 3>&1 1>&2 2>&3 3>&-) tab_urls+=("$URL") done configure_tabs $SCALE_FACTOR "${tab_urls[@]}" fi } # Helper function to configure start.sh for a single website set_start_script_single() { # Write the script with properly formatted commands cat > /home/kiosk/start.sh < /home/kiosk/start.sh <&1 1>&2 2>&3 3>&-) mkdir -p /home/kiosk/.vnc rm -f /home/kiosk/.vnc/passwd # Remove existing password file if it exists echo "$VNC_PASSWORD" | vncpasswd -f > /home/kiosk/.vnc/passwd chmod 600 /home/kiosk/.vnc/passwd echo "VNC password changed" } # Main loop while true; do choice=$(show_menu) case $choice in 1) configure_start_sh ;; 2) change_vnc_password ;; 3) exit 0 ;; *) echo "Invalid option, please try again" ;; esac done