From dc69acd4b43931f9fd3a267d78834d1a38fbb10f Mon Sep 17 00:00:00 2001 From: codefiles <11915375+codefiles@users.noreply.github.com> Date: Mon, 9 Oct 2023 06:40:59 -0400 Subject: Fix keyboard layout and timezone menus (#2153) --- archinstall/lib/interactions/general_conf.py | 4 ++-- archinstall/lib/locale/locale_menu.py | 2 +- archinstall/lib/locale/utils.py | 23 ++++++++++------------- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/archinstall/lib/interactions/general_conf.py b/archinstall/lib/interactions/general_conf.py index 56598e25..a23426d0 100644 --- a/archinstall/lib/interactions/general_conf.py +++ b/archinstall/lib/interactions/general_conf.py @@ -44,7 +44,7 @@ def ask_for_a_timezone(preset: Optional[str] = None) -> Optional[str]: choice = Menu( _('Select a timezone'), - list(timezones), + timezones, preset_values=preset, default_option=default ).run() @@ -95,7 +95,7 @@ def select_language(preset: Optional[str] = None) -> Optional[str]: """ kb_lang = list_keyboard_languages() # sort alphabetically and then by length - sorted_kb_lang = sorted(sorted(list(kb_lang)), key=len) + sorted_kb_lang = sorted(kb_lang, key=lambda x: (len(x), x)) choice = Menu( _('Select keyboard layout'), diff --git a/archinstall/lib/locale/locale_menu.py b/archinstall/lib/locale/locale_menu.py index 729b3b6e..75cc1332 100644 --- a/archinstall/lib/locale/locale_menu.py +++ b/archinstall/lib/locale/locale_menu.py @@ -139,7 +139,7 @@ def select_kb_layout(preset: Optional[str] = None) -> Optional[str]: """ kb_lang = list_keyboard_languages() # sort alphabetically and then by length - sorted_kb_lang = sorted(sorted(list(kb_lang)), key=len) + sorted_kb_lang = sorted(kb_lang, key=lambda x: (len(x), x)) choice = Menu( _('Select keyboard layout'), diff --git a/archinstall/lib/locale/utils.py b/archinstall/lib/locale/utils.py index 330ca0ce..d7641d50 100644 --- a/archinstall/lib/locale/utils.py +++ b/archinstall/lib/locale/utils.py @@ -1,16 +1,15 @@ -from typing import Iterator, List +from typing import List from ..exceptions import ServiceException, SysCallError from ..general import SysCommand from ..output import error -def list_keyboard_languages() -> Iterator[str]: - for line in SysCommand( +def list_keyboard_languages() -> List[str]: + return SysCommand( "localectl --no-pager list-keymaps", environment_vars={'SYSTEMD_COLORS': '0'} - ).decode(): - yield line + ).decode().splitlines() def list_locales() -> List[str]: @@ -24,12 +23,11 @@ def list_locales() -> List[str]: return locales -def list_x11_keyboard_languages() -> Iterator[str]: - for line in SysCommand( +def list_x11_keyboard_languages() -> List[str]: + return SysCommand( "localectl --no-pager list-x11-keymap-layouts", environment_vars={'SYSTEMD_COLORS': '0'} - ).decode(): - yield line + ).decode().splitlines() def verify_keyboard_layout(layout :str) -> bool: @@ -62,9 +60,8 @@ def set_kb_layout(locale :str) -> bool: return False -def list_timezones() -> Iterator[str]: - for line in SysCommand( +def list_timezones() -> List[str]: + return SysCommand( "timedatectl --no-pager list-timezones", environment_vars={'SYSTEMD_COLORS': '0'} - ).decode(): - yield line + ).decode().splitlines() -- cgit v1.2.3-54-g00ecf