charls1001000
New Member
Would anyone take the time to perfect this script and then share it with the community?
#!/bin/bash
LOCKFILE="/tmp/mouse_move.lock"
PIDFILE="/tmp/mouse_move.pid"
# Si el script ya está en ejecución, detén el proceso en segundo plano
if [ -f "$LOCKFILE" ]; then
echo "El script ya está en ejecución. Deteniendo..."
# Obtén el PID del proceso y termina el script en segundo plano
PID=$(cat "$PIDFILE")
if ps -p $PID > /dev/null; then
kill $PID
echo "Proceso detenido."
else
echo "No se pudo detener el proceso: PID no encontrado."
fi
rm -f "$LOCKFILE" "$PIDFILE"
exit 0
fi
# Crea el archivo de bloqueo para indicar que el script está en ejecución
touch "$LOCKFILE"
# Inicia el script en segundo plano
(
while true; do
# Obtener las dimensiones de la pantalla y la posición del mouse
eval $(xdotool getmouselocation --shell)
SCREEN_WIDTH=$(xdpyinfo | grep dimensions | awk '{print $2}' | cut -d 'x' -f 1)
SCREEN_HEIGHT=$(xdpyinfo | grep dimensions | awk '{print $2}' | cut -d 'x' -f 2)
MARGIN=5 # Define un margen en píxeles para el área de activación
# Comportamiento de salto al borde opuesto
if [ "$X" -ge "$((SCREEN_WIDTH - MARGIN))" ]; then
xdotool mousemove $MARGIN "$Y"
elif [ "$X" -le $MARGIN ]; then
xdotool mousemove "$((SCREEN_WIDTH - MARGIN))" "$Y"
elif [ "$Y" -ge "$((SCREEN_HEIGHT - MARGIN))" ]; then
xdotool mousemove "$X" $MARGIN
elif [ "$Y" -le $MARGIN ]; then
xdotool mousemove "$X" "$((SCREEN_HEIGHT - MARGIN))"
fi
sleep 0.001 # Intervalo entre verificaciones
done
) &
# Guarda el PID del proceso en segundo plano
echo $! > "$PIDFILE"
# Elimina el archivo de bloqueo una vez que se ha iniciado el proceso
rm -f "$LOCKFILE"
echo "El script está en ejecución."
#!/bin/bash
LOCKFILE="/tmp/mouse_move.lock"
PIDFILE="/tmp/mouse_move.pid"
# Si el script ya está en ejecución, detén el proceso en segundo plano
if [ -f "$LOCKFILE" ]; then
echo "El script ya está en ejecución. Deteniendo..."
# Obtén el PID del proceso y termina el script en segundo plano
PID=$(cat "$PIDFILE")
if ps -p $PID > /dev/null; then
kill $PID
echo "Proceso detenido."
else
echo "No se pudo detener el proceso: PID no encontrado."
fi
rm -f "$LOCKFILE" "$PIDFILE"
exit 0
fi
# Crea el archivo de bloqueo para indicar que el script está en ejecución
touch "$LOCKFILE"
# Inicia el script en segundo plano
(
while true; do
# Obtener las dimensiones de la pantalla y la posición del mouse
eval $(xdotool getmouselocation --shell)
SCREEN_WIDTH=$(xdpyinfo | grep dimensions | awk '{print $2}' | cut -d 'x' -f 1)
SCREEN_HEIGHT=$(xdpyinfo | grep dimensions | awk '{print $2}' | cut -d 'x' -f 2)
MARGIN=5 # Define un margen en píxeles para el área de activación
# Comportamiento de salto al borde opuesto
if [ "$X" -ge "$((SCREEN_WIDTH - MARGIN))" ]; then
xdotool mousemove $MARGIN "$Y"
elif [ "$X" -le $MARGIN ]; then
xdotool mousemove "$((SCREEN_WIDTH - MARGIN))" "$Y"
elif [ "$Y" -ge "$((SCREEN_HEIGHT - MARGIN))" ]; then
xdotool mousemove "$X" $MARGIN
elif [ "$Y" -le $MARGIN ]; then
xdotool mousemove "$X" "$((SCREEN_HEIGHT - MARGIN))"
fi
sleep 0.001 # Intervalo entre verificaciones
done
) &
# Guarda el PID del proceso en segundo plano
echo $! > "$PIDFILE"
# Elimina el archivo de bloqueo una vez que se ha iniciado el proceso
rm -f "$LOCKFILE"
echo "El script está en ejecución."