From a117d2451eb41c3e79e4e76f0e099a289aa1a061 Mon Sep 17 00:00:00 2001 From: Vladimir Chebotarev Date: Tue, 6 May 2025 10:21:57 +0300 Subject: [PATCH] Fixed Retina detection for mirrored monitors. --- python_imagesearch/imagesearch.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/python_imagesearch/imagesearch.py b/python_imagesearch/imagesearch.py index 94da99f..ea74d45 100644 --- a/python_imagesearch/imagesearch.py +++ b/python_imagesearch/imagesearch.py @@ -3,6 +3,7 @@ import pyautogui import random import time +import json import platform import subprocess import os @@ -10,7 +11,10 @@ is_retina = False if platform.system() == "Darwin": - is_retina = subprocess.call("system_profiler SPDisplaysDataType | grep -i 'retina'", shell=True) == 0 + profiler = subprocess.run(["system_profiler", "SPDisplaysDataType", "-json"], stdout=subprocess.PIPE, check=True) + monitors = json.loads(profiler.stdout)["SPDisplaysDataType"][0]["spdisplays_ndrvs"] + main_monitor = next(iter(monitor for monitor in monitors if "yes" in monitor.get("spdisplays_main", ""))) + is_retina = "retina" in main_monitor.get("spdisplays_display_type", "") '''