heads/initrd/bin/setconsolefont.sh

39 lines
1.3 KiB
Bash
Raw Normal View History

#!/bin/bash
set -eo pipefail
. /etc/functions
TRACE "Under /bin/setconsolefont.sh"
# If the board ships setfont, and the console size is >=1600 lines tall,
# increase the console font size.
if [ ! -x /bin/setfont ]; then
DEBUG "Board does not ship setfont, not checking console font"
exit 0
fi
if [ ! -f /sys/class/graphics/fb0/virtual_size ]; then
DEBUG "fb0 virtual size is not known"
exit 0
fi
CONSOLE_HEIGHT="$(cut -d, -f2 /sys/class/graphics/fb0/virtual_size)"
# Deciding scale based on resolution is inherently heuristic, as the scale
# really depends on resolution, physical size, how close the display is to the
# user, and personal preference.
#
# fbwhiptail starts using 1.5x scale at 1350 lines, but we can only choose 1x
# or 2x (without shipping more fonts). Err toward making the console too large
# rather than too small and go to 2x at 1350 lines.
if [ "$CONSOLE_HEIGHT" -ge 1350 ]; then
DEBUG "Double console font size due to framebuffer height $CONSOLE_HEIGHT"
# Double the default font size by reading it out, then applying it again
# with setfont's -d option (double font size)
setfont -O /tmp/default_font
setfont -d /tmp/default_font
rm /tmp/default_font
else
DEBUG "Keep default console font size due to framebuffer height $CONSOLE_HEIGHT"
fi