1
0
mirror of https://github.com/systemd/systemd synced 2024-07-08 20:15:55 +00:00

vconsole-setup: use "@kernel" rather than "kernel" as special string to leave keymap untouched

This is a magic string, and we should avoid stepping into the territory
of normal keymap names with that, given that users can pick names
otherwise freely.

Hence, prefix the name with a special char to avoid any namespace
issues.

Follow-up for: #28660
This commit is contained in:
Lennart Poettering 2023-08-10 15:12:15 +02:00 committed by Yu Watanabe
parent 09256904ed
commit bf77d59772
3 changed files with 7 additions and 7 deletions

View File

@ -74,10 +74,10 @@
<term><varname>KEYMAP=</varname></term>
<term><varname>KEYMAP_TOGGLE=</varname></term>
<listitem><para>Configures the key mapping table for the keyboard.
<varname>KEYMAP=</varname> defaults to <literal>&DEFAULT_KEYMAP;</literal> if not set. Specially,
if <literal>kernel</literal> is specified, no keymap will be loaded, i.e. the kernel keymap is used.
The <varname>KEYMAP_TOGGLE=</varname> can be used to configure a second toggle keymap and is by default
<listitem><para>Configures the key mapping table for the keyboard. <varname>KEYMAP=</varname>
defaults to <literal>&DEFAULT_KEYMAP;</literal> if not set. Specially, if <literal>@kernel</literal>
is specified, no keymap will be loaded, i.e. the kernel's default keymap is used. The
<varname>KEYMAP_TOGGLE=</varname> can be used to configure a second toggle keymap and is by default
unset.</para></listitem>
</varlistentry>

View File

@ -947,9 +947,9 @@ conf.set_quoted('SYSTEMD_NSPAWN_LOCALE', nspawn_locale)
default_keymap = get_option('default-keymap')
if default_keymap == ''
# We canonicalize empty keymap to 'kernel', as it makes the default value
# We canonicalize empty keymap to '@kernel', as it makes the default value
# in the factory provided /etc/vconsole.conf more obvious.
default_keymap = 'kernel'
default_keymap = '@kernel'
endif
conf.set_quoted('SYSTEMD_DEFAULT_KEYMAP', default_keymap)

View File

@ -282,7 +282,7 @@ static int keyboard_load_and_wait(const char *vc, Context *c, bool utf8) {
map_toggle = context_get_config(c, VC_KEYMAP_TOGGLE);
/* An empty map means kernel map */
if (isempty(map) || streq(map, "kernel"))
if (isempty(map) || streq(map, "@kernel"))
return 0;
args[i++] = KBD_LOADKEYS;