32 lines
996 B
Bash
Executable File
32 lines
996 B
Bash
Executable File
#!/bin/bash
|
|
|
|
STATE_FILE="/tmp/hypr_display_mode"
|
|
INTERNAL="eDP-1"
|
|
EXTERNAL=$(hyprctl monitors all -j | jq -r '.[].name' | grep -v "$INTERNAL" | head -1)
|
|
CURRENT=$(cat "$STATE_FILE" 2>/dev/null || echo "both")
|
|
|
|
if [ -z "$EXTERNAL" ]; then
|
|
notify-send "Display" "Aucun écran externe détecté" -t 2000
|
|
exit 0
|
|
fi
|
|
|
|
case "$CURRENT" in
|
|
"both")
|
|
hyprctl keyword monitor "$INTERNAL, disable"
|
|
echo "external" > "$STATE_FILE"
|
|
notify-send "Display" "Externe uniquement ($EXTERNAL)" -t 2000
|
|
;;
|
|
"external")
|
|
hyprctl keyword monitor "$EXTERNAL, disable"
|
|
hyprctl keyword monitor "$INTERNAL, 2560x1600@120.0, 0x0, 1.33"
|
|
echo "internal" > "$STATE_FILE"
|
|
notify-send "Display" "Interne uniquement" -t 2000
|
|
;;
|
|
"internal")
|
|
hyprctl keyword monitor "$INTERNAL, 2560x1600@120.0, 1995x1440, 1.33"
|
|
sleep 0.5
|
|
hyprctl keyword monitor "$EXTERNAL, 2560x1440@120.0, 1697x0, 1"
|
|
echo "both" > "$STATE_FILE"
|
|
notify-send "Display" "Double écran" -t 2000
|
|
;;
|
|
esac |