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(
_('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'),

View File

@ -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'),

View File

@ -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()