* Add check for active external monitors before disabling internal display Co-authored-by: Copilot <copilot@github.com> * Revert "Add check for active external monitors before disabling internal display" This reverts commit e20b3da87e3df0f084c0bca232a61ba58fab4cdc. * feat(hyprland): add toggle for internal monitor mirroring - Implement `omarchy-hyprland-monitor-internal-mirror` to dynamically mirror the internal eDP display to external monitor. - Update `omarchy-hyprland-monitor-internal` to prevent disabling the laptop screen if mirroring is currently active. - Add "Mirror Display" toggle to omarchy hardware Menu * Ensure there is also a laptop monitor available to mirror before we do it * Fix toggle use * Recover from mirror mode gracefully * Add hotkey to mirroring --------- Co-authored-by: Copilot <copilot@github.com> Co-authored-by: David Heinemeier Hansson <david@hey.com>
39 lines
1011 B
Bash
Executable File
39 lines
1011 B
Bash
Executable File
#!/bin/bash
|
|
|
|
TOGGLE="internal-monitor-disable"
|
|
MIRROR_TOGGLE="internal-monitor-mirror"
|
|
|
|
enable() {
|
|
if omarchy-hyprland-toggle-enabled "$TOGGLE"; then
|
|
omarchy-hyprland-toggle --disabled-notification " Laptop display enabled" "$TOGGLE"
|
|
fi
|
|
}
|
|
|
|
disable() {
|
|
if omarchy-hw-external-monitors; then
|
|
if omarchy-hyprland-toggle-disabled "$TOGGLE" && omarchy-hyprland-toggle-disabled "$MIRROR_TOGGLE"; then
|
|
omarchy-hyprland-toggle --enabled-notification " Laptop display disabled" "$TOGGLE"
|
|
fi
|
|
else
|
|
notify-send -u low " Can't disable the only active display"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
recover() {
|
|
if ! omarchy-hw-external-monitors && omarchy-hyprland-toggle-enabled "$TOGGLE"; then
|
|
omarchy-hyprland-toggle "$TOGGLE"
|
|
fi
|
|
}
|
|
|
|
case "$1" in
|
|
on) enable ;;
|
|
off) disable ;;
|
|
toggle) if omarchy-hyprland-toggle-enabled "$TOGGLE"; then enable; else disable; fi ;;
|
|
recover) recover ;;
|
|
*)
|
|
echo "Usage: $(basename "$0") {on|off|toggle|recover}" >&2
|
|
exit 1
|
|
;;
|
|
esac
|