diff --git a/nautilus-extension/Flickernaut/manager.py b/nautilus-extension/Flickernaut/manager.py index 3a5bca2..1a23516 100644 --- a/nautilus-extension/Flickernaut/manager.py +++ b/nautilus-extension/Flickernaut/manager.py @@ -126,18 +126,24 @@ def get_applications() -> ApplicationsRegistry: for k, v in schemaKey.items(): logger.debug(f"{k}: {v!r}") - application = Application( - schemaKey["id"], - schemaKey["app_id"], - schemaKey["name"], - schemaKey["pinned"], - schemaKey["multiple_files"], - schemaKey["multiple_folders"], - ) - - logger.debug("") - - registry.add_application(application) + try: + application = Application( + schemaKey["id"], + schemaKey["app_id"], + schemaKey["name"], + schemaKey["pinned"], + schemaKey["multiple_files"], + schemaKey["multiple_folders"], + ) + + logger.debug("") + + registry.add_application(application) + except Exception as e: + logger.warning( + f"Skipping invalid application '{schemaKey.get('name', 'unknown')}': {e}" + ) + continue return registry diff --git a/nautilus-extension/Flickernaut/models.py b/nautilus-extension/Flickernaut/models.py index 5d2f851..0282272 100644 --- a/nautilus-extension/Flickernaut/models.py +++ b/nautilus-extension/Flickernaut/models.py @@ -31,7 +31,13 @@ class Package: def __init__(self, app_id: str): self.app_id = app_id - self.app_info = Gio.DesktopAppInfo.new(app_id) if app_id else None + try: + self.app_info = Gio.DesktopAppInfo.new(app_id) if app_id else None + if app_id and not self.app_info: + logger.warning(f"Desktop file not found: {app_id}") + except Exception as e: + logger.error(f"Error loading desktop file '{app_id}': {e}") + self.app_info = None self._is_installed_cache = None @property diff --git a/src/prefs/application.ts b/src/prefs/application.ts index ff3fb6c..9e90752 100644 --- a/src/prefs/application.ts +++ b/src/prefs/application.ts @@ -22,7 +22,7 @@ const AppDialog = GObject.registerClass( }); this.get_widget().set({ - show_all: true, + show_all: false, show_other: true, });