Monitor
The Monitor class provides functionality to manage and manipulate information about computer monitors.
Initialization
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
########## Usage ##########
monitors = app.get_monitors()
monitor = monitors[0]
# Monitor objects are typically accessed through app.get_monitors()
Screen Capture
capture
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0] # Get first monitor
# Capture full screen
monitor.capture("screenshot.png")
# Capture specific area
monitor.capture("area.png", x=100, y=100, width=800, height=600)
Parameters
Prop
Type
Returns
Optional[str]
Path of the saved image or None if capture fails.Monitor Information
info
Returns information about the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
info = monitor.info()
print(info)
Returns
dict
Dictionary containing monitor information.{
'index': 0,
'name': 'Primary Monitor',
'manufacturer': 'Dell',
'model': 'U2718Q',
'serial_number': 'SN123456789',
'x': 0,
'y': 0,
'width': 2560,
'height': 1440,
'is_primary': True,
'geometry': {
'x': 0,
'y': 0,
'width': 2560,
'height': 1440,
},
'size': {
'width': 2560,
'height': 1440,
},
'available_geometry': {
'x': 0,
'y': 0,
'width': 2560,
'height': 1400,
},
'available_size': {
'width': 2560,
'height': 1400,
},
'virtual_geometry': {
'x': 0,
'y': 0,
'width': 5120,
'height': 1440,
},
'virtual_size': {
'width': 5120,
'height': 1440,
},
'available_virtual_geometry': {
'x': 0,
'y': 0,
'width': 5120,
'height': 1400,
},
'available_virtual_size': {
'width': 5120,
'height': 1400,
},
'physical_size': {
'width': 600,
'height': 340,
},
'depth': 24,
'device_pixel_ratio': 1.0,
'logical_dots_per_inch': 96.0,
'logical_dots_per_inch_x': 96.0,
'logical_dots_per_inch_y': 96.0,
'orientation': 'Landscape',
'physical_dots_per_inch': 109.0,
'physical_dots_per_inch_x': 109.0,
'physical_dots_per_inch_y': 109.0,
'refresh_rate': 60.0,
}
is_primary
Checks if the monitor is the primary monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
is_primary = monitor.is_primary()
print(f"Is primary monitor: {is_primary}")
Returns
bool
True if primary monitor, False otherwise.name
Returns the name of the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
name = monitor.name()
print(f"Monitor name: {name}")
Returns
str
Monitor name.manufacturer
Returns the manufacturer of the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
manufacturer = monitor.manufacturer()
print(f"Manufacturer: {manufacturer}")
Returns
str
Monitor manufacturer name.model
Returns the model of the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
model = monitor.model()
print(f"Model: {model}")
Returns
str
Monitor model name.serial_number
Returns the serial number of the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
serial = monitor.serial_number()
print(f"Serial number: {serial}")
Returns
str
Monitor serial number.Geometry and Size
size
Returns the size of the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
size = monitor.size()
print(f"Size: {size['width']}x{size['height']}")
Returns
dict
Dictionary with 'width' and 'height' keys.geometry
Returns the geometry of the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
geometry = monitor.geometry()
print(f"Position: ({geometry['x']}, {geometry['y']}) Size: {geometry['width']}x{geometry['height']}")
Returns
dict
Dictionary with 'x', 'y', 'width', 'height' keys.available_geometry
Returns the available geometry of the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
available_geometry = monitor.available_geometry()
print(f"Available area: {available_geometry}")
Returns
dict
Dictionary with 'x', 'y', 'width', 'height' keys.available_size
Returns the available size of the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
available_size = monitor.available_size()
print(f"Available size: {available_size}")
Returns
dict
Dictionary with 'width' and 'height' keys.virtual_geometry
Returns the virtual geometry of the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
virtual_geometry = monitor.virtual_geometry()
print(f"Virtual geometry: {virtual_geometry}")
Returns
dict
Dictionary with 'x', 'y', 'width', 'height' keys.virtual_size
Returns the virtual size of the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
virtual_size = monitor.virtual_size()
print(f"Virtual size: {virtual_size}")
Returns
dict
Dictionary with 'width' and 'height' keys.available_virtual_geometry
Returns the available virtual geometry of the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
available_virtual_geometry = monitor.available_virtual_geometry()
print(f"Available virtual geometry: {available_virtual_geometry}")
Returns
dict
Dictionary with 'x', 'y', 'width', 'height' keys.available_virtual_size
Returns the available virtual size of the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
available_virtual_size = monitor.available_virtual_size()
print(f"Available virtual size: {available_virtual_size}")
Returns
dict
Dictionary with 'width' and 'height' keys.physical_size
Returns the physical size of the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
physical_size = monitor.physical_size()
print(f"Physical size: {physical_size['width']}x{physical_size['height']} mm")
Returns
dict
Dictionary with 'width' and 'height' keys (in millimeters).DPI and Display Properties
depth
Returns the depth of the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
depth = monitor.depth()
print(f"Color depth: {depth} bits")
Returns
int
Color depth of the monitor.device_pixel_ratio
Returns the device pixel ratio of the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
ratio = monitor.device_pixel_ratio()
print(f"Device pixel ratio: {ratio}")
Returns
float
Device pixel ratio.logical_dots_per_inch
Returns the logical dots per inch (DPI) of the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
dpi = monitor.logical_dots_per_inch()
print(f"Logical DPI: {dpi}")
Returns
float
Logical DPI.logical_dots_per_inch_x
Returns the logical dots per inch (DPI) along the X axis of the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
dpi_x = monitor.logical_dots_per_inch_x()
print(f"Horizontal logical DPI: {dpi_x}")
Returns
float
Horizontal logical DPI.logical_dots_per_inch_y
Returns the logical dots per inch (DPI) along the Y axis of the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
dpi_y = monitor.logical_dots_per_inch_y()
print(f"Vertical logical DPI: {dpi_y}")
Returns
float
Vertical logical DPI.physical_dots_per_inch
Returns the physical dots per inch (DPI) of the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
physical_dpi = monitor.physical_dots_per_inch()
print(f"Physical DPI: {physical_dpi}")
Returns
float
Physical DPI.physical_dots_per_inch_x
Returns the physical dots per inch (DPI) along the X axis of the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
physical_dpi_x = monitor.physical_dots_per_inch_x()
print(f"Horizontal physical DPI: {physical_dpi_x}")
Returns
float
Horizontal physical DPI.physical_dots_per_inch_y
Returns the physical dots per inch (DPI) along the Y axis of the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
physical_dpi_y = monitor.physical_dots_per_inch_y()
print(f"Vertical physical DPI: {physical_dpi_y}")
Returns
float
Vertical physical DPI.orientation
Returns the orientation of the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
orientation = monitor.orientation()
print(f"Orientation: {orientation}")
Returns
str
Monitor orientation ('Portrait', 'Landscape', etc.).refresh_rate
Returns the refresh rate of the monitor.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
refresh_rate = monitor.refresh_rate()
print(f"Refresh rate: {refresh_rate} Hz")
Returns
float
Monitor refresh rate (Hz).Event Callbacks
geometry_changed
Registers a callback for the event that occurs when the geometry of the monitor changes.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
def on_geometry_changed():
print("Monitor geometry changed!")
monitor.geometry_changed(on_geometry_changed)
Parameters
Prop
Type
Returns
None
orientation_changed
Registers a callback for the event that occurs when the orientation of the monitor changes.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
def on_orientation_changed():
print("Monitor orientation changed!")
monitor.orientation_changed(on_orientation_changed)
Parameters
Prop
Type
Returns
None
refresh_rate_changed
Registers a callback for the event that occurs when the refresh rate of the monitor changes.
from pyloid import Pyloid
app = Pyloid(app_name="MyApp", single_instance=True)
monitors = app.get_monitors()
monitor = monitors[0]
def on_refresh_rate_changed():
print("Monitor refresh rate changed!")
monitor.refresh_rate_changed(on_refresh_rate_changed)
Parameters
Prop
Type
Returns
None