From d560b2fead6c9d165b717255f6e8b28390eb2030 Mon Sep 17 00:00:00 2001 From: Michael Chus Date: Tue, 14 Apr 2026 22:39:25 +0300 Subject: [PATCH] Add raster Easy Bee branding assets --- audit/internal/webui/assets.go | 15 +++ audit/internal/webui/easy-bee-logo.png | Bin 0 -> 9538 bytes audit/internal/webui/server.go | 13 +- .../grub-pc/live-theme/background.png | Bin 0 -> 23472 bytes .../bootloaders/grub-pc/live-theme/theme.txt | 19 +-- .../config/bootloaders/grub-pc/splash.png | Bin 0 -> 23472 bytes .../hooks/normal/9001-wallpaper.hook.chroot | 117 ------------------ iso/overlay/usr/share/bee/wallpaper.png | Bin 0 -> 23472 bytes 8 files changed, 30 insertions(+), 134 deletions(-) create mode 100644 audit/internal/webui/assets.go create mode 100644 audit/internal/webui/easy-bee-logo.png create mode 100644 iso/builder/config/bootloaders/grub-pc/live-theme/background.png create mode 100644 iso/builder/config/bootloaders/grub-pc/splash.png delete mode 100755 iso/builder/config/hooks/normal/9001-wallpaper.hook.chroot create mode 100644 iso/overlay/usr/share/bee/wallpaper.png diff --git a/audit/internal/webui/assets.go b/audit/internal/webui/assets.go new file mode 100644 index 0000000..7e30528 --- /dev/null +++ b/audit/internal/webui/assets.go @@ -0,0 +1,15 @@ +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 new file mode 100644 index 0000000000000000000000000000000000000000..4ddd9ea9310f92b976c0772c26a84a2de8f84f9f GIT binary patch literal 9538 zcmeHtX;@NQ`}amHv{al@QxntFCR3X=1#@W9BC~T&Nr_~oiKZSK1q9L}(=yAnoX`fX zQ>K+BWeTOHWd)@PIYEZAf+HXZyxY$8Jm-I&|M~cSdY|_L*TvpzuY362zjd#B4avKA zZPlG;J`Vr@-R;|a_5gr}Z1$%$7kr~ryS;%wL-`@^L7zk!P&v3aFAmu^b*^Y#iHI=tK!jme)kybtqOAac zVy1xrfOA?z0MN1-g#gwUSulWN{on91B$GT5t?p0!k=E7@VMWpJS3`hu@gAO{0tG?_KQ{LMXSGK56VfIBA~psWez2*_kyyLIU%lzQQ?cG zfhkvg=xF+jSn}`7#^GLwg5|Ifz)DXM2mW28_X59Hi|c?$2>4Ak5gRU<(8$Ja*Ib(w*R2`zqiCjiR7 zkZAAOC%M@cJ;sQmi+%c`AAW>rbDorN+r*2cmH7(mamdlw0?mF-YoNlrhrxWV>)?eD zxWTqjJ`Kmxa!r0J{m{qK;v{<%NoaF_B)kU|D=dv6Ze?832qMk)Kh(WX0OQ=u4pfxnhrvPT++zjM@Wxlx-q^7%aAbagam7(ACoNZvPlpPX1MQund`A{}I_3dlj0*zQEst}&~ zX0vX{)^%@G)*`xr+|v!VhLTtAT*3e0O2CnjSKm{0LPAUYN2Kvx`8Ru^$(Af&{Spz^ zm9%JG*T6VKKO)qz}aojo`UfxJu)_8|XzC21h3+i#)Il_IUFqM1ySzbMt zF>eN+gmORTGK`O`4RR#vN^h$+@m00ziSJ^CBF+lk4|R;Op7->m0Bbw5Fqz?WN5YL+ zF^mo%_pm#4N$K#GUTfpKzs|O9|Ki0%Xk-d4mnZ1P6;G|PYFLX1&rU=aw0fy?M~gRf z*Q5poD(*GQ7pAS4q}sdo>)f8|M`@AGTXygeb)@vZO$1Rrj{N;a5|U#K%XwX4t~x}| zeoTsZz`!15Gx!lfsEHRPY*@Cyv)0!!iP>0uArmABi@`snkmk0sc_z)o0ymhM)zj0m z6r$uy8%U0`9b%UXr*$Q$v~fcRO)td#chvJX&vnS@?A9Q98=_A6u>ncQug5WkE}6)N zj7HdwxZSuwyEjurAw}Og4WeF|U^Hlk7 zR5D(im3Kds5TjqH9d`~Z4D?C?nbsGJ{T<}voM#xvhW$?y_;O+hUe9W+xA0koNiisz zJQe%N>e+)bri5qr7;@8anq{bGxz<d;X4O-$ zInGBF+NJo$H9gok^ENBNxeocrwL<+hjrseU5X4k>6Dq=9#jPWi;>aUomBish7R)4u zQ?T7e9qI>7xSS;8{~m#L>+owI_X!!emRo{K{bLI+E1u|glJdpUIlT2^I@Y$gZ*ZC1 z&wm7yCcD>Kr@qDzdkmL)G`#gAsRr8;jN~j!J>#{G9^)82IUz_#bq_~3pNRXItlF9> zj9fHDdym*tak7K1L>9u`KS0j)-t$dh2atEpf1=*jk!Cd+=YNNMyn{baVU_v5gOKl0 zt9nBRWk%}hoG6qwqEqGghP=JSmNDfFn%8M75G7aGoR=KD zAkA3PC(%nFFywg(<~)f z!v+fSgefzO{##7;Fd|9W+2C$m_Bs}=chfJqu=(P-^GpaQQ5}wBY4<7nXxf6~2<)W=xiU)@2bTf&A2J_WcFJ?+34a}^-V%LKa__up9<6nchYN*sNacAz!A=jU}NJi({)F&(Aa z3L`4BbbxlG!dT+5bEr>W&T(+seZfJ*y|pC)jlFvrnK|oF<-i_cPOI3v-+NJTh|cB?ajDO+L>~l`d9b08xuFDgQSniW#LF@@8LK0C z_$5|WmZ1z}Q7cHaMOJ-Y2Y58o1!I~C2jlKka%Y1$lC!0zth9D5;(1@a&)Qflzq)^? z7Kl7JY{ZYR3(dGCxjazZ6;p%HnhB(=+Z&dFuqU9lT$=G)+_^)DSlLe9`3kI`%5J#E zVr$7{X%<_hIE_@?ifDgI3;lqu-LOtH&{Uc*bHi!LR#oo&OZXw2Md5E6^um#K)u=Q% zUX6_(_VzQhWlkyN{C4DZ!cuQR?c3w^%6t4Av+2G-Vz{rDFeP4)%W~MWqAAWQSusH0 zo=Ob=B`uvF--1Z;*lRbsu(h=*F0)QK$-YDkXIGKsX(^8^)Wb|wG#qvYj%cwPEY#JY zZ!GZ_FHF0)O(_TS^7whIO4!+%AN?u$&A<{?xz(8r7ESljtu8de_Shw-gk$gWU6?Hc zO9U2lm5f^>Mb(TAh6TVoz)JbzZ!7wl@=hsTDTOnq9{iFfy^JP{zp}-u0cmjk)U|s^ zeCIqu06a=xrt^-5*_;`G!hR<{VE_6$ItWfOkoi1OSq+-6E62F#sw$p14Hja-np?y1 zG6@G)8p&A4{ZB9K{Eewl4W5+wb)=92;QKX^fR4~u(ZDg4T-`2!vM5&y)u2w|&_|A++KD3~A zORK+NrWnZ05(v=c>z(;?YV?{-$Zm5}r znvx-Vt;Y);H4wadHd8&_mIFj?6MAm~ecPRMa+))jiq2q@Mv6<7jJIyYr9)Y$v!I9* zKOXW)Oo@Hu4x#r!4Z5g$x;F=ro6yo_Vs?Ykm)l5-*F<*Snybvc&sLl+4mgXuC975!{w^*iV8$=SU5pjx|1U;4pr9Ea7QA9a5@d305v ze0{26^&Nfb)YPfM$Bi`QPgZ|TN;u9#km)Do&io37*m0wgzjS&w>VLGaZg3fA%06Oc zyS;cfS;c>RiB*sHH2uckI9mtoykzd&J)V2QUOF;pC-Fr_vJDsgvGj#bpV?F~!Vgiq zI)A*5WEG2T%|7ieQhxiPCd)tDG@T5=*vp2GNAcL&(;#MvXm_{z%Du2{Elr0JOB*!l z2OTdf34Ds4PB_!My@jh&}rg*+(<|hy9{!uT{uaI*1CRTZg>o8WGn&IUK

