I have encountered the same behavior, not in these extreme cases though.
I recommend just making the width wide enough so all inputs are visible on the smallest screen.
I don’t know if there is a way to find out your screen monitor size and how you would even use that information to make the width consistent.
import os
cmd = "wmic path Win32_VideoController get CurrentVerticalResolution,CurrentHorizontalResolution"
size_tuple = tuple(map(int,os.popen(cmd).read().split()[-2::]))
OUT = size_tuple
Probably not literally the output, but you could create a small dictionary in your script to determine which width is needed per screensize, i.e. 15 inch = 400, 17 inch = 300, etc.
I just used procentage of the smallest screen at the moment. But ofcourse can it be done with dictionary to determ wich setting to use.
But what I encounterd is that when you have multiple screens you dont get the right width, to get the right width I had to unplug to small screen to get the values from the bigger screen.
Feel free to coment so the Dynamo community get a sustanible solution.
Seems that picture scaling is not linked with different display resolutions correctly in Data-Shapes. We can see, that on 27 sample picture is much bigger than text above it, but in 17 and Laptop it’s about half of size of text above it.