From f985da6f9a1ddd9938e555e57d4b9399c01918fe Mon Sep 17 00:00:00 2001 From: Daniel Girtler Date: Mon, 7 Apr 2025 06:37:51 +1000 Subject: [PATCH] Case insensitive sorting of profiles (#3329) * Case insensitive sorting of profiles * Update --- archinstall/default_profiles/desktop.py | 2 +- archinstall/tui/menu_item.py | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/archinstall/default_profiles/desktop.py b/archinstall/default_profiles/desktop.py index 6e1c9c1a..097a80f0 100644 --- a/archinstall/default_profiles/desktop.py +++ b/archinstall/default_profiles/desktop.py @@ -70,7 +70,7 @@ class DesktopProfile(Profile): ) for p in profile_handler.get_desktop_profiles() ] - group = MenuItemGroup(items, sort_items=True) + group = MenuItemGroup(items, sort_items=True, sort_case_sensitive=False) group.set_selected_by_value(self.current_selection) result = SelectMenu( diff --git a/archinstall/tui/menu_item.py b/archinstall/tui/menu_item.py index 48646583..22c51310 100644 --- a/archinstall/tui/menu_item.py +++ b/archinstall/tui/menu_item.py @@ -74,13 +74,17 @@ class MenuItemGroup: focus_item: MenuItem | None = None, default_item: MenuItem | None = None, sort_items: bool = False, + sort_case_sensitive: bool = True, checkmarks: bool = False ) -> None: if len(menu_items) < 1: raise ValueError('Menu must have at least one item') if sort_items: - menu_items = sorted(menu_items, key=lambda x: x.text) + if sort_case_sensitive: + menu_items = sorted(menu_items, key=lambda x: x.text) + else: + menu_items = sorted(menu_items, key=lambda x: x.text.lower()) if not focus_item: focus_item = menu_items[0]