p#D#f5D2U0#JC5&O9I0zG zm3S^Il9xGB*$1@)6><1t84Yer&fu6zr~SnbzPIk>8zV9a0R(6`CWwb#WUH>GlSoq= zu7(Q9B0S3RS-|CG3nU_Kc*mN{Gl+ztz+Woo#D|?@|MD)Dyywt0vQ}PiPFq^-WX&qS zUxH6(52D6NTC$tk$kMZuls0?^JtJF)u*Xjj^84o#!r6@ukY@4rYBG~rtwqdVh>IX^ zf7ggQVJ?4T6`seVoz+B^rmnAG-aR2ixM`6B(t2Dc2W6xcV+4Z?>(Pa$BFOJd(#adE zN{-Hd;xsHBYi$?vxWMo(0en{n^Z3I?)B^*BjgfraxLkqRGM%sKr!}*A|FyXG0g)T# zg6jKw*wGsoRX={zfYnH)Jht)ZSv^mCD#|)gG5tKh7rSThR8I6vYxG4TV0Kj@fG-&{ zIwsvc7(5Md_g#Qy96pEA!ZAMu`<()S*43{O6oylA#*fu2PZc%K{2Gb?8jmJ_vc3{PmIn|pTRykdGeq|T8!*w#K!Q+@47Z}_`YN>^Q|#o(_-nzs?RYw+Q_{zR?~!Cl7lhxN1h#k?ei9RLnG#@ zTN6}DHdFp>2?CHT9xdFQl{uD?sxl8G7Qz9AzKoOX*eX(g#Ljey#KyT^YHJB3#Awyi z^Hk*>vI_e!`2ML><*`v{D<3*^O91_PYY^(`YAVuQ1BA|0p%BeB+-F3h*H;C|`)4TKo0%Y7JJtCUP`8*hcNF ztqeZITtJ_8pqEr@1Cc%gsOgmPG+4HcR}-h7R)rc3e>5iw{%GY2v7seMz;?}R*zv*G zYp5fCz**s-(5m=6AsV#Id7cq5B(uw5IN`!uO-J0%4?S&+h=Rr2ug@$C zBmsN0hyvV$bh6oKjXZMz5E{r>HVutvJ!RqpB#`%XE@Gcu)IpV9>mXnHRa}E57y+`Y z+Q_mtt>&5Qbq{KexB=i?wfn=;bn?EkU-?1=1*CVu{q&+~2kqHhMX_uZKy%D+Q7Tvb z6b|Ert+9+a1NedX$m zfk;2F2Vvsl2GmC7MrAf9I%^ryldp*^dvL4;D~|>Pcto2RvZl|4Jj6Ypfbk!L$n8d{ zI}fBN2uTT>e2|{>4tpbBXD`WMgM^Xvp#wH`e}UhTwskh=-iiP1-?#I0}4ff1|)-zm^!4eeNYBT ze)Jl4=^H+t+;ptEW}TvkG?v3GLqps`&cTg0&tr<{-uF6{i<{KxquySN8 z-K%Fp_ z?+popaw3jCDxizX# znb@Vil;rZH5f+ZF+Ynrkk7-t9FqlU(uIIQ0F%k{GZHf1I9d!J<_DcJ~$40h5iw%h4 zU6|;O!v^w9sp>mePP9iE0PeFi>7%wQ>MQK>=p9-FKq9ok6fhwJMNsnu#hxs&qNiNW_>D{-s3I?;-XNGWE$13z3+;f3n@wDF=SjdZeIP&i+KJ8TD zEHn^|rpc}nm&%y7;%3I<(LnS--m(T$%LgU1{ zHVdE})P>}|xkk#iENn2M;2j{C;Oj9R#qSggwj4bNcdwgNg>s8Nw(_Gx*;S(9kv3zs zZ0MdXw#6Gsg&#QldlaHP!u)>n6Xu)%cqoW%Wb=Ts-;jGrTsS$W>5$qj0RF>J#=`gd zKX&wZ@nJkSzOLpzEFVk@3!C=jGu9p5l$pCUk9Is_bbh?RkP83M-5t~#FT8t9zH6Iy z2~0g(8tt!aGM;2vY9M462b4yN#r%7_k2}iIJ|3e>sql`T?zXhfp!`rJiQk)a;=y%_ zAG@c{aH%ht96wx6nT%PmzvEE0-XzQ6o5lw)Bc>mt~*fNz}%cZ(Z2)x`_uKFj%-MQuLfdn_nV;j?z;n_!Bs3E~g zmJ`b5i%*bq6n>z}HuECnk;5oX|J*6$P%WhY77OMtHZ?m&hHy-&aHw-NojsX=kvOp= zphdf40xlX8qOwvHQ?#YRigC8mJVK&C$&+>z4-^|S(=cB@xzYYz9@`uw-S zW_+{SG5E(_i=~?d-b-B+X1HJI1OYT-@hHwSt4KPqBX2Zy@(K(f8Orp-w|}@|`LIZO zBqJyv%5nouw=FL~XLds3w24}4HfU@Kir5qJ)cp$*S^zEt<{pYi>#8~-!+rv9eXy$A zZ(0Ly+6uIRlJyUr%1hsM3FyyZ!4BP8E`6tM{8OBBURRC}YV67uSG&y3mnU!O02m{g zzHpEKW%H*+QXqBEcSIL>|8l`(krZv^G4O;B^e1a0fs_}10cRx^WtlA6=G5}H`%h>% zuLiMs`r$CLDGmSw1iQ^(m{2}z6U`{gCXJfn-nSiE*3zg(_Qhz-|FC$JYSvwhwmpc@ zD1%Yq-|L#M+Zi1Z69JAbD8%4FM)xjXV8l@7srgzPKx-m3pVb|9Rp?QI!Bk6F^|&+Z zv>(uBKZ*lv(FJoHfIDZwDv&agsxQHy#anr_lCo0NDR-BtPsU{#+DLu;065xxf5tK7 z`IjMaoJFo5Y9J`Tyh_yIm{8%YgUH=F1qkrX@(w5>1WYP|)MKjwk2ups6u7pcsl)2o zl^-=H*@O^nqyKqe6Jh}3)3#(3!r0ze*#K%aG5w|y!(BF>hTHEZJJ_MKI}?QW*^NsC zDGLTJ6=0N4`_|8yUBwmzWO)U5K&AT<;ef8uB^N8%7|d93_AQ%9+9(vqgxq#_&t;6;4w_IdTwwHT=;>4sejj2=lgtC=DB+C z3+o$Tk_I$gUc+AEzBFZ!;pliC9MrW0eDlA81*$6W1?Lbzzb$AhQ;=oUe|S?5)_z%vNKn)Ire$IMig><*4b8SoJ#b;j)`7n3=yC2cO4|c{BbOm_AgwV z^{;#Or*K#Lf%}Xh&cz{R2ViY>!~4AjP@Nr~k?fPUp1K;KMIJt(@OB1GSgISIweF|? znuz`j$CeIGy}5T1d+-6Sk?^D5tG3(4uubjV4n*X{@(QSjFe432G z&6*3VoIfW*U*@^ND*2w3*2|M$R31PEIQ>$>a*1AiaE184;%j{|B@*J+Tw7vF;Jr0T zovDDf8^}DDe9vI>U06pnK$i;=NgqhCw|K+0!@B=wZyg2?oOk~ncdV&(Rn@j{a0fpr zO$oI8o#gHl3bN!i>{yc@u;oARd@ycO@Qfs7uECn~%b?UZjc_RHz0Dl!k|BCIOsBKyT zT5=F<2LQK2$$Ed!Ab*X7*+LT7!j~0yImdpi~5QLA{mFy!(bFG-Ym`o8|0l5z@p^UGYoB$@@87>0yUGwj6+z;u` z`o~K>RsF!;-9wp)B?sMyT2s)&Fi@Sq<{#DlCr$n@-xpG&06?t{@hS>rP27Ap3+Q&= LT|SS!LeBjk$5oYm literal 0 HcmV?d00001 diff --git a/audit/internal/webui/server.go b/audit/internal/webui/server.go index 47670ac..b041dc9 100644 --- a/audit/internal/webui/server.go +++ b/audit/internal/webui/server.go @@ -226,6 +226,7 @@ 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) @@ -1218,8 +1219,9 @@ 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{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} +.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} .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)}} @@ -1237,12 +1239,7 @@ 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 new file mode 100644 index 0000000000000000000000000000000000000000..febb00bce3c52ed6f727e56e2ac2f0338c9652ba GIT binary patch literal 23472 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 Vrw(IiQyr+d@^tlcS?83{1OOQLoD%>5 literal 0 HcmV?d00001 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 c7044b2..5df3738 100644 --- a/iso/builder/config/bootloaders/grub-pc/live-theme/theme.txt +++ b/iso/builder/config/bootloaders/grub-pc/live-theme/theme.txt @@ -1,5 +1,6 @@ desktop-color: "#000000" -title-color: "#f5a800" +desktop-image: "background.png" +title-color: "#42b6ff" title-font: "Unifont Regular 16" title-text: "" message-font: "Unifont Regular 16" @@ -13,7 +14,7 @@ terminal-font: "Unifont Regular 16" height = 20 text = "@KEYMAP_SHORT@" align = "center" - color = "#5a4800" + color = "#24425b" font = "Unifont Regular 16" } @@ -21,11 +22,11 @@ terminal-font: "Unifont Regular 16" + boot_menu { left = 20% width = 60% - top = 62% - height = 38%-80 - item_color = "#c88000" + top = 70% + height = 30%-80 + item_color = "#91d8ff" item_font = "Unifont Regular 16" - selected_item_color= "#f5a800" + selected_item_color= "#f5f7fb" selected_item_font = "Unifont Regular 16" item_height = 16 item_padding = 0 @@ -44,8 +45,8 @@ terminal-font: "Unifont Regular 16" width = 60% font = "Unifont Regular 16" text_color = "#0a0a00" - fg_color = "#f5a800" - bg_color = "#2a2200" - border_color = "#5a4800" + fg_color = "#42b6ff" + bg_color = "#101824" + border_color = "#24425b" text = "@TIMEOUT_NOTIFICATION_LONG@" } diff --git a/iso/builder/config/bootloaders/grub-pc/splash.png b/iso/builder/config/bootloaders/grub-pc/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..febb00bce3c52ed6f727e56e2ac2f0338c9652ba GIT binary patch literal 23472 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 Vrw(IiQyr+d@^tlcS?83{1OOQLoD%>5 literal 0 HcmV?d00001 diff --git a/iso/builder/config/hooks/normal/9001-wallpaper.hook.chroot b/iso/builder/config/hooks/normal/9001-wallpaper.hook.chroot deleted file mode 100755 index 89a9104..0000000 --- a/iso/builder/config/hooks/normal/9001-wallpaper.hook.chroot +++ /dev/null @@ -1,117 +0,0 @@ -#!/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 new file mode 100644 index 0000000000000000000000000000000000000000..febb00bce3c52ed6f727e56e2ac2f0338c9652ba GIT binary patch literal 23472 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 Vrw(IiQyr+d@^tlcS?83{1OOQLoD%>5 literal 0 HcmV?d00001