mirror of
https://github.com/arthur-pbty/arthur-os.git
synced 2026-08-01 20:28:16 +02:00
66 lines
1.7 KiB
Bash
Executable File
66 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# omarchy:summary=Enable, disable, toggle, or recover mirroring the internal display to an external monitor
|
|
# omarchy:args=<on|off|toggle|recover>
|
|
|
|
TOGGLE="internal-monitor-mirror"
|
|
TOGGLE_FLAG="$HOME/.local/state/omarchy/toggles/hypr/$TOGGLE.lua"
|
|
DISABLE_TOGGLE="internal-monitor-disable"
|
|
|
|
# Get names dynamically
|
|
INTERNAL=$(hyprctl monitors -j | jq -r '.[] | select(.name | contains("eDP")).name' | head -n 1)
|
|
# Get the first available external monitor
|
|
EXTERNAL=$(hyprctl monitors -j | jq -r '.[] | select(.name | contains("eDP") | not).name' | head -n 1)
|
|
|
|
on() {
|
|
if [[ -z $EXTERNAL ]]; then
|
|
omarchy-notification-send -g "No external monitors found for mirror"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ -z $INTERNAL ]]; then
|
|
omarchy-notification-send -g "No laptop monitor found to mirror"
|
|
exit 1
|
|
fi
|
|
|
|
omarchy-hyprland-toggle $DISABLE_TOGGLE off
|
|
|
|
if omarchy-hyprland-toggle-disabled $TOGGLE; then
|
|
printf 'hl.monitor({ output = "%s", mode = "preferred", position = "auto", scale = 1, mirror = "%s" })\n' "$EXTERNAL" "$INTERNAL" >"$TOGGLE_FLAG"
|
|
omarchy-notification-send -g "Mirroring enabled ($EXTERNAL)"
|
|
hyprctl reload
|
|
fi
|
|
}
|
|
|
|
off() {
|
|
if omarchy-hyprland-toggle-enabled $TOGGLE; then
|
|
omarchy-hyprland-toggle $TOGGLE off
|
|
omarchy-notification-send -g "Extended mode restored"
|
|
fi
|
|
}
|
|
|
|
toggle() {
|
|
if omarchy-hyprland-toggle-enabled $TOGGLE; then
|
|
off
|
|
else
|
|
on
|
|
fi
|
|
}
|
|
|
|
recover() {
|
|
if ! omarchy-hw-external-monitors && omarchy-hyprland-toggle-enabled $TOGGLE; then
|
|
omarchy-hyprland-toggle $TOGGLE off
|
|
fi
|
|
}
|
|
|
|
case "$1" in
|
|
on) on ;;
|
|
off) off ;;
|
|
toggle) toggle ;;
|
|
recover) recover ;;
|
|
*)
|
|
echo "Usage: $(basename "$0") {on|off|toggle|recover}" >&2
|
|
exit 1
|
|
;;
|
|
esac
|