mirror of https://gitlab.com/dabruh/dotfiles.git
Add logic to disable disconnected monitors
This commit is contained in:
parent
1237dff14a
commit
da28a0e96e
|
@ -82,6 +82,18 @@ monitors_exist() {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Disable all monitors that are not in the list of connected monitors
|
||||||
|
disable_disconnected_monitors() {
|
||||||
|
local connected_monitors
|
||||||
|
connected_monitors=$(get_monitors disconnected)
|
||||||
|
|
||||||
|
echo "Disabling disconnected monitors"
|
||||||
|
|
||||||
|
for monitor in $connected_monitors; do
|
||||||
|
echo "Disabling monitor $(cut -d',' -f1 <<<"$monitor")"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
# Get the list of USB devices using lsusb, outputs for example "06cb:00f0 Synaptics, Inc."
|
# Get the list of USB devices using lsusb, outputs for example "06cb:00f0 Synaptics, Inc."
|
||||||
get_usb_devices() {
|
get_usb_devices() {
|
||||||
lsusb | grep -Eo ' ID .*' | cut -d' ' -f3-
|
lsusb | grep -Eo ' ID .*' | cut -d' ' -f3-
|
||||||
|
@ -309,7 +321,6 @@ main() {
|
||||||
for monitor in "${monitors[@]}"; do
|
for monitor in "${monitors[@]}"; do
|
||||||
IFS=',' read -r -a monitor_array <<<"$monitor"
|
IFS=',' read -r -a monitor_array <<<"$monitor"
|
||||||
if monitors_exist "${monitor_array[@]}" >/dev/null; then
|
if monitors_exist "${monitor_array[@]}" >/dev/null; then
|
||||||
# Add logic to disable disconnected monitors
|
|
||||||
echo "Applying work profile for ${monitor_array[*]}"
|
echo "Applying work profile for ${monitor_array[*]}"
|
||||||
xrandr \
|
xrandr \
|
||||||
--output "${monitor_array[0]}" --mode 1920x1200 --rotate normal --pos 1200x1474 --primary \
|
--output "${monitor_array[0]}" --mode 1920x1200 --rotate normal --pos 1200x1474 --primary \
|
||||||
|
@ -322,7 +333,6 @@ main() {
|
||||||
elif usb_devices_exist all exact "Lenovo ThinkPad USB-C Dock Audio" >/dev/null 2>&1; then
|
elif usb_devices_exist all exact "Lenovo ThinkPad USB-C Dock Audio" >/dev/null 2>&1; then
|
||||||
monitor_array=(eDP-1 DP-1-0.3 DP-1-0.1)
|
monitor_array=(eDP-1 DP-1-0.3 DP-1-0.1)
|
||||||
if monitors_exist "${monitor_array[@]}" >/dev/null; then
|
if monitors_exist "${monitor_array[@]}" >/dev/null; then
|
||||||
# Add logic to disable disconnected monitors
|
|
||||||
echo "Applying home profile for ${monitor_array[*]}"
|
echo "Applying home profile for ${monitor_array[*]}"
|
||||||
xrandr \
|
xrandr \
|
||||||
--output "${monitor_array[0]}" --mode 2560x1440 --rotate normal --pos 0x480 --primary \
|
--output "${monitor_array[0]}" --mode 2560x1440 --rotate normal --pos 0x480 --primary \
|
||||||
|
@ -333,7 +343,6 @@ main() {
|
||||||
|
|
||||||
monitor_array=(DP-3-3 eDP-1 DP-3-1)
|
monitor_array=(DP-3-3 eDP-1 DP-3-1)
|
||||||
if monitors_exist "${monitor_array[@]}" >/dev/null; then
|
if monitors_exist "${monitor_array[@]}" >/dev/null; then
|
||||||
# Add logic to disable disconnected monitors
|
|
||||||
xrandr \
|
xrandr \
|
||||||
--output "${monitor_array[0]}" --mode 3440x1440 --pos 0x480 --rotate normal \
|
--output "${monitor_array[0]}" --mode 3440x1440 --pos 0x480 --rotate normal \
|
||||||
--output "${monitor_array[1]}" --mode 1920x1200 --pos 3440x720 --rotate normal --primary \
|
--output "${monitor_array[1]}" --mode 1920x1200 --pos 3440x720 --rotate normal --primary \
|
||||||
|
@ -342,7 +351,9 @@ main() {
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! "$profile_found"; then
|
if "$profile_found"; then
|
||||||
|
disable_disconnected_monitors
|
||||||
|
else
|
||||||
echo "No profile found"
|
echo "No profile found"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue