summaryrefslogtreecommitdiff
path: root/ar/.local/bin/setmonitors
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-03-15 11:56:04 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-03-15 11:56:04 +0900
commitfd214d3c37c88d6ef1abb87b854120b6260ec94f (patch)
tree014401744450e471ba5b53c2f35529c32034dcab /ar/.local/bin/setmonitors
parent6110bd2a80aaed8ec068340e6419b642cb153f90 (diff)
modified x11/xprofile, deleted bin/setmonitor, created bin/setmonitors
Diffstat (limited to 'ar/.local/bin/setmonitors')
-rwxr-xr-xar/.local/bin/setmonitors42
1 files changed, 42 insertions, 0 deletions
diff --git a/ar/.local/bin/setmonitors b/ar/.local/bin/setmonitors
new file mode 100755
index 0000000..e39409b
--- /dev/null
+++ b/ar/.local/bin/setmonitors
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+# Run screenlayout script if available
+script="$HOME/.screenlayout/default.sh"
+[ -f "$script" ] && sh "$script" && exit
+
+# Per-monitor settings
+edp_cfg="--mode 1920x1080 --rotate normal --scale 1.0x1.0 --dpi 96"
+hdmi_cfg="--mode 1920x1080 --rotate normal --scale 1.0x1.0 --dpi 96"
+dp_cfg="--mode 2560x1600 --rotate normal --scale 1.0x1.0 --dpi 192"
+
+# Parse connected displays
+for connected in $(xrandr -q | grep -w "connected" | cut -d ' ' -f 1); do
+ case $connected in
+ eDP*) edp="$connected" ;;
+ HDMI*) hdmi="$connected" ;;
+ DP*) dp="$connected" ;;
+ *) display="$connected" ;;
+ esac
+done
+
+# If the lid is closed, turn off the laptop's screen
+if grep -q "closed" /proc/acpi/button/lid/LID/state; then
+ if [ -n "$hdmi" ] && [ -z "$dp" ] && [ -n "$edp" ]; then
+ xrandr --output "$edp" --off --output "$hdmi" --primary $hdmi_cfg
+ elif [ -z "$hdmi" ] && [ -n "$dp" ] && [ -n "$edp" ]; then
+ xrandr --output "$edp" --off --output "$dp" --primary $dp_cfg
+ else
+ xrandr --output "$edp" --off --output "$display" --auto --primary
+ fi
+else
+ # Apply display settings when lid is open
+ if [ -n "$hdmi" ] && [ -z "$dp" ] && [ -n "$edp" ]; then
+ xrandr --output "$hdmi" --primary --pos 0x0 $hdmi_cfg --output "$edp" --pos 1920x0 $edp_cfg
+ elif [ -z "$hdmi" ] && [ -n "$dp" ] && [ -n "$edp" ]; then
+ xrandr --output "$dp" --primary --pos 0x0 $dp_cfg --output "$edp" --pos 2560x0 $edp_cfg
+ elif [ -z "$hdmi" ] && [ -z "$dp" ] && [ -n "$edp" ]; then
+ xrandr --output "$edp" --primary $edp_cfg
+ else
+ xrandr --output "$display" --primary --auto
+ fi
+fi