#!/bin/bash
# ============================================================================
#  display-mode.sh —— 一键切换「2K 屏显示什么」
#    display-mode kiosk [浏览器]   → 图形大屏：cage + 浏览器 + Netdata
#    display-mode console          → 回到文本控制台面板（btop + 状态栏）
#    display-mode status           → 看当前模式与运行状态
#  切换会重启 tty1 的 getty（屏幕闪一下，约 15 秒）。
# ============================================================================
set -u
MODE="${1:-status}"
BROWSER="${2:-qutebrowser}"
PW='yueling408'
SUDO() { printf '%s\n' "$PW" | sudo -S -p '' "$@"; }

case "$MODE" in
kiosk)
    echo "kiosk $BROWSER" > "$HOME/.display-mode"
    pkill -x cage 2>/dev/null; pkill -x qutebrowser 2>/dev/null; pkill -x epiphany 2>/dev/null
    SUDO systemctl restart getty@tty1
    echo "已切到图形大屏（kiosk / $BROWSER），约 15 秒后屏幕上出现 Netdata。"
    echo "大屏地址：http://127.0.0.1:19999/（想换页面：编辑 /usr/local/bin/netdata-kiosk.sh 里的 KIOSK_URL）"
    ;;
console)
    echo console > "$HOME/.display-mode"
    pkill -x cage 2>/dev/null; pkill -x qutebrowser 2>/dev/null; pkill -x epiphany 2>/dev/null
    SUDO systemctl restart getty@tty1
    echo "已切回控制台面板（btop + 状态栏），约 15 秒后出现。"
    ;;
status)
    echo "模式文件 : $(cat "$HOME/.display-mode" 2>/dev/null || echo '(空=console)')"
    echo -n "tty1 客户端: "; tmux list-clients -F '#{client_tty}->#{client_session} #{client_width}x#{client_height}' 2>/dev/null | head -1
    echo -n "cage      : "; pgrep -ax cage | head -1 || echo "未运行"
    echo -n "浏览器    : "; pgrep -ax qutebrowser | head -1 || pgrep -ax epiphany | head -1 || echo "未运行"
    echo -n "netdata   : "; systemctl is-active netdata
    echo -n "GPU 采集  : "; curl -s --noproxy '*' "http://127.0.0.1:19999/api/v1/charts" 2>/dev/null | grep -c nvidia_smi
    echo "大屏/网页 : http://192.168.31.31:19999"
    ;;
*)
    sed -n '2,8p' "$0"
    ;;
esac
