Extract and apply StartupWMClass for proper taskbar icons

This commit is contained in:
2026-02-28 00:02:44 +02:00
parent 1abe783dfc
commit e52397f64b
4 changed files with 39 additions and 0 deletions

View File

@@ -61,6 +61,7 @@ pub struct AppImageMetadata {
pub desktop_actions: Vec<String>,
pub has_signature: bool,
pub screenshot_urls: Vec<String>,
pub startup_wm_class: Option<String>,
}
#[derive(Debug, Default)]
@@ -76,6 +77,7 @@ struct DesktopEntryFields {
mime_types: Vec<String>,
terminal: bool,
x_appimage_name: Option<String>,
startup_wm_class: Option<String>,
actions: Vec<String>,
}
@@ -367,6 +369,7 @@ fn parse_desktop_entry(content: &str) -> DesktopEntryFields {
}
"Terminal" => fields.terminal = value == "true",
"X-AppImage-Name" => fields.x_appimage_name = Some(value.to_string()),
"StartupWMClass" => fields.startup_wm_class = Some(value.to_string()),
"Actions" => {
fields.actions = value
.split(';')
@@ -814,6 +817,7 @@ pub fn inspect_appimage(
.as_ref()
.map(|a| a.screenshot_urls.clone())
.unwrap_or_default(),
startup_wm_class: fields.startup_wm_class,
})
}