Files
rpi-tulivision/setup_video_player.sh

128 lines
3.6 KiB
Bash
Executable File

#!/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"