#!/bin/bash get_monitor() { sudo cat /var/lib/dhcp/* | grep -a "option monitor" | tail -1 | \ awk '{ s = ""; for (i = 3; i <= NF; i++) s = s $i " "; print s}' | \ awk -F '"' '{print $2}' } get_current_window() { DISPLAY=:0 xdotool getwindowfocus getwindowname | awk -F '- Chromium' '{print $1}' } monitor="" while [ -z "$monitor" ]; do monitor=$(get_monitor) if [ -z "$monitor" ]; then sleep 5 fi done monitor_md5=$(echo -n ${monitor^^} | sed -e 's/^[[:space:]]*//' | md5sum | awk '{print $1}') while true; do new_monitor=$(get_monitor) new_current=$(get_current_window) if [ -n "$new_monitor" ] && [ -n "$new_current" ]; then new_monitor_md5=$(echo -n ${new_monitor^^} | sed -e 's/^[[:space:]]*//' | md5sum | awk '{print $1}') current_md5=$(echo -n ${new_current^^} | sed -e 's/^[[:space:]]*//' | md5sum | awk '{print $1}') if [ "$new_monitor_md5" != "$monitor_md5" ] && [ "$current_md5" != "$monitor_md5" ]; then echo "Mismatch detected. Rebooting now." sudo reboot exit 1 fi else echo "Either monitor or current is not available, skipping check." fi sleep 5s done