linutil/tabs/utils/monitor-control/disable_monitor.sh

57 lines
1.7 KiB
Bash
Raw Normal View History

2024-08-15 03:41:41 +01:00
#!/bin/sh -e
2024-08-21 08:18:34 +01:00
. ./utility_functions.sh
2024-09-12 21:14:50 +01:00
. ../../common-script.sh
# Function to disable a monitor
disable_monitor() {
monitor_list=$(detect_connected_monitors)
2024-09-12 21:14:50 +01:00
monitor_array=$(echo "$monitor_list" | tr '\n' ' ')
clear
2024-09-12 21:14:50 +01:00
printf "%b\n" "${YELLOW}=========================================${RC}"
printf "%b\n" "${YELLOW} Disable Monitor${RC}"
printf "%b\n" "${YELLOW}=========================================${RC}"
printf "%b\n" "Choose a monitor to disable:"
i=1
for monitor in $monitor_array; do
printf "%b\n" "$i. ${GREEN}$monitor${RC}"
i=$((i + 1))
done
read -p "Enter the number of the monitor: " monitor_choice
2024-09-12 21:14:50 +01:00
if ! echo "$monitor_choice" | grep -qE '^[0-9]+$' || [ "$monitor_choice" -lt 1 ] || [ "$monitor_choice" -gt "$((i - 1))" ]; then
printf "%b\n" "${RED}Invalid selection.${RC}"
return
fi
2024-09-12 21:14:50 +01:00
monitor_name=$(echo "$monitor_array" | cut -d' ' -f"$monitor_choice")
2024-09-12 21:14:50 +01:00
printf "%b\n" "${RED}Warning: Disabling the monitor will turn it off and may affect your display setup.${RC}"
2024-09-12 21:14:50 +01:00
if confirm_action "Do you really want to disable ${GREEN}$monitor_name${RC}?"; then
printf "%b\n" "${GREEN}Disabling $monitor_name${RC}"
execute_command "xrandr --output $monitor_name --off"
2024-09-12 21:14:50 +01:00
printf "%b\n" "${GREEN}Monitor $monitor_name disabled successfully.${RC}"
else
2024-09-12 21:14:50 +01:00
printf "%b\n" "${RED}Action canceled.${RC}"
fi
}
# Function to prompt for confirmation
confirm_action() {
2024-09-12 21:14:50 +01:00
action="$1"
printf "%b\n" "${YELLOW}$action${RC}"
read -p "Are you sure? (y/n): " confirm
2024-09-12 21:14:50 +01:00
if echo "$confirm" | grep -qE '^[Yy]$'; then
return 0
else
return 1
fi
}
# Call the disable_monitor function
disable_monitor