Comment puis-je modifier définitivement le type de police TTY de la console pour qu'il soit conservé après le redémarrage?

14

J'utilise Ubuntu 15.04 64-bit Desktop Edition (un Linux basé sur Debian).

J'ai utilisé à sudo dpkg-reconfigure console-setuppartir de la ligne de commande pour changer le type de police de la console par défaut en Terminus. Immédiatement après, les polices de la console ont changé pour un visage de police plus net.

Cependant, après un redémarrage Ctrl+ Alt+ F1m'amène à une fenêtre de console qui a le visage de police de style d'origine plus trapu, pas mon choix sélectionné.

Le /etc/default/console-setupfichier semble avoir été modifié selon mes choix.

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

Comment modifier définitivement la police de la console pour utiliser ma police préférée?

Andy Fusniak
la source
Cette réponse sur askuntu peut vous aider: askubuntu.com/a/396254/399775
toxefa
Il semble donc que ce soit un bug connu. Malheureusement, dans la question askubuntu, la réponse suggérée est de créer un script parvenu. Ubuntu 15.04 et Debian ont maintenant adopté systemd et n'utilisent plus upstart.
Andy Fusniak

Réponses:

6

Voir /ubuntu/630118/ et /ubuntu/328463/ .

Ce problème semble être provoqué par une incompatibilité dans la dénomination des polices que la configuration de la console attend par rapport à ce qu'elles contiennent /usr/share/consolefonts/, et donc copiée /etc/console-setup/lorsque vous choisissez une police à utiliser (à l'aide dpkg-reconfigure console-setup).

Si vous allez sur une console et faites une strace /lib/udev/console-setup-tty fbcon, vous pouvez voir qu'elle essaie d'ouvrir des polices comme celle-ci:

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

Mais si vous regardez /etc/console-setup/dedans, il n'y a qu'une poignée de polices (celles que vous avez choisies), et elles ressemblent plus à ceci:

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

L'un a une hauteur x une largeur et l'autre une largeur x une hauteur.

Le problème peut être résolu de plusieurs manières.

(1) /lib/udev/console-setup-ttypourrait être corrigé - Il s'agit de la solution en amont la plus permanente.

(2) Vous pouvez modifier manuellement /etc/default/console-setup, en inversant la hauteur et la largeur dans FONTSIZE. Cela devra être fait à chaque fois que vous modifiez les polices à l'aide de dpkg-reconfigure console-setup. Mais lorsque la machine redémarre, cette préférence est conservée.

(3) Vous pouvez installer les polices attendues par console-setup-tty. C'est ce que j'appelle l'option "overkill". Je l'ai fait comme ça:

Dans /etc/rc.local:

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

Créez un script appelé /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

Pour une solution pragmatique rapide, je ferais # 2, avec un commentaire dans le fichier qu'il pourrait être nécessaire de refaire si vous choisissez une police différente (en supposant que le commentaire ne soit pas également écrasé).

Mais le n ° 3 fonctionne bien avec un minimum d'agitation ou de désordre.

Alan Porter
la source
6

J'ai récemment rencontré ce problème sur ma boîte Ubuntu 15.04 64 bits. La setupconcommande a défini les polices avec ce que j'avais défini dpkg-reconfigure console-setup.

J'ai ajouté setupconà mon rc.local, mais cela a laissé un écart où la police était toujours incorrecte (car rc.local est exécuté après la configuration de la console), donc ce n'était pas assez bon pour moi.

J'ai donc décidé d'aller plus loin. J'ai modifié mon /lib/systemd/system/console-setup.servicefichier et ajouté ExecStart=/bin/setupconà la fin du fichier. Cela appellera setupconlorsque la console est configurée, corrigeant les polices au démarrage sans intervalle de temps.

MeetTitan
la source
2

La solution la plus simple que j'ai trouvée était de modifier /etc/default/console-setuppour définir

FONT="Lat7-Terminus32x16.psf.gz"

et commentez tout le reste, sauf la ACTIVE_CONSOLESligne.

Vous pouvez l'appliquer immédiatement avec setupcon, et il sera également appliqué après le redémarrage.

La spécification du nom de police plutôt que des composants individuels contourne le décalage de dénomination décrit par Alan Porter.

David Faure
la source