feat: add mirror-display toggle to launch menu

Adds a "Mirror Display" entry that calls a helper script which finds
the first connected non-internal monitor and toggles mirroring of
eDP-1 onto it via hyprctl. Use case: plugging into a conference room
TV/projector while travelling.

Also fixes the menu's "Screenshot full" entry to capture the active
output instead of the hardcoded DP-1, matching the equivalent fix to
the Ctrl+Print keybind.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jeena 2026-05-14 12:44:11 +00:00
parent 8ac4023dc1
commit ebea0fd6ec
2 changed files with 28 additions and 1 deletions

26
hypr/scripts/monitor-mirror.sh Executable file
View file

@ -0,0 +1,26 @@
#!/usr/bin/env bash
# Toggle: mirror the internal display to the first connected external monitor.
# Travel use case — plug into a conference room TV/projector via HDMI, press
# the bound key, and the external mirrors the laptop. Press again to revert
# to the host's default monitor layout (via hyprctl reload).
set -u
internal="eDP-1"
external=$(hyprctl monitors -j | jq -r ".[] | select(.name != \"$internal\") | .name" | head -n1)
if [[ -z "$external" ]]; then
notify-send "Mirror" "No external display connected"
exit 0
fi
mirror_of=$(hyprctl monitors -j | jq -r ".[] | select(.name == \"$external\") | .mirrorOf // \"\"")
if [[ -n "$mirror_of" ]]; then
hyprctl reload
notify-send "Mirror" "Off — reverted to default layout"
else
hyprctl keyword monitor "$external,preferred,auto,1,mirror,$internal"
notify-send "Mirror" "On — $internal$external"
fi