From 0148d926d5f2240d7f000d0a51ba7ebcd439ca9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Papp?= Date: Wed, 29 Apr 2026 18:51:38 +0200 Subject: [PATCH] [client/ui-wails] Use original Fyne tray PNGs and drop the .ico split MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The SVG-derived tray icons + multi-resolution .ico path looked correct on disk but Wails3's Shell_NotifyIcon update never landed on the running Windows tray — the icon stayed frozen on the .exe resource regardless of how many times we called SetIcon. Single-PNG fed through the same path updates correctly, so revert to the source-of-truth PNGs that ship with the legacy Fyne UI and remove the icons_windows.go / tray_icon_*.go split. The 6 colored tray PNGs and 6 macOS-template PNGs come from client/ui/assets verbatim. Generation pipeline (assets/svg/) is gone. --- .../netbird-systemtray-connected-dark.png | Bin 2618 -> 5272 bytes .../netbird-systemtray-connected-macos.png | Bin 1700 -> 3858 bytes .../assets/netbird-systemtray-connected.ico | Bin 17542 -> 0 bytes .../assets/netbird-systemtray-connected.png | Bin 2618 -> 5287 bytes .../netbird-systemtray-connecting-dark.png | Bin 0 -> 5434 bytes .../netbird-systemtray-connecting-macos.png | Bin 1895 -> 3843 bytes .../assets/netbird-systemtray-connecting.ico | Bin 17542 -> 0 bytes .../assets/netbird-systemtray-connecting.png | Bin 2705 -> 5412 bytes .../netbird-systemtray-disconnected-macos.png | Bin 2084 -> 3491 bytes .../netbird-systemtray-disconnected.ico | Bin 17542 -> 0 bytes .../netbird-systemtray-disconnected.png | Bin 2751 -> 4800 bytes .../assets/netbird-systemtray-error-dark.png | Bin 0 -> 5279 bytes .../assets/netbird-systemtray-error-macos.png | Bin 1891 -> 3837 bytes .../assets/netbird-systemtray-error.ico | Bin 17542 -> 0 bytes .../assets/netbird-systemtray-error.png | Bin 2563 -> 5260 bytes ...tbird-systemtray-update-connected-dark.png | Bin 0 -> 4867 bytes ...bird-systemtray-update-connected-macos.png | Bin 1747 -> 3570 bytes .../netbird-systemtray-update-connected.ico | Bin 17542 -> 0 bytes .../netbird-systemtray-update-connected.png | Bin 2588 -> 4842 bytes ...rd-systemtray-update-disconnected-dark.png | Bin 0 -> 5275 bytes ...d-systemtray-update-disconnected-macos.png | Bin 1992 -> 3816 bytes ...netbird-systemtray-update-disconnected.ico | Bin 17542 -> 0 bytes ...netbird-systemtray-update-disconnected.png | Bin 2626 -> 5298 bytes client/ui-wails/build/Taskfile.yml | 38 ++++++++++-------- client/ui-wails/icons.go | 10 +++-- client/ui-wails/icons_windows.go | 29 ------------- client/ui-wails/main.go | 31 ++++++++++++++ client/ui-wails/services/peers.go | 7 +++- client/ui-wails/tray.go | 20 ++++----- client/ui-wails/tray_icon_other.go | 8 ---- client/ui-wails/tray_icon_windows.go | 27 ------------- 31 files changed, 75 insertions(+), 95 deletions(-) delete mode 100644 client/ui-wails/assets/netbird-systemtray-connected.ico create mode 100644 client/ui-wails/assets/netbird-systemtray-connecting-dark.png delete mode 100644 client/ui-wails/assets/netbird-systemtray-connecting.ico delete mode 100644 client/ui-wails/assets/netbird-systemtray-disconnected.ico create mode 100644 client/ui-wails/assets/netbird-systemtray-error-dark.png delete mode 100644 client/ui-wails/assets/netbird-systemtray-error.ico create mode 100644 client/ui-wails/assets/netbird-systemtray-update-connected-dark.png delete mode 100644 client/ui-wails/assets/netbird-systemtray-update-connected.ico create mode 100644 client/ui-wails/assets/netbird-systemtray-update-disconnected-dark.png delete mode 100644 client/ui-wails/assets/netbird-systemtray-update-disconnected.ico delete mode 100644 client/ui-wails/icons_windows.go delete mode 100644 client/ui-wails/tray_icon_other.go delete mode 100644 client/ui-wails/tray_icon_windows.go diff --git a/client/ui-wails/assets/netbird-systemtray-connected-dark.png b/client/ui-wails/assets/netbird-systemtray-connected-dark.png index be38eb0a6bf7432e60e6806681de6b1ebf4bc88c..f18a929a0c46fe6eb534932bb8af7dee80a15698 100644 GIT binary patch literal 5272 zcmbtYc{r5c+ka*}!wg{>Yj)u)`&JZTY%$0ZLS@g=VhKfJW*Ay1YeHcpWzCSHFIlq{ zS;{_Ss1V7NZ7|0B`2GHQ|9Ss<=ep*4&bjY<&V8Tfd_JEu=iIZiG3VwK;RFDH8)sp9 z1^{4C69ypJp~r>L5e|0KW>()W|Uswmh{LB;IwMgI;q>LGKlJmd$73K+ad|viTvHq za0L9kfbTh^U4hdYm`*PE$Y*gAK1E;#w+mN`cT}5k6dp;e*UQn$vQk;;&zl+_KcO|v zYke0(30VAkt1myV=GJW_RK)-Pb6FFPUR)UMIJ=e3nK^jYW=%q2;`7RavBJbq@UPQx z!=d$eK;Uplm90&HUjNTx-2pB$N2%_H584azq99u8&H1YmbKy51eraCvoIb0zZlBNV ze0lr2*uV83H0y8uasCz~3m|W!wz(%h2<-l{;E3rXyg**)2_T;eCmEW-iAJ9g`tYU* zSDcP2{^(a7GG7ajypb5#7`dqx6F=Sh?>qDDg}qMmZ)C@2GX&tC(;{ErH@_ZjkRp@n zkyEI&J}mX(FOU0GnEV=$=NDS6=$53>g(eWAR6 zpo2f=#whPWwN%gF>QD=(8}_1^UbKW})UMxPmK}_!Wg9GL=KeV^G%8a9jHBYme=|I1 zMv*PBu%Y4(^FzV|*3@7@MPMPme|@-HY`qQ@m+@fXa~VYjhP_fOv^uE~F=G@`wzTW4 z&z?ja;LKu1`ED7+8Cq|@IpH$2@gxBRM)G4WOtx*|=|L2|Z7pTEu}}23z8dcOOoa() z!w&VhHXrC@Qko|+^4mJ8W8E`M0-pvT&(Ok~#l2^!(eIdEMxjoOYA^b{N zo6kL}nmd5MkNQT>nB@^<#t*ERH7&@$1zTYF(AZjc>ot2*j?KFZ#bVvn4}#~K%2{>4 z_y`L^CUqZJ>SvC!zQ%WAGTslmx7N{rWA3()3{+X03{}_AbYRh_&*#aBlHu_1Rl!dE zJh?m7_}VTEhOKf*sIzccXU|!s@vSSrQ-QOn2JLdyNawasbMHa~#dnSNhPTT{WbEgg z-4tZ|07o|O*LT`Y<|@jk0e|!BX4GO|JvGovqr}|lc>!TJ&pkIf+ie7 zk#2{+CmLLL6F<58cI?Aep8=ZG75(!wAxpR0ZsSAI3zZMIwlk)i#{V)YahpV}3KhRP zeY=nSxIuejqqUP}!1+T3YgxsC(CgoEB-2mURTS-5z}x<$84bEk416eP9fXy$;MW6o zKIt|H(Nr2+ibCs)E@ySdVe9YDb43nWMXg<>yzQUgP?Bu&Qe8(FX=`4NuIbke3v7|u zy>0JuAd$->$K~^bLB!O#3MYgMBcu4relC@56WQ3~c`pU-FR;tU`IGrms_61oqqWnM zo98zWyK`^Lrp4-zg^u_P{ccurZ4LLYE|r9&+UbhSEV$%vfrf3^D5|i~MpMynlybFn z8VFuWkvw927@7M%p}9Vj&FDBaWJLOI;`R*@=GS1Cw*wDWM?H_ zmf|1pcB2NL{gy)vb`$j&#?c($)z)_8qmc!8>n#^&PLJ8wo&kZK(c@JjoMjm;$*kvJ zuFtCd_Jm z$>xOBJ=v~(EzJYfef_YiRD588(^y<_?X>bdm9%PSDdA$FF1)^8W$tCL-ZEQ|_td-d zCfxJnOMaZE@P)WlxpyX7NhFWWzZ;3kmv(M`MU;J}Dz)Q)8j!jAhCUjvE2ZTRj0kfJ z$u~CX3LlxxQfP=#WghcnPnJR{cl?>THACs^nSryJZTkzdnviNR$H+AoRuIlkYoN^| zFKg(&WdY$U75~T%)w_DVaqlBJ_GDDO^W<=FESc~4v2bcX`?>gH`0;Hmib4)YqGws^ ztwp61Dmt%`#gRU?oW#w?_cMt2ElKoouL*pYY$6Vh^3WLD%vKX6lb6pKN>410Sw7+w-C1YhOR_6`S>fsPJ>@W^KRTCQbC^IR6=CL>W2(C5`zD=J z5FVNp`KEZq)Gzu?C-dQari*5nDhJNXJI8!=*$z@TE}qy;hx1!6CzKk0VhFDuLpB~L zXu7Wji-)!afuRpVFF0S$h4qf2d!w*d>(Cq{kae==6Ars)*BE&Fh)8jVa0=^~pFZtK zzN}6=G|yIpFXoa$dWz5Vz*EYB&8Jk+4_GJSMm&ju&91Em9odTE?)&D*mW5a*fpW%6 zl{t*a^U-h$_;_JO(w<5|HGQ=I`@HQPeRJ;3HM-s<4v&jokBE~?yA2{yZ!gKi)R@Ef zj`vueKxK1XJnX?Ze@Z;9yMg_V#Hz1JuclQZu0@#{leN*f>KAN+%V>|B37(CJAgh|b ztO>|w@M(H?#8(9wN>!tZC;gjj_I*Y!VbB}*W_M)fW%snh!$8o$(i%$*e$;KF zWGj#u^N1LApJwQgepkc$>HV!&(i>-zvN;m7Yo`wyan~7{G`Sx64sELkp8#d0#u{IZ zvM*DE#n+3~$wFZ(iK!5(2ZhduV(u<$dk^|FMfpv{dAW;)pPwBhn_Vlp=leR_m9cZd zh1yd?yCIBuOLrFPXw0fUz^@T#2<}-veTj%aKG$=~QU1vV)I*u5l0Ew;vIi#cpZ@e2 zzk5GG(~K%eVa=XpEfqd)YRM!H#UA$au?=XyAR&%@UPQ&uuAF@kBv#&DYCM>{wP*!6 zb65uMd`b+JsL4^3rMX{y@$qd}^t$hWLR)Og)~kcd*c%#bX8Gu3R^UTYG7ldWTIt=V z^W*XzPE!)^%wTP89y;S4U)&Pjv21iu>(@o9 z(mEP#eP5x7Te*rCp%P;%A6FUF!zMRwEx*4uR3o2Z1N4qMN<-@PD}EkKJ%6xv*H4ZN zxJunNypya)*g zm|yC@oDrn#({xn|Rx#jPhMvH)%@k4n#H9)~JhW4R5%qaej+-2@cDicff?x%I%;Skc z@{IcMz>Ir!Ik{qKN#c%%$NQeI_7C?4yr+rr6ZjfC*wLZz0%T`&V_|>kW{vcXD^Wq4 zB1QlC_vh*5hM@`aPv9NI81k++?-@qR!=7}E3U@`1W8qb=FPGWft0mhb_VgmUc9=8z zsE2}^2w4cOcff(R!ct>MHk^1_i~a04IJY3&M|{B19Ph-Y#b? zC+9tg3hU5iC?%%@6U0Zog9Ou*$0r|Ac$6i({_t-eVqUL2AODP?LJHh@!^5giRxx%2 z9(_ExOZd{|7rbOibKA-!QfU5_O0Xb=pG>`J>@^It!bgq>dd5=m+mY^LOmQ3dIPdp= zVB}VhYdPRh#LW<&rd$N!xd}9ls*uWM|JBVVH7(SEgG>P-Tnm%Q;cFLYIN$1VDF=EP zBIm|7YNS+92M#eaRdG`BWWw2C$dv|GA;*ZH+NO1*M+XO3yo^q!|83OF%nV zMOyh>pkevSP7rQdOl8jP7r<61qO^LXg)|88k=TxAK1CTY zhQELGH{7N))DZ52>hCYCPz0x!ruBHCLRRvJX#N&})`a`Yigk)Z0-E_7$AiBO+O0-Y z=r#1ZQt|4(vg&`BpV(XoA27t!ylj zbO$n9MmN+1;-(w3#u>6iT7=pN%^xREtn_KR?U~-9my`kQ4@Dx&H6XjW2tV#hEXsRkfRDwGV1B7o zpYu3>ep6+G=KtX=Fu9Q-!t6c3e?nYEaBY{a9~3xM%pXUVbA`o!-MCUQv=@`JOcpDr z2j5$MOL|~i3L09yf~z|-J3LKyo~giE`{Nzq3J60hRoI&TT#u;R#_A(y>E$S`cGiaK zb3vwZsROWonhzW>`GdlG(?=1Jx~bmunj%HwybR}TP_s=Dhap!5#sXR`O#v)F7eNCg zxB;2ikFEXbr2zY()gNcBw)V4Ef@gT~k4zCEZ=ElU>N{|Y~?Y%3pg&B*j4!c;kdW?Si3B(cHhXk;9eVRmY zP+Hqe$WR@i1XKq$KO{BxdC3uJ9;y?ZSdQj*3D7>Sl&lB?_b%K21JuyX!*gVf=>1FC z5LlPYasb%}TbgKQ&l_tvlI2%u11Do?oFvPK1 z4+~3yApd~VP@UAI7u76ux&mZ7@<(@VNsg4DlWeQ=PVb*eyir21EAEQ{1$OsRZXRk9`3AoL7 zjb2lr1iao=eu@cE`b+b-59Z07>L1N>+k-00pq?SU{^KY5|}@3Zwu8b`%gd zBL`8l-v~}DSbGeCAuJV;I^HM?0mT>!lP%s?EPf0C_TZpjQsP0tXz3voc10S7rJs|7 zfdm-~Kq}4&a_T^-ypLMKk$5G@^zkFa<~qnUtGo}Qv#9{KC=42mH&wz0zK@d||JMbb b)IkE9NkTHqSjM4s{{jzZW@B1u>>2kzO3uwf literal 2618 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 literal 1700 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 literal 0 HcmV?d00001 diff --git a/client/ui-wails/assets/netbird-systemtray-connecting-macos.png b/client/ui-wails/assets/netbird-systemtray-connecting-macos.png index 87d548b9c5510e0b282f05c66e44a720900ed3f4..0fe7fa0dbe50bcf8c08e45c7cf13b7e6e2348335 100644 GIT binary patch literal 3843 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 diff --git a/client/ui-wails/assets/netbird-systemtray-connecting.ico b/client/ui-wails/assets/netbird-systemtray-connecting.ico deleted file mode 100644 index a62d16e838b426219b79960b561205066b94b107..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17542 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 literal 2705 zcmV;C3U2j@P)Bh&!?bvNWnxr7)Vps)7@&3C4U06yHo!e}T12_qs@QyGZ%6~Ql+74z=;TSnBot%Nv@A`k zbfw`%k%%Gz4Fkn@mzVfaoI_9}5cLRk(iE~Xep1d6mb`8aM5}Fm{*4-P8;Bv?JW43* zaY~iEazH4hXkVXy4=^94rUO%fQ8p=V19cE3J_E7Uv!>z;=qW%n{dRha)719^*V?47 zAE?(nB?s;cHPZ70DD^P*J035HISA%}dZK;Z%vwbLHYLRt@0$Jlou;;lA>Tah!ZKF% zHz>L)LcaC0ij-nAT@h!9AzMAigjCmy1mBSAQ&8qDsd%Qp@$O8}U0m^35G#g~Om9|J zZE8;7#28_oOh@@0L#3(4>z2P8XhKjb>?tXKQ9#L1vFU>RE*{nD>ipdlhj}Cm>wJ>^ zij;VgCn{S9nj%6KMcdcSdJcHfenz0AhIu#(73dp)wA2=iapytUQmEbSDLGKk+v$cv z$itAQ^wnk5dV&rO&4T~8`&5a{``jcXdUBP@9KSZ;Z7d>Wh?#4 z?>7DSg8CvFHk}YywP_Krvd*NUd=Z7nDo;|&?;}|dp0_Fes>SCp7J(>_M0gkEg#=Wa zGm3=*t0w%cTnV|7u$R_XL6NUQF zTU_~0r1B$*H*u>E)gxsgg6eSBSZ7nfjO~bF)ejsw08>i2G8)+t2V75SWsPQP3xPo$ zjq*FNE+j_7D_BmeyE}6XJwd%3x8~rXXk?<0rg+{P*7<%7 z*Xa*P_5Onhbvw`;YFsvZP~p70VL~;~!s6P6-Eu?1e z9!#XI258+dYo@2x7~>kTzWD;o-U*+;_0a2RiJACbxewKF8XRu) zi3OL8skg7zatmLkpKB#sFGn@WMm?iZ=;@7iibc!F!27F(h`_s8Uw?AN<^dG6Hej8u z=-fO&z=w78!^Dn%JoN|v_R?DFj!zCL+b)vrYiBM6ZUN9U8_?1&*&^4-%_V-r2CSoR zfehjAoL-DsKSj&F5iK(p;kn`jX$7zjZqMx4QFh2WbLj3q@@--H!aNU}c((f?6JTUr zz>;7!MDGubygcHbej0Qgkv0L#KJ$_rHm1 ztnD6?b%zak{L{DeG1CfxPrBFG;RAf@^Pg5qmGv1=V4g}xeiwcnpbJ`h8t%JuP`(C? zxkZSC(O4B*5pk*Ld3S(5$T8UpVD5d5z{f9w)fu533zlOPJa7@11DpUG4A8!Q=2(CmVfj+h=$l)0U55z*V8-X3`Q5UO` z-+YO+`!5?ImMBmrG=$nnxL0Yq#4+(K!W|fR+JtQ6w>|lbNXf#uVM)|9gWyi+{%KWx zo_Qr$^h+}Q4C~8OGG#W zI40JC(dT;w^l`Jge``OOiAc?kR!v{MqsD`y*OA)SloD|i=qQ^$0bP4MW-=Z>jtO;` zRhcNO=YP;=EJDl3LN;Ic7(B_1 zVfz5z(G$y*P+8FZWtgqdl3Q_PUGOTQ>VfVPj&*D&#@r%XbXdne4r+_E?9Xg1h}eR2 zRrA_6|7=&+KP8gK;(mCWExAC)mLg=$!On)mgXfojyJ_ToEk1hUZhc}wcQHXV)?)5` z%@)xjuIGYQpLBC0qpsaE@(cjVn0ou_-v4;ulb2Dx*b6L|cn)^oRw?(-j2XdlqE{aNhL{+Sq9TyMUVkH4>iy0Oh># z{ssD!ANfS`7#xLDKSc7Fo|4$8@j(le?-EwUR?K~`qnd*6Z}r@T(s|Ew^MOyh z`bN3|ptEwb)xYhj(bj+8>pN<=(6XlET)Y7hpGL}^5) zL&e%g>;mQ(xwjq02yxwJb|9-tdU?&eAN>CWrj8<@@jo^hHDU zoWRkYE7Zm6dH9->we;)VM!^GqbVm(vMxLuG*W9i*NX*(Zn5h2&l!mRaa^!Cg00000 LNkvXXu0mjf;u$m0 diff --git a/client/ui-wails/assets/netbird-systemtray-disconnected-macos.png b/client/ui-wails/assets/netbird-systemtray-disconnected-macos.png index 58e32e69092123ef16f1436e1dd8abf799901680..36b9a488f16673b1fcb1c87037d3d1606dfb1e5b 100644 GIT binary patch literal 3491 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 VFbHp#EYMSdj14UGKVEZ=`9J&Jr*QxP literal 2084 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 diff --git a/client/ui-wails/assets/netbird-systemtray-disconnected.png b/client/ui-wails/assets/netbird-systemtray-disconnected.png index a79fd1bedfc5d7a0a71bcc59f54b51b1ebad225a..a92e9ed4cd17d7998a819f1b80f7551b7004fd6e 100644 GIT binary patch literal 4800 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 FV1nAZC|>{o diff --git a/client/ui-wails/assets/netbird-systemtray-error-dark.png b/client/ui-wails/assets/netbird-systemtray-error-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..969554b169335bba85615cf51d3b48b3b1e0454d GIT binary patch literal 5279 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 literal 0 HcmV?d00001 diff --git a/client/ui-wails/assets/netbird-systemtray-error-macos.png b/client/ui-wails/assets/netbird-systemtray-error-macos.png index ce9dc6d1da6b1812137602182d83afb1de626779..9a9998bcfd1f2f4b686f2c08ac4be42198111d83 100644 GIT binary patch literal 3837 zcmb_fXH=6*w+=;+Py`}M6Dd+e5vfY=MKK^KT?j3}M-W6rkdhDtBuAuZ5C}>rDn*LH zLs1|>jG!O{jyW_13{53R5}HX!OuoRncisEr{=46-^{(0FnZ5VCd(WOVsEh6{l0Zcu z0059Y=j!MM00{6&0l)(=h{+Z=SlPe!-)CE=`zC@*jH zm&veng7cgBOA0bB2RR+vN7UWZ9pA+JgVd#z$12hSFWW~rY<~L9TI_MHo_4#J7aI-# zS&ov!^j>zJzmJyu(a!CF=Ea6sQ!fyK!*jYCZOH7(jkJ2A;JmumC?}PdKbJH&gStcg z?SwI_nq*gxa@C(o5P|P2VUAC#k$wWxiBLyH#XPy9-csECIH2w%W}eO#TVH5pY}+(F z5mB9VwakXh8*VNVUM)OEWJu`1G*zruFEM|gO;{d;2U-cadcff+KD>AO71Rw{##gFj zY05mQaQiPFk9F?%<_8)?g~vL)<-h8-Vnk@sV=NA5{H{E~i23n33&K@(NZnw^V>xiv z^pM-V@MgD5T^x=D!T65bb{M|KgTh$$`0_%u^_EBxb4S1B%G$^r^;17fvW%aLPHh6O zB*WlFxL7=%PM_h$w3=krAp(9RbIiBezC2anEUzBunwO{4YNf7ct`#dja^`W8^TLtMJnH9c8R}Q(R+M2dJ35(5 z(_S?SQ{l~+$c}O1ZalfI+-|tse=Gf4LjF#E8C5zoqe2Ol^g`pIr*i-^1+;zUi9m8= z4Yj+x*iY2b3p!NpV;%RCAtKR5?J=}4kfrvyG+lEYAF`H|aq%XU@TD z9;LrMyHY3t+Lk|P7Hrkps-zvJm-X#DI&|N_{f4v-#p?G4)P#&#GZ0M8a^e8GScfgQ zrm>xmR;pttP8-a+eeD=RTUew&<1h=ziCGJa+g-ra!LrG48_baDNe0hT&ev7+nF zgFEA>Y)s$G5ZcHS(S+KNWzU`|A3a7Eo**L)1AYMOYu=W2!H zYlA^kpM6KP%^!|Ii8SvTiQB8;8Nub|;1Cantm_SThHOf&^N?#SBlg54_ygK9_>By! zQwVpc#rxX%-dbzB2L=R_Qb&K(ly*Tr=MNc}0Iby0IcqgM=rsidb%NXU6}8Ia4&fsG z&X-qxC@UR(zQqt$p9|U2Uh>w!9eU|pvIFn6+s3st8$q2o*ZuA1jAdbVZWE4X3Yh#` zS2Lb92^lMNc5ctM7oWWw&?XB_f5P>PZ_t1`F{4k{zU1ll&RW2qPRk&#MUUYi?n-&Y2HVS7Q9wfxK4raEMrU|^by`;_#2rtb$2d`ZpdE}fc}%LXk+L>sRB zRdPJ-fu~3Oes@<-)Nf^-gz82x}Bg2o-h zO;x_^yawJhV?`4*Gy8q%v%nJ$dKu;$fLQeT% ztQPlp%36BwS0#}s*n7+%NJ9v9I8S@%!&t<}G)Z35R!Nq|!kiCS^%H3juK6t>uptfX zj7em4bRl~7^6~Tde$n*iR^$88lfs6}7x>GpvUv;n*zJ;B*{hgL&w*s}QCK|R_7_uz z7ozu^X;J-WVXdJCv(ezUHWd)rR6oeH>&S2(2r8d6Fqy{RKx{X@4W|hHDmvuKv}8y9 z0%gMR3TM^3!z`OiwLUXN88bl!IKx9Kcd~|0xc@0W6m^iR_t=xUysz}$ zx|ag<*gE(M{0Z7P8LqRZoj%FmKyZ!nL zmuq4}Byu3f&|ZgcAM3DUpWvt~VJ5!K!#=)$)Z}aU&Kwk6aAIiJ5i33I7gpjv~hiyN_e#E~$Y9QQ8 zf~5S;RR{9$yWW>kj=hC|G;u^W-v{EBT}?XZy9uXqPbG=E4z6O*(oHR!Mw=OP3hf}<3;3>d?QYfDlG{OsvI8n#mK`gLD z2=3&of^QeYQIpV$QNaX> z0f$UQ=K~P{5aA@h2e&HVZyV9^Z{D1hgV*8ff}}w-h@Br57az)$8lw+PiAIHcGarBW zQ!>mRT;&ate^lU2N$#K0%HwzD8F0uoYaa*G62F@cg{*m&?Jd4AU{~nuV0s3Z{$}M2 zEyftBSt=7n7XEcPH}(_`PJ!1*nF!=S6uWAL8 z+fqs^BH|!p8cFE^^r=lI2rtjIucHt9T6@KX7LpB4rTmkR$?VsEer$+mP^giVFRo%y zt5roG4g)0}+5!C!-z}STIK8Ui(|Qor7Ls5sCHB?n_nRs2D21Mw!zK#eqQ;Km&>X= zD(TnJJX~-xxqHF^=t`V+4cx7>R;?G|<$g*H(A@%z5wwUT&e%4ak`L%`#wRZL1f(J_ zv??_YBp-+~AQ|o4}JSZQy(r7xf_64s2uWG15gDxQARIxP*;BMS?b<+Xc0 zG({5e62t%@6C_~82#OxTbr`b$B`Aa|=*8Gdm-|)J4)WpDvgcyLp~RVkR;Ea#-(Ub( zHIK+8aXp?-K#3-jMDu|dL8LOOT_zQ_yYlLYVo{AO&eZn9jtoyE?8v7>CaUi)5Cb@W znNTKeo5H8tM3y4wL9lVy-+4BCJcX}6^MM#ZS1cLNu_}hywuBJ_zAKh^G8q?z+RocY z@$&l#b&5srtU<5@H(zH8Brum3bx&xcC7b5d6r_-YxH|m+huOqQy|2(p*AE#P(&4~{ zgXLeE9icuIS#rvylP3RJh)&Sj1!I(cU$B z@8T4Or=7#E1PJ~0a}d7AQ~hgkL4iV#E9kwpCc3rsR=vekpM)!#F;$nu=EX17?iq@U zA|F|7HW{mC-S;Kk^?JQ095Ucv&@kB7^8~d@Rt$mVjD>uE%YVZlm>60Q#htk=I#fX0 zVkY+2eOe^hsCi8*!%0yNwJJhu%9DNP=hfRr&oI4rKJvc&SU2d|=rL{6$R)hQju-HI zywjDOzGxEvnovJw9}+vbOH}0cO;zryOvR9tJG%rXw~xN30^5f$p<7mn;zqU89HX5| wf@_Jie1bfXaAWj)+NRQfZqEC^M-yEiQ-;cAd71TduF@aqaLNlFqYiY@v)~qPguYbIG zby}wL^Sznb$TzvkoA=H+_nhy$_nvppdt)T={|u|r4pbTs38=IKmBvE?D(yg}@sNN@ zJ5XsnB%sm`R2sfYJCF^=m`8wipaa+p_<^-0n!OKvOVSKfDFMcq%|H+E3{c~;`G^xd zR2c!rnDxL{fiAq6p8o)TnSP>b2r$Mx0el;1@UWYoNcv~`iK-yL7_%Ka_(weK<`(eE z%99xhFvipY9|f9#`c&J9Js;Nr9|G0@3n`WR*u!fUcn_EcZUYmN7PEO}jQKd;2QT2X zGVJ|*DJMPyYz3OJ1Fv|3AmB&gfZq(;3(b(5Add>Ynd*jkAN@Y{=!oO zY)Q3VV9pqG8F*FFP2d~AM_lf6CH@V(wAw}E+z?|-C-6QsAddG z`cEMWc|ZE5wvo?aKfzTau1fk-p-Kfk`%8Kc_zp0WOSa5N0)xdU7QFe9G>c6_-V03` zFeYid7{#J?f0EwCUK8ev(RUg1z(}#mMQ?voj6a8+cPoiuNk!j?lJ@_S{t7&gz2~k3 zCV=0RVxZ&#h@`&&-^VVCl^dreB}*~jN(CsDetrOCt^c`3x$gqo^0MdVM^eU^R_qOw>y;j330KS4)J$v@lkBp2w z>GSzaG#Vuw4zsYZkXtbgwY9Yj4-XRz2Ek6(Um&f}PBtj$-p{1qef$Q`0^Yr%iGB7Xz_6wMofsZ-YOCABnn0nwxl>Xj6 z-6q$rU3)qZ2yBc-ql7{s78f&T*hnP8?%lfqh(@FI_V#9!vn-29B;t&O%fM5B+!z60 z!^PkM4jnqw6bJ-1CK3t4;qa=#1L+Ihvg4IlTwG+|zI{whO#yrwd(@UT1&lFmz-LRb zk-;WMj~?9uaQyi3g6DiT%+Jqr;=~E(=krhk0mc{ud>xl_erIQAo!{?YACJcw8X9ub zGyrGMo^{e@8_-e82V{V_?tcT&b=YB$G*Ev6%C-rzir9F>8UaYhI;c z$BrGF04`kc?!C;|*qC#;v)B>vWnhy#?kq<`L&I8tn>TNIVIF{6x0Y(Vj~7gUG3GHK z=&DC)sIRZD0hpei_NogeCztBFg%bem$HOl=%JB~t%UTM1u^eZ`D z1YEgtWmP%LvUKj;IY;z&sXnTf03I8pJ($4fgDji@x?I}rrm!z4Q867@+ zSU#UGXW*7)DI5-`&-qzNpI>R;)v~yUXaRnPUCAMlNGz4bZ{NPXtSsKz+Dcbf7r|f< zzu)iZ{~p)}j6Yzx3hr>e%}5GKdRzJ9x};~b+5Mo5fR*UL{!h_P><_M;Tb%%=fH!~` d@K!EE{{`fQHlY*eoW}qF002ovPDHLkV1nbtjdcJ3 diff --git a/client/ui-wails/assets/netbird-systemtray-error.ico b/client/ui-wails/assets/netbird-systemtray-error.ico deleted file mode 100644 index f3bb85e21e76f98b3febe38c1e9d1c6dda31d0a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17542 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 Z(%>Cos#cWtK%X^)%YJvqTKk}k{{iS8*lPd) literal 2563 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 diff --git a/client/ui-wails/assets/netbird-systemtray-update-connected-dark.png b/client/ui-wails/assets/netbird-systemtray-update-connected-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..52ae621ac0f35138d31b68201d70940a61d947e1 GIT binary patch literal 4867 zcma)Ac{J4F*MDXV#y(^#gtCk!W2v7l&DfJ@gsd59p{&^{vq+Yav{_0RN>Yh7OTze} zjY0{f&}7Xr#yXlA-tWBszvsN)bLM>SbMNQ5+jH+d-+8j|u8tC-J468h5>5y0jsgIK zNEkp0K`;O4hi9OdNYp`}7y!h!@qaLI=dL0j5_8ni20Z<&JOeEd!PYL;06fbT8eyy4AI9+CmHjg5#$5Z-T)>ub~?SKqf~F16MOn%?cV!cWf&0@Kt1u9O>sBs z7OX{()js(#i>N0I$bdYi_;lSx&`N}TjQ|c(@d*(5lCN>hN(tIm_DK*0 z#`bkVWE)=v!0c-oF`d}(hmLOK{40oD_6N>jk=nJ|qEk8rM}kEMX9yhdnGa@lJXv>1 z+N*#AeJ z%%pkAqqqL>!`qRuN;Ef^f_uYp_i9HlJrjJrIc>?U^4c*leHh*1$@-qqD1))n;9&K(+5m~RZX5)>^!c#Q=7@Bb(Y!O;j2{VzyD!h}D zITI;A90HY}uE+f*XussTY@f~^nBW!MaCv^81;*f`ga>)TwjUcBEbTBc>a(rpp%pZx za`w%8?swQllIeG+2`cuycNzV;>dJ}DHLbJKdodLwZMioepQ7XeMaicW!1YtBy^ozJ`I#qcYAhlrONwG2i?g(c%WHL9b}tXA9{k|NR?|FX@S!!JA_S?mtEVsY2#;^Md;FIz)-fD_bzM@&D5Sj%y( zGyYi_
  • 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 JPi+EI{|6dE%h&(_ literal 0 HcmV?d00001 diff --git a/client/ui-wails/assets/netbird-systemtray-update-connected-macos.png b/client/ui-wails/assets/netbird-systemtray-update-connected-macos.png index 84cb1c029ebcd6ce5c77b51ca12ad20f93b651b6..8a6b2f2db85a6b6e312015ce634ec49096c45059 100644 GIT binary patch literal 3570 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 IWvBT604ApYnE(I) diff --git a/client/ui-wails/assets/netbird-systemtray-update-connected.png b/client/ui-wails/assets/netbird-systemtray-update-connected.png index 4b160f888da1ce144665db6e0ba7349f0c317dde..90bb0b7f1975c585b48a5088710678521a236ccd 100644 GIT binary patch literal 4842 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 d(wW0Lv-y*A*FK-s$qgR9OY2{tqh82QdHu literal 0 HcmV?d00001 diff --git a/client/ui-wails/assets/netbird-systemtray-update-disconnected-macos.png b/client/ui-wails/assets/netbird-systemtray-update-disconnected-macos.png index fb8f8573e9d5ab896ab1d4d6c426a86ce262912e..8b190034eac6588e58a36365880d83d9ea8d8db0 100644 GIT binary patch literal 3816 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 ag8l=^Z~sZ{;3&NS00003-@6EiPH*dP9d-gDt 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 diff --git a/client/ui-wails/assets/netbird-systemtray-update-disconnected.png b/client/ui-wails/assets/netbird-systemtray-update-disconnected.png index 2e9e1c8b2ffec54e6c02b68f87479a08294a8d20..3adc3903436f78a5b7eab298c5e78d52a51d2fa7 100644 GIT binary patch literal 5298 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 diff --git a/client/ui-wails/build/Taskfile.yml b/client/ui-wails/build/Taskfile.yml index a8262fc49..590d4791b 100644 --- a/client/ui-wails/build/Taskfile.yml +++ b/client/ui-wails/build/Taskfile.yml @@ -110,22 +110,31 @@ tasks: - wails3 generate icons -input appicon.png -macfilename darwin/icons.icns -windowsfilename windows/icon.ico -iconcomposerinput appicon.icon -macassetdir darwin generate:tray:icons: - summary: Rasterize the SVG tray sources to PNG/ICO embedded by the Go side. + summary: Rebuild Windows multi-res .ico files from the per-state PNGs. desc: | - Reads assets/svg/*.svg and writes assets/.png (Linux/macOS - tray) plus assets/.ico (Windows tray). The .ico packs 16/24/32/48 - px frames so Shell_NotifyIcon picks the size matching the user's DPI - instead of poorly downscaling a single large PNG. - Run after editing any SVG; CI runs this before build. + The colored tray PNGs (assets/netbird-systemtray-.png) and the + macOS template variants are committed to the repo as the canonical + source. This task only regenerates the Windows multi-resolution .ico + files from those PNGs by downscaling each to 16/24/32/48 px and + packing them with icotool, so Shell_NotifyIcon picks the frame + matching the user's DPI instead of downscaling a single large PNG. + + Run after replacing any of the colored PNGs (e.g. when copying a new + version of the icons from client/ui/assets). The SVG sources in + assets/svg/ are kept for reference but are not built by default. dir: assets sources: - - "svg/*.svg" + - "netbird-systemtray-connected.png" + - "netbird-systemtray-disconnected.png" + - "netbird-systemtray-connecting.png" + - "netbird-systemtray-error.png" + - "netbird-systemtray-update-connected.png" + - "netbird-systemtray-update-disconnected.png" generates: - - "netbird-systemtray-*.png" - "netbird-systemtray-*.ico" preconditions: - - sh: command -v inkscape >/dev/null 2>&1 - msg: "inkscape is required to rasterize tray SVGs (apt install inkscape)" + - sh: command -v magick >/dev/null 2>&1 || command -v convert >/dev/null 2>&1 + msg: "ImageMagick is required to downscale PNGs (apt install imagemagick)" - sh: command -v icotool >/dev/null 2>&1 msg: "icotool is required to pack tray .ico files (apt install icoutils)" cmds: @@ -133,19 +142,14 @@ tasks: set -euo pipefail tmp=$(mktemp -d) trap 'rm -rf "$tmp"' EXIT + resize=$(command -v magick || echo convert) for state in connected disconnected connecting error update-connected update-disconnected; do - # 64px PNG for Linux tray + macOS-template PNG (per-state) - inkscape --export-type=png --export-width=64 --export-filename="netbird-systemtray-$state.png" "svg/$state.svg" >/dev/null - inkscape --export-type=png --export-width=64 --export-filename="netbird-systemtray-$state-macos.png" "svg/$state-macos.svg" >/dev/null - # multi-resolution .ico for Windows tray for sz in 16 24 32 48; do - inkscape --export-type=png --export-width=$sz --export-filename="$tmp/$state-$sz.png" "svg/$state.svg" >/dev/null + "$resize" "netbird-systemtray-$state.png" -resize ${sz}x${sz} "$tmp/$state-$sz.png" done icotool -c -o "netbird-systemtray-$state.ico" \ "$tmp/$state-16.png" "$tmp/$state-24.png" "$tmp/$state-32.png" "$tmp/$state-48.png" done - # Linux dark-mode variant currently shares the connected artwork. - inkscape --export-type=png --export-width=64 --export-filename="netbird-systemtray-connected-dark.png" "svg/connected.svg" >/dev/null dev:frontend: summary: Runs the frontend in development mode diff --git a/client/ui-wails/icons.go b/client/ui-wails/icons.go index 3f4ec97f2..802377d25 100644 --- a/client/ui-wails/icons.go +++ b/client/ui-wails/icons.go @@ -4,10 +4,12 @@ package main import _ "embed" -// Tray icons embedded from the legacy Fyne UI's asset set so the rewrite has -// something to render until Stage 3 produces SVG sources. Each pair is a -// light-mode PNG and its dark-mode variant; macOS template variants live -// alongside for menubar use. +// Tray icons embedded from the legacy Fyne UI's asset set. Each pair is a +// light-mode PNG and its dark-mode variant; macOS template variants +// (*-macos.png) live alongside for menubar use. Windows uses the same +// PNGs — multi-resolution .ico files looked promising on disk but +// Wails3's Shell_NotifyIcon NIM_MODIFY never redrew them on the running +// tray; PNG single-frame works. //go:embed assets/netbird-systemtray-connected.png var iconConnected []byte diff --git a/client/ui-wails/icons_windows.go b/client/ui-wails/icons_windows.go deleted file mode 100644 index 1e0763770..000000000 --- a/client/ui-wails/icons_windows.go +++ /dev/null @@ -1,29 +0,0 @@ -//go:build windows - -package main - -import _ "embed" - -// Windows tray icons. Wails3 hands these to Shell_NotifyIcon via -// CreateIconFromResourceEx, which picks the frame matching SM_CXSMICON -// (16/32 px depending on DPI). A single high-res PNG forces the OS to -// downscale and the result is fuzzy at tray size — multi-frame .ico files -// avoid that by embedding 16/24/32/48 px raster frames in one resource. - -//go:embed assets/netbird-systemtray-connected.ico -var winIconConnected []byte - -//go:embed assets/netbird-systemtray-disconnected.ico -var winIconDisconnected []byte - -//go:embed assets/netbird-systemtray-connecting.ico -var winIconConnecting []byte - -//go:embed assets/netbird-systemtray-error.ico -var winIconError []byte - -//go:embed assets/netbird-systemtray-update-connected.ico -var winIconUpdateConnected []byte - -//go:embed assets/netbird-systemtray-update-disconnected.ico -var winIconUpdateDisconnected []byte diff --git a/client/ui-wails/main.go b/client/ui-wails/main.go index 480b3b21f..2e351ec91 100644 --- a/client/ui-wails/main.go +++ b/client/ui-wails/main.go @@ -7,17 +7,41 @@ import ( "embed" "flag" "log" + "strings" "github.com/wailsapp/wails/v3/pkg/application" "github.com/wailsapp/wails/v3/pkg/events" "github.com/wailsapp/wails/v3/pkg/services/notifications" "github.com/netbirdio/netbird/client/ui-wails/services" + "github.com/netbirdio/netbird/util" ) //go:embed all:frontend/dist var assets embed.FS +// stringList is a flag.Value that collects repeated string flags. The first +// time the user passes -log-file the seeded default ("console") is dropped; +// subsequent passes append. Lets the user replace or extend the log target +// list without a separate "reset" flag. +type stringList struct { + values []string + userSet bool +} + +func (s *stringList) String() string { + return strings.Join(s.values, ",") +} + +func (s *stringList) Set(v string) error { + if !s.userSet { + s.values = nil + s.userSet = true + } + s.values = append(s.values, v) + return nil +} + func init() { application.RegisterEvent[services.Status](services.EventStatus) application.RegisterEvent[services.SystemEvent](services.EventSystem) @@ -27,8 +51,15 @@ func init() { func main() { daemonAddr := flag.String("daemon-addr", DaemonAddr(), "Daemon gRPC address: unix:///path or tcp://host:port") + logFiles := &stringList{values: []string{"console"}} + flag.Var(logFiles, "log-file", "Log destination. Repeat to log to multiple targets at once, e.g. `--log-file console --log-file Y:/netbird-ui.log`. Each value is one of: console, syslog, or a file path. File destinations are rotated by lumberjack (same as the daemon). Defaults to console.") + logLevel := flag.String("log-level", "info", "Log level: trace|debug|info|warn|error.") flag.Parse() + if err := util.InitLog(*logLevel, logFiles.values...); err != nil { + log.Fatalf("init log: %v", err) + } + conn := NewConn(*daemonAddr) // tray is captured in the SingleInstance callback below; the var is diff --git a/client/ui-wails/services/peers.go b/client/ui-wails/services/peers.go index 093371e39..977cb4f59 100644 --- a/client/ui-wails/services/peers.go +++ b/client/ui-wails/services/peers.go @@ -178,12 +178,17 @@ func (s *Peers) pollLoop(ctx context.Context) { ticker := time.NewTicker(PollInterval) defer ticker.Stop() + first := true for { st, err := s.Get(ctx) if err == nil { + if first { + log.Infof("peers pollLoop: first status ok status=%q peers=%d", st.Status, len(st.Peers)) + first = false + } s.emitter.Emit(EventStatus, st) } else if ctx.Err() == nil { - log.Debugf("status poll: %v", err) + log.Warnf("peers pollLoop: status poll error: %v", err) } select { diff --git a/client/ui-wails/tray.go b/client/ui-wails/tray.go index 91a3625e6..34d785209 100644 --- a/client/ui-wails/tray.go +++ b/client/ui-wails/tray.go @@ -299,8 +299,10 @@ func (t *Tray) onSystemEvent(ev *application.CustomEvent) { func (t *Tray) onUpdateAvailable(ev *application.CustomEvent) { upd, ok := ev.Data.(services.UpdateAvailable) if !ok { + log.Warnf("update event payload not UpdateAvailable: %T", ev.Data) return } + log.Infof("tray onUpdateAvailable: version=%s enforced=%v", upd.Version, upd.Enforced) t.mu.Lock() t.hasUpdate = true t.mu.Unlock() @@ -383,15 +385,14 @@ func (t *Tray) rebuildExitNodes(nodes []string) { } func (t *Tray) applyIcon() { - if runtime.GOOS == "windows" { - t.mu.Lock() - ico := trayIcon(t.connected, t.hasUpdate, t.lastStatus) - t.mu.Unlock() - if ico != nil { - t.tray.SetIcon(ico) - } - return - } + t.mu.Lock() + connected := t.connected + hasUpdate := t.hasUpdate + statusLabel := t.lastStatus + t.mu.Unlock() + + log.Infof("tray applyIcon: connected=%v hasUpdate=%v status=%q goos=%s", + connected, hasUpdate, statusLabel, runtime.GOOS) icon, dark := t.iconForState() if runtime.GOOS == "darwin" { @@ -563,3 +564,4 @@ func titleCase(s string) string { } return strings.ToUpper(s[:1]) + strings.ToLower(s[1:]) } + diff --git a/client/ui-wails/tray_icon_other.go b/client/ui-wails/tray_icon_other.go deleted file mode 100644 index 6e2489929..000000000 --- a/client/ui-wails/tray_icon_other.go +++ /dev/null @@ -1,8 +0,0 @@ -//go:build !windows && !android && !ios && !freebsd && !js - -package main - -// trayIcon is unused on non-Windows hosts — Linux feeds setIcon a PNG and -// macOS uses SetTemplateIcon. This stub exists so the compiler is happy and -// callers don't need build tags around references. -func trayIcon(_, _ bool, _ string) []byte { return nil } diff --git a/client/ui-wails/tray_icon_windows.go b/client/ui-wails/tray_icon_windows.go deleted file mode 100644 index 8cd7ec606..000000000 --- a/client/ui-wails/tray_icon_windows.go +++ /dev/null @@ -1,27 +0,0 @@ -//go:build windows - -package main - -import "strings" - -// trayIcon returns the Windows-tray .ico bytes for the given state. The -// other-platform implementation in tray_icon_other.go returns the colored -// PNG instead. Splitting it this way keeps the Linux/macOS paths free of -// .ico artifacts in their //go:embed search and avoids loading large icon -// resources where they aren't used. -func trayIcon(connected, hasUpdate bool, statusLabel string) []byte { - switch { - case strings.EqualFold(statusLabel, "Connecting"): - return winIconConnecting - case strings.EqualFold(statusLabel, "Error"): - return winIconError - case connected && hasUpdate: - return winIconUpdateConnected - case connected: - return winIconConnected - case hasUpdate: - return winIconUpdateDisconnected - default: - return winIconDisconnected - } -}