-
-
Notifications
You must be signed in to change notification settings - Fork 27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug]: Monitors with missing Model / MCCS version fields are not detected #46
Comments
Could you please add the following log: ddc_hi::Display::enumerate()
.into_iter()
.for_each(|mut display| {
log::debug!(
"update_capabilities result: {:?}",
display.update_capabilities()
);
}); before this line: wluma/src/brightness/ddcutil.rs Line 82 in 0c49755
and show the output here? |
The full log is now:
|
Cool, thanks! Could you please try
This is what I was afraid of... In order to populate the name and model, so that we can use it for matching, we call The library also has However it looks like ID field is always present. So in the branch I added it to the string that you can match in your config, and ignoring the error from This could be problematic though, @cyrinux and I saw some ghost entries (the same monitor would be listed twice, and only one of them was actually usable, the one for which |
Thanks! This solves the detection problem for me. The relevant section is now: let displays = ddc_hi::Display::enumerate()
.into_iter()
.filter_map(|mut display| {
let _ignored = display.update_capabilities();
let empty = "".to_string();
let merged = format!(
"{} {}",
display.info.model_name.as_ref().unwrap_or(&empty),
display.info.serial_number.as_ref().unwrap_or(&empty)
);
Some((merged, display))
})
.collect_vec(); And the debug log is now:
Maybe you can write up some smart detection if Another idea: I believe The next problem I experience: I2C errors. Wluma spam-reports |
Cool, thanks for confirming! I think we'll have to keep IDs because this is what I'm getting when only one external monitor is connected, if we don't ignore
As you can see it's actually generating 3 entries, one of which has no info (and failed If wluma picks the wrong one in the list above, then it will not be able to control brightness... However before thinking how to solve it, do I understand it correctly that wluma is still unable to get/set brightness for your screen? In other words, I2C errors are not just fake errors, but actually screen is not being managed by wluma? If that's the case, it sounds like the library we are using is simply unable to deal with weird monitors, for which |
diff --git a/src/brightness/ddcutil.rs b/src/brightness/ddcutil.rs I'm not a rust programmer, but this works for me :) |
Could you explain some more, what was your issue and how does the patch help? I'm still at a loss whether it's possible for wluma to control brightness of these "weird" monitors or the patches are just to hide the errors... |
Steps for reproducing the issue
Having a bad monitor with unspecified Model and MCCS version :/
What is the buggy behavior?
Wluma does not detect one of my two monitors. See logs.
What is the expected behavior?
Even with broken/missing information, this monitor is able to change brightness and other parameters over DDC. Wluma should be able to support those partially broken monitors as well.
Logs
Version
wluma 4.1.2-1 from AUR
Environment
Still sway on Arch Linux.
Monitor information from ddcutil:
The text was updated successfully, but these errors were encountered: