<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->

<refentry id="vconsole.conf" conditional='ENABLE_VCONSOLE'>
  <refentryinfo>
    <title>vconsole.conf</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>vconsole.conf</refentrytitle>
    <manvolnum>5</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>vconsole.conf</refname>
    <refpurpose>Configuration file for the virtual console</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <para><filename>/etc/vconsole.conf</filename></para>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <para>The <filename>/etc/vconsole.conf</filename> file configures
    the virtual console, i.e. keyboard mapping and console font. It is
    applied at boot by udev using <filename>90-vconsole.rules</filename> file.
    You can safely mask this file if you want to avoid this kind of initialization.
    </para>

    <para>The basic file format of the
    <filename>vconsole.conf</filename> is a newline-separated list of
    environment-like shell-compatible variable assignments. It is
    possible to source the configuration from shell scripts, however,
    beyond mere variable assignments no shell features are supported,
    allowing applications to read the file without implementing a
    shell compatible execution engine.</para>

    <para>Note that the kernel command line options
    <varname>vconsole.keymap=</varname>,
    <varname>vconsole.keymap_toggle=</varname>,
    <varname>vconsole.font=</varname>,
    <varname>vconsole.font_map=</varname>,
    <varname>vconsole.font_unimap=</varname> may be used
    to override the console settings at boot.</para>

    <para>Depending on the operating system other configuration files
    might be checked for configuration of the virtual console as well,
    however only as fallback.</para>

    <para><filename>/etc/vconsole.conf</filename> is usually created and updated
    using
    <citerefentry><refentrytitle>systemd-localed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
    <citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
    may be used to instruct <command>systemd-localed.service</command> to
    query or update configuration.</para>
  </refsect1>

  <refsect1>
    <title>Options</title>

    <para>The following options are understood:</para>

    <variablelist class='environment-variables'>

      <varlistentry>
        <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>us</literal> if not set. The
        <varname>KEYMAP_TOGGLE=</varname> can be used to configure a second toggle keymap and is by
        default unset.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>FONT=</varname></term>
        <term><varname>FONT_MAP=</varname></term>
        <term><varname>FONT_UNIMAP=</varname></term>

        <listitem><para>Configures the console font, the console map
        and the unicode font map.</para></listitem>
      </varlistentry>

    </variablelist>
  </refsect1>

  <refsect1>
    <title>Kernel Command Line</title>

    <para>A few configuration parameters from <filename>vconsole.conf</filename> may be overridden
    on the kernel command line:</para>

    <variablelist class='kernel-commandline-options'>
      <varlistentry>
        <term><varname>vconsole.keymap=</varname></term>
        <term><varname>vconsole.keymap_toggle=</varname></term>

        <listitem><para>Overrides <varname>KEYMAP=</varname> and <varname>KEYMAP_TOGGLE=</varname>.
        </para></listitem>
      </varlistentry>
      <varlistentry>

        <term><varname>vconsole.font=</varname></term>
        <term><varname>vconsole.font_map=</varname></term>
        <term><varname>vconsole.font_unimap=</varname></term>

        <listitem><para>Overrides <varname>FONT=</varname>, <varname>FONT_MAP=</varname>, and
        <varname>FONT_UNIMAP=</varname>.</para></listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>Example</title>

    <example>
      <title>German keyboard and console</title>

      <para><filename>/etc/vconsole.conf</filename>:</para>

      <programlisting>KEYMAP=de-latin1
FONT=eurlatgr</programlisting>
    </example>

  </refsect1>

  <refsect1>
      <title>See Also</title>
      <para>
        <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>systemd-vconsole-setup.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
        <citerefentry project='mankier'><refentrytitle>loadkeys</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
        <citerefentry project='die-net'><refentrytitle>setfont</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
        <citerefentry project='man-pages'><refentrytitle>locale.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>systemd-localed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
      </para>
  </refsect1>

</refentry>
