Jak trwale zmienić typ czcionki TTY konsoli, aby zachowywał się po ponownym uruchomieniu?

14

Używam Ubuntu 15.04 64-bit Desktop Edition (Linux oparty na Debianie).

Użyłem sudo dpkg-reconfigure console-setupz wiersza poleceń, aby zmienić domyślny typ czcionki konsoli na Terminus. Zaraz potem czcionki konsoli zmieniły się na ostrzejszą czcionkę.

Jednak po ponownym uruchomieniu Ctrl+ Alt+ F1przenosi mnie do okna konsoli, które ma oryginalną czcionkę w stylu chunkier, a nie mój wybrany wybór.

/etc/default/console-setupPlik wydaje się być zmieniona na moich wyborów.

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

Jak trwale zmienić czcionkę konsoli, aby użyć preferowanej czcionki?

Andy Fusniak
źródło
Ta odpowiedź na askuntu może ci pomóc: askubuntu.com/a/396254/399775
toksefa
Wygląda więc na to, że jest to znany błąd. Niestety sugerowana odpowiedź w pytaniu pytubuntu polega na utworzeniu skryptu upstart. Ubuntu 15.04 i Debian przyjęły teraz systemd i nie używają już upstartu.
Andy Fusniak

Odpowiedzi:

6

Zobacz /ubuntu/630118/ i /ubuntu/328463/ .

Wydaje się, że ten problem jest spowodowany niedopasowaniem nazw czcionek, których konfiguracja konsoli oczekuje w porównaniu z tym, co jest /usr/share/consolefonts/, i dlatego została skopiowana, /etc/console-setup/gdy wybierzesz czcionkę do użycia (użycia dpkg-reconfigure console-setup).

Jeśli pójdziesz do konsoli i zrobisz strace /lib/udev/console-setup-tty fbcon, możesz zobaczyć, że próbuje otworzyć czcionki takie jak to:

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

Ale jeśli /etc/console-setup/zajrzysz do środka, znajdziesz tam tylko garść czcionek (tych, które wybrałeś) i wyglądają one mniej więcej tak:

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

Jeden ma wysokość x szerokość, a drugi szerokość x wysokość.

Problem można rozwiązać na kilka sposobów.

(1) /lib/udev/console-setup-ttymożna naprawić - jest to bardziej trwałe rozwiązanie.

(2) Możesz ręcznie zmienić /etc/default/console-setup, odwracając wysokość i szerokość w FONTSIZE. Należy to zrobić przy każdej zmianie czcionek za pomocą dpkg-reconfigure console-setup. Ale gdy komputer uruchomi się ponownie, ta preferencja zostanie zachowana.

(3) Możesz zainstalować czcionki, których oczekuje konsola setup-tty. To właśnie nazywam opcją „przesady”. Zrobiłem tak:

W /etc/rc.local:

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

Utwórz skrypt o nazwie /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

Aby uzyskać szybkie pragmatyczne rozwiązanie, zrobiłbym # 2, z komentarzem w pliku, że może być konieczne powtórzenie, jeśli wybierzesz inną czcionkę (zakładając, że komentarz również nie zostanie zastąpiony).

Ale # 3 działa dobrze przy minimalnym zamieszaniu lub bałaganie.

Alan Porter
źródło
6

Ostatnio napotkałem ten problem na moim 64-bitowym komputerze z systemem Ubuntu 15.04. setupconPolecenie ustawienia czcionki do tego, co zaszło z dpkg-reconfigure console-setup.

Dodałem setupcondo mojego rc.local, ale pozostawiło to lukę, w której czcionka była nadal niepoprawna (ponieważ rc.local jest wykonywany po skonfigurowaniu konsoli), więc nie było to dla mnie wystarczająco dobre.

Postanowiłem więc zejść głębiej. Zedytowałem /lib/systemd/system/console-setup.serviceplik i dołączyłem ExecStart=/bin/setupconna końcu pliku. To zadzwoni, setupcongdy konsola zostanie skonfigurowana, poprawiając czcionki podczas rozruchu bez przerwy czasowej.

MeetTitan
źródło
2

Najprostszym rozwiązaniem, jakie znalazłem, było edytowanie /etc/default/console-setupdo ustawienia

FONT="Lat7-Terminus32x16.psf.gz"

i komentuj wszystko inne oprócz ACTIVE_CONSOLESlinii.

Możesz zastosować to natychmiast za pomocą setupcon, i to zostanie zastosowane również po ponownym uruchomieniu.

Określenie nazwy czcionki zamiast poszczególnych składników działa w przypadku niezgodności nazewnictwa opisanej przez Alana Portera.

David Faure
źródło