diff options
Diffstat (limited to 'upsmartmonitor.py')
| -rw-r--r-- | upsmartmonitor.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/upsmartmonitor.py b/upsmartmonitor.py new file mode 100644 index 0000000..a23bacb --- /dev/null +++ b/upsmartmonitor.py @@ -0,0 +1,48 @@ +import subprocess +import tempfile +import pyautogui +import cv2 +import os + +def get_window_geometries(): + return [ + s.split()[:6] + [" ".join(s.split()[7:])] + for s in subprocess.run(["wmctrl", "-l", "-G"], stdout = subprocess.PIPE).stdout.decode().split("\n")[:-1] + ] + +def find_upsmart_geometry(): + for g in get_window_geometries(): + if g[-1] == "UPSmart": + return g + raise Exception("Couldn't find UPSMart application") + +def focus_upsmart(): + # it would be much nicer to use an API such as wmctrl to focus the application... + # but it doesn't seem to work with UPSmart specifically, perhaps because you need + # to start it as root + geom = find_upsmart_geometry() + + pyautogui.moveTo(int(geom[2]), int(geom[3]), duration = 0.5) + pyautogui.click() + +def main(): + focus_upsmart() + + with tempfile.TemporaryDirectory() as td: + fp = os.path.join(td, "upsmart.jpg") + subprocess.run(["gnome-screenshot", "--file=%s" % fp, "-w"]) + + im = cv2.imread(fp) + # im = cv2.cvtColor(im, cv2.COLOR_RGB2BGR) + print(fp) + + cv2.imshow("im", im) + cv2.waitKey(0) + + # plt.imshow(img, cmap = 'gray', interpolation = 'bicubic') + # plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis + # plt.show() + + +if __name__ == "__main__": + main()
\ No newline at end of file |
