Merge pull request #2953 from riozee/fix/screenshot-portrait-transform
Fix: omarchy-cmd-screenshot geometry for transformed monitors
This commit is contained in:
@@ -43,9 +43,23 @@ open_editor() {
|
|||||||
MODE="${1:-smart}"
|
MODE="${1:-smart}"
|
||||||
PROCESSING="${2:-slurp}"
|
PROCESSING="${2:-slurp}"
|
||||||
|
|
||||||
|
# accounting for portrait/transformed displays
|
||||||
|
JQ_MONITOR_GEO='
|
||||||
|
def format_geo:
|
||||||
|
.x as $x | .y as $y |
|
||||||
|
(.width / .scale | floor) as $w |
|
||||||
|
(.height / .scale | floor) as $h |
|
||||||
|
.transform as $t |
|
||||||
|
if $t == 1 or $t == 3 then
|
||||||
|
"\($x),\($y) \($h)x\($w)"
|
||||||
|
else
|
||||||
|
"\($x),\($y) \($w)x\($h)"
|
||||||
|
end;
|
||||||
|
'
|
||||||
|
|
||||||
get_rectangles() {
|
get_rectangles() {
|
||||||
local active_workspace=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .activeWorkspace.id')
|
local active_workspace=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .activeWorkspace.id')
|
||||||
hyprctl monitors -j | jq -r --arg ws "$active_workspace" '.[] | select(.activeWorkspace.id == ($ws | tonumber)) | "\(.x),\(.y) \((.width / .scale) | floor)x\((.height / .scale) | floor)"'
|
hyprctl monitors -j | jq -r --arg ws "$active_workspace" "${JQ_MONITOR_GEO} .[] | select(.activeWorkspace.id == (\$ws | tonumber)) | format_geo"
|
||||||
hyprctl clients -j | jq -r --arg ws "$active_workspace" '.[] | select(.workspace.id == ($ws | tonumber)) | "\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"'
|
hyprctl clients -j | jq -r --arg ws "$active_workspace" '.[] | select(.workspace.id == ($ws | tonumber)) | "\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"'
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,7 +78,7 @@ case "$MODE" in
|
|||||||
kill $PID 2>/dev/null
|
kill $PID 2>/dev/null
|
||||||
;;
|
;;
|
||||||
fullscreen)
|
fullscreen)
|
||||||
SELECTION=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | "\(.x),\(.y) \((.width / .scale) | floor)x\((.height / .scale) | floor)"')
|
SELECTION=$(hyprctl monitors -j | jq -r "${JQ_MONITOR_GEO} .[] | select(.focused == true) | format_geo")
|
||||||
;;
|
;;
|
||||||
smart|*)
|
smart|*)
|
||||||
RECTS=$(get_rectangles)
|
RECTS=$(get_rectangles)
|
||||||
|
|||||||
Reference in New Issue
Block a user