#!/usr/bin/env bash set -euo pipefail DASHBOARD_DISPLAY="${DASHBOARD_DISPLAY:-:0}" DASHBOARD_VT="${DASHBOARD_VT:-1}" XORG_BIN="${DASHBOARD_XORG_BIN:-}" if [[ -z "$XORG_BIN" ]]; then if command -v Xorg >/dev/null 2>&1; then XORG_BIN="$(command -v Xorg)" elif [[ -x /usr/lib/xorg/Xorg ]]; then XORG_BIN=/usr/lib/xorg/Xorg elif [[ -x /usr/bin/Xorg ]]; then XORG_BIN=/usr/bin/Xorg else echo "dashboard.sh: Xorg not found in PATH and common locations" >&2 exit 127 fi fi # Create a temp conky config file CFG="$(mktemp /tmp/conky-dashboard.XXXXXX.conf)" cleanup() { rm -f "$CFG"; } trap cleanup EXIT cat >"$CFG" <<'EOF' conky.config = { update_interval = 1, double_buffer = true, background = false, -- foreground so Ctrl-C works own_window = false, -- draw on root window use_xft = true, font = "DejaVu Sans Mono:size=16", default_color = "AAAAAA", alignment = "middle_middle", gap_x = 0, gap_y = 0, }; conky.text = [[ ${font DejaVu Sans Mono:size=26}${color 777777}${nodename}${color}${font} ${color 666666}Uptime:${color} $uptime ${color 666666}Load:${color} $loadavg ${color 666666}CPU:${color} ${cpu}% ${color 444444}${cpubar 14,700}${color} ${color 666666}RAM:${color} $mem/$memmax ($memperc%) ${color 444444}${membar 14,700}${color} ${color 666666}Disk /:${color} ${fs_used /}/${fs_size /} ${color 444444}${fs_bar 14,700 /}${color} ${color 666666}Procs:${color} $processes ${color 666666}Running:${color} $running_processes ]]; EOF # Start X just for this dashboard. Conky runs in the foreground; Ctrl-C exits X. exec /usr/bin/xinit /usr/bin/env bash -lc ' # Disable screen blanking + power management xset s off xset -dpms xset s noblank xsetroot -solid "#202020" exec conky -c "'"$CFG"'" ' -- "$XORG_BIN" "$DASHBOARD_DISPLAY" "vt${DASHBOARD_VT}" -keeptty -nolisten tcp