#!/bin/bash # XScreenSaver Helper Script for Debian /w MATE Desktop -- www.LostGeek.NET / Ben(a)LostGeek.NET # Step 1: Uninstall mate-screensaver and pin it echo "Uninstalling mate-screensaver..." pkill -f mate-screensaver || true # Stop any running mate-screensaver processes systemctl --user stop mate-screensaver.service || true # Stop user service if running sudo apt-get remove --purge -y mate-screensaver mate-screensaver-common # Pin the package to prevent reinstallation echo "Pinning mate-screensaver to prevent reinstallation..." echo -e "Package: mate-screensaver\nPin: release *\nPin-Priority: -1" | sudo tee /etc/apt/preferences.d/00no-mate-screensaver > /dev/null # Step 2: Ask user if they want to install xscreensaver with extras or not echo "Install Xscreensaver with extras (GL and GL Extras)?" echo "1) Yes, with extras" echo "2) Manually install replacement" read -rp "Enter 1 or 2 (default: 1): " choice choice=${choice:-1} # Default to 1 if empty [[ "$choice" == 1 ]] && sudo apt-get install -y xscreensaver xscreensaver-gl xscreensaver-gl-extra || echo "You can install a replacement manually." # Step 3: Configure xscreensaver as the screen locker for MATE echo "Set xscreensaver as screen locker for MATE?" read -rp "Enter 1 to enable, 2 to skip (default: 1): " lock_choice lock_choice=${lock_choice:-1} # Default to 1 if empty if [[ "$lock_choice" == 1 && $(dpkg -l | grep -q xscreensaver) ]]; then echo "Setting xscreensaver as screen locker..." sudo ln -sf /usr/bin/xscreensaver-command /usr/bin/gnome-screensaver-command AUTOSTART_DIR="$HOME/.config/autostart" mkdir -p "$AUTOSTART_DIR" if ! grep -q "xscreensaver" "$AUTOSTART_DIR/xscreensaver.desktop"; then echo "Adding xscreensaver to startup..." echo -e "[Desktop Entry]\nName=Xscreensaver\nExec=xscreensaver -nosplash\nType=Application\nX-GNOME-Autostart-enabled=true" > "$AUTOSTART_DIR/xscreensaver.desktop" fi else echo "Skipping xscreensaver setup or not installed." fi # Step 4: Sonar ping effect echo "One last thing... Sonar can run real pings on your network for a cool effect (requires privileges)." read -rp "Run real pings with Sonar? (y/n, default: y): " ans ans=${ans,,} # Convert to lowercase if [[ -z "$ans" || "$ans" =~ ^(y|yes)$ ]]; then echo "Enabling real pings (SETUID)..." sudo chmod +s /usr/libexec/xscreensaver/sonar else echo "Simulating pings, no changes made." fi echo "Setup complete." exit 0