From 8b5b2aca0a3cba58503c546a8d580868ce43291e Mon Sep 17 00:00:00 2001 From: ellieplayswow <164806095+ellieplayswow@users.noreply.github.com> Date: Wed, 26 Mar 2025 15:12:02 +0000 Subject: [PATCH] feat(startup_apps): fallback icon/name, removing cosmic applets from search list --- .../src/pages/applications/startup_apps.rs | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/cosmic-settings/src/pages/applications/startup_apps.rs b/cosmic-settings/src/pages/applications/startup_apps.rs index 6fe3813..c12debf 100644 --- a/cosmic-settings/src/pages/applications/startup_apps.rs +++ b/cosmic-settings/src/pages/applications/startup_apps.rs @@ -1,5 +1,5 @@ use cosmic::iced::{Alignment, Length}; -use cosmic::widget::{button, icon, settings, text, vertical_space}; +use cosmic::widget::{button, icon, settings, text}; use cosmic::{widget, Apply, Element, Task}; use cosmic_settings_page::section::Entity; use cosmic_settings_page::{self as page, Content, Info, Section}; @@ -328,15 +328,14 @@ impl Page { { let mut row = widget::row::with_capacity(2).spacing(space_s); - if let Some(icon) = app.icon() { - row = row.push(icon::from_name(icon)); - } else { - row = row.push(vertical_space().height(16.0)); - } + row = row.push(icon::from_name(app.icon().unwrap_or("application-default"))); if let Some(name) = app.name(&startup_apps.locales) { row = row.push(text(name)); } + else { + row = row.push(text(&app.appid)); + } list = list.add(settings::flex_item_row(vec![ row.into(), @@ -387,15 +386,14 @@ fn apps() -> Section { for app in apps { let mut row = widget::row::with_capacity(2).spacing(space_s); - if let Some(icon) = app.icon() { - row = row.push(icon::from_name(icon)); - } else { - row = row.push(vertical_space().height(16.0)); - } + row = row.push(icon::from_name(app.icon().unwrap_or("application-default"))); if let Some(name) = app.name(&startup_apps.locales) { row = row.push(text(name)); } + else { + row = row.push(text(&app.appid)); + } section = section.add(settings::flex_item_row(vec![ row.into(), @@ -446,6 +444,10 @@ fn get_all_apps(locales: Vec) -> Vec { continue; } + if entry.desktop_entry("X-CosmicApplet").is_some() { + continue; + } + // skip if we can't run this in COSMIC if let Some(only_show_in) = entry.only_show_in() { if !only_show_in.contains(&"COSMIC") {