{"id":24364,"library":"pymonctl","title":"PyMonCtl","description":"Cross-Platform toolkit to get info on and control monitors connected to the system. Version 0.92 supports Windows, macOS, and Linux (X11; partial Wayland). Release cadence is irregular.","status":"active","version":"0.92","language":"python","source_language":"en","source_url":"https://github.com/Kalmat/PyMonCtl","tags":["monitor","display","cross-platform","hardware-control"],"install":[{"cmd":"pip install pymonctl","lang":"bash","label":"PyPI"}],"dependencies":[{"reason":"Runtime dependency for typing support","package":"typing_extensions","optional":false}],"imports":[{"note":"Monitor is exposed at package level, not in submodules.","wrong":"from pymonctl.monitor import Monitor","symbol":"Monitor","correct":"from pymonctl import Monitor"},{"note":"Module-level access for functions like getAllMonitors().","symbol":"pymonctl","correct":"import pymonctl"}],"quickstart":{"code":"import pymonctl\n\nmonitors = pymonctl.getAllMonitors()\nfor m in monitors:\n    print(m.name, m.width, m.height)\n\n# Get primary monitor\nprimary = pymonctl.getPrimaryMonitor()\nprint(f\"Primary: {primary.name}\")","lang":"python","description":"List all monitors and identify the primary monitor."},"warnings":[{"fix":"Use only on X11 sessions. Disable Wayland or run under XWayland.","message":"On Linux, the library may crash in Wayland due to missing support. It may also freeze if invoked with a fake ':1' display.","severity":"gotcha","affected_versions":"all"},{"fix":"Avoid using the watchdog on Linux or disable it (default is off). Upgrade to 0.92 may improve but not eliminate issue.","message":"The watchdog feature can freeze randomly on Linux due to screen_resources and get_output_info calls.","severity":"gotcha","affected_versions":"<=0.92"},{"fix":"Use new function names. Check deprecation warnings.","message":"In version 0.6, findMonitors() and findMonitorsInfo() were renamed to findMonitorsAtPoint() and findMonitorsAtPointInfo().","severity":"breaking","affected_versions":"<0.6"},{"fix":"Always import from 'pymonctl' package level.","message":"Direct imports from submodules like 'pymonctl.monitor' are internal and may break.","severity":"deprecated","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run 'pip install pymonctl'.","cause":"Library not installed.","error":"ModuleNotFoundError: No module named 'pymonctl'"},{"fix":"Use 'from pymonctl import Monitor'.","cause":"Importing from submodule instead of package.","error":"AttributeError: module 'pymonctl' has no attribute 'Monitor'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}