mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-07-14 00:52:54 +02:00
handle azin's empty device_path output (maybe?)
This commit is contained in:
@@ -67,11 +67,17 @@ pub fn attached_display_devices() -> color_eyre::Result<Vec<Monitor>> {
|
|||||||
.flatten()
|
.flatten()
|
||||||
.map(|display| {
|
.map(|display| {
|
||||||
let path = display.device_path;
|
let path = display.device_path;
|
||||||
let mut split: Vec<_> = path.split('#').collect();
|
|
||||||
split.remove(0);
|
let (device, device_id) = if path.is_empty() {
|
||||||
split.remove(split.len() - 1);
|
(String::from("UNKNOWN"), String::from("UNKNOWN"))
|
||||||
let device = split[0].to_string();
|
} else {
|
||||||
let device_id = split.join("-");
|
let mut split: Vec<_> = path.split('#').collect();
|
||||||
|
split.remove(0);
|
||||||
|
split.remove(split.len() - 1);
|
||||||
|
let device = split[0].to_string();
|
||||||
|
let device_id = split.join("-");
|
||||||
|
(device, device_id)
|
||||||
|
};
|
||||||
|
|
||||||
let name = display.device_name.trim_start_matches(r"\\.\").to_string();
|
let name = display.device_name.trim_start_matches(r"\\.\").to_string();
|
||||||
let name = name.split('\\').collect::<Vec<_>>()[0].to_string();
|
let name = name.split('\\').collect::<Vec<_>>()[0].to_string();
|
||||||
|
|||||||
+22
-10
@@ -239,11 +239,17 @@ impl WindowsApi {
|
|||||||
pub fn load_monitor_information(monitors: &mut Ring<Monitor>) -> Result<()> {
|
pub fn load_monitor_information(monitors: &mut Ring<Monitor>) -> Result<()> {
|
||||||
'read: for display in win32_display_data::connected_displays_all().flatten() {
|
'read: for display in win32_display_data::connected_displays_all().flatten() {
|
||||||
let path = display.device_path.clone();
|
let path = display.device_path.clone();
|
||||||
let mut split: Vec<_> = path.split('#').collect();
|
|
||||||
split.remove(0);
|
let (device, device_id) = if path.is_empty() {
|
||||||
split.remove(split.len() - 1);
|
(String::from("UNKNOWN"), String::from("UNKNOWN"))
|
||||||
let device = split[0].to_string();
|
} else {
|
||||||
let device_id = split.join("-");
|
let mut split: Vec<_> = path.split('#').collect();
|
||||||
|
split.remove(0);
|
||||||
|
split.remove(split.len() - 1);
|
||||||
|
let device = split[0].to_string();
|
||||||
|
let device_id = split.join("-");
|
||||||
|
(device, device_id)
|
||||||
|
};
|
||||||
|
|
||||||
let name = display.device_name.trim_start_matches(r"\\.\").to_string();
|
let name = display.device_name.trim_start_matches(r"\\.\").to_string();
|
||||||
let name = name.split('\\').collect::<Vec<_>>()[0].to_string();
|
let name = name.split('\\').collect::<Vec<_>>()[0].to_string();
|
||||||
@@ -809,11 +815,17 @@ impl WindowsApi {
|
|||||||
for display in win32_display_data::connected_displays_all().flatten() {
|
for display in win32_display_data::connected_displays_all().flatten() {
|
||||||
if display.hmonitor == hmonitor {
|
if display.hmonitor == hmonitor {
|
||||||
let path = display.device_path;
|
let path = display.device_path;
|
||||||
let mut split: Vec<_> = path.split('#').collect();
|
|
||||||
split.remove(0);
|
let (device, device_id) = if path.is_empty() {
|
||||||
split.remove(split.len() - 1);
|
(String::from("UNKNOWN"), String::from("UNKNOWN"))
|
||||||
let device = split[0].to_string();
|
} else {
|
||||||
let device_id = split.join("-");
|
let mut split: Vec<_> = path.split('#').collect();
|
||||||
|
split.remove(0);
|
||||||
|
split.remove(split.len() - 1);
|
||||||
|
let device = split[0].to_string();
|
||||||
|
let device_id = split.join("-");
|
||||||
|
(device, device_id)
|
||||||
|
};
|
||||||
|
|
||||||
let name = display.device_name.trim_start_matches(r"\\.\").to_string();
|
let name = display.device_name.trim_start_matches(r"\\.\").to_string();
|
||||||
let name = name.split('\\').collect::<Vec<_>>()[0].to_string();
|
let name = name.split('\\').collect::<Vec<_>>()[0].to_string();
|
||||||
|
|||||||
Reference in New Issue
Block a user