diff --git a/audit/internal/webui/assets.go b/audit/internal/webui/assets.go deleted file mode 100644 index 7e30528..0000000 --- a/audit/internal/webui/assets.go +++ /dev/null @@ -1,15 +0,0 @@ -package webui - -import ( - _ "embed" - "net/http" -) - -//go:embed easy-bee-logo.png -var easyBeeLogoPNG []byte - -func (h *handler) handleEasyBeeLogo(w http.ResponseWriter, _ *http.Request) { - w.Header().Set("Cache-Control", "public, max-age=3600") - w.Header().Set("Content-Type", "image/png") - _, _ = w.Write(easyBeeLogoPNG) -} diff --git a/audit/internal/webui/easy-bee-logo.png b/audit/internal/webui/easy-bee-logo.png deleted file mode 100644 index 4ddd9ea..0000000 Binary files a/audit/internal/webui/easy-bee-logo.png and /dev/null differ diff --git a/audit/internal/webui/server.go b/audit/internal/webui/server.go index b041dc9..47670ac 100644 --- a/audit/internal/webui/server.go +++ b/audit/internal/webui/server.go @@ -226,7 +226,6 @@ func NewHandler(opts HandlerOptions) http.Handler { w.Header().Set("Content-Type", "text/html; charset=utf-8") _, _ = w.Write([]byte(loadingPageHTML)) }) - mux.HandleFunc("GET /assets/easy-bee-logo.png", h.handleEasyBeeLogo) // ── Existing read-only endpoints (preserved for compatibility) ────────── mux.HandleFunc("GET /audit.json", h.handleAuditJSON) @@ -1219,9 +1218,8 @@ const loadingPageHTML = ` *{margin:0;padding:0;box-sizing:border-box} html,body{height:100%;background:#0f1117;display:flex;align-items:center;justify-content:center;font-family:'Courier New',monospace;color:#e2e8f0} .wrap{text-align:center;width:420px} -.logo{margin:0 auto 8px;width:320px;max-width:80vw} -.logo img{display:block;width:100%;height:auto} -.subtitle{font-size:12px;color:#a0aec0;margin-bottom:24px;letter-spacing:.2em;text-transform:uppercase} +.logo{font-size:11px;line-height:1.4;color:#f6c90e;margin-bottom:6px;white-space:pre;text-align:left} +.subtitle{font-size:12px;color:#a0aec0;text-align:left;margin-bottom:24px;padding-left:2px} .spinner{width:36px;height:36px;border:3px solid #2d3748;border-top-color:#f6c90e;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 14px} .spinner.hidden{display:none} @keyframes spin{to{transform:rotate(360deg)}} @@ -1239,7 +1237,12 @@ td:first-child{color:#718096;width:55%}
- +
Hardware Audit LiveCD
Connecting to bee-web...
diff --git a/iso/builder/config/bootloaders/grub-pc/live-theme/background.png b/iso/builder/config/bootloaders/grub-pc/live-theme/background.png deleted file mode 100644 index febb00b..0000000 Binary files a/iso/builder/config/bootloaders/grub-pc/live-theme/background.png and /dev/null differ diff --git a/iso/builder/config/bootloaders/grub-pc/live-theme/theme.txt b/iso/builder/config/bootloaders/grub-pc/live-theme/theme.txt index 5df3738..c7044b2 100644 --- a/iso/builder/config/bootloaders/grub-pc/live-theme/theme.txt +++ b/iso/builder/config/bootloaders/grub-pc/live-theme/theme.txt @@ -1,6 +1,5 @@ desktop-color: "#000000" -desktop-image: "background.png" -title-color: "#42b6ff" +title-color: "#f5a800" title-font: "Unifont Regular 16" title-text: "" message-font: "Unifont Regular 16" @@ -14,7 +13,7 @@ terminal-font: "Unifont Regular 16" height = 20 text = "@KEYMAP_SHORT@" align = "center" - color = "#24425b" + color = "#5a4800" font = "Unifont Regular 16" } @@ -22,11 +21,11 @@ terminal-font: "Unifont Regular 16" + boot_menu { left = 20% width = 60% - top = 70% - height = 30%-80 - item_color = "#91d8ff" + top = 62% + height = 38%-80 + item_color = "#c88000" item_font = "Unifont Regular 16" - selected_item_color= "#f5f7fb" + selected_item_color= "#f5a800" selected_item_font = "Unifont Regular 16" item_height = 16 item_padding = 0 @@ -45,8 +44,8 @@ terminal-font: "Unifont Regular 16" width = 60% font = "Unifont Regular 16" text_color = "#0a0a00" - fg_color = "#42b6ff" - bg_color = "#101824" - border_color = "#24425b" + fg_color = "#f5a800" + bg_color = "#2a2200" + border_color = "#5a4800" text = "@TIMEOUT_NOTIFICATION_LONG@" } diff --git a/iso/builder/config/bootloaders/grub-pc/splash.png b/iso/builder/config/bootloaders/grub-pc/splash.png deleted file mode 100644 index febb00b..0000000 Binary files a/iso/builder/config/bootloaders/grub-pc/splash.png and /dev/null differ diff --git a/iso/builder/config/hooks/normal/9001-wallpaper.hook.chroot b/iso/builder/config/hooks/normal/9001-wallpaper.hook.chroot new file mode 100755 index 0000000..89a9104 --- /dev/null +++ b/iso/builder/config/hooks/normal/9001-wallpaper.hook.chroot @@ -0,0 +1,117 @@ +#!/bin/sh +# 9001-wallpaper.hook.chroot — generate /usr/share/bee/wallpaper.png inside chroot +set -e +echo "=== generating bee wallpaper ===" +mkdir -p /usr/share/bee + +python3 - <<'PYEOF' +from PIL import Image, ImageDraw, ImageFont, ImageFilter +import os + +W, H = 1920, 1080 + +ASCII_ART = [ + " ███████╗ █████╗ ███████╗██╗ ██╗ ██████╗ ███████╗███████╗", + " ██╔════╝██╔══██╗██╔════╝╚██╗ ██╔╝ ██╔══██╗██╔════╝██╔════╝", + " █████╗ ███████║███████╗ ╚████╔╝ █████╗██████╔╝█████╗ █████╗", + " ██╔══╝ ██╔══██║╚════██║ ╚██╔╝ ╚════╝██╔══██╗██╔══╝ ██╔══╝", + " ███████╗██║ ██║███████║ ██║ ██████╔╝███████╗███████╗", + " ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═════╝ ╚══════╝╚══════╝", +] +SUBTITLE = " Hardware Audit LiveCD" + +FG = (0xF6, 0xD0, 0x47) +FG_DIM = (0xD4, 0xA9, 0x1C) +SHADOW = (0x5E, 0x47, 0x05) +SUB = (0x96, 0x7A, 0x17) +BG = (0x05, 0x05, 0x05) + +MONO_FONT_CANDIDATES = [ + '/usr/share/fonts/truetype/dejavu/DejaVuSansMono-Bold.ttf', + '/usr/share/fonts/truetype/liberation2/LiberationMono-Bold.ttf', + '/usr/share/fonts/truetype/liberation/LiberationMono-Bold.ttf', + '/usr/share/fonts/truetype/freefont/FreeMonoBold.ttf', +] +SUB_FONT_CANDIDATES = [ + '/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf', + '/usr/share/fonts/truetype/liberation2/LiberationSans-Bold.ttf', + '/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', + '/usr/share/fonts/truetype/freefont/FreeSansBold.ttf', +] + + +def load_font(candidates, size): + for path in candidates: + if os.path.exists(path): + return ImageFont.truetype(path, size) + return ImageFont.load_default() + + +def mono_metrics(font): + probe = Image.new('L', (W, H), 0) + draw = ImageDraw.Draw(probe) + char_w = int(round(draw.textlength("M", font=font))) + bb = draw.textbbox((0, 0), "Mg", font=font) + char_h = bb[3] - bb[1] + return char_w, char_h + + +def render_ascii_mask(font, lines, char_w, char_h, line_gap): + width = max(len(line) for line in lines) * char_w + height = len(lines) * char_h + line_gap * (len(lines) - 1) + mask = Image.new('L', (width, height), 0) + draw = ImageDraw.Draw(mask) + for row, line in enumerate(lines): + y = row * (char_h + line_gap) + for col, ch in enumerate(line): + if ch == ' ': + continue + x = col * char_w + draw.text((x, y), ch, font=font, fill=255) + return mask + + +img = Image.new('RGB', (W, H), BG) +draw = ImageDraw.Draw(img) + +# Soft amber glow under the logo without depending on font rendering. +glow = Image.new('RGBA', (W, H), (0, 0, 0, 0)) +glow_draw = ImageDraw.Draw(glow) +glow_draw.ellipse((360, 250, 1560, 840), fill=(180, 120, 10, 56)) +glow_draw.ellipse((520, 340, 1400, 760), fill=(255, 190, 40, 36)) +glow = glow.filter(ImageFilter.GaussianBlur(60)) +img = Image.alpha_composite(img.convert('RGBA'), glow) + +TARGET_LOGO_W = 400 +max_chars = max(len(line) for line in ASCII_ART) +_probe_font = load_font(MONO_FONT_CANDIDATES, 64) +_probe_cw, _ = mono_metrics(_probe_font) +font_size_logo = max(6, int(64 * TARGET_LOGO_W / (_probe_cw * max_chars))) +font_logo = load_font(MONO_FONT_CANDIDATES, font_size_logo) +char_w, char_h = mono_metrics(font_logo) +logo_mask = render_ascii_mask(font_logo, ASCII_ART, char_w, char_h, 2) +logo_w, logo_h = logo_mask.size +logo_x = (W - logo_w) // 2 +logo_y = 380 + +sh_off = max(1, font_size_logo // 6) +shadow_mask = logo_mask.filter(ImageFilter.GaussianBlur(1)) +img.paste(SHADOW, (logo_x + sh_off * 2, logo_y + sh_off * 2), shadow_mask) +img.paste(FG_DIM, (logo_x + sh_off, logo_y + sh_off), logo_mask) +img.paste(FG, (logo_x, logo_y), logo_mask) + +font_sub = load_font(SUB_FONT_CANDIDATES, 30) +sub_bb = draw.textbbox((0, 0), SUBTITLE, font=font_sub) +sub_x = (W - (sub_bb[2] - sub_bb[0])) // 2 +sub_y = logo_y + logo_h + 48 +draw = ImageDraw.Draw(img) +draw.text((sub_x + 2, sub_y + 2), SUBTITLE, font=font_sub, fill=(35, 28, 6)) +draw.text((sub_x, sub_y), SUBTITLE, font=font_sub, fill=SUB) + +img = img.convert('RGB') + +img.save('/usr/share/bee/wallpaper.png', optimize=True) +print('wallpaper written: /usr/share/bee/wallpaper.png') +PYEOF + +echo "=== wallpaper done ===" diff --git a/iso/overlay/usr/share/bee/wallpaper.png b/iso/overlay/usr/share/bee/wallpaper.png deleted file mode 100644 index febb00b..0000000 Binary files a/iso/overlay/usr/share/bee/wallpaper.png and /dev/null differ