Como faço para alterar permanentemente o tipo de fonte TTY do console para que ele seja mantido após a reinicialização?

14

Estou executando o Ubuntu 15.04 64-bit Desktop Edition (um Linux baseado em Debian).

Eu usei sudo dpkg-reconfigure console-setup da linha de comando para alterar o tipo de fonte do console padrão para Terminus. Imediatamente depois, as fontes do console foram alteradas para a face da fonte mais nítida.

No entanto, depois de uma reinicialização Ctrl + Alt + F1 leva-me a uma janela de console com a face de fonte de estilo mais volumosa original, não é minha escolha selecionada.

O arquivo /etc/default/console-setup parece ter sido alterado para minhas escolhas.

# 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'

Como faço para alterar permanentemente a fonte do console para usar minha fonte preferida?

    
por Andy Fusniak 27.04.2015 / 07:14

3 respostas

6

Encontrei recentemente este problema na minha caixa de 64 bits do Ubuntu 15.04. O comando setupcon definiu as fontes para o que eu tinha definido com dpkg-reconfigure console-setup .

Eu adicionei setupcon ao meu rc.local, mas isso deixou uma lacuna onde a fonte ainda estava errada (porque o rc.local é executado depois que o console é configurado), então isso não foi bom o suficiente para mim. / p>

Então, decidi ir mais fundo. Eu editei meu arquivo /lib/systemd/system/console-setup.service e anexei ExecStart=/bin/setupcon ao final do arquivo. Isso vai chamar setupcon quando o console estiver configurado, corrigindo as fontes na inicialização sem um intervalo de tempo.

    
por 07.07.2015 / 04:05
5

Veja link e link .

Esse problema parece ser causado por uma incompatibilidade na nomenclatura de fontes que console-setup espera vs o que está em /usr/share/consolefonts/ , e assim copiado para /etc/console-setup/ quando você escolhe uma fonte para usar (usando dpkg-reconfigure console-setup ).

Se você for a um console e fizer um strace /lib/udev/console-setup-tty fbcon , você pode ver que está tentando abrir fontes como esta:

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

Mas se você olhar em /etc/console-setup/ , há apenas um punhado de fontes lá (as que você escolheu), e elas se parecem mais com isso:

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

Um tem altura x largura e o outro tem largura x altura.

O problema pode ser corrigido de algumas maneiras.

(1) /lib/udev/console-setup-tty pode ser corrigido - isso é o mais solução permanente a montante.

(2) Você pode alterar manualmente /etc/default/console-setup , revertendo o altura e largura em FONTSIZE. Isso precisará ser feito toda vez que você altere as fontes usando dpkg-reconfigure console-setup . Mas quando o máquina reinicializa, essa preferência é mantida.

(3) Você pode instalar as fontes que o console-setup-tty espera. este é o que eu chamo de opção "overkill". Eu fiz assim:

Em /etc/rc.local:

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

Crie um script chamado /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/-x.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 uma solução pragmática rápida, eu faria # 2, com um comentário no arquivo que pode ser necessário ser refeito se você escolher uma fonte diferente (assumindo a o comentário também não é sobrescrito).

Mas o # 3 funciona bem com o mínimo de barulho ou bagunça.

    
por 13.06.2015 / 16:09
2

A solução mais simples que encontrei foi editar /etc/default/console-setup para definir

FONT="Lat7-Terminus32x16.psf.gz"

e comente todo o resto, exceto a linha ACTIVE_CONSOLES .

Você pode aplicar isso imediatamente com setupcon e ele será aplicado após a reinicialização também.

Especificar o nome da fonte em vez dos componentes individuais funciona em torno da incompatibilidade de nomenclatura descrita por Alan Porter.

    
por 15.06.2016 / 14:29