#!/usr/bin/env bash # Lista de paquetes a instalar paquetes=("x11vnc" "libx11-dev" "libxkbfile-dev") # Función para verificar si un paquete está instalado (Debian/Ubuntu/Kali) paquete_instalado_apt() { dpkg -l "$1" | grep -q '^ii' } # Función para verificar si un paquete está instalado (CentOS/RHEL) paquete_instalado_yum() { yum list installed "$1" &> /dev/null } # Función para verificar si un paquete está instalado (Fedora) paquete_instalado_dnf() { dnf list installed "$1" &> /dev/null } # Función para verificar si un paquete está instalado (Arch Linux) paquete_instalado_pacman() { pacman -Qi "$1" &> /dev/null } # Detectar el sistema operativo if [ -f /etc/os-release ]; then . /etc/os-release OS=$ID fi # Instalar paquetes basados en el sistema operativo for paquete in "${paquetes[@]}"; do case $OS in "debian"|"ubuntu"|"kali") if ! paquete_instalado_apt "$paquete"; then echo "Instalando el paquete $paquete..." sudo apt-get install -y "$paquete" fi ;; "centos"|"rhel") if ! paquete_instalado_yum "$paquete"; then echo "Instalando el paquete $paquete..." sudo yum install -y "$paquete" fi ;; "fedora") if ! paquete_instalado_dnf "$paquete"; then echo "Instalando el paquete $paquete..." sudo dnf install -y "$paquete" fi ;; "arch") if ! paquete_instalado_pacman "$paquete"; then echo "Instalando el paquete $paquete..." sudo pacman -S --noconfirm "$paquete" fi ;; *) ;; esac done # Iniciar Xvfb Xvfb :1 -screen 0 1920x1080x24 & # Esperar un momento para asegurarse de que Xvfb se inicie correctamente sleep 2 # Configurar la variable de entorno DISPLAY export DISPLAY=:1 # Iniciar KDE Plasma startplasma-x11 & # Esperar un momento para asegurarse de que KDE Plasma se inicie correctamente sleep 2 # Iniciar x11vnc #x11vnc -forever -usepw -display :1 x11vnc -forever -usepw -display :1 -add_keysyms -repeat -xkb