#!/bin/bash # Setup script for video player with always-on-top and hidden desktop UI set -e echo "Setting up video player for always-on-top operation..." # Check if running as root if [ "$EUID" -eq 0 ]; then echo "Please run this script as a regular user, not as root" exit 1 fi # Install required packages echo "Installing required packages..." sudo apt update sudo apt install -y wmctrl unclutter vlc python3-vlc python3-pip python3-venv # Install Python dependencies echo "Installing Python dependencies..." pip3 install --user RPi.GPIO python-dotenv psutil # Add user to gpio group echo "Adding user to gpio group..." sudo usermod -a -G gpio $USER # Copy service files to systemd directory echo "Installing systemd services..." sudo cp video-player.service /etc/systemd/system/ sudo cp video-player-random.service /etc/systemd/system/ sudo cp hide-desktop-ui.service /etc/systemd/system/ # Reload systemd sudo systemctl daemon-reload # Enable services echo "Enabling services..." sudo systemctl enable hide-desktop-ui.service sudo systemctl enable video-player.service # Create video directory if it doesn't exist VIDEO_DIR="/home/$USER/Videos" if [ ! -d "$VIDEO_DIR" ]; then echo "Creating video directory: $VIDEO_DIR" mkdir -p "$VIDEO_DIR" fi # Create default config if it doesn't exist if [ ! -f "config.json" ]; then echo "Creating default configuration..." python3 video_player.py --list-channels > /dev/null 2>&1 || true fi # Set up autostart for desktop environment echo "Setting up desktop autostart..." AUTOSTART_DIR="/home/$USER/.config/autostart" mkdir -p "$AUTOSTART_DIR" # Create autostart entry for hiding desktop UI cat > "$AUTOSTART_DIR/hide-desktop-ui.desktop" << EOF [Desktop Entry] Type=Application Name=Hide Desktop UI Comment=Hide desktop UI for video player Exec=/home/$USER/ulivision-tv/hide_desktop_ui.sh hide Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true EOF # Create autostart entry for keeping VLC on top cat > "$AUTOSTART_DIR/keep-vlc-on-top.desktop" << EOF [Desktop Entry] Type=Application Name=Keep VLC On Top Comment=Keep VLC media player on top Exec=/home/$USER/ulivision-tv/hide_desktop_ui.sh keep-top Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true EOF # Configure desktop environment to start video player echo "Configuring desktop environment..." # Disable screen saver and power management cat > "/home/$USER/.xprofile" << EOF # Disable screen saver and power management xset s off xset -dpms xset s noblank # Hide mouse cursor after 5 seconds unclutter -idle 5 -root & # Start video player service systemctl --user start video-player.service 2>/dev/null || true EOF # Make scripts executable chmod +x hide_desktop_ui.sh chmod +x setup_video_player.sh echo "" echo "Setup complete! Here's what was configured:" echo "1. Installed required packages (wmctrl, unclutter, vlc, python3-vlc)" echo "2. Added user to gpio group (requires logout/login to take effect)" echo "3. Installed systemd services for video player and desktop UI hiding" echo "4. Created autostart entries for desktop environment" echo "5. Configured screen saver and power management settings" echo "" echo "To complete the setup:" echo "1. Log out and log back in (for GPIO group changes)" echo "2. Place video files in: $VIDEO_DIR" echo "3. Reboot the system to start all services" echo "" echo "To start the video player manually:" echo " sudo systemctl start video-player.service" echo "" echo "To start with random videos:" echo " sudo systemctl start video-player-random.service" echo "" echo "To hide desktop UI manually:" echo " ./hide_desktop_ui.sh hide" echo "" echo "To keep VLC on top:" echo " ./hide_desktop_ui.sh keep-top"