#!/bin/bash
# 应用 16x32 大字号控制台字体（并打印 UEFI/legacy 引导方式，供核显判断）
set -u
PW=yueling408
SUDO() { printf '%s\n' "$PW" | sudo -S -p '' "$@"; }

echo "== 引导方式 =="
if [ -d /sys/firmware/efi ]; then echo "UEFI ✓（核显可用）"; else echo "Legacy BIOS ✗（按尔英说明，11 代起核显在 legacy 下不可用）"; fi

echo "== 改字体 =="
SUDO cp -a /etc/default/console-setup /tmp/console-setup.bak
SUDO sed -i 's/^FONTFACE=.*/FONTFACE="Terminus"/; s/^FONTSIZE=.*/FONTSIZE="16x32"/' /etc/default/console-setup
grep -E '^FONTFACE|^FONTSIZE' /etc/default/console-setup
SUDO setupcon && echo "setupcon ok"
SUDO systemctl restart getty@tty1
sleep 16
g=$(tmux list-clients -F '#{client_width}x#{client_height}' 2>/dev/null | head -1)
echo "客户端网格: $g"
if [ "$g" != "160x45" ]; then
    echo "!! 没有拿到 160x45，回滚字体"
    SUDO cp -a /tmp/console-setup.bak /etc/default/console-setup
    SUDO setupcon
    SUDO systemctl restart getty@tty1
    sleep 14
    echo "回滚后网格: $(tmux list-clients -F '#{client_width}x#{client_height}' 2>/dev/null | head -1)"
    exit 1
fi
SUDO dd if=/dev/fb0 of=/tmp/fb-font.raw bs=10240 count=1440 2>/dev/null
ffmpeg -y -loglevel error -f rawvideo -pixel_format bgra -video_size 2560x1440 \
       -i /tmp/fb-font.raw -pix_fmt rgb24 /tmp/font-16x32.png
echo "截图: $(ls -l /tmp/font-16x32.png | awk '{print $5}') 字节"
