You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openhamclock/setup-pi.sh

195 lines
4.9 KiB

#!/bin/bash
#
# OpenHamClock Raspberry Pi Setup Script
# Configures Pi for kiosk mode operation
#
# Usage: chmod +x setup-pi.sh && ./setup-pi.sh
#
set -e
echo "========================================"
echo " OpenHamClock Raspberry Pi Setup"
echo "========================================"
echo ""
# Check if running on Raspberry Pi
if [ ! -f /proc/device-tree/model ]; then
echo "Warning: This doesn't appear to be a Raspberry Pi."
echo "Continuing anyway..."
fi
# Get the current user
CURRENT_USER=$(whoami)
HOME_DIR=$(eval echo ~$CURRENT_USER)
OPENHAMCLOCK_DIR="$HOME_DIR/openhamclock"
echo "Installing for user: $CURRENT_USER"
echo "Install directory: $OPENHAMCLOCK_DIR"
echo ""
# Update system
echo ">>> Updating system packages..."
sudo apt-get update -qq
# Install required packages
echo ">>> Installing required packages..."
sudo apt-get install -y -qq \
chromium \
unclutter \
xdotool \
x11-xserver-utils
# Create OpenHamClock directory if it doesn't exist
echo ">>> Setting up OpenHamClock directory..."
mkdir -p "$OPENHAMCLOCK_DIR"
# Copy index.html if it exists in the current directory
if [ -f "index.html" ]; then
cp index.html "$OPENHAMCLOCK_DIR/"
echo ">>> Copied index.html to $OPENHAMCLOCK_DIR"
fi
# Create the autostart directory
echo ">>> Configuring autostart..."
mkdir -p "$HOME_DIR/.config/autostart"
# Create autostart entry for OpenHamClock
cat > "$HOME_DIR/.config/autostart/openhamclock.desktop" << EOF
[Desktop Entry]
Type=Application
Name=OpenHamClock
Comment=Amateur Radio Dashboard
Exec=/bin/bash $OPENHAMCLOCK_DIR/start-kiosk.sh
Terminal=false
Hidden=false
X-GNOME-Autostart-enabled=true
EOF
# Create kiosk start script
echo ">>> Creating kiosk start script..."
cat > "$OPENHAMCLOCK_DIR/start-kiosk.sh" << 'EOF'
#!/bin/bash
#
# OpenHamClock Kiosk Mode Launcher
#
# Wait for desktop to be ready
sleep 5
# Disable screen blanking and power management
xset s off
xset -dpms
xset s noblank
# Hide the mouse cursor after 3 seconds of inactivity
unclutter -idle 3 -root &
# Kill any existing Chromium processes
pkill -f chromium || true
sleep 2
# Start Chromium in kiosk mode
chromium \
--kiosk \
--noerrdialogs \
--disable-infobars \
--disable-session-crashed-bubble \
--disable-restore-session-state \
--disable-features=TranslateUI \
--check-for-update-interval=31536000 \
--disable-component-update \
--overscroll-history-navigation=0 \
--incognito \
"file://$HOME/openhamclock/index.html"
EOF
chmod +x "$OPENHAMCLOCK_DIR/start-kiosk.sh"
# Create a stop script
cat > "$OPENHAMCLOCK_DIR/stop-kiosk.sh" << 'EOF'
#!/bin/bash
# Stop OpenHamClock kiosk mode
pkill -f chromium-browser
pkill -f unclutter
echo "OpenHamClock stopped."
EOF
chmod +x "$OPENHAMCLOCK_DIR/stop-kiosk.sh"
# Create a restart script
cat > "$OPENHAMCLOCK_DIR/restart-kiosk.sh" << 'EOF'
#!/bin/bash
# Restart OpenHamClock
$HOME/openhamclock/stop-kiosk.sh
sleep 2
$HOME/openhamclock/start-kiosk.sh &
EOF
chmod +x "$OPENHAMCLOCK_DIR/restart-kiosk.sh"
# Create systemd service for headless operation (optional)
echo ">>> Creating systemd service (for headless operation)..."
sudo tee /etc/systemd/system/openhamclock.service > /dev/null << EOF
[Unit]
Description=OpenHamClock Kiosk
After=graphical-session.target
[Service]
Type=simple
User=$CURRENT_USER
Environment=DISPLAY=:0
ExecStart=/bin/bash $OPENHAMCLOCK_DIR/start-kiosk.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=graphical-session.target
EOF
# Disable screen blanking in config.txt
echo ">>> Configuring boot options..."
if ! grep -q "consoleblank=0" /boot/cmdline.txt 2>/dev/null; then
sudo sed -i '$ s/$/ consoleblank=0/' /boot/cmdline.txt 2>/dev/null || true
fi
# Configure GPU memory for better graphics (optional)
if ! grep -q "gpu_mem=" /boot/config.txt 2>/dev/null; then
echo "gpu_mem=128" | sudo tee -a /boot/config.txt > /dev/null 2>/dev/null || true
fi
echo ""
echo "========================================"
echo " Setup Complete!"
echo "========================================"
echo ""
echo "OpenHamClock has been installed to: $OPENHAMCLOCK_DIR"
echo ""
echo "Files created:"
echo " - $OPENHAMCLOCK_DIR/index.html (main application)"
echo " - $OPENHAMCLOCK_DIR/start-kiosk.sh (start in kiosk mode)"
echo " - $OPENHAMCLOCK_DIR/stop-kiosk.sh (stop kiosk)"
echo " - $OPENHAMCLOCK_DIR/restart-kiosk.sh (restart kiosk)"
echo ""
echo "Auto-start:"
echo " OpenHamClock will automatically start on next boot."
echo ""
echo "Manual commands:"
echo " Start: ~/openhamclock/start-kiosk.sh"
echo " Stop: ~/openhamclock/stop-kiosk.sh"
echo " Restart: ~/openhamclock/restart-kiosk.sh"
echo ""
echo "To disable auto-start:"
echo " rm ~/.config/autostart/openhamclock.desktop"
echo ""
echo "Reboot recommended to apply all changes."
echo ""
echo "73 de OpenHamClock!"
echo ""
read -p "Would you like to reboot now? (y/N) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
sudo reboot
fi

Powered by TurnKey Linux.