-
-
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]: Empty discovered displays #72
Comments
Hi again, would love some help with this |
Hey, sorry for the lack of response. The truth is, ddc part of the project is driven entirely by community and folks like you, I'll do my best to guide you but I have no way to test or reproduce things. Your log wluma/src/brightness/ddcutil.rs Lines 82 to 85 in 191e984
There are two activities that lead to the creation of that list:
wluma/src/brightness/ddcutil.rs Lines 67 to 68 in 191e984
wluma/src/brightness/ddcutil.rs Lines 69 to 70 in 191e984
The first idea would be for you to check if the empty list is already produced at step 1, or the first step finds your displays, only to be discarded at the second step. Could you try to figure this out, for example by adding some log lines? In the former case, I'm not sure if it's actually solvable, but judging by the fact that you are able to use There were some reasons for adding the filter, one that I remember was that a docking station can report several outputs, one for each input port it has, regardless of whether there was any display plugged into them, and all those reported displays were indistinguishable except for one interesting case: If it is the
I hope this (untested) code could be a good starting point for you: let displays = ddc_hi::Display::enumerate();
log::debug!("Enumerated: {:?}", displays);
let displays = displays.into_iter()
.filter_map(|mut display| {
display.update_capabilities().unwrap(); // this will crash and show you the error
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)
);
Ok((merged, display))
})
.collect_vec();
return Some(displays[0].1); A completely different idea is for you to have a look into https://gitlab.com/ddcci-driver-linux/ddcci-driver-linux - I haven't used this either, I like the idea of it allowing wluma to not use ddc-specific code, but a recent report mentions that the driver is possibly not working anymore. Let me know how it goes or if you struggle with anything! |
Thank you for your input! Unfortunately, it seems like the problem is in the enumeration of displays. Something as simple as ddc_hi::Display::enumerate().len() returns a value of 0, so we never even go into the Either way, thank you for your help. I'll try |
Steps for reproducing the issue
Hi, I'm not able to see my displays on the Discovered displays array when running
wluma
. At first I thought it might be permissions-related so I added my user to thevideo
andi2c
groups such that runningddcutil detect
shows:(I've crossed out some info)
Since I can see this without
sudo
I'm wondering what's going on that theddc
Rust code can't read the output. Would love any help!What is the buggy behavior?
Cannot find displays
What is the expected behavior?
Something like
Discovered displays: ["SERIAL_NUMBER"]
Logs
Version
4.2.0-1 through AUR/
yay
Environment
The text was updated successfully, but these errors were encountered: