Skip to content

Add console font selection to Locales menu#4469

Merged
svartkanin merged 2 commits intoarchlinux:masterfrom
Softer:console-font-in-locales
Apr 26, 2026
Merged

Add console font selection to Locales menu#4469
svartkanin merged 2 commits intoarchlinux:masterfrom
Softer:console-font-in-locales

Conversation

@Softer
Copy link
Copy Markdown
Contributor

@Softer Softer commented Apr 24, 2026

PR Description:

Adds a new Console font item (4th) to the Locales submenu, allowing the user to pick a font for the target system's TTY (written to /etc/vconsole.conf).

Font list is built from /usr/share/kbd/consolefonts on the running ISO.

If the user picks a ter-* terminus font, the terminus-font package is automatically added to the target install.

Why

Currently the target TTY always gets default8x16 regardless of the language the user picked. That breaks for users with languages that need a wider Unicode coverage (partialy addresses #3735). Giving a menu entry is the simplest fix that doesn't force heuristics on anyone.

Behavior / backward compatibility

  • Default remains default8x16, so existing user configs and default installs produce the exact same vconsole.conf as before.
  • LocaleConfiguration gains console_font: str = 'default8x16'. Old configuration JSONs without that field keep working via the default value.
  • The json() / _load_config() / preview() sides are updated symmetrically.

Scope

One thing only - menu selection + vconsole write. A follow-up PR will offer to propagate the installer's chosen language (sys_lang / sys_enc / console_font) to the target locale configuration.

Test

  • Default install: /etc/vconsole.conf contains FONT=default8x16 as before.
  • Pick ter-v32b in the menu: FONT=ter-v32b, terminus-font installed.
  • Load an old user_configuration.json with no console_font: default kicks in, no crash.

Add a 4th menu item "Console font" to the Locales configuration,
allowing users to select a console font for the target system.
The selected font is written to /etc/vconsole.conf.

If a terminus font (ter-*) is selected, the terminus-font package
is automatically installed on the target system.
@Softer Softer requested a review from Torxed as a code owner April 24, 2026 07:59
Comment thread archinstall/lib/locale/utils.py Outdated
Comment thread archinstall/lib/locale/utils.py
Address svartkanin's review on archlinux#4469. Replace os.listdir +
chained removesuffix with Path.glob('*.gz') + split('.')[0],
and cache the result via lru_cache - the kbd consolefonts
directory is static at runtime so re-scanning on every menu
reopen was wasted I/O.
@svartkanin svartkanin merged commit 210329e into archlinux:master Apr 26, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants