128 lines
3.6 KiB
Bash
Executable File
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"
|