Comments (5)
At the moment there is no way to identify unique monitors, this would be a good feature to have though.
I'll accept a pull-request, but I will not be working on this for a long time, I made tons of commitments for other projects people are waiting on.
from monitorcontrol.
Thanks, I understand. And thanks for this library.
I may have a go at some point, can't at the moment though.
I will need to learn a bit more about I2c and the Windows APIs.
Just a few notes that may help anyone (me) trying to implement this.
On Windows, we might want EnumDisplayDevices and the DeviceID member of DISPLAY_DEVICE structure, as long as there's a way to cross reference this with a HMONITOR or some other info returned by the EnumDisplayMonitors API which we are currently using. Haven't found that yet.
Another possibility on Windows is WMI, apparently some monitor info can be read from there. (Either wmi
python module or shelling out the wmic
command line tool).
On Linux, it looks like EDID can be read from the I2C bus at address 0x50.
from monitorcontrol.
On Windows, we might want EnumDisplayDevices and the DeviceID member of DISPLAY_DEVICE structure, as long as there's a way to cross reference this with a HMONITOR or some other info returned by the EnumDisplayMonitors API which we are currently using. Haven't found that yet.
Looks promising! The "DeviceID: Not used" remark is a bit annoying, but since it is 128 bytes you're probably right to assume this is the EDID.
On Linux, it looks like EDID can be read from the I2C bus at address 0x50.
Yeah Linux is much easier in this regard, I have 3 identical monitors, and the EDID hexdump from ddcutil detect -vvv
returns deterministic unique values for each monitor.
from monitorcontrol.
Identification should be added. Currently --monitor 1 or --monitor 1 are constantly changing
from monitorcontrol.
If your monitors are of different models or input types (dvi vs hdmi), it can be identified by the model
& input
field from monitor.get_vcp_capabilities()
.
from monitorcontrol.
Related Issues (20)
- Checking input works for one monitor but not the other (both same model) HOT 8
- ValueError: 33 is not a valid InputSource HOT 3
- MacOs Support ?? HOT 4
- [bug] Capabilities string incomplete or too long HOT 1
- Not compatible with pyglet.window.Window HOT 2
- monitorcontrol doesn't switch inputs HOT 18
- Support for USB C HOT 1
- Return 0 of get_luminance() in windows 10 HOT 3
- set_input_source does not work for any of the codes listed in get_vcp_capabilities HOT 6
- "--set-power-mode on" is not working (windows) HOT 1
- File access won't be closed on /dev/i2c HOT 3
- KeyError: 0 when running `monitorcontrol --get-monitors` HOT 6
- How to distinguish between different monitors of the same model type? HOT 6
- ValueError: 27 is not a valid InputSource HOT 2
- Error Running with Windows Task Scheduler HOT 2
- Monitor randomly responds with 0 to get_*()-command and/or fails set_*()-command HOT 8
- Erratic ValueError raised in get_power_mode() HOT 4
- get_*()-commands return absurdly high values for luminance and contrast while monitor OSD is open HOT 9
- Program unusable when having more than one physical monitor HOT 2
- Second successive input source retrieve fails HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from monitorcontrol.