Fix keyboard layout and timezone menus (#2153)

This commit is contained in:
codefiles 2023-10-09 06:40:59 -04:00 committed by GitHub
parent edbc135903
commit dc69acd4b4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 16 deletions

View File

@ -44,7 +44,7 @@ def ask_for_a_timezone(preset: Optional[str] = None) -> Optional[str]:
choice = Menu( choice = Menu(
_('Select a timezone'), _('Select a timezone'),
list(timezones), timezones,
preset_values=preset, preset_values=preset,
default_option=default default_option=default
).run() ).run()
@ -95,7 +95,7 @@ def select_language(preset: Optional[str] = None) -> Optional[str]:
""" """
kb_lang = list_keyboard_languages() kb_lang = list_keyboard_languages()
# sort alphabetically and then by length # 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( choice = Menu(
_('Select keyboard layout'), _('Select keyboard layout'),

View File

@ -139,7 +139,7 @@ def select_kb_layout(preset: Optional[str] = None) -> Optional[str]:
""" """
kb_lang = list_keyboard_languages() kb_lang = list_keyboard_languages()
# sort alphabetically and then by length # 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( choice = Menu(
_('Select keyboard layout'), _('Select keyboard layout'),

View File

@ -1,16 +1,15 @@
from typing import Iterator, List from typing import List
from ..exceptions import ServiceException, SysCallError from ..exceptions import ServiceException, SysCallError
from ..general import SysCommand from ..general import SysCommand
from ..output import error from ..output import error
def list_keyboard_languages() -> Iterator[str]: def list_keyboard_languages() -> List[str]:
for line in SysCommand( return SysCommand(
"localectl --no-pager list-keymaps", "localectl --no-pager list-keymaps",
environment_vars={'SYSTEMD_COLORS': '0'} environment_vars={'SYSTEMD_COLORS': '0'}
).decode(): ).decode().splitlines()
yield line
def list_locales() -> List[str]: def list_locales() -> List[str]:
@ -24,12 +23,11 @@ def list_locales() -> List[str]:
return locales return locales
def list_x11_keyboard_languages() -> Iterator[str]: def list_x11_keyboard_languages() -> List[str]:
for line in SysCommand( return SysCommand(
"localectl --no-pager list-x11-keymap-layouts", "localectl --no-pager list-x11-keymap-layouts",
environment_vars={'SYSTEMD_COLORS': '0'} environment_vars={'SYSTEMD_COLORS': '0'}
).decode(): ).decode().splitlines()
yield line
def verify_keyboard_layout(layout :str) -> bool: def verify_keyboard_layout(layout :str) -> bool:
@ -62,9 +60,8 @@ def set_kb_layout(locale :str) -> bool:
return False return False
def list_timezones() -> Iterator[str]: def list_timezones() -> List[str]:
for line in SysCommand( return SysCommand(
"timedatectl --no-pager list-timezones", "timedatectl --no-pager list-timezones",
environment_vars={'SYSTEMD_COLORS': '0'} environment_vars={'SYSTEMD_COLORS': '0'}
).decode(): ).decode().splitlines()
yield line