¿Cómo cambio permanentemente el tipo de fuente TTY de la consola para que se mantenga después del reinicio?

14

Estoy ejecutando Ubuntu 15.04 64-bit Desktop Edition (un Linux basado en Debian).

Utilicé sudo dpkg-reconfigure console-setupdesde la línea de comandos para cambiar el tipo de fuente de consola predeterminado a Terminus. Inmediatamente después, las fuentes de la consola cambiaron a la fuente más nítida.

Sin embargo, después de reiniciar, Ctrl+ Alt+ F1me lleva a una ventana de consola que tiene la fuente de estilo original con aspecto más grueso, no mi elección seleccionada.

El /etc/default/console-setuparchivo parece haber cambiado a mis elecciones.

# CONFIGURATION FILE FOR SETUPCON

# Consult the console-setup(5) manual page.

ACTIVE_CONSOLES="/dev/tty[1-6]"

CHARMAP="UTF-8"

CODESET="guess"
FONTFACE="Terminus"
FONTSIZE="8x16"

VIDEOMODE=

# The following is an example how to use a braille font
# FONT='lat9w-08.psf.gz brl-8x8.psf'

¿Cómo cambio permanentemente la fuente de la consola para usar mi fuente preferida?

Andy Fusniak
fuente
Esta respuesta en askuntu puede ayudarlo: askubuntu.com/a/396254/399775
toxefa
Entonces parece que es un error conocido. Desafortunadamente, en la pregunta de askubuntu, la respuesta sugerida es crear un script inicial. Ubuntu 15.04 y Debian ahora han adoptado systemd y ya no usan upstart.
Andy Fusniak

Respuestas:

6

Ver /ubuntu/630118/ y /ubuntu/328463/ .

Este problema parece ser causado por una falta de coincidencia en el nombre de las fuentes que la configuración de la consola espera frente a lo que hay en ellas /usr/share/consolefonts/y, por lo tanto, se copia /etc/console-setup/cuando selecciona una fuente para usar (usar dpkg-reconfigure console-setup).

Si vas a una consola y haces una strace /lib/udev/console-setup-tty fbcon, puedes ver que está intentando abrir fuentes como esta:

/etc/console-setup/Lat15-TerminusBold11x22.psf

Pero si miras adentro /etc/console-setup/, solo hay un puñado de fuentes allí (las que elegiste), y se parecen más a esto:

/etc/console-setup/Lat15-TerminusBold22x11.psf.gz

Uno tiene alto x ancho, y el otro tiene ancho x alto.

El problema se puede solucionar de varias maneras.

(1) /lib/udev/console-setup-ttypodría repararse: esta es la solución más permanente y ascendente.

(2) Puede cambiar manualmente /etc/default/console-setup, invirtiendo la altura y el ancho en FONTSIZE. Esto deberá hacerse cada vez que cambie las fuentes usando dpkg-reconfigure console-setup. Pero cuando la máquina se reinicia, esa preferencia se mantiene.

(3) Puede instalar las fuentes que console-setup-tty espera. Esto es lo que yo llamo la opción "overkill". Lo hice así:

En /etc/rc.local:

# install console fonts and then set up console
/etc/console-setup/fonts.sh install
/lib/udev/console-setup-tty fbcon

Crea un script llamado /etc/console-setup/fonts.sh:

#!/bin/bash

action=$1

srcdir="/usr/share/consolefonts"
parent="/etc/console-setup"
subdir="fonts"

case "$1" in
    install)
        # console fonts are not named properly in Ubuntu 15.04, compensate
        [[ -d $parent/$subdir ]] || mkdir $parent/$subdir
        for x in $( cd $srcdir ; ls -1 ) ; do
           # rearrange the two numbers from HHxWW to WWxHH
           y=$(echo "$x" | sed -e 's/^\([^-]*\)-\([^0-9]*\)\([0-9]*\)x\([0-9]*\).psf.gz/\1-\2\4x\3.psf.gz/g')
           # whether the pattern above matches or not, we'll be uncompressing here
           z=${y/.psf.gz/.psf}
           [[ ! -f $parent/$subdir/$z ]] && zcat $srcdir/$x > $parent/$subdir/$z
           [[ ! -L $parent/$z ]] && ln -sv $subdir/$z $parent/$z
        done
        ;;
    uninstall)
        rm -rf $parent/$subdir
        # only remove broken links (links to the fonts we removed above)
        rm $(find -L $parent -type l)
        ;;
    *)
        echo "$(basename $0) install|uninstall"
        ;;
esac

exit 0

Para una solución pragmática rápida, haría el n. ° 2, con un comentario en el archivo que puede ser necesario volver a hacer si elige una fuente diferente (suponiendo que el comentario no se sobrescriba).

Pero el # 3 funciona bien con un mínimo de alboroto o desastre.

Alan Porter
fuente
6

Recientemente me encontré con este problema en mi Ubuntu 15.04 64 bit box. El setupconcomando establece las fuentes a lo que había configurado dpkg-reconfigure console-setup.

He añadido setupcona mi rc.local, pero que dejó un hueco en el que la fuente era todavía mal (porque rc.local se ejecuta después de la consola está configurada), por lo que no era lo suficientemente bueno para mí.

Entonces, decidí ir más profundo. Edité mi /lib/systemd/system/console-setup.servicearchivo y lo agregué ExecStart=/bin/setupconal final del archivo. Eso llamará setupconcuando la consola esté configurada, corrigiendo las fuentes en el arranque sin un intervalo de tiempo.

MeetTitan
fuente
2

La solución más simple que encontré fue editar /etc/default/console-setuppara configurar

FONT="Lat7-Terminus32x16.psf.gz"

y comentar todo lo demás excepto la ACTIVE_CONSOLESlínea.

Puede aplicar esto inmediatamente con setupcon, y se aplicará después de reiniciar también.

La especificación del nombre de la fuente en lugar de los componentes individuales evita la falta de coincidencia de nombres descrita por Alan Porter.

David Faure
fuente